Référence

Formats des identifiants d’entreprise par pays

À quoi ressemble le numéro d’une entreprise dans chaque pays, comment se calcule son chiffre de contrôle, comment le normaliser, un exemple détaillé et le paramètre de l’API qui le prend. Chaque ligne est générée à partir des validateurs du validateur gratuit d’identifiants : une valeur affichée ici est une valeur que le validateur accepte.

Mis à jour le 24 octobre 2026

Télécharger le tableau

Les mêmes lignes que cette page, en anglais. Libre de citation avec mention de Prometiam et un lien vers cette page.

Chiffre de contrôle

Notation de la forme: N chiffre · L lettre · X chiffre ou lettre · C chiffre ou caractère de contrôle · {n} répété n fois

39 identifiants affichés sur 39

Pays et registreIdentifiant et formeChiffre de contrôleExempleParamètre de l’API
ES EspagneRegistro Mercantil (BORME)NIF / CIFL N{7} CImposéA28015865company_numbercountry=ES
Comment il est vérifié, regex, code et liens
Contrôle
Les positions impaires des 7 chiffres sont doublées (un produit supérieur à 9 perd 9) et les autres s’additionnent ; contrôle = (10 - somme mod 10) mod 10, écrit comme ce chiffre ou comme sa lettre (J A B C D E F G H I).
Forme normalisée
A28015865
Aussi accepté en saisie
A-28015865
Une faute d’un caractère
A28015866 est refusé
Regex (forme normalisée)
^[ABCDEFGHJNPQRSUVW][0-9]{7}[0-9A-J]$
API
GET /companies/search?country=ES&company_number=A28015865 · pris aussi par nif=
Numéro de TVA
ES + NIF — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
La première lettre est la forme juridique (A société anonyme, B société à responsabilité limitée). Un DNI ou NIE personnel a un autre contrôle (une lettre mod 23) et n’identifie pas une entreprise : l’API le refuse.
const re = /^[ABCDEFGHJNPQRSUVW][0-9]{7}[0-9A-J]$/
re.test('A28015865')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

FR FranceINSEE (Sirene), RNESIRENN{8} CImposé552032534sirencountry=FR
Comment il est vérifié, regex, code et liens
Contrôle
Luhn (mod 10) sur les 9 chiffres.
Forme normalisée
552032534
Aussi accepté en saisie
552 032 534
Une faute d’un caractère
552032535 est refusé
Regex (forme normalisée)
^[0-9]{9}$
API
GET /companies/search?country=FR&siren=552032534
Numéro de TVA
FR + clé à 2 chiffres + SIREN — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
Le SIREN identifie l’unité légale ; le SIRET ajoute un numéro d’établissement de 5 chiffres. Les entreprises non diffusibles ne se trouvent que par SIREN ou SIRET, jamais par nom.
const re = /^[0-9]{9}$/
re.test('552032534')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

FR FranceINSEE (Sirene), RNESIRETN{9} N{4} CImposé55203253400646siretcountry=FR
Comment il est vérifié, regex, code et liens
Contrôle
Luhn (mod 10) sur les 14 chiffres. La Poste (SIREN 356000000) est l’exception documentée : la somme de ses chiffres est un multiple de 5.
Forme normalisée
55203253400646
Aussi accepté en saisie
552 032 534 00646
Une faute d’un caractère
55203253400647 est refusé
Regex (forme normalisée)
^[0-9]{14}$
API
GET /companies/search?country=FR&siret=55203253400646
Numéro de TVA
FR + clé à 2 chiffres + SIREN — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
SIREN (9 chiffres) plus le NIC à 5 chiffres d’un établissement. Conservez le SIREN comme référence de l’entreprise.
const re = /^[0-9]{14}$/
re.test('55203253400646')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

GB Royaume-UniCompanies HouseNuméro de sociétéN{8} | L{2} N{6}Aucun00445790company_numbercountry=GB
Comment il est vérifié, regex, code et liens
Contrôle
Pas de chiffre de contrôle : 8 chiffres, ou 2 lettres et 6 chiffres. La forme est le seul test.
Forme normalisée
00445790
Aussi accepté en saisie
SC095237
Regex (forme normalisée)
^([0-9]{8}|[A-Z]{2}[0-9]{6})$
API
GET /companies/search?country=GB&company_number=00445790
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le préfixe indique le type : SC Écosse, NI Irlande du Nord, OC, SO et NC sociétés à responsabilité limitée (LLP), FC sociétés étrangères. Un numéro bien formé ne prouve pas que l’entreprise existe.
const re = /^([0-9]{8}|[A-Z]{2}[0-9]{6})$/
re.test('00445790')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

IE IrlandeCRONuméro CRON{4,7}Aucun100416company_numbercountry=IE
Comment il est vérifié, regex, code et liens
Contrôle
Pas de chiffre de contrôle : un entier séquentiel (4 à 7 chiffres acceptés). La forme est le seul test.
Forme normalisée
100416
Regex (forme normalisée)
^[0-9]{4,7}$
API
GET /companies/search?country=IE&company_number=100416
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Pas de préfixe de lettres ni de chiffre de contrôle. Un numéro bien formé ne prouve pas que l’entreprise existe.
const re = /^[0-9]{4,7}$/
re.test('100416')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

