Vérifier un SIRET français
73282932000074 est valide : le contrôle Luhn des quatorze chiffres tient et les neuf premiers, le SIREN 732829320, passent aussi le leur, avec 00074 comme NIC de l'établissement. Chaque contrôle est indiqué séparément. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Nombre
- 73282932000074
- Entrée
- 73282932000074
- SIREN
- 732829320
- Nic
- 00074
- Longueur
- 14
Un SIRET français est l’identifiant à quatorze chiffres qui désigne un établissement précis d’une entreprise immatriculée en France. Les neuf premiers chiffres forment le SIREN de l’entité juridique ; les cinq derniers constituent le NIC qui distingue un site, un entrepôt ou un bureau d’un autre sous la même société. Les deux couches intègrent des chiffres de contrôle Luhn, de sorte qu’une coquille ou une inversion de paire échoue en général avant que le numéro ne soit enregistré sur une facture, un référentiel fournisseurs ou un formulaire d’onboarding. Cette capacité n’implémente que cette arithmétique locale : elle exige une chaîne pure de quatorze chiffres, applique l’algorithme Luhn classique sur les quatorze, recalcule la validité Luhn du préfixe SIREN à neuf, et renvoie un verdict structuré avec le SIREN, le NIC et des indicateurs distincts pour chaque contrôle.
Fonctionnement des contrôles Luhn SIRET et SIREN français
Selon les règles du registre des entreprises françaises pour les identifiants SIREN et SIRET, un SIREN comporte toujours neuf chiffres décimaux qui identifient une entité juridique pendant toute sa vie, et un SIRET comporte toujours quatorze chiffres qui identifient un établissement : le SIREN à neuf plus un NIC à cinq.
Les deux numéros portent un chiffre de contrôle produit par l’algorithme Luhn mod-10 classique, de sorte que les erreurs d’un seul chiffre et la plupart des inversions adjacentes sont détectées avant l’impression du numéro sur un extrait Kbis, un en-tête de facture ou un mandat bancaire.
Pour valider un SIRET complet, prenez la chaîne de quatorze chiffres et appliquez Luhn depuis la droite : ne doublez pas le chiffre le plus à droite ; doublez chaque second chiffre en allant vers la gauche ; lorsque le double d’un chiffre dépasse neuf, soustrayez neuf ; additionnez chaque valeur pondérée ; le numéro est valide Luhn lorsque cette somme est divisible par dix. Séparément, prenez les neuf premiers chiffres comme préfixe SIREN et appliquez la même règle Luhn sur ces neuf seuls.
Un numéro d’établissement bien formé doit réussir les deux contrôles : le Luhn du SIRET à quatorze chiffres et le Luhn du SIREN embarqué. L’algorithme est déterministe et local : aucun appel au registre INSEE, pas d’horloge et pas d’aléa. Cet outil ne résout pas les SIRET en noms d’entreprise, ne prouve pas qu’un établissement est ouvert et ne contacte pas le registre français : il prouve seulement que la chaîne de chiffres est bien formée selon les règles Luhn des SIRET et SIREN français.
Par rapport aux outils génériques de format fiscal ou aux vérificateurs Luhn de carte, l’intention de recherche ici est étroite : ceux qui ont besoin d’un validateur Luhn SIRET français pour des numéros d’établissement à quatorze chiffres, non d’un devineur multi-pays ni d’un outil de carte de paiement.
Contrat d’entrée, champs de réponse et erreurs
Envoyez un champ number ne contenant que les caractères de zéro à neuf. Le moteur exige exactement quatorze chiffres : neuf pour le préfixe SIREN et cinq pour le NIC, y compris le chiffre de contrôle final du SIRET complet. Une longueur incorrecte est une erreur explicite indiquant qu’il faut quatorze chiffres et rapportant la longueur envoyée, pour que les formulaires affichent un message clair sans deviner.
Chaînes vides, number manquant, flottants, négatifs et objets non chaînes échouent avant toute somme Luhn et ne sont pas facturés. Préférez ce point de terminaison lorsque vous conditionnez un formulaire fournisseur, un pipeline de capture de factures ou une charge ERP sur un identifiant d’établissement complet provenant d’un utilisateur, d’un fichier partenaire ou d’une étape OCR. Les tâches de validation qui rejettent une forme incorrecte ne sont pas facturées.
Où les contrôles Luhn SIRET s’intègrent aux flux réels
Les plateformes de comptabilité et de facturation électronique reçoivent des SIRET à quatorze chiffres sur les factures fournisseurs et doivent rejeter un numéro d’établissement mal saisi avant l’écriture d’un bon de commande, d’un paiement ou d’une archive fiscale. Les flux d’onboarding marketplace et logistique collectent un SIRET par entrepôt ou magasin et ont besoin d’un contrôle local immédiat pour qu’une seule transposition ne crée pas un établissement fantôme ni un échec bancaire ou fiscal ultérieur.
Les imports ERP et CRM parcourent chaque colonne SIRET d’un CSV ou d’un flux partenaire, appellent ce validateur et mettent en quarantaine les lignes où valid est false — capturant les éditions humaines et les bugs d’un cran dans les générateurs qui ne recalculent que le SIREN sans revérifier la chaîne complète de quatorze chiffres.
Ne traitez pas un SIRET accepté comme preuve que l’établissement est inscrit et ouvert à l’INSEE, que la société est solvable ou que l’identité a été vérifiée ; cela prouve seulement que les chiffres Luhn sont cohérents sous les pondérations des SIRET et SIREN français. Traitez les vrais SIRET comme des identifiants commerciaux : limitez l’accès dans les journaux, évitez d’envoyer des numéros complets à l’analytique tierce, et préférez masquer les quatre derniers en télémétrie lorsque le numéro complet n’est pas requis pour la piste d’audit.
Cas d’usage
Auditer les colonnes SIRET des référentiels ERP
Validez en lot chaque SIRET à quatorze chiffres d’un CSV fournisseurs ou clients et mettez en quarantaine les lignes dont le Luhn du SIRET complet ou du préfixe SIREN ne correspond plus, avant les exports fiscaux ou bancaires.
Questions fréquentes
Qu’est-ce qu’un numéro SIRET français ?
C’est un identifiant d’établissement à quatorze chiffres : les neuf premiers sont le SIREN de la société, les cinq derniers le NIC de ce site. Les deux couches utilisent des chiffres de contrôle Luhn pour capturer les erreurs de saisie et de lecture avant le stockage.
Quelle est la différence entre SIREN et SIRET ?
Le SIREN comporte neuf chiffres qui identifient l’entité juridique. Le SIRET en comporte quatorze qui identifient un établissement : SIREN plus un NIC à cinq. Cette capacité valide le SIRET complet et contrôle séparément le préfixe SIREN embarqué.
Que se passe-t-il avec une mauvaise longueur, des lettres ou des tirets ?
Les tâches de validation de forme qui échouent ne sont pas facturées. Une chaîne de quatorze chiffres avec un chiffre de contrôle faux renvoie valid false sans lever d’exception.
Le contrôle Luhn du SIRET français est-il gratuit ?
L’outil navigateur est gratuit et s’exécute en local.
Pourquoi l'outil fait-il deux contrôles distincts ?
Parce qu'un SIRET a deux niveaux : le SIREN de l'entreprise et le NIC de l'établissement. Vérifier séparément les quatorze chiffres et le préfixe de neuf montre si l'erreur se trouve dans la partie entreprise ou ailleurs ; le SIRET n'est valide que si les deux passent.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/siret-france \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"73282932000074"}'const res = await fetch("https://api.kit.forhosting.com/enc/siret-france", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "73282932000074"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/siret-france",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "73282932000074"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/siret-france", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"73282932000074"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"73282932000074"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/siret-france", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"number": "73282932000074"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.siret_france",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les caractères non numériques et les longueurs incorrectes échouent avec invalid_input plutôt qu’un nettoyage silencieux, afin que vous ne persistiez jamais un identifiant à demi nettoyé. La même arithmétique pure s’exécute gratuitement dans le navigateur et au prix API publié, sans appel réseau à l’INSEE ni aux registres d’entreprises, et sans prétendre qu’une clé valide signifie que l’établissement est actif, ouvert ou exempt de fraude.
Fonctionnement des contrôles Luhn SIRET et SIREN français
Cet outil signale siret_luhn et siren_valid indépendamment, et fixe valid à true uniquement lorsque les deux réussissent, afin que vous voyiez si l’échec porte sur la chaîne d’établissement entière ou sur le préfixe de la société.
Contrat d’entrée, champs de réponse et erreurs
Espaces, tirets, lettres et points décimaux sont rejetés comme entrée non numérique avec invalid_input, afin qu’une valeur silencieusement tronquée n’atteigne jamais le stockage. La réponse inclut toujours input (la chaîne normalisée de quatorze chiffres), valid (true uniquement lorsque les deux contrôles Luhn réussissent), siret_luhn (Luhn sur les quatorze chiffres), siren (les neuf premiers), siren_valid (Luhn sur ces neuf seuls), nic (les cinq derniers), length quatorze et algorithm siret-france-luhn. Les alias digits, siret, text, value, n et code sont acceptés pour le même champ de charge utile, afin que les intégrations qui parlent déjà de « siret » n’aient pas à renommer. Comme le chemin est pure parse sans horloge, source aléatoire ni réseau, le même corps JSON produit toujours le même résultat JSON sur l’outil gratuit du navigateur et sur l’API à $0.002 par requête réussie. Une chaîne bien formée de quatorze chiffres dont le chiffre de contrôle est faux renvoie valid false avec siret_luhn false sans lever d’exception, afin que les traitements par lots puissent mettre des lignes en quarantaine au lieu d’avorter.
Où les contrôles Luhn SIRET s’intègrent aux flux réels
Les agents de support recalculent siret_luhn et siren_valid lorsqu’un client dicte un numéro au téléphone ou le colle depuis un extrait Kbis en PDF, capturant les coquilles avant l’émission d’un contrat ou d’un mandat.
Cas d'intégration
Valider les SIRET fournisseurs à la capture de factures
Lorsque l’OCR ou un formulaire envoie quatorze chiffres depuis l’en-tête d’une facture, appelez ce validateur et bloquez la comptabilisation si valid est false, en utilisant siret_luhn et siren_valid pour expliquer si l’échec porte sur la chaîne d’établissement ou le préfixe de la société.
Conditionner l’onboarding marketplace ou logistique
Exigez un SIRET pur à quatorze chiffres à l’inscription d’un vendeur ou d’un entrepôt, rejetez l’entrée non numérique ou de mauvaise longueur avec invalid_input, et ne créez l’enregistrement d’établissement que lorsque les deux contrôles Luhn réussissent.
Questions techniques
Comment cet outil valide-t-il un SIRET ?
Envoyez en POST une chaîne pure de quatorze chiffres dans number. La réponse signale siret_luhn sur les quatorze chiffres, siren_valid sur les neuf premiers, et valid true seulement si les deux réussissent, plus siren, nic et length.