ForHosting KIT · Outils pour développeurs

Vérification CPR Danemark

Saisissez 0707610018 : c'est un CPR danois valide d'une femme née le 7 juillet 1961, et le contrôle modulo 11 passe. La forme avec tiret, comme 070761-0018, est aussi acceptée. Utile pour l'ouverture de comptes et les fichiers RH. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Nombre
0707610018
Vous obtenez
Entrée
0707610018
Date de naissance
1961-07-07
Jour
7
Mois
7

Le numéro CPR danois (personnummer du Det Centrale Personregister) est l'identifiant civil national utilisé pour la fiscalité, la santé, la banque, l'emploi et la plupart des formulaires publics au Danemark. Sous sa forme habituelle, il compte dix chiffres : six pour la date de naissance au format jour-mois-année (DDMMYY), puis quatre pour un numéro de série qui encode des indices de siècle, une séquence et un chiffre de contrôle final. Les numéros classiques appliquent une somme pondérée de modulo onze sur les dix chiffres, de sorte qu'une seule frappe erronée est en général rejetée avant le stockage ou l'appariement de l'identifiant. Cette capacité ne valide que cette structure. Elle vérifie que la date embarquée est un jour de calendrier réel selon les règles officielles de siècle du septième chiffre, indique si la somme classique de modulo onze se divise exactement, et renvoie la date de naissance au format ISO ainsi que le genre déduit du dernier chiffre (impair masculin, pair féminin). Les formes avec trait d'union du type DDMMYY-XXXX sont acceptées après normalisation.

Comment un numéro CPR danois est structuré et contrôlé

Selon la pratique danoise d'état civil, un personnummer CPR compte dix chiffres écrits de façon compacte DDMMYYXXXX ou avec un trait d'union après la date DDMMYY-XXXX. Les positions un et deux sont le jour de naissance, trois et quatre le mois, cinq et six l'année sur deux chiffres.

Le septième chiffre participe à la résolution du siècle afin de reconstruire l'année de naissance sur quatre chiffres sans champ de siècle séparé : les chiffres de zéro à trois correspondent à mille neuf cents plus l'année à deux chiffres ; les chiffres quatre et neuf correspondent à deux mille lorsque l'année est inférieure ou égale à trente-six, sinon restent dans mille neuf cents ; les chiffres de cinq à huit correspondent à deux mille lorsque l'année est inférieure ou égale à cinquante-sept, sinon à mille huit cents pour les cohortes les plus anciennes.

Une fois l'année complète connue, la capacité vérifie que le jour existe dans ce mois, y compris le vingt-neuf février uniquement les années bissextiles grégoriennes, par arithmétique pure et sans l'horloge de l'hôte. La règle classique de contrôle multiplie les dix chiffres par les poids fixes quatre, trois, deux, sept, six, cinq, quatre, trois, deux et un, et exige que la somme pondérée soit divisible par onze. Le dernier chiffre indique aussi le genre : impair pour masculin et pair pour féminin.

Un exemple connu est zéro sept zéro sept six un zéro zéro un huit, né le sept juillet mille neuf cent soixante et un, de sexe féminin, avec somme classique correcte.

Où les contrôles CPR danois s'intègrent aux flux réels

Les banques et fintechs valident des valeurs CPR à dix chiffres à l'ouverture de compte afin qu'une seule transposition ne crée pas un client fantôme ni un dossier KYC rejeté. Les jobs ETL qui chargent des fichiers maîtres de clients ou d'employés danois parcourent chaque colonne CPR d'un flux CSV ou XML, appellent cette capacité et mettent en quarantaine les lignes où valid est false, capturant à la fois les éditions humaines et les erreurs d'un dans les générateurs.

Les systèmes municipaux et scolaires acceptent souvent les formes avec trait d'union et compactes ; retirer espaces et traits d'union avant le contrôle des chiffres garde le contrat simple sans inventer un second algorithme.

Ne traitez pas un CPR au contrôle réussi comme preuve que le titulaire est vivant dans le registre de population, possède une carte santé danoise ou est autorisé pour un service ; cela prouve seulement que la date est valide au calendrier selon les règles de siècle et que le chiffre classique de modulo onze est cohérent avec les poids officiels lorsque cette règle s'applique encore.

Valider un CPR danois saisi sur des formulaires d'inscription

Lorsqu'une inscription, un KYC bancaire ou un formulaire RH recueille un personnummer, appelez le contrôle et bloquez l'envoi si valid est false, tout en affichant la date de naissance ISO extraite pour correction.

Auditer les colonnes CPR dans des données maîtres danoises

Validez en lot chaque CPR d'un CSV CRM, EHR ou paie et mettez en quarantaine les lignes dont la date est impossible ou dont le contrôle classique de modulo onze ne correspond plus.

Que valide le contrôle CPR du Danemark ?

Il vérifie qu'un personnummer danois de dix chiffres embarque une date de naissance de calendrier réelle (siècle depuis le septième chiffre) et que le contrôle pondéré classique mod-11 sur les dix chiffres réussit.

Quel format faut-il envoyer ?

Envoyez dix chiffres DDMMYYXXXX, éventuellement avec un trait d'union ou des espaces (par exemple 070761-0018). Après retrait des espaces et traits d'union, le corps doit être exactement dix chiffres 0–9.

Combien coûte le contrôle CPR du Danemark ?

L'outil navigateur est gratuit et s'exécute en local.