PL PologneKrajowa Administracja Skarbowa (KAS)NIPN{9} CImposé7740001454nipcountry=PL
Comment il est vérifié, regex, code et liens
Contrôle
Poids 6,5,7,2,3,4,5,6,7 sur les 9 premiers chiffres ; la somme mod 11 est le chiffre de contrôle. Un reste de 10 n’est jamais attribué.
Forme normalisée
7740001454
Aussi accepté en saisie
774-000-14-54
Une faute d’un caractère
7740001455 est refusé
Regex (forme normalisée)
^[0-9]{10}$
API
GET /companies/search?country=PL&nip=7740001454
Numéro de TVA
PL + NIP — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
Le NIP est le numéro fiscal. Le numéro de registre KRS (10 chiffres, complété de zéros, passé dans company_number) n’a pas de chiffre de contrôle et n’est pas validé ici.
const re = /^[0-9]{10}$/
re.test('7740001454')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

PL PologneGUS (REGON)REGONN{8} C | N{13} CImposé610188201regoncountry=PL
Comment il est vérifié, regex, code et liens
Contrôle
REGON-9 : poids 8,9,2,3,4,5,6,7, somme mod 11 (10 vaut 0). Le REGON-14 reprend ce calcul sur ses 9 premiers chiffres et ajoute un second contrôle sur les 13 (poids 2,4,8,5,0,9,7,3,6,1,2,4,8).
Forme normalisée
610188201
Une faute d’un caractère
610188202 est refusé
Regex (forme normalisée)
^([0-9]{9}|[0-9]{14})$
API
GET /companies/search?country=PL&regon=610188201
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le REGON-9 identifie l’entité, le REGON-14 une unité locale de celle-ci.
const re = /^([0-9]{9}|[0-9]{14})$/
re.test('610188201')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

NO NorvègeBrønnøysundregistreneOrganisasjonsnummerN{8} CImposé923609016company_numbercountry=NO
Comment il est vérifié, regex, code et liens
Contrôle
Poids 3,2,7,6,5,4,3,2 sur les 8 premiers chiffres ; contrôle = 11 moins la somme mod 11 (0 si le reste est 0). Un résultat de 10 n’est jamais attribué.
Forme normalisée
923609016
Aussi accepté en saisie
923 609 016
Une faute d’un caractère
923609017 est refusé
Regex (forme normalisée)
^[0-9]{9}$
API
GET /companies/search?country=NO&company_number=923609016
Numéro de TVA
NO + numéro + MVA — publié ou confirmé par le registre
Bon à savoir
Les entreprises individuelles (ENK) sont incluses telles que le registre les publie.
const re = /^[0-9]{9}$/
re.test('923609016')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

FI FinlandePRH / YTJY-tunnusN{7}-CImposé0112038-9company_numbercountry=FI
Comment il est vérifié, regex, code et liens
Contrôle
Poids 7,9,10,5,8,4,2 sur les 7 chiffres ; contrôle = 11 moins la somme mod 11 (0 si le reste est 0). Un reste de 1 n’a pas de chiffre de contrôle : ce numéro n’est jamais attribué.
Forme normalisée
0112038-9
Aussi accepté en saisie
01120389112038-9
Une faute d’un caractère
0112038-8 est refusé
Regex (forme normalisée)
^[0-9]{7}-[0-9]$
API
GET /companies/search?country=FI&company_number=0112038-9
Numéro de TVA
FI + les 8 chiffres sans le tiret — publié ou confirmé par le registre
Bon à savoir
Un corps de 6 chiffres (numéro du registre du commerce d’avant 2001) est lu avec son zéro initial rétabli.
const re = /^[0-9]{7}-[0-9]$/
re.test('0112038-9')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

SE SuèdeBolagsverketOrganisationsnummerN{6}-N{3} CImposé556012-5790company_numbercountry=SE
Comment il est vérifié, regex, code et liens
Contrôle
Luhn (mod 10) sur les 10 chiffres, et le troisième chiffre doit valoir 2 ou plus.
Forme normalisée
556012-5790
Aussi accepté en saisie
5560125790
Une faute d’un caractère
556012-5791 est refusé
Regex (forme normalisée)
^[0-9]{6}-[0-9]{4}$
API
GET /companies/search?country=SE&company_number=556012-5790
Numéro de TVA
SE + 10 chiffres + 01 — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
Un numéro d’identité personnel (personnummer) a un troisième chiffre 0 ou 1 et est refusé. Les entrepreneurs individuels ne sont jamais servis.
const re = /^[0-9]{6}-[0-9]{4}$/
re.test('556012-5790')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

HR CroatieSudski registarMBSN{8} CIndicatif080000604company_numbercountry=HR
Comment il est vérifié, regex, code et liens
Contrôle
ISO 7064 MOD 11,10 sur les 8 premiers chiffres. Indicatif : un écart est un avertissement, pas un rejet.
Forme normalisée
080000604
Aussi accepté en saisie
80000604
Une faute d’un caractère
080000605 est accepté avec un avertissement
Regex (forme normalisée)
^[0-9]{9}$
API
GET /companies/search?country=HR&company_number=080000604
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le registre du tribunal documente lui-même quelques anciens numéros au chiffre de contrôle mal calculé. Un zéro initial perdu est rétabli. Ce n’est pas l’OIB.
const re = /^[0-9]{9}$/
re.test('080000604')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

HR CroatieOIB (Porezna uprava)OIBN{10} CImposé27759560625oibcountry=HR
Comment il est vérifié, regex, code et liens
Contrôle
ISO 7064 MOD 11,10 sur les 10 premiers chiffres.
Forme normalisée
27759560625
Une faute d’un caractère
27759560626 est refusé
Regex (forme normalisée)
^[0-9]{11}$
API
GET /companies/search?country=HR&oib=27759560625
Numéro de TVA
HR + OIB — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
Attribué aux entreprises comme aux particuliers : un OIB valide ne dit pas lequel. Neuf chiffres est la longueur d’un MBS, un autre numéro.
const re = /^[0-9]{11}$/
re.test('27759560625')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

