Use cases & endpoints
CNPJ to ticker mapping — Brazilian company identity
A CNPJ identifies a legal entity in Brazil's national registry. A ticker identifies something that trades. The two are not the same thing and the relationship between them is many-to-many: a listed company may have several classes of shares, its operating subsidiaries carry their own CNPJs, and holding structures put the registered entity a step away from the traded instrument.
Most integrations resolve this with a hand-maintained spreadsheet that is wrong in the interesting cases — exactly the corporate restructurings where getting it right matters.
Hindcast treats the mapping as versioned graph edges rather than a lookup table. A CNPJ resolves to the entity it belongs to, the entity links to its listed instruments, and each link carries the dates it was valid. That means a query about a past date returns the structure as it stood then, and a company that reorganized does not retroactively rewrite its own history.
hindcast — session
previewhindcast> which tickers belong to this CNPJ, and since when?
→ tool: entity_resolve { id:"...", type:"cnpj", include:"instruments" }
✓ linked tickers and ISINs with validity dates
source: registry and listing records, mappings dated
What's covered
- CNPJ resolved to entity nodes rather than directly to strings
- Multiple share classes linked to one issuer
- Subsidiary and holding relationships exposed explicitly
- Mapping edges carry validity dates for historical accuracy
- ISIN and global identifiers linked from the same node
- Name history retained so old names still resolve
Join the waitlist — this page's dataset is already selected.
Questions
What if a company has several CNPJs?
That is the normal case, not an exception. Each registered entity keeps its own node and the relationships between them are explicit, so you can choose whether a question is about the listed issuer or the operating subsidiary.
Does the mapping handle restructurings?
Dated edges are exactly how. When a structure changes, new edges take effect from that date and the old ones remain valid for the period they described, which keeps historical joins correct.
Related
Join the waitlist. Vote the roadmap. First in, first served.