A one-page reference to the company-number formats, checksums, registries, and data freshness you need to verify companies across Spain, France, the UK, Ireland, Poland, Norway, Finland, Sweden, Belgium, Denmark, Estonia, Slovakia, Switzerland, Latvia, Cyprus, Romania, Croatia, Lithuania, Canada, Australia, Japan, Israel, Singapore, Colombia, Taiwan, Brazil and the United States. When a KYB integration crosses a border, the "company id" stops being a single thing — store the wrong one, or validate it with the wrong rule, and you get silent "company not found" failures at onboarding.
Spain (company + people + events) and France (company + events) refresh daily and expose director/representative identity from the gazettes. The UK refreshes daily with officers plus PSC beneficial ownership. Norway refreshes daily from Brønnøysundregistrene with companies and officers — the fourth country with director data — but has no gazette equivalent, so corporate-event endpoints return nothing for NO. Ireland, Poland, Finland, Sweden, Belgium, Denmark, Estonia, Slovakia, Switzerland, Latvia, Cyprus, Romania, Croatia, Lithuania, Canada, Australia, Japan, Israel, Singapore, Colombia, Taiwan, Brazil and the United States are company records only today — no directors, UBO, or event timeline. Beneficial ownership is a first-class feed only for the UK (PSC); register access differs sharply by member state and some are legally restricted. Live coverage and the latest refresh are always at /coverage — the source of truth, not this article.
Pass ?country=ES|FR|GB|IE|PL|NO|FI|SE|BE|DK|HR|EE|SK|CH|LV|CY|RO|US|LT|CA|AU|JP|IL|SG|CO|TW|BR on /companies/search and /companies/{id}; Spain is the default. Each country returns its native identifiers plus a normalized company object, so one integration covers every live country. Store the registry primary key as your canonical reference (SIREN not SIRET in France), normalize on write, and validate format and checksum client-side to reject typos without spending a lookup. The company lookup API page shows the same lookup for every identifier, with a live demo per country.
| Country | Registry | Primary ID | Format & example | Checksum | Also seen |
|---|---|---|---|---|---|
| 🇪🇸 Spain | BORME | NIF / CIF | Letter + 7 digits + control char — B12345678 | Yes (control char) | — |
| 🇫🇷 France | BODACC + RNE | SIREN | 9 digits — 552100554 | Yes (Luhn) | SIRET (14 = SIREN + 5), RCS |
| 🇬🇧 UK | Companies House | Company number | 8 chars: 8 digits, or 2-letter prefix + 6 — 12345678, SC123456 | No | — |
| 🇮🇪 Ireland | CRO | CRO number | Up to ~6–7 digits — 123456 | No | — |
| 🇵🇱 Poland | KRS | KRS number | 10 digits, zero-padded — 0000123456 | No | NIP (10, checksum), REGON (9/14) |
| 🇳🇴 Norway | Brønnøysundregistrene (Enhetsregisteret) | Organisasjonsnummer | 9 digits — 123456789 | — | VAT number = organisasjonsnummer + MVA |
| 🇫🇮 Finland | Kaupparekisteri (PRH / YTJ) | Y-tunnus | 7 digits, hyphen, check digit — 0112038-9 | Yes (mod 11) | VAT number = FI + 8 digits |
| 🇸🇪 Sweden | Bolagsverket | Organisationsnummer | 10 digits, third digit 2 or higher — 556012-5790 | Yes (Luhn) | VAT number = SE + 10 digits + 01 |
| 🇧🇪 Belgium | KBO / BCE | Enterprise number | 10 digits starting with 0 or 1 — 0417.497.106 | Yes (mod 97) | VAT number = BE + 10 digits |
| 🇩🇰 Denmark | CVR (Det Centrale Virksomhedsregister) | CVR number | 8 digits — 24256790 | Advisory only (mod 11) | VAT number = DK + the 8 digits |
| 🇭🇷 Croatia | Sudski registar | MBS | Court-register number — 080000604 | Advisory only | OIB (11 digits, ISO 7064 MOD 11,10); VAT number = HR + OIB |
| Country | Depth | Refresh | Directors / beneficial ownership | ?country= |
|---|---|---|---|---|
| 🇪🇸 Spain | Company + people + corporate events | Daily (BORME) | Director/officer identity; no separate UBO register | ES (default) |
| 🇫🇷 France | Company + corporate events | Daily (BODACC/RNE) | Director/representative identity from BODACC | FR |
| 🇬🇧 UK | Company + officers + PSC + events | Daily (Companies House) | PSC beneficial ownership + officer appointments | GB |
| 🇮🇪 Ireland | Company-level | Rolling (CRO Open Data) | Not yet exposed | IE |
| 🇵🇱 Poland | Company-level (active legal entities) | Rolling (KRS) | Not yet exposed | PL |
| 🇳🇴 Norway | Company + officers (no event timeline) | Daily (Brønnøysundregistrene) | Officer/director identity; no UBO feed | NO |
| 🇫🇮 Finland | Company records only | Weekdays (Kaupparekisteri) | No officers, no UBO feed | FI |
| 🇸🇪 Sweden | Company records only | Weekdays (Bolagsverket) | No officers, no UBO feed | SE |
| 🇧🇪 Belgium | Company records only | Weekdays (KBO/BCE) | No officers, no UBO feed | BE |
| 🇩🇰 Denmark | Company records only | Weekdays (CVR) | No officers, no UBO feed | DK |
| 🇭🇷 Croatia | Company records only | Weekdays (Sudski registar) | No officers, no UBO feed | HR |