BE BelgiqueKBO / BCENuméro d’entrepriseN{8} C{2}Imposé0417.497.106company_numbercountry=BE
Comment il est vérifié, regex, code et liens
Contrôle
10 chiffres commençant par 0 ou 1 ; les deux derniers valent 97 moins les huit premiers chiffres mod 97.
Forme normalisée
0417.497.106
Aussi accepté en saisie
0417497106417497106
Une faute d’un caractère
0417.497.107 est refusé
Regex (forme normalisée)
^[01][0-9]{3}\.[0-9]{3}\.[0-9]{3}$
API
GET /companies/search?country=BE&company_number=0417.497.106
Numéro de TVA
BE + les 10 chiffres — publié ou confirmé par le registre
Bon à savoir
S’écrit 0NNN.NNN.NNN ; points et espaces sont facultatifs et un zéro initial perdu est rétabli. Les entreprises de personnes physiques ne sont jamais servies.
const re = /^[01][0-9]{3}\.[0-9]{3}\.[0-9]{3}$/
re.test('0417.497.106')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

DK DanemarkCVR (Erhvervsstyrelsen)Numéro CVRN{8}Indicatif24256790company_numbercountry=DK
Comment il est vérifié, regex, code et liens
Contrôle
Poids 2,7,6,5,4,3,2,1 sur les 8 chiffres ; la somme devrait être divisible par 11. Indicatif : un écart est un avertissement.
Forme normalisée
24256790
Aussi accepté en saisie
24 25 67 90
Une faute d’un caractère
24256791 est accepté avec un avertissement
Regex (forme normalisée)
^[0-9]{8}$
API
GET /companies/search?country=DK&company_number=24256790
Numéro de TVA
DK + CVR — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
Certains CVR authentiques échouent au contrôle mod 11. Les entreprises individuelles et les successions ne sont jamais servies.
const re = /^[0-9]{8}$/
re.test('24256790')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

EE EstonieÄriregister (RIK)Code du registre (registrikood)N{7} CImposé10060701company_numbercountry=EE
Comment il est vérifié, regex, code et liens
Contrôle
Premier chiffre 1, 7, 8 ou 9. Poids de 1 à 7 sur les 7 premiers chiffres, somme mod 11 ; si le résultat est 10 on prend les poids de 3 à 9, et un second 10 vaut 0.
Forme normalisée
10060701
Aussi accepté en saisie
1006 0701
Une faute d’un caractère
10060702 est refusé
Regex (forme normalisée)
^[1789][0-9]{7}$
API
GET /companies/search?country=EE&company_number=10060701
Numéro de TVA
EE + 9 chiffres (KMKR, un numéro distinct) — publié ou confirmé par le registre
Bon à savoir
Le numéro de TVA (KMKR) est un autre numéro et ne s’en déduit pas. Les entrepreneurs individuels (FIE) ne sont jamais servis.
const re = /^[1789][0-9]{7}$/
re.test('10060701')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

SK SlovaquieRPOIČON{7} CIndicatif35763469company_numbercountry=SK
Comment il est vérifié, regex, code et liens
Contrôle
Poids 8,7,6,5,4,3,2 sur les 7 premiers chiffres ; contrôle = 11 moins la somme mod 11 (10 vaut 0, 11 vaut 1). Indicatif : un écart est un avertissement.
Forme normalisée
35763469
Aussi accepté en saisie
151653
Une faute d’un caractère
35763460 est accepté avec un avertissement
Regex (forme normalisée)
^[0-9]{8}$
API
GET /companies/search?country=SK&company_number=35763469
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Environ un pour cent des IČO de formes non commerciales échouent au contrôle. Les numéros de six et sept chiffres sont lus avec leurs zéros initiaux rétablis. Personnes morales commerciales seulement.
const re = /^[0-9]{8}$/
re.test('35763469')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

CH SuisseZefix, UID-Register (BFS)UIDCHE N{8} CImposéCHE-103.867.266company_numbercountry=CH
Comment il est vérifié, regex, code et liens
Contrôle
CHE plus 9 chiffres. Poids 5,4,3,2,7,6,5,4 sur les 8 premiers chiffres ; contrôle = 11 moins la somme mod 11 (11 vaut 0). Un résultat de 10 signifie qu’aucun UID n’est valide.
Forme normalisée
CHE103867266
Aussi accepté en saisie
CHE-103.867.266 MWSTCHE103867266
Une faute d’un caractère
CHE-103.867.267 est refusé
Regex (forme normalisée)
^CHE[0-9]{9}$
API
GET /companies/search?country=CH&company_number=CHE-103.867.266
Numéro de TVA
l’UID + MWST, TVA ou IVA
Bon à savoir
Points, tirets et un suffixe MWST, TVA ou IVA sont acceptés. Les entreprises individuelles ne sont jamais servies.
const re = /^CHE[0-9]{9}$/
re.test('CHE103867266')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

LV LettonieUzņēmumu reģistrsNuméro d’immatriculationN{10} CImposé40003032949company_numbercountry=LV
Comment il est vérifié, regex, code et liens
Contrôle
11 chiffres commençant par 4 à 9. Poids 9,1,4,8,3,10,2,5,7,6,1 ; la somme mod 11 doit valoir 3.
Forme normalisée
40003032949
Aussi accepté en saisie
LV40003032949
Une faute d’un caractère
40003032940 est refusé
Regex (forme normalisée)
^[4-9][0-9]{10}$
API
GET /companies/search?country=LV&company_number=40003032949
Numéro de TVA
LV + les 11 chiffres (liste de l’administration fiscale) — publié ou confirmé par le registre
Bon à savoir
Un numéro de 11 chiffres commençant par 0 à 3 est un code personnel et est refusé. Les plus anciens codes, à 9 chiffres, n’ont pas de chiffre de contrôle.
const re = /^[4-9][0-9]{10}$/
re.test('40003032949')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

