Check the check digit on a Spanish NIF or CIF, a French SIREN or SIRET, a Polish NIP or REGON, a Norwegian organisation number, a UK company number, an Irish CRO number, or any EU VAT number. Free, no signup, and no data leaves your browser — every calculation runs locally.
This distinction matters more than most tools admit. Spain (NIF/CIF/NIE), France (SIREN/SIRET), Poland (NIP/REGON) and Norway (organisasjonsnummer) all carry a real check digit, so a typo can be caught offline before it costs an API call. UK company numbers and Irish CRO numbers do not. For those, a validator can only confirm the shape is right — it cannot tell you the company exists. Any tool that reports a UK company number as "valid" is overstating what it checked.
Structure is checked per country, and where the national number is itself checksummed — Spain, Poland, and the SIREN inside a French VAT number — that check runs too. Whether a VAT number is actually registered and active can only be answered by VIES, which requires a server-side call.
It is pure arithmetic. There is no lookup, no API key and no cost to run it, so there is no reason to put it behind a signup. If you then need to know whether the company exists, who its directors are, or whether it is under insolvency proceedings, that is what the Prometiam API does across Spain, France, the UK, Ireland, Poland and Norway.
| Identifier | Check digit? | Algorithm |
|---|---|---|
| Spain — NIF / CIF / NIE | Yes | Letter from mod 23 (personal), or weighted digit sum (company) |
| France — SIREN | Yes | Luhn over 9 digits |
| France — SIRET | Yes | Luhn over 14 digits (La Poste is a documented exception) |
| Poland — NIP | Yes | Weighted sum mod 11 |
| Poland — REGON | Yes | Weighted sum mod 11 (9 and 14-digit forms) |
| Norway — organisasjonsnummer | Yes | Weighted sum mod 11 |
| UK — company number | No | Format only — 8 digits, or 2 letters + 6 digits |
| Ireland — CRO number | No | Format only — a plain sequential integer |
| EU VAT | Varies | Per-country structure, plus the national check digit where one exists |