Lettre de contrôle DNI/NIF espagnol
Saisissez les huit chiffres d'un DNI espagnol et obtenez sa lettre de contrôle : 12345678 laisse un reste de 14 divisé par 23, donc la lettre est Z et le numéro complet 12345678Z. Collez un DNI, NIF ou NIE complet pour le vérifier. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Dni
- 12345678
- Entrée
- 12345678
- Type
- dni
- Nombre
- 12345678
- Lettre
- Z
Les numéros d'identité nationale espagnols (DNI) et les identifiants fiscaux personnels (NIF) partagent un seul contrôle public : huit chiffres suivis d'une lettre de contrôle tirée d'une table fixe de vingt-trois caractères. Résidents, expatriés qui remplissent des formulaires, outils de paie et parcours KYC ont constamment besoin soit de retrouver la bonne lettre à partir du corps numérique, soit de confirmer qu'un identifiant complet saisi respecte la règle officielle. Ce calculateur de lettre DNI/NIF espagnol accepte un corps de huit chiffres — ou un DNI complet de neuf caractères avec lettre —, applique le mappage modulo vingt-trois de l'Agencia Tributaria et renvoie la lettre de contrôle, l'identifiant complet et un indicateur valid clair lorsqu'une lettre a été fournie. Les identifiants NIE commençant par X, Y ou Z utilisent la même table après la substitution standard des chiffres. Les espaces et tirets sont retirés afin que le collage depuis des documents fonctionne encore.
Comment la lettre de contrôle du DNI espagnol est calculée
Tout DNI espagnol de personne physique comporte huit chiffres décimaux plus un caractère alphabétique de contrôle. Les chiffres forment un entier N entre zéro et quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf ; les zéros de tête sont significatifs et conservés dans le corps affiché, de sorte qu'un document imprimé comme zéro zéro un deux trois quatre cinq six reste le nombre cent vingt-trois mille quatre cent cinquante-six pour l'arithmétique. La lettre de contrôle n'est pas un choix libre du citoyen : elle est entièrement déterminée par N.
Calculez le reste de N divisé par vingt-trois, puis cherchez ce reste dans la table officielle ordonnée de vingt-trois lettres : T R W A G M Y F P D X B N J Z S Q V H L C K E. Le reste zéro correspond à T, un à R, quatorze à Z, et ainsi de suite jusqu'à vingt-deux qui donne E. Les lettres I, Ñ, O et U n'apparaissent jamais dans cette table, choix délibéré pour éviter la confusion visuelle avec les chiffres et l'orthographe espagnole.
La même règle modulaire est le contrôle du NIF personnel sur les formulaires fiscaux : pour les résidents, le NIF est simplement le DNI avec sa lettre. Les numéros NIE de résidents étrangers commencent par X, Y ou Z suivis de sept chiffres et d'une lettre ; avant le modulo, X est remplacé par zéro, Y par un et Z par deux afin que le moteur travaille toujours sur un entier de huit chiffres.
Où vérifier la lettre du DNI évite des erreurs
Les formulaires d'onboarding et KYC pour clients espagnols demandent souvent de saisir un DNI ou un NIF et ont besoin d'une vérification instantanée côté client avant une revue back-office plus lente. Les imports de paie et RH reçoivent des identifiants employés depuis des tableurs où une seule lettre erronée ferait rejeter un lot entier ; un oracle déterministe qui renvoie la lettre attendue et valid permet de signaler les lignes sans appeler les portails gouvernementaux.
Les sites éducatifs qui se positionnent sur des requêtes comme calculateur lettre dni espagnol ou lettre de contrôle dni nif ont besoin d'un outil gratuit en direct dont le chemin navigateur correspond à l'automatisation pour que les captures de tutoriel restent exactes. Expatriés et résidents qui retrouvent un document usé ne se souviennent parfois que des huit chiffres et ont besoin de la lettre pour des rendez-vous en ligne, des déclarations fiscales ou des contrats mobiles.
Comme l'implémentation est du parse pur de niveau A, chaque appel réussi reste dans le modèle de coût analytique sans jetons de modèle ni réseau sortant.
Cas d’usage
Précontrôles de formulaires et KYC
Validez la lettre d'un DNI ou NIF espagnol saisi avant l'envoi, pour que l'utilisateur corrige les fautes de frappe sans aller-retour serveur vers des systèmes gouvernementaux.
Retrouver la lettre de contrôle à partir des chiffres
Calculez la lettre officielle à partir d'un corps de huit chiffres lorsque le document est usé, partiellement lisible ou stocké sans la lettre.
Imports par lots de paie et CRM
Évaluez des lignes d'identifiants espagnols dans des scripts : recalculez la lettre, fixez valid et isolez les écarts avant qu'ils n'atteignent les systèmes RH.
Questions fréquentes
Comment calcule-t-on la lettre de contrôle du DNI espagnol ?
Prenez le corps de huit chiffres comme entier, calculez ce nombre modulo vingt-trois et choisissez la lettre à cet index dans la table officielle TRWAGMYFPDXBNJZSQVHLCKE. Par exemple, 12345678 modulo 23 vaut 14, ce qui correspond à Z.
Quelle est la différence entre DNI et NIF ici ?
Pour les personnes physiques, le NIF personnel est le DNI y compris sa lettre de contrôle. Cet outil calcule et vérifie cette lettre partagée. Les numéros CIF d'entreprises utilisent un autre schéma et sortent de ce calculateur.
Les numéros NIE sont-ils pris en charge ?
Oui. Les formes NIE X, Y ou Z plus sept chiffres (lettre optionnelle) utilisent la même table après avoir mappé X vers 0, Y vers 1 et Z vers 2.
Que se passe-t-il si la lettre est incorrecte ?
Lorsque vous envoyez un identifiant complet, la réponse inclut toujours la lettre attendue et la chaîne full, et valid vaut false si la lettre fournie ne correspond pas.
Pourquoi un DNI ne finit-il jamais par I, Ñ, O ou U ?
Ces lettres ont été écartées exprès de la table des 23 lettres de contrôle, pour éviter toute confusion avec des chiffres ou avec l'orthographe espagnole. Un DNI qui se termine par l'une d'elles ne peut pas être correct.
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/dni-spain \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dni":"12345678"}'const res = await fetch("https://api.kit.forhosting.com/enc/dni-spain", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dni": "12345678"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/dni-spain",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dni": "12345678"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/dni-spain", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dni":"12345678"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dni":"12345678"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/dni-spain", 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
{
"dni": "12345678"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.dni_spain",
"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
Une entrée mal formée échoue avec invalid_input au lieu d'inventer une lettre.
Contrat d'entrée, forme de la réponse et modes de validation
La valeur peut n'être qu'un corps de huit chiffres ; dans ce cas la capacité s'exécute en mode compute : elle renvoie la lettre de contrôle, l'identifiant complet, le reste servant d'index de table, kind égal à dni, mode égal à compute et valid à true car aucune lettre conflictuelle n'a été fournie. Les corps NIE de la forme lettre X, Y ou Z plus sept chiffres, avec ou sans lettre de contrôle finale, suivent les deux mêmes modes avec kind nie. Espaces, points, tirets, underscores et barres sont retirés avant l'analyse pour que les numéros copiés depuis des PDF ou documents espagnols avec séparateurs se parsent encore. En cas de succès le corps inclut aussi la chaîne fixe de la table pour que les clients affichent le mappage complet à côté de la réponse sans coder en dur une seconde copie. Envoyez un corps JSON avec un champ chaîne obligatoire nommé dni. Les alias text, input, number, nif, value et s sont acceptés afin que clients légers et zones de texte génériques réutilisent le même endpoint sans renommer les champs. La valeur peut aussi être huit chiffres plus une lettre, par exemple un deux trois quatre cinq six sept huit Z ; ce chemin est le mode validate : le moteur recalcule la lettre attendue, la compare à la lettre fournie après mise en majuscules, fixe valid à true ou false et renvoie provided_letter pour que les interfaces surlignent un caractère mal saisi sans deviner. Chaînes vides, objets non chaîne, mauvais nombres de chiffres, lettres hors de la table officielle et motifs qui ne sont ni DNI ni NIE lèvent invalid_input avec un message qui nomme le problème ; ces échecs ne sont pas facturés. Les appels API réussis coûtent le prix de base publié de $0.002 par élément ; l'outil dans le navigateur reste gratuit pour les contrôles interactifs.
Où une API de lettre DNI apporte de la valeur
Les développeurs de suites fiscales multi-pays peuvent appeler cet endpoint spécialisé lorsque le pays est l'Espagne et qu'ils veulent la lettre elle-même, pas seulement un booléen, tout en gardant un vérificateur de format multi-pays pour les autres juridictions.
Questions techniques
Combien coûte le calculateur de lettre DNI/NIF espagnol ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.