Brazil CVM Filings for Audit and Accounting Research

Audit and accounting teams need primary Brazil filings audit inputs for workpapers and engagement planning — not only client-provided PDFs. apicvm exposes DFP, ITR, and FRE over HTTP so document IDs stay reproducible. It is not an audit software suite and does not issue opinions.

The persona

  • External audit associates assembling public-company binder packs
  • Accounting advisory teams comparing disclosed statements across years
  • Quality teams that need a re-openable source UUID months later

The problem

Engagement task Typical CVM source
Annual statements package DFP
Interim roll-forward ITR
Governance / related parties / risks FRE (name= filters)

Manual CVM portal downloads do not scale across a portfolio of listed clients and peers.

Solution flow

Engagement ticker list
  → GET /v1/companies/resolve
  → GET /v1/documents (type + year + optional name)
  → GET /v1/documents/:id/file
  → archive UUID + hash in the workpaper index
export APICVM_KEY='apicvm_...'
export APICVM_URL='https://apicvm.dev'

curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=VIVT3&type=DFP&year=2024&perPage=20"

Company landing page: VIVT3 CVM filings.

Workpaper checklist

  1. Resolve ticker (confirm CNPJ / legal name)
  2. Pull engagement-year DFP and prior-year comparative
  3. Pull latest ITR when the period is interim
  4. Pull FRE sections when testing related parties or risk disclosures
  5. Store document UUIDs in the binder index (not only local filenames)

Due-diligence overlap: Brazil filings for due diligence.

Example: peer pack

import os, requests

BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
PEERS = ["VIVT3", "TIMS3", "TELB4"]

for t in PEERS:
    dfp = requests.get(
        f"{BASE}/v1/documents",
        headers=H,
        params={"ticker": t, "type": "DFP", "year": 2024, "perPage": 20},
        timeout=30,
    ).json()["data"]
    print(t, "DFP ids", [d["id"] for d in dfp[:3]])

Current limitations

  • No trial balance, mapping, or sampling workflows — documents only.
  • Corpus lag: verify IDs before freezing a binder.
  • Text extraction is async and credit-based on Pro.
  • Not a replacement for client-provided or auditor-obtained originals when standards require them.

Next steps

Ready to integrate?

Get an API key and start querying Brazilian CVM filings programmatically.