Parameters, response columns and types are generated from the SQL catalog and
render under Endpoints → FNET documents in the sidebar. This page carries what a
schema cannot: how a document is tied to a fund, how versions are paired, and where
the history starts.
Overview
CVM’s open-data CSVs are republished in place: when a fund restates an informe, the new figures overwrite the old ones and the fact that anything changed is gone. B3’s Fundos.NET (FNET) keeps every version as its own document, says whether it is the original or a restatement, and keeps the superseded version listed. Silo crawls that register and serves it three ways. For the FIDC monthly informe it also downloads both versions of each restatement and stores the fields that changed (no document body is kept):
The FNET vocabulary, served as published:
fund_documents
One row per document, newest delivery first.
source_url is FNET’s own public download
link for the id (…/fnet/publico/downloadDocumento?id=<fnet_id>), so every row carries
provenance you can open.
fund_restatements
A three-version group, with illustrative values:
tipo_fundois the label of FNET’stipoFundofilter the document was returned under (1FII,2FIDC,3ETF),nullwhen it was not returned under any — some documents belong to no queryable type.lag_daysis the delivery date of the restatement minus that of the version it replaced. It measures how long after the earlier filing the correction came, not how late either one was against a deadline.- A document FNET returned for two fund queries would appear once per fund; nothing is collapsed silently.
diff_statussays whether Silo diffed this exact pair (the sameprevious_fnet_id):compared, or why not —unpairable_no_link,unpairable_no_reference,no_predecessor(all re-tried daily),body_not_xml,parse_error,unsupported_root,declared_mismatch(the XML’s own CNPJ or reference disagrees with the link or the register),body_hash_mismatch(a stored version re-fetched with different bytes).nullmeans not diffed: every document outside the FIDC informe mensal, for now. It is as of the last daily diff run.n_fields_changedis how many rowsfund_restatement_diffreturns for the pair (0= re-filed with nothing changed).
fund_restatement_diff
Two rows of FIDC PCG Brasil’s second restatement of its 12/2024 informe (fnet_id 857292,
31 fields changed against 828381):
tipo_documento, reference_raw, versao, modalidade, both
delivery timestamps, lag_days, diff_version, and source_url / previous_source_url
to open both versions.
- Repeated blocks are matched by their declared key — a tranche by
SERIE/TIPO/ID_SUBCLASSE, a cedente by its CPF/CNPJ — and addressed that way infield_path(match_basis: key). A block with no usable key (missing, or repeated inside one version) falls back to its position,[#2](match_basis: position). Position rows are approximate by construction: when a restatement drops two duplicate blocks, you see the fields of blocks#2and#3asremoved. - Text as printed.
old_value/new_valuekeep FNET’s own formatting, comma decimals included.nullis nil or absent;change_kind(changed,added,removed,nil_to_value,value_to_nil) tells them apart. - Numbers only where the field is a number.
old_num,new_numanddeltaare set on amounts, quantities, percentages and rates. An identifier such as a CNPJ is compared as text, so3017677000120and03017677000120are a change. cvm_columnisnulluntil a crosswalk from XML paths to CVM’s CSV columns exists; do not assume a path maps onto a column offund_navorfidc_*.- The diff is of FNET’s two documents, not of CVM’s CSVs, which are republished in place. Tab VIII (the top-25 debtors) is not in the XML, so its restatements are invisible here.
Limits and freshness
- One 1,000-row page, and all three refuse above it (
22023). No cursor: narrow the window, pinp_tipo,p_fnet_id, orp_cnpj/p_tipo_fundo. See Conventions. coverage()carries anfnet_documentsrow keyed on the delivery day:as_ofis the newest delivery day held, andcomplete_throughthe day before it — the crawl that sawas_ofmay have run while FNET was still receiving that day’s documents.notesstates that history begins at Silo’s first crawl or backfill (an earlier day with no rows was not crawled, not empty) and that fund links come from the fortnightly sweep.- An unknown CNPJ is an empty array, never a guessed row.