Un vrai numéro CPR peut-il échouer au contrôle modulo 11 ?

Oui. Les numéros attribués après l'assouplissement de la règle en octobre 2007 peuvent être authentiques même si la somme modulo 11 échoue. L'outil indique ce contrôle à part, pour que vous appliquiez une règle stricte ou acceptiez la seule date.

Comment l'année complète de naissance est-elle déduite ?

Du septième chiffre et de l'année à deux chiffres. De 0 à 3, ce sont les années 1900 ; 4 et 9 donnent les années 2000 jusqu'à 36, sinon 1900 ; de 5 à 8, les années 2000 jusqu'à 57, sinon 1800.

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.

POSThttps://api.kit.forhosting.com/enc/cpr-denmark

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é.

curl -X POST https://api.kit.forhosting.com/enc/cpr-denmark \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"0707610018"}'
{
  "number": "0707610018"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.cpr_denmark",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Une longueur incorrecte, un corps non numérique ou une date impossible échouent avec invalid_input au lieu d'un nettoyage silencieux. La même arithmétique pure s'exécute gratuitement dans le navigateur et au prix API publié, sans consultation du registre de population et sans prétendre qu'un contrôle réussi prouve que la personne est vivante, inscrite ou autorisée à un service.

Comment un numéro CPR danois est structuré et contrôlé

Les numéros émis après l'assouplissement d'octobre deux mille sept peuvent être officiels même si la somme de modulo onze échoue ; cet outil signale toujours mod11_valid afin que l'appelant applique une politique stricte ou uniquement de date.

Contrat d'entrée, forme de la réponse et erreurs

Après normalisation le moteur exige exactement dix chiffres. Il analyse le jour, le mois et l'année à deux chiffres, résout l'année complète à partir du septième chiffre et rejette les dates de calendrier impossibles avec un message clair nommant le jour ou le mois incorrect. Une longueur incorrecte après nettoyage, une chaîne vide, un number manquant et un corps sans chiffres échouent avant toute somme de contrôle et ne sont pas facturés. Préférez ce point de terminaison lorsque vous conditionnez un formulaire, un fichier KYC, un import RH ou une admission de santé à un CPR saisi par un utilisateur ou un flux partenaire et que vous avez besoin, en un seul appel, du contrôle de date et du contrôle classique. Envoyez un corps JSON avec un champ number obligatoire contenant le corps du CPR. Les espaces et traits d'union sont retirés afin que les formes danoises courantes telles que zéro sept zéro sept six un trait d'union zéro zéro un huit soient acceptées après normalisation ; toute autre ponctuation et lettre est rejetée comme entrée non numérique avec invalid_input, de sorte qu'une valeur nettoyée en silence n'atteigne jamais le stockage. Sur une date réelle la réponse inclut toujours input comme la chaîne normalisée de dix chiffres, valid true seulement lorsque le contrôle classique de modulo onze réussit aussi, birth_date comme chaîne ISO année-mois-jour, day, month et year comme entiers, date comme le fragment de six chiffres DDMMYY, serial comme la queue de quatre chiffres, gender comme male ou female, mod11_valid comme miroir booléen de la somme de contrôle, check_digit comme le dernier caractère, length dix et algorithm denmark-cpr-mod11. Une chaîne bien formée avec une date réelle mais un chiffre de contrôle incorrect renvoie valid false et mod11_valid false sans lever d'erreur, afin que les formulaires affichent la date extraite tout en bloquant l'inscription. Des alias tels que cpr, digits, text, value, code et id sont acceptés pour le même champ de charge utile, afin que les intégrations qui parlent déjà des noms danois n'aient pas à renommer. Comme le chemin est un parse pur 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.

Où les contrôles CPR danois s'intègrent aux flux réels

Les portails de santé et les systèmes de pharmacie recalculent birth_date et mod11_valid lorsqu'une clinique lit un numéro au téléphone ou le colle depuis une carte numérisée, capturant les fautes de frappe avant d'archiver une entrée de dossier ou une ordonnance. Les tests d'intégration affirment birth_date et gender sur des échantillons fixes afin que les bibliothèques de formulaires, les imprimantes d'étiquettes et cette API ne divergent jamais. Dans chaque flux la promesse est la même : uniquement des chiffres après le retrait optionnel des séparateurs, longueur fixe dix, JSON structuré testable par goldens, comportement identique entre navigateur gratuit et API prépayée, et invalid_input honnête lorsque la chaîne n'est pas une séquence pure de dix chiffres avec une date de calendrier réelle.

Épingler des fixtures pour tests santé et paie

Utilisez des échantillons valides connus tels que 0707610018 pour des patients et employés de bac à sable, en affirmant birth_date, gender et mod11_valid afin que les données de test restent stables d'une version à l'autre.

Que se passe-t-il si le contrôle mod-11 échoue mais que la date est réelle ?

La tâche réussit avec valid false et mod11_valid false, tout en renvoyant birth_date et gender. Les CPR postérieurs à 2007 peuvent être officiels sans somme classique correcte ; utilisez mod11_valid pour une politique plus souple.

Quand obtient-on invalid_input ?

Number manquant, chaîne vide, caractères non numériques après nettoyage, longueur autre que dix, ou date de calendrier impossible (mois ou jour incorrects) échouent avec invalid_input et ne sont pas facturés.

Consulter la documentation complète du KIT →