Chiffre de contrôle CNP roumain
Saisissez 180010122114 et obtenez le chiffre de contrôle 4 : le CNP complet est donc 1800101221144. Vous pouvez aussi coller les treize chiffres pour voir si le dernier respecte la pondération officielle. Utile en RH, en paie et à l'ouverture de comptes clients. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Cnp
- 180010122114
- Mode de calcul
- Compute
- Entrée
- 180010122114
- Chiffre de contrôle
- 4
- Avec chiffre de contrôle
- 1800101221144
- Formaté
- 1-800101-22-114-4
Le code numérique personnel roumain (CNP, Cod Numeric Personal) est un identifiant à treize chiffres utilisé sur les registres d'état civil, les contrats de travail, les déclarations fiscales, le KYC bancaire et les formulaires des services publics en Roumanie. Le dernier chiffre est un chiffre de contrôle dérivé d'une pondération fixe des douze premiers chiffres selon la règle modulaire officielle du format CNP. Un seul chiffre mal saisi ou une paire intervertie casse souvent cette somme de contrôle, de sorte que valider le CNP avant d'enregistrer une fiche RH, d'ouvrir un profil client ou d'accepter un fichier partenaire détecte tôt de nombreuses erreurs de frappe. Cette capacité calcule le chiffre de contrôle CNP roumain pour une charge de douze chiffres (avec ou sans espaces et tirets courants), ou valide un numéro complet à treize chiffres incluant déjà le chiffre final, et signale une entrée incorrecte au lieu d'inventer un chiffre en silence.
Ce qu'est le chiffre de contrôle CNP roumain et comment fonctionnent les poids
Un CNP encode le sexe et le siècle, la date de naissance, le département d'émission et un numéro de série dans un format fixe à treize chiffres utilisé par les systèmes administratifs, fiscaux et commerciaux roumains. Les formulaires insèrent parfois des espaces ou des tirets pour la lisibilité, mais la valeur sous-jacente est toujours treize chiffres décimaux. Les douze premiers forment le corps ; le treizième est entièrement déterminé par un algorithme de contrôle public et n'est pas choisi librement.
La pondération officielle multiplie ces douze chiffres, de gauche à droite, par la séquence constante deux, sept, neuf, un, quatre, six, trois, cinq, huit, deux, sept et neuf — la chaîne de poids 279146358279. Les produits sont additionnés et le reste de cette somme modulo onze est le chiffre de contrôle candidat. Lorsque le reste vaut de zéro à neuf, cette valeur est le chiffre de contrôle et complète une chaîne CNP bien formée.
Lorsque le reste vaut dix, le chiffre de contrôle est défini comme un, et non dix, de sorte que chaque corps de douze chiffres correspond à exactement un chiffre final de zéro à neuf. Par rapport au Luhn mod-dix des cartes de paiement, le schéma CNP utilise un vecteur de poids fixe de gauche à droite et le modulo onze avec une règle spéciale pour le reste dix, vous ne devez donc pas réutiliser un validateur Luhn sur des champs d'identité personnelle roumaine.
Par rapport aux poids du NIP polonais ou aux deux chiffres mod-onze du fødselsnummer norvégien, la règle CNP roumaine est propre à ce format à treize chiffres et à cette chaîne de douze positions. Savoir quel schéma vous devez utiliser évite une fausse confiance lorsqu'un utilitaire générique de chiffre de contrôle accepte une chaîne qui n'est pas un CNP bien formé. Cet outil applique la pondération standard sur des chiffres purs après suppression optionnelle des espaces et tirets.
Il n'interroge pas de portails gouvernementaux, ne prouve pas qu'une personne existe, ne décode ni le genre ni le département et n'attribue aucun statut juridique — seulement que la chaîne de chiffres est cohérente avec l'algorithme de contrôle publié.
Où les chiffres de contrôle CNP s'intègrent aux flux RH, bancaires et administratifs
Les systèmes de ressources humaines et de paie stockent le CNP de l'employé sur chaque document d'emploi roumain légal ; un seul chiffre mal saisi à l'intégration peut faire échouer ensuite les envois de sécurité sociale ou fiscaux. Les parcours KYC bancaires et fintech qui collectent un code numérique personnel roumain peuvent recalculer le chiffre de contrôle sans appeler un registre externe, en filtrant tôt le bruit OCR et les captures partielles.
Les équipes produit qui exposent déjà des outils généraux Luhn ou ISO 7064 doivent tout de même utiliser cette capacité spécifique CNP pour les champs d'identité personnelle roumaine afin que les poids, les bornes de longueur et le traitement du reste dix correspondent au domaine. Les pages éducatives et SEO qui se positionnent sur des expressions telles que chiffre de contrôle CNP roumain ou validateur CNP Roumanie ont besoin d'un outil gratuit en direct dont le chemin navigateur coïncide avec l'automatisation pour que les captures de tutoriels restent exactes.
Ne traitez pas un chiffre de contrôle CNP correct comme preuve que la personne est correctement identifiée, vivante, autorisée ou présente dans un registre officiel — cela prouve seulement que la chaîne de chiffres est cohérente avec l'algorithme de contrôle CNP roumain.
Cas d’usage
Auditer les colonnes CNP dans les fichiers partenaires et de paie
Validez par lot chaque CNP d'un import CSV et mettez en quarantaine les lignes dont le chiffre de contrôle ne correspond plus à la valeur attendue recalculée.
Questions fréquentes
Comment calcule-t-on le chiffre de contrôle du CNP roumain ?
Multipliez les douze premiers chiffres par les poids 2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7 et 9 (la chaîne constante 279146358279), additionnez les produits et prenez le reste modulo 11. Si le reste est 0–9 c'est le chiffre de contrôle ; s'il est 10 le chiffre de contrôle est 1.
Quelle est la différence entre les modes compute et validate ?
Compute prend douze chiffres et renvoie le chiffre de contrôle et le CNP complet à treize chiffres. Validate prend treize chiffres incluant le dernier et indique s'il correspond au chiffre de contrôle recalculé.
Les espaces et les tirets sont-ils autorisés ?
Oui. Les séparateurs courants sont supprimés avant l'analyse.
Que se passe-t-il si le chiffre de contrôle est incorrect ?
En mode validate la réponse inclut toujours le chiffre attendu et valid est false.
Que se passe-t-il quand le reste de la somme pondérée vaut 10 ?
Le chiffre de contrôle vaut alors 1, et non 10. Cette règle particulière garantit que chaque corps de douze chiffres possède exactement un chiffre final compris entre 0 et 9.
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/cnp-romania \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cnp":"180010122114"}'const res = await fetch("https://api.kit.forhosting.com/enc/cnp-romania", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cnp": "180010122114"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/cnp-romania",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cnp": "180010122114"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/cnp-romania", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cnp":"180010122114"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cnp":"180010122114"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/cnp-romania", 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
{
"cnp": "180010122114"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.cnp_romania",
"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
Utilisez-la gratuitement dans le navigateur ou appelez l'API KIT au prix publié ; les deux chemins exécutent la même arithmétique déterministe sans consultation réseau et sans registre de personnes réelles.
Comment calculer un chiffre de contrôle ou valider un CNP complet
Envoyez un champ cnp contenant les chiffres de zéro à neuf, éventuellement séparés par des espaces ou des tirets. Le mode validate attend un numéro complet à treize chiffres incluant le chiffre de contrôle final (par exemple 1800101221144 ou une forme à tirets de treize chiffres). Les chaînes vides, un cnp manquant, des valeurs de mode invalides et des longueurs incorrectes échouent avant toute somme pondérée et ne sont pas facturées. Préférez compute lorsque vous assemblez un CNP à partir d'un corps de douze chiffres connu ; préférez validate lorsqu'un utilisateur, un fichier partenaire ou une étiquette numérisée fournit un numéro complet et que vous avez besoin d'un filtre booléen avant une consultation de registre ou de données de référence. Les lettres, une autre ponctuation, les tirets doubles ou les tirets en tête ou en fin sont rejetés comme entrée mal formée avec invalid_input afin que vous n'acceptiez jamais une valeur nettoyée en silence. Le mode compute est le défaut : fournissez exactement douze chiffres sans le chiffre de contrôle (par exemple 180010122114) et le moteur renvoie check_digit comme chaîne d'un caractère, with_check comme la chaîne complète à treize chiffres incluant ce chiffre, et formatted selon le regroupement lisible S-YYMMDD-JJ-NNN-C. La réponse indique valid true lorsque le chiffre recalculé correspond au dernier, et inclut toujours check_digit, expected_check_digit, payload sans le dernier chiffre, weighted_sum_mod11 et formatted pour un affichage cohérent. Comme le chemin est purement parse, sans horloge, source aléatoire ni réseau, la même entrée produit toujours le même JSON sur l'outil gratuit du navigateur et sur l'API. À $0.002 par requête réussie vous pouvez filtrer des imports RH en masse, des formulaires d'intégration et des jobs ETL sans négocier un palier personnalisé.
Où les chiffres de contrôle CNP s'intègrent aux flux RH, bancaires et administratifs
Le mode validate à l'entrée bloque l'enregistrement lorsque valid est false et peut afficher expected_check_digit pour que l'opérateur corrige le formulaire avant l'écriture de la fiche. Les portails d'assurance, de santé et de services publics reçoivent des CNP depuis des formulaires et des fichiers partenaires où un chiffre final erroné rejetterait tout un lot ; un oracle déterministe qui renvoie valid et with_check permet de signaler les lignes avant la production. Dans chaque flux le contrat est le même : chiffres avec espaces ou tirets optionnels, compute ou validate, JSON structuré testable par goldens, comportement identique gratuit dans le navigateur ou via solde KIT prépayé, et échec honnête lorsque l'entrée est mal formée.
Cas d'intégration
Filtrer les champs CNP sur les formulaires RH et d'intégration
Lorsqu'un utilisateur envoie un CNP roumain complet, appelez le mode validate et bloquez l'enregistrement si valid est false, en affichant expected_check_digit pour corriger une seule faute de frappe avant d'écrire la fiche employé.
Calculer le chiffre final lors de la complétion d'identifiants
À partir d'un corps de douze chiffres, appelez le mode compute et stockez with_check ou formatted pour que chaque nouvelle chaîne CNP porte le chiffre final correct avant impression, export ou génération de dossiers.
Questions techniques
Combien coûte le calculateur de chiffre de contrôle CNP roumain ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde KIT prépayé à $0.002 par appel réussi ; l'entrée invalide n'est pas facturée.