ForHosting KIT · Outils pour développeurs

Chiffre de contrôle personnummer Suède

Les neuf chiffres 811228987, date de naissance plus série, reçoivent le chiffre de contrôle 4, ce qui donne le personnummer 8112289874. Saisissez neuf chiffres pour compléter un numéro d'identité suédois, ou dix ou douze pour confirmer son dernier chiffre. 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
811228987
Vous obtenez
Mode de calcul
Compute
Entrée
811228987
Date
811228
Numéro de série
987

Le personnummer suédois (numéro d'identité personnel) est l'identifiant civil national utilisé pour la fiscalité, la santé, la banque, l'emploi et la plupart des formulaires publics en Suède. Sous sa forme courte, il comporte dix chiffres : six pour la date de naissance année-mois-jour (YYMMDD), trois de série attribués ce jour-là, et un chiffre de contrôle final. La forme à douze chiffres préfixe le siècle (YYYYMMDD plus série et contrôle). Le chiffre de contrôle n'est pas une décoration aléatoire : il est produit par l'algorithme de Luhn sur les neuf premiers chiffres de la forme courte, de sorte qu'une seule frappe erronée ou une paire inversée est en général rejetée avant le stockage ou l'appariement du numéro. Cette capacité n'implémente que cette somme de contrôle. Le mode compute accepte exactement neuf chiffres — date plus série sans le contrôle — et renvoie le chiffre Luhn ainsi que la chaîne complète de dix chiffres. Le mode validate accepte dix ou douze chiffres (tirets ou signes plus optionnels) et indique si le chiffre final correspond à la valeur attendue recalculée.

Comment se calcule le chiffre de contrôle du personnummer suédois

Selon les règles de l'Agence fiscale suédoise (Skatteverket), le chiffre de contrôle du personnummer est une valeur Luhn mod-10 calculée sur neuf chiffres : la date de naissance à six chiffres YYMMDD suivie de la série à trois chiffres. En partant de la gauche, en comptant les positions de un à neuf, chaque position impaire est doublée ; si le double d'un chiffre dépasse neuf, on soustrait neuf (ou l'on additionne les deux chiffres du produit). Les positions paires contribuent le chiffre inchangé.

Les neuf valeurs pondérées sont additionnées ; le chiffre de contrôle est dix moins cette somme modulo dix, modulo dix à nouveau, de sorte qu'en ajoutant le contrôle la forme courte à dix chiffres soit cohérente avec Luhn. La validation recalcule le chiffre attendu à partir de la charge utile de neuf chiffres et le compare au dernier chiffre du numéro soumis.

Pour la forme à douze chiffres avec siècle YYYYMMDDNNNC, la charge Luhn reste les neuf chiffres YYMMDDNNN — les chiffres du siècle sont des métadonnées d'affichage pour l'âge et le tri, pas une partie des poids de la somme de contrôle. Un exemple bien connu est la base 811228987, qui donne le chiffre de contrôle 4 et la forme courte complète 8112289874 (souvent écrite 811228-9874).

Les numéros de coordination (samordningsnummer) utilisent le jour du mois plus soixante et appliquent la même règle Luhn sur les neuf chiffres du corps ; cet outil n'invente pas un autre algorithme pour eux. L'algorithme est déterministe et local : aucun appel au registre de population, aucune horloge et aucune aléatoire.

Par rapport aux outils Luhn génériques de cartes ou d'IMEI, l'intention de recherche ici est étroite : des personnes qui ont besoin d'une calculatrice du chiffre de contrôle du personnummer suédois pour date plus série, ou d'un vérificateur de numéros personnels suédois à dix ou douze chiffres, pas d'un outil de paiement ou d'appareil.

Où les chiffres de contrôle du personnummer s'intègrent aux flux suédois réels

Les banques et fintechs valident des personnummer à dix ou douze 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 suédois parcourent chaque colonne personnummer d'un flux CSV ou XML, appellent le mode validate et mettent en quarantaine les lignes où valid est false — capturant à la fois les éditions humaines et les bugs d'un cran dans les générateurs.

Les systèmes municipaux et scolaires acceptent souvent les formes avec tiret et compactes ; retirer espaces, tirets et signes plus avant le contrôle des chiffres garde le contrat simple sans inventer un second algorithme. Ne traitez pas un personnummer au contrôle réussi comme preuve que le titulaire est vivant dans le registre de population, possède une carte d'identité suédoise ou est autorisé pour un service ; cela prouve seulement que le chiffre Luhn est cohérent avec la date et la série selon les poids officiels du personnummer suédois.

Auditer les colonnes personnummer dans les données maîtres

Validez par lots chaque personnummer d'un CSV CRM, EHR ou paie et mettez en quarantaine les lignes dont le chiffre de contrôle ne correspond plus à la valeur attendue recalculée.

Qu'est-ce que le chiffre de contrôle d'un personnummer suédois ?

C'est le dixième chiffre de la forme courte du numéro d'identité personnel suédois, calculé avec l'algorithme de Luhn sur la date de naissance à six chiffres et la série à trois, afin que les erreurs de saisie et de lecture soient en général détectées avant le stockage du numéro.

Que se passe-t-il avec une longueur incorrecte, des lettres ou une ponctuation bizarre ?

Les tâches de validation échouées ne sont pas facturées.

Comment calcule-t-on le chiffre de contrôle du personnummer ?

On prend les neuf chiffres de la date et de la série, on double chaque chiffre de rang impair en partant de la gauche et on retire neuf à tout résultat supérieur à neuf. On additionne tout : le chiffre de contrôle amène le total à un multiple de dix. Pour 811228987, c'est 4.

La forme à douze chiffres change-t-elle le chiffre de contrôle ?

Non. Dans la forme à douze chiffres, les deux premiers indiquent seulement le siècle, pour l'affichage et le tri. Le chiffre de contrôle se calcule toujours sur les neuf mêmes chiffres de la forme courte.

L'outil fonctionne-t-il avec les numéros de coordination ?

Oui. Le numéro de coordination, ou samordningsnummer, ajoute soixante au jour de naissance mais suit la même règle de Luhn sur ses neuf chiffres : l'outil le calcule et le vérifie de la même manière.

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/personnummer-sweden

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/personnummer-sweden \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"811228987"}'
{
  "number": "811228987"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.personnummer_sweden",
  "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.

Les corps non numériques et les longueurs incorrectes é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 de registre et sans affirmer qu'une somme de contrôle valide signifie que la personne est vivante, inscrite ou admise à un service.

Contrat d'entrée, modes et comportement d'erreur

Une longueur incorrecte est une erreur explicite qui nomme le mode et la longueur envoyée — neuf pour compute, dix ou douze pour validate — afin que les formulaires clients affichent un message précis sans deviner. Les chaînes vides, number manquant et valeurs de mode invalides échouent avant toute somme Luhn et ne sont pas facturées. Une chaîne bien formée qui a simplement le mauvais chiffre de contrôle renvoie valid false sans lever d'exception. Envoyez un champ number contenant le corps du personnummer. Les espaces, tirets et signes plus sont retirés afin que les formes d'affichage suédoises courantes telles que 811228-9874 ou 19811228-9874 soient acceptées après normalisation ; toute autre ponctuation et les lettres sont rejetées comme entrée non numérique avec invalid_input, de sorte qu'une valeur nettoyée en silence n'atteigne jamais le stockage. Le mode compute est le défaut : le moteur exige exactement neuf chiffres, renvoie check_digit comme chaîne d'un caractère, with_check comme le personnummer court à dix chiffres que vous pouvez imprimer ou persister, ainsi que date (YYMMDD) et serial (trois chiffres) pour l'audit. Le mode validate accepte exactement dix chiffres (YYMMDDNNNC) ou douze (YYYYMMDDNNNC) ; la réponse indique valid true lorsque le chiffre final correspond à expected_check_digit recalculé, et inclut toujours payload (les neuf chiffres Luhn), check_digit, expected_check_digit, date, serial, form ("10" ou "12") et length. Pour une entrée à douze chiffres, la réponse inclut aussi century et full_date (YYYYMMDD) sans traiter le siècle comme partie de la somme Luhn. Des alias tels que personnummer, pnr, digits et code sont acceptés pour le même champ utile, afin que les intégrations qui parlent déjà de champs suédois n'aient pas besoin de 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 chiffres de contrôle du personnummer s'intègrent aux flux suédois réels

Les portails de santé et les systèmes de pharmacie recalculent expected_check_digit 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 l'archivage d'une entrée de dossier ou d'une ordonnance. Les employeurs et éditeurs de paie complètent des bases à neuf chiffres en bac à sable avec le mode compute, puis stockent with_check sur des employés de test qui doivent ressembler à des identifiants de production.

Compléter une base personnummer à 9 chiffres pour des tests

Appelez le mode compute avec YYMMDD plus trois chiffres de série, stockez with_check et utilisez le personnummer à dix chiffres dans des enregistrements de test KYC, paie ou santé.

Valider des numéros personnels suédois saisis ou importés

Lorsqu'un formulaire, un fichier bancaire ou un flux RH soumet dix ou douze chiffres, appelez le mode validate et bloquez l'inscription si valid est false, en affichant expected_check_digit pour corriger une seule faute de frappe.

Comment calculer un chiffre de contrôle de personnummer avec cette API ?

Envoyez un POST avec number égal à exactement neuf chiffres (YYMMDD plus série) et mode compute (ou omettez mode). La réponse inclut check_digit et with_check (la forme courte complète à dix chiffres).

Comment valider un personnummer complet à dix ou douze chiffres ?

Envoyez un POST avec la chaîne de chiffres (tirets ou signes plus optionnels) et mode validate. La réponse inclut valid, check_digit, expected_check_digit et payload (les neuf chiffres Luhn).

L'outil de chiffre de contrôle du personnummer est-il gratuit ?

L'outil navigateur est gratuit et s'exécute localement. Les appels API utilisent le solde KIT prépayé au prix de base publié $0.002 ; l'entrée invalide n'est jamais facturée.

Consulter la documentation complète du KIT →