Calcul et validation du chiffre de contrôle du NIF portugais
Ce calculateur du chiffre de contrôle du NIF portugais applique la somme de contrôle standard modulo onze du numéro d’identification fiscale portugais.
Lancer gratuitement
Saisissez les huit premiers chiffres pour calculer le neuvième, ou transmettez les neuf chiffres afin de vérifier si le chiffre fourni correspond au calcul. Le résultat est déterministe et immédiat, ce qui convient aux formulaires, importations, procédures comptables et validations par API. Les longueurs incorrectes, les caractères non numériques et les modes non pris en charge sont signalés clairement, sans nettoyage ni interprétation silencieuse.
Choisissez entre le calcul et la validation
Utilisez le mode de calcul lorsque vous possédez déjà la base à huit chiffres d’un NIF portugais et souhaitez obtenir son chiffre de contrôle final. La réponse comprend le chiffre calculé et la valeur complète à neuf chiffres, que vous pouvez intégrer directement à une validation ultérieure ou à un scénario de test. Utilisez le mode de validation lorsque la source contient déjà les neuf chiffres. La validation sépare les huit premiers du neuvième fourni, calcule la valeur attendue et indique si les deux concordent. Elle renvoie également les chiffres fourni et attendu, ce qui facilite le diagnostic d’un échec. Conservez l’entrée sous forme de chaîne plutôt que de nombre. Une chaîne préserve précisément chaque caractère, y compris un zéro initial, et empêche le formatage numérique d’un tableur ou d’un langage de programmation de modifier l’identifiant avant son évaluation. Le mode par défaut est la validation, mais vous devriez le préciser explicitement lorsqu’un processus peut recevoir les deux formats.
Comprenez le calcul modulo onze
L’algorithme traite les huit premiers chiffres de gauche à droite avec des coefficients décroissants allant de neuf à deux. Il multiplie le premier chiffre par neuf, le deuxième par huit, puis poursuit jusqu’à multiplier le huitième par deux. Les huit produits sont additionnés et le total est réduit modulo onze. Si le reste vaut zéro ou un, le chiffre de contrôle est zéro. Pour tout autre reste, le chiffre correspond à onze moins ce reste. La validation exécute strictement le même calcul sur les huit premières positions et compare le résultat à la neuvième. Cette capacité ne retire ni espaces, ni points, ni tirets, ni préfixes nationaux, ni libellés avant le calcul. Cette rigueur est volontaire : un nettoyage automatique pourrait donner une apparence fiable à des données mal formées et masquer une erreur antérieure de correspondance des champs. Envoyez uniquement des chiffres ASCII de zéro à neuf. Aucune requête réseau, valeur aléatoire, horloge, base de données ou conversion régionale n’intervient ; une entrée et un mode identiques produisent donc toujours la même sortie JSON.
Interprétez le résultat et ses limites
Un résultat de validation vrai signifie que le neuvième chiffre concorde avec la somme de contrôle modulo onze dérivée des huit précédents. Il s’agit d’un contrôle structurel utile pour repérer les fautes de saisie, les importations endommagées et les colonnes mal associées, mais il ne prouve pas que le numéro a été attribué, qu’il reste actif ou qu’il appartient à une personne ou une organisation donnée. Ces questions nécessitent un registre faisant autorité ou une procédure professionnelle adaptée. De même, ce calculateur vérifie délibérément la somme de contrôle sans imposer d’hypothèse sur les catégories éventuellement encodées dans le premier chiffre. Son périmètre reste ainsi précis et un numéro au contrôle valide n’est pas rejeté en raison d’une évolution externe des règles d’attribution. Dans un pipeline, distinguez une erreur d’entrée d’un résultat faux : l’erreur signale un type, une longueur, des caractères ou un mode incorrects ; faux indique qu’une valeur bien formée a été vérifiée sans concordance. Chaque requête API coûte $0.002, et le même noyau déterministe peut s’exécuter dans le navigateur.
Cas d’usage
Contrôlez un formulaire fiscal avant son envoi
Validez un NIF à neuf chiffres dès sa saisie et affichez un message correctif ciblé si son chiffre de contrôle ne concorde pas.
Auditez les dossiers clients importés
Validez les champs NIF après la migration d’un CSV ou d’un système afin de repérer troncatures, transpositions et erreurs d’association.
Créez des jeux d’essai déterministes
Calculez le neuvième chiffre d’une base de huit lors de la préparation de tests d’intégration pour la facturation ou l’inscription.
Questions fréquentes
Quelle entrée le mode de calcul exige-t-il ?
Exactement huit chiffres sous forme de chaîne. La réponse renvoie le chiffre de contrôle calculé et le NIF complet à neuf chiffres.
Quelle entrée le mode de validation exige-t-il ?
Exactement neuf chiffres sous forme de chaîne, avec le chiffre de contrôle en dernière position.
Un contrôle valide prouve-t-il l’attribution du NIF ?
Non. Il prouve seulement que le neuvième chiffre fourni correspond à la somme calculée à partir des huit premiers.
Puis-je inclure des espaces, des signes ou un préfixe national ?
Non. Envoyez uniquement des chiffres. Les caractères de mise en forme sont refusés afin de ne pas modifier silencieusement une source mal formée.
Comment le chiffre de contrôle est-il calculé ?
Les huit premiers chiffres sont pondérés de neuf à deux, additionnés puis réduits modulo onze ; un reste de zéro ou un donne zéro, sinon le reste est soustrait à onze.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. Vous pouvez aussi utiliser l’exécution dans le navigateur pour un calcul local rapide.
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/nif-portugal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"501964843"}'const res = await fetch("https://api.kit.forhosting.com/enc/nif-portugal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "501964843"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/nif-portugal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "501964843"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/nif-portugal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"501964843"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"501964843"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/nif-portugal", 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": "501964843"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.nif_portugal",
"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. |