CY ChypreDRCORNuméro d’immatriculationHE | AE + N{1,9}AucunHE165company_numbercountry=CY
Comment il est vérifié, regex, code et liens
Contrôle
Pas de chiffre de contrôle : HE (société) ou AE (société étrangère) et jusqu’à 9 chiffres sans zéro initial. La forme est le seul test.
Forme normalisée
HE165
Aussi accepté en saisie
165AE3834
Regex (forme normalisée)
^(HE|AE)[1-9][0-9]{0,8}$
API
GET /companies/search?country=CY&company_number=HE165
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Des chiffres seuls signifient HE. Les noms commerciaux et les sociétés de personnes ne sont jamais servis.
const re = /^(HE|AE)[1-9][0-9]{0,8}$/
re.test('HE165')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

RO RoumanieONRCCUI / CIFN{1,9} CIndicatif5022670company_numbercountry=RO
Comment il est vérifié, regex, code et liens
Contrôle
De 2 à 10 chiffres sans zéro initial. Le corps est complété à 9 chiffres et pondéré 7,5,3,2,1,7,5,3,2 ; contrôle = somme x 10 mod 11 (10 vaut 0). Indicatif : un écart est un avertissement.
Forme normalisée
5022670
Aussi accepté en saisie
RO5022670
Une faute d’un caractère
5022671 est accepté avec un avertissement
Regex (forme normalisée)
^[1-9][0-9]{1,9}$
API
GET /companies/search?country=RO&company_number=5022670
Numéro de TVA
RO + CUI — construit à partir de l’identifiant par règle ; l’immatriculation n’est pas confirmée
Bon à savoir
Quelques CUI authentiques échouent au contrôle. Un préfixe RO, CUI ou CIF est accepté ; un numéro de 13 chiffres est un code personnel et est refusé.
const re = /^[1-9][0-9]{1,9}$/
re.test('5022670')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

US États-UnisRegistres d’État, SEC (CIK), GLEIF (LEI)État + numéro de registre, CIK-, LEI-SS-X{1,40} | CIK-N{10} | LEI-X{20}AucunNY-4424185company_numbercountry=US
Comment il est vérifié, regex, code et liens
Contrôle
Aucun chiffre de contrôle : le code d’État et le numéro de registre, CIK- et jusqu’à 10 chiffres (un déclarant de la SEC) ou LEI- et 20 caractères. La forme est le seul test.
Forme normalisée
NY-4424185
Aussi accepté en saisie
ny 4424185CIK-0000320193
Regex (forme normalisée)
^([A-Z]{2}-[0-9A-Za-z][0-9A-Za-z./-]{0,39}|CIK-[0-9]{10}|LEI-[0-9A-Z]{20})$
API
GET /companies/search?country=US&company_number=NY-4424185
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Les numéros de registre se répètent d’un État à l’autre : le préfixe de l’État fait partie de l’identifiant. L’API sert un ensemble défini de registres d’État, les déclarants de la SEC et les titulaires d’un LEI, pas toutes les sociétés américaines.
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

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

LT LituanieJAR (Registrų centras)Code de société (juridinio asmens kodas)N{8} CImposé110053842company_numbercountry=LT
Comment il est vérifié, regex, code et liens
Contrôle
Poids de 1 à 8 sur les 8 premiers chiffres, somme mod 11 ; si le résultat est 10 on prend les poids 3,4,5,6,7,8,9,1, et un second 10 vaut 0.
Forme normalisée
110053842
Une faute d’un caractère
110053843 est refusé
Regex (forme normalisée)
^[0-9]{9}$
API
GET /companies/search?country=LT&company_number=110053842
Numéro de TVA
LT + 9 ou 12 chiffres (liste de l’inspection fiscale) — publié ou confirmé par le registre
Bon à savoir
LT devant est un numéro de TVA, pas le code de l’entreprise, et est refusé. Les entreprises individuelles et les sociétés de personnes ne sont jamais servies.
const re = /^[0-9]{9}$/
re.test('110053842')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

CA CanadaCorporations CanadaNuméro de société fédéraleN{1,6}-CIndicatif426160-7company_numbercountry=CA
Comment il est vérifié, regex, code et liens
Contrôle
De 2 à 8 chiffres, écrit NNNNNN-N. Poids 7,6,5,4,3,2 sur les six chiffres avant le dernier ; contrôle = 11 moins la somme mod 11 (10 vaut 0, 11 vaut 1). Déduit du registre, non documenté, donc indicatif.
Forme normalisée
426160-7
Aussi accepté en saisie
4261607#4261607
Une faute d’un caractère
426160-8 est accepté avec un avertissement
Regex (forme normalisée)
^[0-9]{1,7}-[0-9]$
API
GET /companies/search?country=CA&company_number=426160-7
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Neuf chiffres est un numéro d’entreprise (Business Number, cherché avec business_number), pas un numéro de société. Sociétés fédérales seulement ; les sociétés provinciales ne sont jamais servies.
const re = /^[0-9]{1,7}-[0-9]$/
re.test('426160-7')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

