company:
Neither is a passthrough of any one register. The same two obligations (file your accounts, periodically confirm your particulars are current) exist in nearly every jurisdiction under different local names, and both fields are modelled around those obligations rather than around any single register’s field names.
complianceFlags
Each signal has its own key, and each key holds its own object.
Each flag object carries:
insolvencyHistory is historical. A company currently in proceedings is reported through status.statusDetails.status (UNDER_INSOLVENCY_PROCEEDING). A company that has since recovered keeps insolvencyHistory.active: true while returning to an active status. That is exactly the signal a risk model wants.Country-specific coverage
Every country manifest containscomplianceSignals.flags.values. Each entry includes its own country-specific description, the public register source, reportsNegative, available payload fields, and providedBy request paths (datapoint and mode). An empty list means no compliance flags are currently covered. Pricing details and the Topograph Wizard expose the same descriptions and request paths. Flags are included in the corresponding data request, rather than sold separately.
Belgium covers uboAdministrativeStrikingOff through the BCE public register with company in verification mode. Only an explicit notice produces active: true; an absent notice does not produce active: false. The notice can coexist with an active company and a normal legal situation. Correcting the UBO declaration does not automatically remove it.
Annual confirmation and modification are different events: an unchanged ownership declaration can be confirmed annually. An old modification date, a control-start date, or the time Topograph fetched data does not establish an overdue confirmation.
uboConfirmationOverdue is returned with ultimateBeneficialOwners in verification mode, including in a UBO-only request. The Belgian UBO Register explicitly reports overdue (active: true) or valid (active: false) confirmation; missing or unrecognised evidence remains unknown.
lastConfirmedOn records the confirmation date when available, and observedAt records the source observation without being refreshed when a result is reused. Successful live retrieval remains live even when the declaration is old; compliance flags do not change retrieval freshness or authority.
statutoryFilings
Two obligations, each with what was last filed and what is next due.
Each obligation carries:
Every sub-field is independently optional
Registers publish very different subsets, and we return exactly what the register states. Nothing is derived to fill a gap.- A register that publishes only a due date populates
next.dueDateand nothing else. - A register that publishes only a filing year (several US states) populates
next.year. No day or month is invented. overdueis only ever the register’s own word. It is never computed by comparingdueDateto today, because filing deadlines carry jurisdiction-specific grace periods.
complianceSignals.statutoryFilings.values[].fields in the coverage manifest for the exact list a country populates before you build against it.
Country availability
The manifest is the source of truth and is served live through the API and the Topograph Wizard. The table below is a snapshot.
Compliance flags
Statutory filings
Ireland reports the annual return date as a period, not a deadline. The Irish Annual Return Date (ARD) is the latest date to which a return must be made up; the return is then due within 56 days of it. So
annualFiling.next.periodEnd carries the ARD and no dueDate is published. The deadline is not derived, because it is not a plain 56 days: it extends past weekends and public holidays, and where financial statements are annexed it is the earlier of ARD + 56 days and financial-year-end + 9 months + 56 days.US states publish no statutory accounts. The
accounts obligation is deliberately absent for every US state rather than returned empty. An empty object would read as “we looked and found nothing”, which is a different claim from “this register does not hold it”.Both fields are additive
complianceFlags and statutoryFilings are optional and appear only where a register publishes them. Adding a country, a flag, or a sub-field never changes an existing response shape.
statutoryFilings.*.next.overdue intentionally mirrors complianceFlags.accountsOverdue / annualFilingOverdue. Use complianceFlags when you want the alerting surface, statutoryFilings when you want the calendar.