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, and Norway. 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 and Poland are company-level 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 per-country counts and latest refresh are always at /coverage — the source of truth, not this article.
Pass ?country=ES|FR|GB|IE|PL|NO 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 all six. 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.
| 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 |
| 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 |