AU AustralieASIC (ACN, ARBN)ACN / ARBNN{8} CImposé004 028 077company_numbercountry=AU
Comment il est vérifié, regex, code et liens
Contrôle
Poids 8,7,6,5,4,3,2,1 sur les 8 premiers chiffres ; contrôle = (10 - somme mod 10) mod 10. Présenté sous la forme 3-3-3 de l’ASIC.
Forme normalisée
004 028 077
Aussi accepté en saisie
004028077ACN 004 028 077
Une faute d’un caractère
004 028 078 est refusé
Regex (forme normalisée)
^[0-9]{3} [0-9]{3} [0-9]{3}$
API
GET /companies/search?country=AU&company_number=004 028 077
Numéro de TVA
l’ABN (11 chiffres), tant qu’il est actif et immatriculé au GST — publié ou confirmé par le registre
Bon à savoir
L’ACN et l’ARBN partagent un même espace de numéros. Un numéro de 11 chiffres est un ABN, un autre numéro. Sociétés privées, publiques et étrangères seulement.
const re = /^[0-9]{3} [0-9]{3} [0-9]{3}$/
re.test('004 028 077')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

AU AustralieAustralian Business RegisterABNN{2} N{9}Imposé49004028077abncountry=AU
Comment il est vérifié, regex, code et liens
Contrôle
11 chiffres. On retire 1 au premier chiffre, puis poids 10,1,3,5,7,9,11,13,15,17,19 ; la somme doit être divisible par 89.
Forme normalisée
49004028077
Aussi accepté en saisie
49 004 028 077ABN 49004028077
Une faute d’un caractère
49004028078 est refusé
Regex (forme normalisée)
^[0-9]{11}$
API
GET /companies/search?country=AU&abn=49004028077
Numéro de TVA
l’ABN lui-même, tant qu’il est actif et immatriculé au GST — publié ou confirmé par le registre
Bon à savoir
L’ABN est le numéro de GST tant que l’entreprise est active et immatriculée au GST. Il se cherche avec abn= et company_number ne le prend jamais.
const re = /^[0-9]{11}$/
re.test('49004028077')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

JP JaponAgence nationale des impôts (NTA)Numéro de personne morale (法人番号)C N{12}Imposé1180301018771company_numbercountry=JP
Comment il est vérifié, regex, code et liens
Contrôle
13 chiffres ; le premier est le chiffre de contrôle de la base de 12 chiffres : 9 moins (la somme des chiffres de la base, pondérés 1 et 2 en alternance depuis la droite, mod 9).
Forme normalisée
1180301018771
Aussi accepté en saisie
T1180301018771
Une faute d’un caractère
1180301018772 est refusé
Regex (forme normalisée)
^[1-9][0-9]{12}$
API
GET /companies/search?country=JP&company_number=1180301018771
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Un T devant et les chiffres pleine largeur sont lus ; la base seule de 12 chiffres est refusée. Entreprises seulement ; organismes publics et associations ne sont jamais servis.
const re = /^[1-9][0-9]{12}$/
re.test('1180301018771')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

IL IsraëlAutorité des sociétésNuméro de société (ח.פ.)N{8} CIndicatif520013954company_numbercountry=IL
Comment il est vérifié, regex, code et liens
Contrôle
9 chiffres commençant par 51, 52 ou 56. La variante Luhn de la pièce d’identité israélienne : poids 1,2 en alternance, sommes de chiffres, total divisible par 10. Indicatif : un écart est un avertissement.
Forme normalisée
520013954
Aussi accepté en saisie
ח.פ. 520013954
Une faute d’un caractère
520013955 est accepté avec un avertissement
Regex (forme normalisée)
^5[126][0-9]{7}$
API
GET /companies/search?country=IL&company_number=520013954
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Une pièce d’identité personnelle passe la même arithmétique et est refusée sur le préfixe. Sociétés de personnes, coopératives et associations relèvent d’autres registres et ne sont jamais servies.
const re = /^5[126][0-9]{7}$/
re.test('520013954')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

BR BrésilReceita Federal (CNPJ)CNPJX{12} C{2}Imposé33.000.167/0001-01company_numbercountry=BR
Comment il est vérifié, regex, code et liens
Contrôle
14 caractères : 8 de racine, 4 d’ordre, 2 chiffres de contrôle. Premier : poids 5,4,3,2,9,8,7,6,5,4,3,2 sur 12 caractères ; second : poids 6,5,4,3,2,9,8,7,6,5,4,3,2 sur 13 ; chacun vaut 0 si la somme mod 11 est inférieure à 2, sinon 11 moins celle-ci.
Forme normalisée
33000167000101
Aussi accepté en saisie
33000167000101
Une faute d’un caractère
33.000.167/0001-02 est refusé
Regex (forme normalisée)
^[0-9A-Z]{12}[0-9]{2}$
API
GET /companies/search?country=BR&company_number=33.000.167/0001-01
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Depuis juillet 2026 la racine et l’ordre peuvent porter des lettres majuscules ; les chiffres de contrôle restent des chiffres. Un CPF à 11 chiffres (une personne) est refusé. Un enregistrement par racine de CNPJ : la racine à 8 chiffres trouve le siège.
const re = /^[0-9A-Z]{12}[0-9]{2}$/
re.test('33000167000101')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

