Brazil Going Concern Disclosures API: Track Substantial Doubt and Liquidity Warnings from CVM Filings
A Brazil going concern disclosures API in the credit-research sense is not a live distress score, a bankruptcy prediction model, or a vendor that tags “GC” on every 10-K equivalent. It is access to the CVM filings where Brazilian issuers and their independent auditors discuss continuidade operacional (going concern), liquidity shortfalls, refinancing plans, and substantial doubt — usually in auditor reports bundled with DFP and ITR (Informações Trimestrais, not US income tax returns), liquidity and risk-factor sections in FRE, and FATO_RELEVANTE when a covenant breach or liquidity event is material. 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 auditors refresh review reports.
This guide shows which type values to query, annex title heuristics for auditor reports, and how this hub differs from the broader independent auditor report, debt covenant monitoring, and financial restatement workflows.
The problem
Going-concern surveillance splits into three stacks that English search results often merge:
- Market data terminals — may show leverage ratios or CDS. They rarely store the issuer’s regulatory PDF with the auditor’s emphasis-of-matter or management’s liquidity mitigation plan in Portuguese.
- Periodic packages —
DFPandITRrows with parecer do auditor independente annexes. You need ticker-first access and stabledocument.id, not a one-off portal download per name. - Event disclosures — fatos relevantes when refinancing fails, waivers expire, or management discloses liquidity stress before the next full auditor report.
Scraping the CVM portal works for one ticker and breaks on a diversified credit 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 going concern and liquidity workflows.
For covenant math and waiver notices, cross-check Brazil debt covenant disclosures API. For qualified opinions that often accompany GC language, see Brazil independent auditor report disclosures API. This guide focuses on the API list-and-download pattern for continuity and liquidity disclosures.
Which filing type carries going-concern language?
Brazilian issuers do not expose a dedicated type=GOING_CONCERN in the apicvm document list. Substantial-doubt language usually appears under:
type |
Role in going-concern workflows |
|---|---|
DFP / ITR |
Independent auditor report annex — emphasis on continuity, liquidity, or substantial doubt |
FRE |
Annual reference form — risk factors, liquidity management, refinancing strategy |
FATO_RELEVANTE |
Material fact on covenant breach, debt restructuring, or liquidity support |
COMUNICADO_AO_MERCADO |
Market communication on refinancing or capital injection |
DFP / ITR (notes) |
Explanatory notes on liquidez, passivo circulante, or short-term debt maturities |
Practical rule: list DFP/ITR for the issuer and filter annex rows whose name contains Auditor, Parecer, or Independent. Pull the latest FRE for narrative risk factors. Poll FATO_RELEVANTE with Portuguese and English tokens (continuidade, liquidez, going concern, substantial doubt, refinanciamento, covenant). After download, search PDF text for continuidade operacional, dúvida relevante, substantial doubt, ênfase, liquidez, refinanciamento, or going concern.
Issuer packaging varies: some filers embed GC language only in the auditor PDF; others discuss liquidity primarily in FRE risk factors. Zero rows with a keyword filter does not mean no going-concern discussion — broaden the list or open the latest auditor annex manually.
How apicvm helps
- Resolve the issuer —
GET /v1/companies/resolve - List periodic filings —
GET /v1/documentswithtype=ITRortype=DFPandyear - Narrow auditor annexes —
name=Auditororname=Parecer - List annual reference —
GET /v1/documentswithtype=FRE - List liquidity 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 independent auditor annexes on recent ITR packages
curl -s -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=GGBR4&type=ITR&year=2025&perPage=50&field=dateRef&order=desc" \
| jq '.data[] | select(.name | test("auditor|parecer|independent"; "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 auditor report PDF
DOC_ID=123456
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents/$DOC_ID/file" -o auditor-report.pdf
Search the PDF locally for going-concern phrases. apicvm does not return a pre-parsed goingConcern: true field.
Step 4: Pull FRE for liquidity risk narrative
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.
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 = ["GGBR4", "PETR4", "VALE3", "ITUB4"]
GC_EVENT_RE = re.compile(
r"continuidade|liquidez|refinanciamento|covenant|going concern|"
r"substantial doubt|d[uú]vida relevante",
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 GC_EVENT_RE.search(doc.get("name") or ""):
continue
seen.add(doc["id"])
print(f"GC_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 going-concern signals sit in the filings stack
| Layer | Types | Going-concern relevance |
|---|---|---|
| Periodic | ITR, DFP |
Auditor reports, liquidity notes, short-term debt tables |
| Reference | FRE |
Risk factors, liquidity management, refinancing strategy |
| Events | FATO_RELEVANTE, COMUNICADO_AO_MERCADO |
Covenant breach, restructuring, capital support |
| Credit | Balance sheet notes | Current vs non-current liabilities (manual read) |
Brazil regulatory filings API explains the full layer map. Pair auditor annex polling with quarterly ITR monitoring during 3Q ITR season (typically Oct–Nov). When GC warnings follow accounting retifications, cross-check Brazil financial restatement disclosures API. For leverage context, see Brazil balance sheet disclosures API. For the broader Brazil financial data API pillar, treat going concern as the credit stress layer on top of periodic statements.
Current limitations
- Documents, not parsed GC analytics — apicvm does not return clean vs qualified labels, automatic substantial-doubt flags, or emphasis-of-matter extraction.
- Title heuristics —
namefilters miss annexes with generic titles; some GC language lives only inside the PDF body. - Polling, not push — no webhook when CVM publishes a new auditor report. 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 independent auditor report disclosures API — full audit-opinion workflow
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.