DFP: Brazil's Annual Standardized Financial Statements
DFP (Demonstrações Financeiras Padronizadas) is the annual financial statement package that Brazilian public companies file with the CVM. If you work with US 10-K filings, DFP is the closest equivalent in Brazil — and the document type most financial data pipelines need first.
This page explains what DFP is, what it typically contains, and how to list and download DFP filings through apicvm.
What is DFP?
DFP is a standardized set of annual financial disclosures required for companies listed on B3. Regulators use it to give investors comparable, audited financial information across issuers.
Unlike ad-hoc investor presentations, DFP follows CVM norms — so filters like type=DFP on GET /v1/documents return a consistent document category.
When is DFP filed?
Companies publish DFP after their fiscal year ends. The reference date (dateRef) on each document is typically the fiscal year-end (for example 2024-12-31).
Annual filings may include multiple files per year — main statements, audit reports, director declarations, and committee reports. Always inspect list results and pick the document you need by name and dateRef.
What does DFP contain?
Typical DFP packages include:
- Balance sheet and income statement (audited)
- Cash flow statement
- Notes to financial statements
- Audit opinions and director declarations
- Management discussion and supplementary reports
Exact file names vary by company. apicvm returns the original PDFs as filed — use name metadata to identify specific sections.
How to list DFP via apicvm
Filter documents by type=DFP, plus ticker and year:
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=PETR4&type=DFP&year=2024&perPage=20"
Each result includes id (UUID), year, dateRef, name, and nested company with tickers.
Python example
import os, requests
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
docs = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={"ticker": "PETR4", "type": "DFP", "year": 2024, "perPage": 20},
).json()
for doc in docs["data"]:
print(doc["name"], doc["dateRef"], doc["id"])
Download a DFP file
Once you have a document.id, stream the PDF:
curl -OJ -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents/<document-id>/file"
For page-level markdown (RAG, agents), enqueue text extraction instead of parsing PDFs locally. See Extract Text from CVM PDFs for AI Agents.
DFP vs ITR vs FRE
| Type | Cadence | Focus |
|---|---|---|
| DFP | Annual | Audited financial statements |
| ITR | Quarterly | Interim financial updates |
| FRE | Annual | Company profile, governance, risks |
Most financial models start with DFP for annual baselines, then use ITR for quarterly updates. See Download DFP and ITR filings.
Current limitations
- DFP availability depends on the apicvm corpus — only companies and periods ingested from the Hold pipeline.
- Multiple DFP files per year are common; the API lists all matches — you choose the
id. - Downloads are PDF originals, not structured XBRL or parsed line items.
Next steps
- Read the API docs
- Get an API key
- Download DFP and ITR filings — step-by-step guide
- List Brazil DFP filings (10-K equivalent) — ticker filter and download
- Access CVM filings with Python
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.