AR ArgentineARCA (CUIT), Registro Nacional de SociedadesCUITN{2}-N{8}-CImposé30-70308853-4company_numbercountry=AR
Comment il est vérifié, regex, code et liens
Contrôle
11 chiffres, écrits NN-NNNNNNNN-N. Poids 5,4,3,2,7,6,5,4,3,2 sur les dix premiers chiffres ; contrôle = 11 moins la somme mod 11, où 11 vaut 0 et 10 signifie que le corps ne donne aucun numéro valide (la société reçoit alors le préfixe 33 au lieu de 30).
Forme normalisée
30-70308853-4
Aussi accepté en saisie
30703088534CUIT 30-70308853-4
Une faute d’un caractère
30-70308853-5 est refusé
Regex (forme normalisée)
^(30|33|34)-[0-9]{8}-[0-9]$
API
GET /companies/search?country=AR&company_number=30-70308853-4
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le CUIT est le numéro fiscal que l’ARCA attribue à une personne morale ; le Registro Nacional de Sociedades repose dessus. Une société porte le préfixe 30 ou 33, une personne morale étrangère le 34 ; les préfixes 20, 23, 24 et 27 sont le CUIT et le CUIL de personnes physiques et sont refusés. Un mot CUIT, CUIL ou CDI en tête est ignoré. Sociétés commerciales seulement : associations, fondations, coopératives et sociedades de hecho ne sont jamais servies.
const re = /^(30|33|34)-[0-9]{8}-[0-9]$/
re.test('30-70308853-4')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

UA UkraineUnified State Register (EDR), Ministry of Justice of UkraineEDRPOU codeN{8}Indicatif21673832company_numbercountry=UA
Comment il est vérifié, regex, code et liens
Contrôle
8 chiffres, zéros initiaux conservés. Le dernier chiffre est un contrôle (modulo 11), mais il n’est qu’indicatif ici car quelques codes authentiques du registre ne le respectent pas.
Forme normalisée
21673832
Aussi accepté en saisie
UA21673832
Une faute d’un caractère
21673833 est accepté avec un avertissement
Regex (forme normalisée)
^[0-9]{8}$
API
GET /companies/search?country=UA&company_number=21673832
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le code EDRPOU identifie une personne morale au registre d’État unifié du ministère de la Justice d’Ukraine. Un numéro plus court est lu avec ses zéros rétablis, et un préfixe UA, des espaces et des tirets sont tolérés. Un numéro de 10 chiffres est le numéro fiscal d’une personne et est refusé. Personnes morales commerciales uniquement ; les entrepreneurs individuels (FOP) ne sont jamais servis.
const re = /^[0-9]{8}$/
re.test('21673832')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

RS SerbieAgence des registres des entreprises (APR)Matični broj (MB)N{7} CImposé17204106company_numbercountry=RS
Comment il est vérifié, regex, code et liens
Contrôle
8 chiffres, zéro initial conservé ; un numéro plus court est lu avec ses zéros initiaux rétablis. Poids 9,4,5,6,7,8,9 sur les 7 premiers chiffres, s = somme mod 11 ; le chiffre de contrôle est s, 10 étant lu 0. La règle est ajustée sur les numéros du registre lui-même, non sur une norme publiée, et un écart est refusé.
Forme normalisée
17204106
Aussi accepté en saisie
17-204-106
Une faute d’un caractère
17204107 est refusé
Regex (forme normalisée)
^[0-9]{8}$
API
GET /companies/search?country=RS&company_number=17204106
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Un numéro de 13 chiffres est un numéro personnel (JMBG) et est refusé. Le numéro fiscal (PIB) est un autre numéro que les données ouvertes du registre ne contiennent pas et qui ne peut pas être déduit du matični broj. Sociétés uniquement (d.o.o., a.d., o.d., k.d.) ; entrepreneurs, coopératives, entreprises publiques et associations ne sont jamais servis.
const re = /^[0-9]{8}$/
re.test('17204106')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

EC ÉquateurServicio de Rentas Internas (SRI), Superintendencia de Compañías (SCVS)RUCN{9} C N{3}Indicatif0990023549001company_numbercountry=EC
Comment il est vérifié, regex, code et liens
Contrôle
13 chiffres : province (01 à 24, 30 à l’étranger), un troisième chiffre 9 (société privée) ou 6 (publique), un numéro de série, le chiffre de contrôle et 001, la société elle-même (002 et suivants sont ses établissements). Modulo 11 : poids 4,3,2,7,6,5,4,3,2 sur les neuf premiers chiffres, contrôle = 11 moins la somme mod 11 (11 vaut 0), le dixième chiffre ; un RUC public (troisième chiffre 6) utilise les poids 3,2,7,6,5,4,3,2 sur huit chiffres et le neuvième chiffre. Indicatif : un écart est un avertissement, pas un rejet.
Forme normalisée
0990023549001
Aussi accepté en saisie
990023549001
Une faute d’un caractère
0990023548001 est accepté avec un avertissement
Regex (forme normalisée)
^(0[1-9]|1[0-9]|2[0-4]|30)[69][0-9]{7}001$
API
GET /companies/search?country=EC&company_number=0990023549001
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Un troisième chiffre de 0 à 5 est le RUC d’une personne physique (la cédula plus 001) et est refusé, tout comme un RUC finissant par 002 ou plus, qui est un établissement. Une valeur de 12 chiffres est lue avec le zéro de la province rétabli (un tableur le perd). Le chiffre de contrôle n’est qu’un repère : les numéros des Sociedades por Acciones Simplificadas sont de simples numéros de série qui l’échouent souvent. Le RUC est le numéro fiscal : il n’y a pas de numéro de TVA distinct.
const re = /^(0[1-9]|1[0-9]|2[0-4]|30)[69][0-9]{7}001$/
re.test('0990023549001')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

