Brazil Merger and Acquisition Disclosures API: Track Incorporação and Deal Notices from CVM Filings
A Brazil merger acquisition disclosures API in the compliance sense is not a deal database or exchange matching engine. It is access to the CVM filings that announce incorporação, aquisição, cisão (spin-off), joint ventures, and other control or asset transactions — the PDFs issuers file on the IPE layer when a transaction becomes material. Term sheets and news wires move faster than your archive; apicvm returns the regulatory document you can cite in surveillance, corp dev research, or NLP pipelines.
This guide shows which type values to query, how to list and download M&A-related notices on a watchlist, and how event-layer monitoring differs from M&A diligence on DFP and FRE and from tender offers (OPA).
The problem
Brazilian M&A monitoring splits into three stacks that English search results often merge:
- Market and news — price, premium, rumored targets. Useful for trading, not for the filing text that defines consideration, conditions, and regulatory references.
- Periodic diligence — contingencies, related parties, and contracts in
DFP,ITR, andFRE. Essential for dataroom-style review, but lagging for new deals. - Event disclosures — fatos relevantes when a board approves an acquisition, a JV closes, or a spin-off is announced, plus avisos aos acionistas when assemblies frame the transaction for holders.
Scraping the CVM portal works for one ticker and breaks on a multi-name 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 — the same pattern as Brazil material facts monitoring API, scoped to deal announcements.
For equity issuance tied to M&A financing, see Brazil follow-on offering disclosures API. For mandatory takeover bids, see Brazil tender offer disclosures API.
Which filing type carries M&A events?
Brazilian issuers do not expose a dedicated type=MERGER in the apicvm document list. Deal events usually surface under:
type |
Role in M&A workflows |
|---|---|
FATO_RELEVANTE |
Material fact when a transaction is signed, amended, closed, or materially updated |
AVISO_AOS_ACIONISTAS |
Notice to shareholders — assembly convocation, exchange ratios, and formal legal text for incorporação or cisão |
Practical rule: poll FATO_RELEVANTE on active watchlists, add AVISO_AOS_ACIONISTAS when you track assembly-driven restructurings, then filter rows by name keywords (Aquisicao, aquisição, Incorporacao, incorporação, Cisao, cisão, joint-venture, Desincorporacao) before downloading PDFs. After download, search PDF text for incorporação, aquisição de controle, cisão, or desincorporação.
On VALE3 for calendar year 2025, the demo corpus returned multiple FATO_RELEVANTE rows whose name includes aquisicao or joint-venture (demo API, queried 2026-09-17). Banks and acquisitive retailers follow the same list-and-download workflow when those tokens appear. Zero rows in a given year does not prove no M&A occurred — see limitations below.
How apicvm helps
- Resolve the issuer —
GET /v1/companies/resolve - List event filings —
GET /v1/documentswithtype=FATO_RELEVANTE(optionally addAVISO_AOS_ACIONISTAS) - Scope with
yearand optionaldateRef; 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 material facts for one ticker
curl -H "Authorization: Bearer $APICVM_KEY" \
"$APICVM_URL/v1/documents?ticker=VALE3&type=FATO_RELEVANTE&year=2025&perPage=50&field=dateRef&order=desc"
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 3: Download an M&A notice PDF
curl -H "Authorization: Bearer $APICVM_KEY" \
-o ma-notice.pdf \
"$APICVM_URL/v1/documents/<document-id>/file"
Download does not consume extraction credits.
Example: Python watchlist for M&A filings
Poll material facts across a corp-dev watchlist. Persist seen in your database in production.
import os, time, requests, re
from datetime import datetime
BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}
WATCH = ["VALE3", "RADL3", "SMFT3", "PETR4", "ABEV3"]
YEAR = datetime.utcnow().year
MA_RE = re.compile(
r"aquisicao|aquisição|incorporacao|incorporação|cisao|cisão|"
r"joint-venture|desincorporacao|desincorporação",
re.I,
)
seen = set() # load from your store on startup
def list_events(ticker):
r = requests.get(
f"{BASE}/v1/documents",
headers=H,
params={
"ticker": ticker,
"types": "FATO_RELEVANTE,AVISO_AOS_ACIONISTAS",
"year": YEAR,
"perPage": 50,
"field": "dateRef",
"order": "desc",
},
)
if r.status_code == 429:
time.sleep(5)
return list_events(ticker)
r.raise_for_status()
return r.json()["data"]
for ticker in WATCH:
for doc in list_events(ticker):
if doc["id"] in seen:
continue
if not MA_RE.search(doc.get("name") or ""):
continue
seen.add(doc["id"])
print(f"M&A {ticker} {doc['dateRef']} {doc['name'][:70]}")
Wire this into GitHub Actions or extend the diff pattern from Brazil material facts monitoring API.
Where M&A events sit in the filings stack
| Layer | Types | M&A relevance |
|---|---|---|
| Events | FATO_RELEVANTE, AVISO_AOS_ACIONISTAS |
Deal signing, closing, assembly notices |
| Control bids | FATO_RELEVANTE, AVISO_AOS_ACIONISTAS |
OPA — see tender offer hub |
| Statements | DFP, ITR, FRE |
Post-deal contingencies and pro forma context — see M&A research use case |
Brazil regulatory filings API explains the full layer map. During earnings windows, pair this hub with Track Brazil earnings season for ITR alongside event filings.
Current limitations
- Documents, not a deal room — apicvm does not replace virtual data rooms or legal counsel review.
- Keyword filters are heuristic —
nametokens help; false negatives are possible if issuers use unusual titles. - Polling, not push — no webhook when CVM publishes a new fact. 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.
Next steps
- Read the API docs
- Get an API key
- Brazil CVM filings for M&A research — DFP/FRE diligence layer
Ready to integrate?
Get an API key and start querying Brazilian CVM filings programmatically.