EU + UK company identifiers: a multi-country KYB reference

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.

Identifier formats at a glance

  • Spain (BORME): NIF / CIF — a legal-form letter + 7 digits + a recomputable control character, e.g. B12345678.
  • France (BODACC + RNE): SIREN — 9 digits with a Luhn checksum. SIRET (14 digits) identifies an establishment; RCS also seen.
  • UK (Companies House): company number — 8 characters, either 8 digits or a 2-letter prefix + 6 (e.g. SC123456). No checksum.
  • Ireland (CRO): CRO number — up to ~6-7 digits, no checksum.
  • Poland (KRS): KRS number — 10 digits, zero-padded. NIP and REGON also seen.
  • Norway (Enhetsregisteret): organisasjonsnummer — 9 digits, issued by Brønnøysundregistrene. The Norwegian VAT number is the organisasjonsnummer followed by the suffix MVA.
  • Finland (Kaupparekisteri, PRH/YTJ): Y-tunnus — 7 digits, a hyphen and a modulus-11 check digit, e.g. 0112038-9. The Finnish VAT number is FI plus the 8 digits.
  • Sweden (Bolagsverket): organisationsnummer — 10 digits with a Luhn check digit, third digit 2 or higher, e.g. 556012-5790. The Swedish VAT number is SE, the 10 digits and 01.
  • Belgium (KBO/BCE): enterprise number — 10 digits starting with 0 or 1, with a mod-97 check on the last two, e.g. 0417.497.106. The Belgian VAT number is BE plus the 10 digits.
  • Denmark (CVR): CVR number — 8 digits, e.g. 24256790; the mod-11 check is advisory, so a mismatch is a warning and not an error. The Danish VAT number is DK plus the 8 digits.
  • Croatia (Sudski registar): MBS, the court-register number, e.g. 080000604 (its check digit is advisory only), and the 11-digit OIB with an ISO 7064 MOD 11,10 check digit. The Croatian VAT number is HR plus the OIB.

Coverage, freshness, and beneficial ownership

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.

One shape, every country

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.

Read more · Start your 14-day free trial

Identifier formats at a glance

CountryRegistryPrimary IDFormat & exampleChecksumAlso seen
🇪🇸 SpainBORMENIF / CIFLetter + 7 digits + control char — B12345678Yes (control char)—
🇫🇷 FranceBODACC + RNESIREN9 digits — 552100554Yes (Luhn)SIRET (14 = SIREN + 5), RCS
🇬🇧 UKCompanies HouseCompany number8 chars: 8 digits, or 2-letter prefix + 6 — 12345678, SC123456No—
🇮🇪 IrelandCROCRO numberUp to ~6–7 digits — 123456No—
🇵🇱 PolandKRSKRS number10 digits, zero-padded — 0000123456NoNIP (10, checksum), REGON (9/14)
🇳🇴 NorwayBrønnøysundregistrene (Enhetsregisteret)Organisasjonsnummer9 digits — 123456789—VAT number = organisasjonsnummer + MVA
🇫🇮 FinlandKaupparekisteri (PRH / YTJ)Y-tunnus7 digits, hyphen, check digit — 0112038-9Yes (mod 11)VAT number = FI + 8 digits
🇸🇪 SwedenBolagsverketOrganisationsnummer10 digits, third digit 2 or higher — 556012-5790Yes (Luhn)VAT number = SE + 10 digits + 01
🇧🇪 BelgiumKBO / BCEEnterprise number10 digits starting with 0 or 1 — 0417.497.106Yes (mod 97)VAT number = BE + 10 digits
🇩🇰 DenmarkCVR (Det Centrale Virksomhedsregister)CVR number8 digits — 24256790Advisory only (mod 11)VAT number = DK + the 8 digits
🇭🇷 CroatiaSudski registarMBSCourt-register number — 080000604Advisory onlyOIB (11 digits, ISO 7064 MOD 11,10); VAT number = HR + OIB

Coverage, freshness, and beneficial ownership

CountryDepthRefreshDirectors / beneficial ownership?country=
🇪🇸 SpainCompany + people + corporate eventsDaily (BORME)Director/officer identity; no separate UBO registerES (default)
🇫🇷 FranceCompany + corporate eventsDaily (BODACC/RNE)Director/representative identity from BODACCFR
🇬🇧 UKCompany + officers + PSC + eventsDaily (Companies House)PSC beneficial ownership + officer appointmentsGB
🇮🇪 IrelandCompany-levelRolling (CRO Open Data)Not yet exposedIE
🇵🇱 PolandCompany-level (active legal entities)Rolling (KRS)Not yet exposedPL
🇳🇴 NorwayCompany + officers (no event timeline)Daily (Brønnøysundregistrene)Officer/director identity; no UBO feedNO
🇫🇮 FinlandCompany records onlyWeekdays (Kaupparekisteri)No officers, no UBO feedFI
🇸🇪 SwedenCompany records onlyWeekdays (Bolagsverket)No officers, no UBO feedSE
🇧🇪 BelgiumCompany records onlyWeekdays (KBO/BCE)No officers, no UBO feedBE
🇩🇰 DenmarkCompany records onlyWeekdays (CVR)No officers, no UBO feedDK
🇭🇷 CroatiaCompany records onlyWeekdays (Sudski registar)No officers, no UBO feedHR

Frequently asked questions

Which identifier should I store for each country?
Store the registry primary key: NIF/CIF in Spain, SIREN in France (SIRET only if you need a specific establishment), the Companies House number in the UK, the CRO number in Ireland, the KRS number in Poland (plus NIP if you also need the tax identifier), the organisasjonsnummer in Norway, the Y-tunnus in Finland, the organisationsnummer in Sweden, the enterprise number in Belgium, the CVR number in Denmark, the registry code in Estonia, the IČO in Slovakia, the UID in Switzerland, the registration number in Latvia, Cyprus and Romania, the legal entity code in Lithuania, the corporation number in Canada, the ACN or ARBN in Australia, the corporate number in Japan, the company number in Israel, the UEN in Singapore, the NIT in Colombia, the unified business number in Taiwan, the CNPJ in Brazil, the state-prefixed number in the United States (such as NY-4424185), and the MBS in Croatia (plus the OIB if you need the tax identifier). These are the values Prometiam keys on for /companies/{id} lookups.
How do I validate a Spanish NIF or French SIREN before calling the API?
A Spanish NIF/CIF is a leading letter (legal form) + 7 digits + a control character you can recompute locally. A French SIREN is 9 digits with a Luhn checksum. Validating the format client-side before an API call rejects typos early and saves quota.
Does Prometiam provide beneficial ownership for all live countries?
UK beneficial ownership is available via the Companies House PSC (person-with-significant-control) register on /companies/{id}?country=GB and /people/{id}?country=GB. Spain, France and Norway expose director/officer identity; 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-level today, with no UBO feed. Register access differs by member state and some are legally restricted.
How fresh is the data per country?
Spain (BORME), France (BODACC/RNE), the UK (Companies House) and Norway (Enhetsregisteret / Brønnøysundregistrene) are refreshed daily from the official sources. Ireland (CRO) and Poland (KRS) are company-level and refreshed on a rolling basis; Finland, Sweden, Belgium, Denmark, Croatia, Estonia, Slovakia, Switzerland, Latvia, Lithuania, Canada, Japan, Israel, Colombia and Taiwan are refreshed every working day, Australia and the United States weekly, and Cyprus, Romania, Singapore and Brazil monthly. The latest refresh per country is published at /coverage.
How do I query a specific country?
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 and a normalized company shape so one integration covers every live country.