CL ChiliRegistro de Empresas y Sociedades (RES), Ministerio de Economía, Fomento y Turismo; RUT of the Servicio de Impuestos Internos (SII)RUTN{8}-CImposé76286049-Kcompany_numbercountry=CL
Comment il est vérifié, regex, code et liens
Contrôle
Huit chiffres à partir de 50 000 000 (le bloc des personnes morales), un tiret et un chiffre de contrôle (0 à 9 ou K), écrits 76.286.049-K. Poids 2,3,4,5,6,7 répétés depuis la droite sur les huit chiffres ; contrôle = 11 moins la somme mod 11, où 11 vaut 0 et 10 vaut K. Le contrôle est strict.
Forme normalisée
76286049-K
Aussi accepté en saisie
76.286.049-K76286049KRUT 76286049-k
Une faute d’un caractère
76286049-0 est refusé
Regex (forme normalisée)
^[5-9][0-9]{7}-[0-9K]$
API
GET /companies/search?country=CL&company_number=76286049-K
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le RUT est le numéro fiscal que le Servicio de Impuestos Internos (SII) attribue à une personne morale chilienne, et il n’y a pas de numéro de TVA distinct. Le registre ne sert que les sociétés inscrites sous le régime simplifié de la loi 20.659 (« Empresa en un Día ») depuis 2013 : un RUT valide d’une société plus ancienne, ou constituée devant notaire, ne renvoie rien. Les points, le mot RUT et un k minuscule sont acceptés. Un RUT inférieur à 50 000 000 appartient à une personne physique et est refusé.
const re = /^[5-9][0-9]{7}-[0-9K]$/
re.test('76286049-K')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

CO ColombieRUES (Confecámaras), DIANNITN{9}-CImposé900843898-9company_numbercountry=CO
Comment il est vérifié, regex, code et liens
Contrôle
9 chiffres commençant par 8 ou 9, puis le chiffre de vérification (DV) après un tiret. Poids 3,7,13,17,19,23,29,37,41 depuis la droite ; DV = le reste de la somme mod 11 s’il est inférieur à 2, sinon 11 moins lui.
Forme normalisée
900843898-9
Aussi accepté en saisie
900843898NIT 900843898-9
Une faute d’un caractère
900843898-8 est refusé
Regex (forme normalisée)
^[89][0-9]{8}-[0-9]$
API
GET /companies/search?country=CO&company_number=900843898-9
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le DV est calculé s’il est omis et doit correspondre s’il est saisi. Un numéro commençant par 1 à 7 est une cédula personnelle et est refusé.
const re = /^[89][0-9]{8}-[0-9]$/
re.test('900843898-9')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

SG SingapourACRAUENN{9} C | L N{2} L{2} N{4} CImposé196800306Ecompany_numbercountry=SG
Comment il est vérifié, regex, code et liens
Contrôle
Société locale : poids 10,8,6,4,9,7,5,3,1 sur les 9 chiffres, la somme mod 11 désigne la lettre de contrôle parmi Z K C M D N E R G W H. Les LLP et succursales étrangères (T, S ou R, année, deux lettres, série) utilisent les poids 4,3,5,3,10,2,2,5,7 et les lettres A B C D E F G H J K L.
Forme normalisée
196800306E
Aussi accepté en saisie
T08LL1267L
Une faute d’un caractère
196800306F est refusé
Regex (forme normalisée)
^([0-9]{9}|[TSR][0-9]{2}[A-Z]{2}[0-9]{4})[A-Z]$
API
GET /companies/search?country=SG&company_number=196800306E
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Un UEN d’entreprise à 8 chiffres (entreprise individuelle, société de personnes) est refusé. Sociétés locales, LLP et succursales de sociétés étrangères immatriculées seulement.
const re = /^([0-9]{9}|[TSR][0-9]{2}[A-Z]{2}[0-9]{4})[A-Z]$/
re.test('196800306E')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

TW TaïwanGCIS (ministère des Affaires économiques), ministère des FinancesNuméro d’entreprise unifié (統一編號)N{7} CIndicatif22099131company_numbercountry=TW
Comment il est vérifié, regex, code et liens
Contrôle
8 chiffres. Poids 1,2,1,2,1,2,4,1, chaque produit pris comme chiffre des dizaines plus chiffre des unités ; le total devrait être divisible par 5 (par 10 avant le changement de 2023-24 ; un septième chiffre 7 peut compter pour 0 ou 1). Indicatif : un écart est un avertissement.
Forme normalisée
22099131
Aussi accepté en saisie
TW22099131
Une faute d’un caractère
22099132 est accepté avec un avertissement
Regex (forme normalisée)
^[0-9]{8}$
API
GET /companies/search?country=TW&company_number=22099131
Numéro de TVA
l’UBN à 8 chiffres, si la société figure au fichier fiscal du ministère des Finances — publié ou confirmé par le registre
Bon à savoir
Quelques anciens numéros dissous échouent aux deux règles. Sept chiffres sont complétés par un zéro. Sociétés et succursales taïwanaises de sociétés étrangères seulement ; les noms sont en chinois.
const re = /^[0-9]{8}$/
re.test('22099131')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

CZ République tchèqueVeřejný rejstřík (ministère de la Justice), RESIČON{7} CIndicatif45274649company_numbercountry=CZ
Comment il est vérifié, regex, code et liens
Contrôle
8 chiffres, les numéros plus courts sont lus avec des zéros initiaux. Poids 8,7,6,5,4,3,2 sur les 7 premiers chiffres, r = somme mod 11 ; contrôle = 1 si r vaut 0, 0 si r vaut 1, sinon 11 moins r. Indicatif : un écart est un avertissement.
Forme normalisée
45274649
Aussi accepté en saisie
CZ45274649
Une faute d’un caractère
45274640 est accepté avec un avertissement
Regex (forme normalisée)
^[0-9]{8}$
API
GET /companies/search?country=CZ&company_number=45274649
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Quelques sociétés actives échouent au contrôle. Un numéro de 9 ou 10 chiffres est un numéro de naissance (une personne physique) et est refusé. Les entrepreneurs individuels ne sont jamais servis.
const re = /^[0-9]{8}$/
re.test('45274649')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

