Chiffre de contrôle IMEI
Les 14 chiffres 49015420323751 reçoivent le chiffre de contrôle 8, ce qui donne l'IMEI complet 490154203237518. Complétez le numéro d'un appareil pour une étiquette ou une base de données, ou vérifiez l'IMEI à 15 chiffres d'un client avant de l'enregistrer. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Nombre
- 49015420323751
- Mode de calcul
- Compute
- Entrée
- 49015420323751
- Chiffre de contrôle
- 8
- Avec chiffre de contrôle
- 490154203237518
Chaque téléphone mobile et de nombreux modules cellulaires portent une identité internationale d’équipement mobile de quinze chiffres. Les quatorze premiers identifient le code d’allocation de type et le numéro de série ; le quinzième est un chiffre de contrôle Luhn qui détecte les erreurs d’un seul chiffre et la plupart des transpositions adjacentes avant qu’un numéro soit stocké, imprimé sur une boîte ou envoyé à un portail opérateur. Cette capacité met en œuvre cette règle Luhn standard pour l’IMEI uniquement : le mode compute accepte exactement quatorze chiffres de charge utile et renvoie le chiffre de contrôle plus la chaîne complète de quinze chiffres ; le mode validate accepte un IMEI complet de quinze chiffres et indique si le chiffre final correspond à la valeur attendue recalculée.
Comment le chiffre de contrôle Luhn de l’IMEI est calculé
Un IMEI compte toujours quinze chiffres décimaux selon le plan de numérotation 3GPP utilisé pour les équipements GSM, UMTS, LTE et 5G. Les huit premiers forment le code d’allocation de type (TAC), les six suivants sont un numéro de série constructeur au sein de ce TAC, et le quinzième est le chiffre de contrôle.
Pour le calculer, prenez la charge de quatorze chiffres et appliquez l’algorithme de Luhn depuis la droite : doublez chaque second chiffre en commençant par le chiffre de charge le plus à droite (car ce chiffre occupe la position deux de la chaîne complète de quinze lorsque le contrôle est en position un depuis la droite). Lorsque le double d’un chiffre est supérieur à neuf, soustrayez neuf (de façon équivalente, additionnez les dizaines et les unités du produit).
Additionnez les quatorze valeurs pondérées ; le chiffre de contrôle est (10 moins cette somme modulo 10) modulo 10 afin que le nombre complet de quinze chiffres ait une somme Luhn divisible par dix. La validation recalcule le chiffre attendu à partir des quatorze premiers caractères et le compare au quinzième, ce qui équivaut à une somme Luhn complète sur les quinze chiffres. L’algorithme est déterministe et local : aucun appel au registre TAC, aucune horloge, aucun aléa.
Cet outil ne décode pas le TAC en marques, ne gère pas les formats hexadécimaux MEID et ne prouve ni la propriété ni le statut de liste noire : il prouve seulement que la chaîne de chiffres est bien formée selon la règle Luhn IMEI.
Face aux validateurs Luhn génériques de cartes, l’intention de recherche ici est étroite : ceux qui ont besoin d’un calculateur de chiffre de contrôle IMEI pour des charges de quatorze chiffres ou d’un vérificateur d’IMEI mobile à quinze chiffres, non d’un outil de carte de paiement.
Contrat d’entrée, modes et comportement d’erreur
Envoyez un champ number qui ne contient que les caractères de zéro à neuf. Une mauvaise longueur est une erreur explicite qui nomme le mode et la longueur envoyée —quatorze pour compute, quinze pour validate— afin que les formulaires clients puissent afficher « il faut quatorze chiffres » sans deviner. Chaînes vides, number manquant et valeurs de mode invalides échouent avant toute somme Luhn et ne sont pas facturées.
Préférez compute lorsque vous créez ou complétez des numéros d’appareil pour étiquettes et bases de données ; préférez validate lorsque vous conditionnez une recherche, un échange ou une importation à un IMEI complet provenant d’un utilisateur, d’un fichier partenaire ou d’un scanner. Les tâches de validation qui rejettent une forme incorrecte ne sont pas facturées ; une chaîne bien formée de quinze chiffres qui a simplement le mauvais chiffre de contrôle renvoie valid false sans exception.
Où les chiffres de contrôle IMEI s’insèrent dans les flux réels
Les fabricants d’appareils et les ODM reçoivent des numéros de série internes de quatorze chiffres et doivent ajouter le chiffre de contrôle Luhn officiel avant d’imprimer l’IMEI sur la boîte, le tiroir SIM ou l’étiquette réglementaire. Les portails d’opérateurs et de MVNO valident les IMEI de quinze chiffres à l’activation afin qu’une seule transposition ne crée pas un appareil fantôme et un provisionnement échoué.
Les systèmes de gestion d’actifs et MDM parcourent chaque colonne IMEI d’un export CSV, appellent le mode validate et mettent en quarantaine les lignes où valid est false — capturant à la fois les éditions humaines et les bugs de générateurs. Ne traitez pas un IMEI qui passe le contrôle comme preuve que l’appareil est authentique, déverrouillé ou hors liste noire opérateur ; cela prouve seulement que le chiffre Luhn est cohérent avec la charge utile sous les poids standard de l’identité d’équipement mobile.
Cas d’usage
Auditer les colonnes IMEI des inventaires d’appareils
Validez par lots chaque IMEI de quinze chiffres dans un CSV MDM, ERP ou RMA et mettez en quarantaine les lignes dont le chiffre de contrôle ne correspond plus à la valeur attendue recalculée.
Questions fréquentes
Qu’est-ce qu’un chiffre de contrôle IMEI ?
C’est le quinzième chiffre d’un IMEI, calculé avec l’algorithme de Luhn sur les quatorze premiers chiffres, afin que les erreurs d’un seul chiffre à la saisie ou au scan soient en général détectées avant stockage ou impression.
Que se passe-t-il avec une mauvaise longueur, des lettres ou des tirets ?
Les tâches de validation en échec ne sont pas facturées.
L’outil de chiffre de contrôle IMEI est-il gratuit ?
L’outil navigateur est gratuit et s’exécute en local.
Comment le chiffre de contrôle IMEI est-il calculé ?
En partant de la droite, doublez un chiffre sur deux parmi les quatorze, en commençant par le plus à droite, et retirez neuf à tout résultat supérieur à neuf. Additionnez le tout : le chiffre de contrôle vaut dix moins le reste de la division par dix, et dix devient zéro.
Un IMEI valide signifie-t-il que le téléphone est enregistré ou débloqué ?
Non. Un chiffre de contrôle correct montre seulement que les quinze chiffres ont été saisis de façon cohérente. Aucune base de fabricants n'est consultée : cela ne dit rien sur l'enregistrement ou le déblocage de l'appareil.
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/imei \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"49015420323751"}'const res = await fetch("https://api.kit.forhosting.com/enc/imei", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "49015420323751"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/imei",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "49015420323751"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/imei", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"49015420323751"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"49015420323751"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/imei", 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": "49015420323751"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.imei",
"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
Les entrées non numériques et les mauvaises longueurs échouent avec invalid_input au lieu d’un nettoyage silencieux, afin que vous ne persistiez jamais un identifiant à demi nettoyé. La même arithmétique pure s’exécute gratuitement dans le navigateur et au prix API publié, sans consultation réseau de bases constructeurs et sans prétendre qu’une somme de contrôle valide signifie que l’appareil est enregistré ou déverrouillé.
Contrat d’entrée, modes et comportement d’erreur
Espaces, tirets, lettres et points décimaux sont rejetés comme entrée non numérique avec invalid_input afin qu’une valeur tronquée en silence n’atteigne jamais le stockage. Le mode compute est le défaut : le moteur exige exactement quatorze chiffres, renvoie check_digit comme chaîne d’un caractère et renvoie with_check comme l’IMEI de quinze chiffres que vous pouvez imprimer ou persister. Le mode validate exige exactement quinze chiffres ; la réponse indique valid true lorsque le chiffre final correspond à expected_check_digit recalculé, et inclut toujours payload (les quatorze premiers chiffres), check_digit, expected_check_digit et length quinze. Des alias tels que digits, imei et code sont acceptés pour le même champ de charge, afin que les intégrations qui parlent déjà d’« imei » n’aient pas besoin de renommer. Comme le chemin est purement parse sans horloge, source aléatoire ni réseau, le même corps JSON produit toujours le même résultat JSON sur l’outil navigateur gratuit et sur l’API à $0.002 par requête réussie.
Où les chiffres de contrôle IMEI s’insèrent dans les flux réels
Les ateliers de réparation et les bureaux RMA recalculent expected_check_digit lorsqu’un client lit le numéro au téléphone, capturant les fautes de frappe avant d’ouvrir un ticket contre le mauvais terminal.
Cas d'intégration
Compléter un numéro d’appareil de 14 chiffres pour les étiquettes
Appelez le mode compute avec la charge de quatorze chiffres, stockez with_check et imprimez l’IMEI de quinze chiffres sur emballages, tiroirs SIM ou étiquettes réglementaires.
Valider un IMEI saisi ou scanné à l’entrée
Lorsqu’un formulaire, un scanner ou un fichier partenaire envoie quinze chiffres, appelez le mode validate et bloquez la recherche si valid est false, en affichant expected_check_digit pour corriger une seule faute de frappe.
Questions techniques
Comment calculer un chiffre de contrôle IMEI avec cette API ?
Envoyez un POST avec number égal à exactement quatorze chiffres et mode compute (ou omettez mode). La réponse inclut check_digit et with_check (l’IMEI complet de quinze chiffres).
Comment valider un IMEI complet de quinze chiffres ?
Envoyez un POST avec la chaîne de quinze chiffres et mode validate. La réponse inclut valid, check_digit, expected_check_digit et payload (chiffres sans le dernier).