What a company number looks like in each country, how its check digit is computed, how to normalise it, a worked example and the API parameter that takes it. Every row is generated from the validators of the free identifier validator, so a value shown here is a value the validator accepts.
The same rows as this page, in English. Free to cite with attribution to Prometiam and a link to this page.
Check digit
Shape notation: N digit · L letter · X digit or letter · C check digit or character · {n} repeat n times
Showing 39 of 39 identifiers
Country and register
Identifier and shape
Check digit
Example
API parameter
ESSpainRegistro Mercantil (BORME)
NIF / CIFL N{7} C
Enforced
A28015865
company_numbercountry=ES
How it is checked, regex, code and links
Check
Odd positions of the 7 digits are doubled (a product above 9 loses 9) and the rest are added; control = (10 - sum mod 10) mod 10, written as that digit or as its letter (J A B C D E F G H I).
Normalised form
A28015865
Also accepted as input
A-28015865
A one-character slip
A28015866 is refused
Regex (normalised form)
^[ABCDEFGHJNPQRSUVW][0-9]{7}[0-9A-J]$
API
GET /companies/search?country=ES&company_number=A28015865 · also taken by nif=
VAT number
ES + NIF — built from the identifier by rule; the registration is not confirmed
Good to know
The first letter is the legal form (A public limited company, B limited company). A personal DNI or NIE has a different check (a mod 23 letter) and is not a company identifier: the API refuses it.
const re = /^[ABCDEFGHJNPQRSUVW][0-9]{7}[0-9A-J]$/
re.test('A28015865') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
FR + 2-digit key + SIREN — built from the identifier by rule; the registration is not confirmed
Good to know
The SIREN identifies the legal unit; the SIRET adds a 5-digit establishment number. Non-diffusible companies are found only by SIREN or SIRET, never by name.
const re = /^[0-9]{9}$/
re.test('552032534') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
No check digit: 8 digits, or 2 letters and 6 digits. The shape is the only test.
Normalised form
00445790
Also accepted as input
SC095237
Regex (normalised form)
^([0-9]{8}|[A-Z]{2}[0-9]{6})$
API
GET /companies/search?country=GB&company_number=00445790
VAT number
The register data holds no VAT number for this identifier.
Good to know
The prefix names the type: SC Scotland, NI Northern Ireland, OC, SO and NC limited liability partnerships, FC overseas companies. A well-formed number does not prove the company exists.
const re = /^([0-9]{8}|[A-Z]{2}[0-9]{6})$/
re.test('00445790') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
REGON-9: weights 8,9,2,3,4,5,6,7, sum mod 11 (10 reads as 0). REGON-14 repeats that on its first 9 digits and adds a second check over all 13 (weights 2,4,8,5,0,9,7,3,6,1,2,4,8).
Normalised form
610188201
A one-character slip
610188202 is refused
Regex (normalised form)
^([0-9]{9}|[0-9]{14})$
API
GET /companies/search?country=PL®on=610188201
VAT number
The register data holds no VAT number for this identifier.
Good to know
REGON-9 identifies the entity, REGON-14 a local unit of it.
const re = /^([0-9]{9}|[0-9]{14})$/
re.test('610188201') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
Weights 7,9,10,5,8,4,2 over the 7 digits; check = 11 minus the sum mod 11 (0 when the remainder is 0). A remainder of 1 has no check digit, so such a number is never issued.
Normalised form
0112038-9
Also accepted as input
01120389112038-9
A one-character slip
0112038-8 is refused
Regex (normalised form)
^[0-9]{7}-[0-9]$
API
GET /companies/search?country=FI&company_number=0112038-9
VAT number
FI + the 8 digits without the hyphen — published or confirmed by the register
Good to know
A 6-digit body (a pre-2001 trade-register number) is read with its leading zero restored.
const re = /^[0-9]{7}-[0-9]$/
re.test('0112038-9') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
Weights 8,7,6,5,4,3,2 over the first 7 digits; check = 11 minus the sum mod 11 (10 reads as 0, 11 as 1). Advisory: a mismatch is a warning.
Normalised form
35763469
Also accepted as input
151653
A one-character slip
35763460 is accepted with a warning
Regex (normalised form)
^[0-9]{8}$
API
GET /companies/search?country=SK&company_number=35763469
VAT number
The register data holds no VAT number for this identifier.
Good to know
About one percent of the IČO of non-commercial legal forms fail the check. Six and seven digit numbers are read with leading zeros restored. Commercial legal persons only.
const re = /^[0-9]{8}$/
re.test('35763469') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
CHE plus 9 digits. Weights 5,4,3,2,7,6,5,4 over the first 8 digits; check = 11 minus the sum mod 11 (11 reads as 0). A result of 10 means no valid UID.
Normalised form
CHE103867266
Also accepted as input
CHE-103.867.266 MWSTCHE103867266
A one-character slip
CHE-103.867.267 is refused
Regex (normalised form)
^CHE[0-9]{9}$
API
GET /companies/search?country=CH&company_number=CHE-103.867.266
VAT number
the UID + MWST, TVA or IVA
Good to know
Dots, hyphens and a MWST, TVA or IVA suffix are accepted. Sole proprietorships are never served.
const re = /^CHE[0-9]{9}$/
re.test('CHE103867266') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
2 to 10 digits without a leading zero. The body is padded to 9 digits and weighted 7,5,3,2,1,7,5,3,2; check = sum x 10 mod 11 (10 reads as 0). Advisory: a mismatch is a warning.
Normalised form
5022670
Also accepted as input
RO5022670
A one-character slip
5022671 is accepted with a warning
Regex (normalised form)
^[1-9][0-9]{1,9}$
API
GET /companies/search?country=RO&company_number=5022670
VAT number
RO + CUI — built from the identifier by rule; the registration is not confirmed
Good to know
A few genuine CUI fail the check. An RO, CUI or CIF prefix is accepted; a 13-digit number is a personal code and is refused.
const re = /^[1-9][0-9]{1,9}$/
re.test('5022670') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
State + register number, CIK-, LEI-SS-X{1,40} | CIK-N{10} | LEI-X{20}
None
NY-4424185
company_numbercountry=US
How it is checked, regex, code and links
Check
No check digit anywhere: the state code and register number, CIK- and up to 10 digits (an SEC filer), or LEI- and 20 characters. The shape is the only test.
GET /companies/search?country=US&company_number=NY-4424185
VAT number
The register data holds no VAT number for this identifier.
Good to know
Register numbers repeat across states, so the state prefix is part of the identifier. The API serves a defined set of state registers plus SEC filers and LEI holders, not every US company.
const re = /^([A-Z]{2}-[0-9A-Za-z][0-9A-Za-z./-]{0,39}|CIK-[0-9]{10}|LEI-[0-9A-Z]{20})$/
re.test('NY-4424185') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
2 to 8 digits, written NNNNNN-N. Weights 7,6,5,4,3,2 over the six digits before the last; check = 11 minus the sum mod 11 (10 reads as 0, 11 as 1). Inferred from the register, not documented, so advisory.
Normalised form
426160-7
Also accepted as input
4261607#4261607
A one-character slip
426160-8 is accepted with a warning
Regex (normalised form)
^[0-9]{1,7}-[0-9]$
API
GET /companies/search?country=CA&company_number=426160-7
VAT number
The register data holds no VAT number for this identifier.
Good to know
Nine digits is a Business Number (searched with business_number), not a corporation number. Federal corporations only; provincial corporations are never served.
const re = /^[0-9]{1,7}-[0-9]$/
re.test('426160-7') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
13 digits; the first is the check digit over the 12-digit base: 9 minus (the sum of the base digits, weighted 1 and 2 alternately from the right, mod 9).
Normalised form
1180301018771
Also accepted as input
T1180301018771
A one-character slip
1180301018772 is refused
Regex (normalised form)
^[1-9][0-9]{12}$
API
GET /companies/search?country=JP&company_number=1180301018771
VAT number
The register data holds no VAT number for this identifier.
Good to know
A T in front and full-width digits are read; the bare 12-digit base is refused. Companies only; government bodies and associations are never served.
const re = /^[1-9][0-9]{12}$/
re.test('1180301018771') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
9 digits starting 51, 52 or 56. The Israeli ID Luhn variant: weights 1,2 alternately, digit sums, total divisible by 10. Advisory: a mismatch is a warning.
Normalised form
520013954
Also accepted as input
ח.פ. 520013954
A one-character slip
520013955 is accepted with a warning
Regex (normalised form)
^5[126][0-9]{7}$
API
GET /companies/search?country=IL&company_number=520013954
VAT number
The register data holds no VAT number for this identifier.
Good to know
A personal ID passes the same arithmetic and is refused on the prefix. Partnerships, cooperatives and associations are other registers and never served.
const re = /^5[126][0-9]{7}$/
re.test('520013954') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
14 characters: 8 for the root, 4 for the order, 2 check digits. First digit: weights 5,4,3,2,9,8,7,6,5,4,3,2 over 12 characters; second: weights 6,5,4,3,2,9,8,7,6,5,4,3,2 over 13; each is 0 when the sum mod 11 is below 2, else 11 minus it.
Normalised form
33000167000101
Also accepted as input
33000167000101
A one-character slip
33.000.167/0001-02 is refused
Regex (normalised form)
^[0-9A-Z]{12}[0-9]{2}$
API
GET /companies/search?country=BR&company_number=33.000.167/0001-01
VAT number
The register data holds no VAT number for this identifier.
Good to know
Since July 2026 root and order may carry capital letters; the check digits stay digits. An 11-digit CPF (a person) is refused. One record per CNPJ root: the 8-digit root finds the head office.
const re = /^[0-9A-Z]{12}[0-9]{2}$/
re.test('33000167000101') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
ARArgentinaARCA (CUIT), Registro Nacional de Sociedades
CUITN{2}-N{8}-C
Enforced
30-70308853-4
company_numbercountry=AR
How it is checked, regex, code and links
Check
11 digits, written NN-NNNNNNNN-N. Weights 5,4,3,2,7,6,5,4,3,2 over the first ten digits; check = 11 minus the sum mod 11, where 11 reads as 0 and 10 means the body gives no valid number (a company then holds prefix 33 instead of 30).
Normalised form
30-70308853-4
Also accepted as input
30703088534CUIT 30-70308853-4
A one-character slip
30-70308853-5 is refused
Regex (normalised form)
^(30|33|34)-[0-9]{8}-[0-9]$
API
GET /companies/search?country=AR&company_number=30-70308853-4
VAT number
The register data holds no VAT number for this identifier.
Good to know
The CUIT is the tax number ARCA gives a legal entity; the Registro Nacional de Sociedades is built on it. A company holds prefix 30 or 33, a foreign legal entity 34; prefixes 20, 23, 24 and 27 are the CUIT and CUIL of people and are refused. A leading CUIT, CUIL or CDI word is dropped. Commercial companies only: associations, foundations, cooperatives and sociedades de hecho are never served.
const re = /^(30|33|34)-[0-9]{8}-[0-9]$/
re.test('30-70308853-4') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
UAUkraineUnified State Register (EDR), Ministry of Justice of Ukraine
EDRPOU codeN{8}
Advisory
21673832
company_numbercountry=UA
How it is checked, regex, code and links
Check
8 digits, leading zeros kept. The last digit is a mod-11 check digit, but it is only advisory here because a few genuine codes of the register fail it.
Normalised form
21673832
Also accepted as input
UA21673832
A one-character slip
21673833 is accepted with a warning
Regex (normalised form)
^[0-9]{8}$
API
GET /companies/search?country=UA&company_number=21673832
VAT number
The register data holds no VAT number for this identifier.
Good to know
The EDRPOU code identifies a legal entity in the Unified State Register of the Ministry of Justice of Ukraine. A shorter number is read with its zeros restored, and a UA prefix, spaces and hyphens are tolerated. A 10-digit number is a person’s tax number and is refused. Commercial legal persons only; individual entrepreneurs (FOP) are never served.
const re = /^[0-9]{8}$/
re.test('21673832') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
8 digits, the leading zero kept; a shorter number is read with its leading zeros restored. Weights 9,4,5,6,7,8,9 over the first 7 digits, s = sum mod 11; the check digit is s, with 10 read as 0. The rule is fitted to the numbers of the register itself, not to a published standard, and a mismatch is refused.
Normalised form
17204106
Also accepted as input
17-204-106
A one-character slip
17204107 is refused
Regex (normalised form)
^[0-9]{8}$
API
GET /companies/search?country=RS&company_number=17204106
VAT number
The register data holds no VAT number for this identifier.
Good to know
A 13-digit number is a personal number (JMBG) and is refused. The tax number (PIB) is a separate number that the register open data does not carry and that cannot be derived from the matični broj. Companies only (d.o.o., a.d., o.d., k.d.); entrepreneurs, cooperatives, public enterprises and associations are never served.
const re = /^[0-9]{8}$/
re.test('17204106') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
ECEcuadorServicio de Rentas Internas (SRI), Superintendencia de Compañías (SCVS)
RUCN{9} C N{3}
Advisory
0990023549001
company_numbercountry=EC
How it is checked, regex, code and links
Check
13 digits: province (01 to 24, 30 abroad), a third digit 9 (private company) or 6 (public), a serial, the check digit and 001, the company itself (002 and up are its establishments). Module 11: weights 4,3,2,7,6,5,4,3,2 over the first nine digits, check = 11 minus the sum mod 11 (11 reads 0), the tenth digit; a public RUC (third digit 6) uses weights 3,2,7,6,5,4,3,2 over eight digits and the ninth digit. Advisory: a mismatch is a warning, not a rejection.
Normalised form
0990023549001
Also accepted as input
990023549001
A one-character slip
0990023548001 is accepted with a warning
Regex (normalised form)
^(0[1-9]|1[0-9]|2[0-4]|30)[69][0-9]{7}001$
API
GET /companies/search?country=EC&company_number=0990023549001
VAT number
The register data holds no VAT number for this identifier.
Good to know
A third digit 0 to 5 is a natural person's RUC (the cédula plus 001) and is refused, and so is a RUC ending 002 or higher, which is an establishment. A 12-digit value is read with the zero of the province restored (a spreadsheet drops it). The check digit is only a guide: the numbers of the Sociedades por Acciones Simplificadas are plain serials that often fail it. The RUC is the tax number: there is no separate VAT number.
const re = /^(0[1-9]|1[0-9]|2[0-4]|30)[69][0-9]{7}001$/
re.test('0990023549001') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
CLChileRegistro de Empresas y Sociedades (RES), Ministerio de Economía, Fomento y Turismo; RUT of the Servicio de Impuestos Internos (SII)
RUTN{8}-C
Enforced
76286049-K
company_numbercountry=CL
How it is checked, regex, code and links
Check
Eight digits from 50,000,000 (the block of legal persons), a dash and a check digit (0 to 9 or K), written 76.286.049-K. Weights 2,3,4,5,6,7 repeating from the right over the eight digits; check = 11 minus the sum mod 11, where 11 reads 0 and 10 reads K. The check is strict.
Normalised form
76286049-K
Also accepted as input
76.286.049-K76286049KRUT 76286049-k
A one-character slip
76286049-0 is refused
Regex (normalised form)
^[5-9][0-9]{7}-[0-9K]$
API
GET /companies/search?country=CL&company_number=76286049-K
VAT number
The register data holds no VAT number for this identifier.
Good to know
The RUT is the tax number the Servicio de Impuestos Internos (SII) gives a Chilean legal entity, and there is no separate VAT number. The register serves only the companies registered under the simplified regime of Ley 20.659 ("Empresa en un Día") since 2013, so a valid RUT of an older company, or of one formed before a notary, finds nothing. Dots, the word RUT and a lower-case k are accepted. A RUT below 50,000,000 belongs to a natural person and is refused.
const re = /^[5-9][0-9]{7}-[0-9K]$/
re.test('76286049-K') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
9 digits starting 8 or 9, then the verification digit (DV) after a hyphen. Weights 3,7,13,17,19,23,29,37,41 from the right; DV = the remainder of the sum mod 11 when below 2, else 11 minus it.
Normalised form
900843898-9
Also accepted as input
900843898NIT 900843898-9
A one-character slip
900843898-8 is refused
Regex (normalised form)
^[89][0-9]{8}-[0-9]$
API
GET /companies/search?country=CO&company_number=900843898-9
VAT number
The register data holds no VAT number for this identifier.
Good to know
The DV is computed when left out and must match when typed. A number starting 1 to 7 is a personal cédula and is refused.
const re = /^[89][0-9]{8}-[0-9]$/
re.test('900843898-9') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
Local company: weights 10,8,6,4,9,7,5,3,1 over the 9 digits, sum mod 11 picks the check letter from Z K C M D N E R G W H. LLPs and foreign branches (T, S or R, year, two letters, serial) use weights 4,3,5,3,10,2,2,5,7 and the letters A B C D E F G H J K L.
Normalised form
196800306E
Also accepted as input
T08LL1267L
A one-character slip
196800306F is refused
Regex (normalised form)
^([0-9]{9}|[TSR][0-9]{2}[A-Z]{2}[0-9]{4})[A-Z]$
API
GET /companies/search?country=SG&company_number=196800306E
VAT number
The register data holds no VAT number for this identifier.
Good to know
An 8-digit business UEN (sole proprietorship, partnership) is refused. Local companies, LLPs and registered foreign company branches only.
const re = /^([0-9]{9}|[TSR][0-9]{2}[A-Z]{2}[0-9]{4})[A-Z]$/
re.test('196800306E') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
TWTaiwanGCIS (Ministry of Economic Affairs), Ministry of Finance
Unified business number (統一編號)N{7} C
Advisory
22099131
company_numbercountry=TW
How it is checked, regex, code and links
Check
8 digits. Weights 1,2,1,2,1,2,4,1, each product taken as tens digit plus units digit; the total should divide by 5 (10 before the 2023-24 change; a 7th digit of 7 may count as 0 or 1). Advisory: a mismatch is a warning.
Normalised form
22099131
Also accepted as input
TW22099131
A one-character slip
22099132 is accepted with a warning
Regex (normalised form)
^[0-9]{8}$
API
GET /companies/search?country=TW&company_number=22099131
VAT number
the 8-digit UBN, where the company is in the Ministry of Finance tax file — published or confirmed by the register
Good to know
A few old dissolved numbers fail both rules. Seven digits are padded with a zero. Companies and Taiwan branches of foreign companies only; names are in Chinese.
const re = /^[0-9]{8}$/
re.test('22099131') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
CZCzech RepublicVeřejný rejstřík (Ministry of Justice), RES
IČON{7} C
Advisory
45274649
company_numbercountry=CZ
How it is checked, regex, code and links
Check
8 digits, shorter numbers read with leading zeros. Weights 8,7,6,5,4,3,2 over the first 7 digits, r = sum mod 11; check = 1 when r is 0, 0 when r is 1, else 11 minus r. Advisory: a mismatch is a warning.
Normalised form
45274649
Also accepted as input
CZ45274649
A one-character slip
45274640 is accepted with a warning
Regex (normalised form)
^[0-9]{8}$
API
GET /companies/search?country=CZ&company_number=45274649
VAT number
The register data holds no VAT number for this identifier.
Good to know
A few live companies fail the check. A 9 or 10 digit number is a birth number (a natural person) and is refused. Sole traders are never served.
const re = /^[0-9]{8}$/
re.test('45274649') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
ISO 17442, ISO 7064 MOD 97-10: 18 letters or digits and 2 check digits; each letter becomes 10 to 35 and the whole string, read as one integer, leaves 1 modulo 97.
Normalised form
W38RGI023J3WT1HWRP32
Also accepted as input
w38r-gi02-3j3w-t1hw-rp32
A one-character slip
W38RGI023J3WT1HWRP33 is refused
Regex (normalised form)
^[0-9A-Z]{18}[0-9]{2}$
API
GET /companies/search?country=DE&company_number=W38RGI023J3WT1HWRP32 · also taken by lei=
VAT number
The register data holds no VAT number for this identifier.
Good to know
German company records are LEI-registered entities (GLEIF) and companies from the energy market register, not an extract of the Handelsregister. A company of the energy market register is numbered by its commercial-register entry, for example HRB12653/FRANKFURT-AM-MAIN (searched with register_number), declared by the operators and not checked against the register.
const re = /^[0-9A-Z]{18}[0-9]{2}$/
re.test('W38RGI023J3WT1HWRP32') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
NLNetherlandsGLEIF (LEI-registered entities); the KVK number of the Kamer van Koophandel
KVK numberN{8}
None
17085815
company_numbercountry=NL
How it is checked, regex, code and links
Check
No check digit is published: exactly 8 digits, a leading zero is part of the number (04040577), 00000000 is no number. The shape is the only test.
Normalised form
17085815
Also accepted as input
04040577
Regex (normalised form)
^[0-9]{8}$
API
GET /companies/search?country=NL&company_number=17085815
VAT number
The register data holds no VAT number for this identifier.
Good to know
The KVK number is the number of the Dutch Chamber of Commerce. Prometiam serves only Dutch legal entities that hold an LEI and whose KVK number GLEIF records (BV, NV, SE, cooperatives, OWM, CV and VOF), not every Dutch company and not an extract of the Dutch commercial register: a well-formed KVK number of a sole proprietorship, a foundation or an association finds nothing. A 9-digit number is an RSIN and is refused. The Dutch VAT number (btw-nummer) is a separate number and cannot be derived from the KVK number.
const re = /^[0-9]{8}$/
re.test('17085815') // true
The regex tests the shape of the normalised form. It does not compute the check digit: run the identifier through the validator for that.
A valid shape and check digit prove a number is well-formed, not that a company holds it. Only a lookup in the register answers that.
UK, Irish, Cypriot and US identifiers have no check digit: for those the shape is the only test.
For the rows marked Advisory, genuine numbers exist that fail the check, so a mismatch is a warning and the number is still accepted.
These are the formats the Prometiam API accepts. Which entities it serves in each country has its own limits (sole traders and natural persons are left out in many registers); they are in each country’s guide.
VAT numbers are separate: where one can be built from the identifier the row says how, and whether the registration is confirmed. Check a VAT number at the VAT number checker.
In your own code
Each row opens a regex you can paste into JavaScript, Python or PostgreSQL. Validators for many of these countries (not all of them) are also published as the company-id-validators package, on PyPI and on npm.
Which company identifiers have a check digit? Most of them: the Check digit column says Enforced, Advisory or None for each row. The United Kingdom, Ireland, Cyprus and the United States publish none, so only the shape can be tested. The rows marked Advisory have a check that genuine numbers can fail, so a mismatch is only a warning.
Does a valid check digit mean the company exists? No. It proves the number is internally consistent, not that it was ever issued. To know whether the company exists, look it up in the register or through an API.
How do I normalise an identifier before storing it? Strip spaces, dots, hyphens and slashes, upper-case the letters and restore dropped leading zeros where the register uses them. The Normalised form column shows what each validator returns; the API accepts the written forms too.
Can I use the table in my own project? Yes. The JSON and CSV downloads carry the same rows. They are free to cite with attribution to Prometiam and a link to this page.
Validate a number in your browser, or look the company up.