DE AllemagneGLEIF (LEI), MarktstammdatenregisterLEIX{18} C{2}ImposéW38RGI023J3WT1HWRP32company_numbercountry=DE
Comment il est vérifié, regex, code et liens
Contrôle
ISO 17442, ISO 7064 MOD 97-10 : 18 lettres ou chiffres et 2 chiffres de contrôle ; chaque lettre vaut 10 à 35 et la chaîne entière, lue comme un entier, laisse 1 modulo 97.
Forme normalisée
W38RGI023J3WT1HWRP32
Aussi accepté en saisie
w38r-gi02-3j3w-t1hw-rp32
Une faute d’un caractère
W38RGI023J3WT1HWRP33 est refusé
Regex (forme normalisée)
^[0-9A-Z]{18}[0-9]{2}$
API
GET /companies/search?country=DE&company_number=W38RGI023J3WT1HWRP32 · pris aussi par lei=
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Les fiches allemandes sont des entités immatriculées au LEI (GLEIF) et des sociétés du registre du marché de l’énergie, pas un extrait du Handelsregister. Une société du registre du marché de l’énergie est numérotée par son inscription commerciale, par exemple HRB12653/FRANKFURT-AM-MAIN (cherchée avec register_number), déclarée par les exploitants et non vérifiée auprès du registre.
const re = /^[0-9A-Z]{18}[0-9]{2}$/
re.test('W38RGI023J3WT1HWRP32')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

NL Pays-BasGLEIF (LEI-registered entities); the KVK number of the Kamer van KoophandelNuméro KVKN{8}Aucun17085815company_numbercountry=NL
Comment il est vérifié, regex, code et liens
Contrôle
Aucun chiffre de contrôle n’est publié : exactement 8 chiffres, un zéro initial fait partie du numéro (04040577) et 00000000 n’est pas un numéro. La forme est le seul test.
Forme normalisée
17085815
Aussi accepté en saisie
04040577
Regex (forme normalisée)
^[0-9]{8}$
API
GET /companies/search?country=NL&company_number=17085815
Numéro de TVA
Les données du registre ne contiennent pas de numéro de TVA pour cet identifiant.
Bon à savoir
Le numéro KVK est celui de la Chambre de commerce néerlandaise. Prometiam ne sert que les entités juridiques néerlandaises qui détiennent un LEI et dont GLEIF enregistre le numéro KVK (BV, NV, SE, coopératives, OWM, CV et VOF), pas toutes les entreprises néerlandaises ni un extrait du registre du commerce néerlandais : un numéro KVK bien formé d’un entrepreneur individuel, d’une fondation ou d’une association ne renvoie rien. Un numéro à 9 chiffres est un RSIN et est refusé. Le numéro de TVA néerlandais (btw-nummer) est un autre numéro et ne se déduit pas du KVK.
const re = /^[0-9]{8}$/
re.test('17085815')  // true

La regex teste la forme de l’identifiant normalisé. Elle ne calcule pas le chiffre de contrôle : passez l’identifiant dans le validateur pour cela.

Ce que ce tableau prouve et ne prouve pas

  • Une forme et un chiffre de contrôle valides prouvent qu’un numéro est bien formé, pas qu’une entreprise le porte. Seule une recherche dans le registre répond à cela.
  • Les identifiants du Royaume-Uni, de l’Irlande, de Chypre et des États-Unis n’ont pas de chiffre de contrôle : pour eux, la forme est le seul test.
  • Pour les lignes marquées Indicatif, il existe des numéros authentiques qui échouent au contrôle : un écart est un avertissement et le numéro reste accepté.
  • Ce sont les formats que l’API Prometiam accepte. Les entités qu’elle sert dans chaque pays ont leurs propres limites (les entrepreneurs individuels et les personnes physiques sont exclus de nombreux registres) ; elles figurent dans le guide de chaque pays.
  • Les numéros de TVA sont à part : quand on peut en construire un à partir de l’identifiant, la ligne dit comment et si l’immatriculation est confirmée. Vérifiez un numéro de TVA dans le vérificateur de numéros de TVA.

Dans votre propre code

Chaque ligne ouvre une regex que vous pouvez coller en JavaScript, Python ou PostgreSQL. Les validateurs de nombreux pays de ce tableau (pas de tous) sont aussi publiés sous la forme du paquet company-id-validators, sur PyPI et sur npm.

Questions

Quels identifiants d’entreprise ont un chiffre de contrôle ?
La plupart : la colonne Chiffre de contrôle indique Imposé, Indicatif ou Aucun pour chaque ligne. Le Royaume-Uni, l’Irlande, Chypre et les États-Unis n’en publient aucun, seule la forme peut donc être testée. Les lignes indicatives ont un contrôle qu’un numéro authentique peut échouer : un écart n’est qu’un avertissement.

Un chiffre de contrôle valide veut-il dire que l’entreprise existe ?
Non. Il prouve que le numéro est cohérent en lui-même, pas qu’il ait jamais été attribué. Pour savoir si l’entreprise existe, il faut la chercher dans le registre ou par une API.

Comment normaliser un identifiant avant de le stocker ?
Retirez espaces, points, tirets et barres obliques, mettez les lettres en majuscules et rétablissez les zéros initiaux perdus là où le registre en utilise. La colonne Forme normalisée montre ce que renvoie chaque validateur ; l’API accepte aussi les formes écrites.

Puis-je utiliser le tableau dans mon projet ?
Oui. Les téléchargements JSON et CSV portent les mêmes lignes. Ils sont libres de citation avec mention de Prometiam et un lien vers cette page.

Validez un numéro dans votre navigateur, ou cherchez l’entreprise.