Brazil Accounting Policy Change Disclosures API: Track Estimate Revisions and New Standards from CVM Filings
A Brazil accounting policy change disclosures API in the forensic-research sense is not a GAAP taxonomy engine, a restatement database with pre-labeled error types, or a vendor that maps every CPC paragraph to a machine-readable code. It is access to the CVM filings where Brazilian issuers explain mudanças de política contábil, revisions to material estimativas contábeis, adoption of new CPC/IFRS standards, and reclassifications of comparatives — usually in explanatory notes bundled with DFP and ITR (Informações Trimestrais, not US income tax returns), accounting-policy chapters in FRE, and FATO_RELEVANTE or COMUNICADO_AO_MERCADO when management discloses a material change before the next full periodic package. apicvm lets you list those rows by ticker, download the original PDF, and diff new document.id values on a watchlist during 3Q ITR season when estimate updates and standard adoptions often surface.
This guide shows which type values to query, annex title heuristics for policy notes, and how this hub differs from financial restatement monitoring, revenue recognition, and independent auditor reports.
The problem
Accounting-policy surveillance splits into four stacks that English search results often merge:
- Market data terminals — may flag “accounting change” headlines. They rarely store the full regulatory PDF with the issuer’s note on mudança de estimativa or the auditor’s comment on retrospective application.
- Periodic packages —
DFPandITRrows with notas explicativas and sometimes a dedicated políticas contábeis annex. You need ticker-first access and stabledocument.id, not a one-off portal download per name. - Reference form —
FREcarries the annual inventory of accounting policies and critical estimates before the nextDFPrefresh. - Events and restatements — fatos relevantes when a policy change is material early; retified
DFP/ITRwhen comparatives are reissued (see the restatement hub).
Scraping the CVM portal works for one ticker and breaks on a diversified forensic watchlist. Bulk open-data ZIPs are dataset-oriented, not ticker-first. You want GET /v1/documents with stable document.id, then GET /v1/documents/:id/file for the original PDF — scoped to policy and estimate change workflows.
For full retification loops, cross-check Brazil financial restatement disclosures API. For CPC 47 / IFRS 15 revenue timing only, see Brazil revenue recognition disclosures API. This guide focuses on the API list-and-download pattern for cross-cutting policy and estimate changes.
Which filing type carries accounting policy language?
Brazilian issuers do not expose a dedicated type=ACCOUNTING_POLICY in the apicvm document list. Policy and estimate changes usually appear under:
type |
Role in accounting-policy workflows |
|---|---|
DFP / ITR |
Explanatory notes — mudança de política, mudança de estimativa, adoção de norma, reclassificação |
FRE |
Annual reference form — summary of accounting policies and critical estimates |
FATO_RELEVANTE |
Material fact when a policy or estimate change is disclosed before the next periodic filing |
COMUNICADO_AO_MERCADO |
Market communication on accounting policy or reissued statements |
DFP / ITR (retified) |
Reissued packages after error correction — pair with restatement hub |
Practical rule: list DFP/ITR for the issuer and filter annex rows whose name contains Nota, Notas, Política, Policy, or Explicativa. Pull the latest FRE for the policy chapter. Poll FATO_RELEVANTE with Portuguese and English tokens (política contábil, mudança de estimativa, accounting policy, change in estimate, CPC, IFRS, retificação, reclassificação). After download, search PDF text for mudança de política, mudança de estimativa, adoção, retrospectiva, reclassificação, or accounting policy.
Issuer packaging varies: some filers embed policy changes only in note 1; others discuss estimates in segment notes. Zero rows with a keyword filter does not mean no policy change — broaden the list or open the latest explanatory-notes annex manually.
How apicvm helps
- Resolve the issuer —
GET /v1/companies/resolve - List periodic filings —
GET /v1/documentswithtype=ITRortype=DFPandyear - Narrow policy notes —
name=Notaorname=Política - List annual reference —
GET /v1/documentswithtype=FRE - List policy events —
GET /v1/documentswithtypes=FATO_RELEVANTE,COMUNICADO_AO_MERCADO - Scope with
dateRef; sort withfield=dateRef&order=desc - Download the PDF —
GET /v1/documents/:id/file(no extraction credits) - Optional (Pro): page-level markdown —
POST /v1/document-text-extractionswith async callback
Auth: Authorization: Bearer or X-API-Key. Try VALE3 without a key via the demo API.
Setup
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
Step 1: List explanatory-note annexes on recent ITR packages
curl -s -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=RADL3&type=ITR&year=2025&perPage=50&field=dateRef&order=desc" \
| jq '.data[] | select(.name | test("nota|política|policy|explicativa"; "i")) | {id, type, dateRef, name}'
Response rows include stable id, dateRef, name, and nested company metadata. Use id as your cache key — not name, which can be long and encoding-sensitive.
Paginate with page= when meta.lastPage > 1. perPage maxes at 50.
Step 2: Download the notes PDF
DOC_ID=123456
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents/$DOC_ID/file" -o explanatory-notes.pdf
Search the PDF locally for policy-change phrases. apicvm does not return a pre-parsed policyChange: true field.
Step 3: List material facts on accounting policy or estimate revisions
curl -s -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=PETR4&types=FATO_RELEVANTE,COMUNICADO_AO_MERCADO&year=2025&perPage=50&field=dateRef&order=desc" \
| jq '.data[] | select(.name | test("política|estimativa|CPC|IFRS|retificação|accounting policy|change in estimate"; "i")) | {id, type, dateRef, name}'
Pair event polling with Brazil material facts monitoring API for generic diff loops.
Step 4: Pull FRE for the accounting policies chapter
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=VALE3&type=FRE&year=2025&perPage=10&field=dateRef&order=desc"
For section-level FRE extraction patterns, see FRE risk factors API section filter and Brazil reference form API.
On the public demo (VALE3 only), swap the host path to /v1/demo/documents with the same query parameters for smoke tests.
Step 5: Watchlist poll (Python sketch)
import os, re, requests
BASE = os.environ["APICVM_URL"]
KEY = os.environ["APICVM_KEY"]
HEADERS = {"Authorization": f"Bearer {KEY}"}
WATCH = ["RADL3", "PETR4", "MGLU3", "ITUB4"]
POLICY_EVENT_RE = re.compile(
r"pol[ií]tica|estimativa|CPC|IFRS|retifica|reclassifica|"
r"accounting policy|change in estimate",
re.I,
)
seen = set()
def list_events(ticker):
r = requests.get(
f"{BASE}/v1/documents",
headers=HEADERS,
params={
"ticker": ticker,
"types": "FATO_RELEVANTE,COMUNICADO_AO_MERCADO",
"year": 2025,
"perPage": 50,
"field": "dateRef",
"order": "desc",
},
timeout=60,
)
r.raise_for_status()
return r.json().get("data") or []
for ticker in WATCH:
for doc in list_events(ticker):
if doc["id"] in seen:
continue
if not POLICY_EVENT_RE.search(doc.get("name") or ""):
continue
seen.add(doc["id"])
print(f"POLICY_EVENT {ticker} {doc['dateRef']} {doc['name'][:70]}")
Wire this into GitHub Actions CVM filings monitor. For NLP over downloaded PDFs, see extract text from CVM PDFs for AI agents.
Where policy changes sit in the filings stack
| Layer | Types | Policy-change relevance |
|---|---|---|
| Periodic | ITR, DFP |
Note 1 / policies, estimate revisions, standard adoption |
| Reference | FRE |
Accounting policies and critical estimates inventory |
| Events | FATO_RELEVANTE, COMUNICADO_AO_MERCADO |
Early disclosure before periodic package |
| Quality | Retified DFP/ITR |
Error correction and reissued comparatives |
Brazil regulatory filings API explains the full layer map. Pair note annex polling with quarterly ITR monitoring during 3Q ITR season (typically Oct–Nov). When policy changes trigger retifications, cross-check Brazil financial restatement disclosures API. When auditors qualify opinions on changes, see Brazil independent auditor report disclosures API. For impairment-specific write-downs, see Brazil asset impairment write-down disclosures API. For the broader Brazil financial data API pillar, treat accounting policy changes as the forensic adjustment layer on top of periodic statements.
Current limitations
- Documents, not parsed policy taxonomies — apicvm does not return CPC/IFRS tags, automatic “policy vs estimate” labels, or comparative restatement tables.
- Title heuristics —
namefilters miss annexes with generic titles; some policy language lives only inside the PDF body. - Polling, not push — no webhook when CVM publishes a new note package. Schedule polls and diff
document.id. - Ingestion lag — sync is not real-time. A notice may appear on the portal before it is in the corpus.
- Corpus coverage — not every issuer or period is present. Validate against the portal for production compliance use cases.
- Demo scope —
/v1/demo/*is limited to VALE3. Other tickers need a production key. - ITR disambiguation — Informações Trimestrais (CVM quarterly financials), not US income tax return software.
Next steps
- Read the API docs
- Get an API key
- Brazil financial restatement disclosures API — retified DFP/ITR workflow
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.