Calcul du chiffre de contrôle EAN-13, UPC-A et Code 128
Le chiffre de contrôle d’un code-barres est une protection arithmétique simple qui aide les lecteurs et les catalogues à repérer les fautes de saisie.
Lancer gratuitement
Indiquez les données numériques, choisissez EAN-13, UPC-A ou Code 128 Mod-103, et cette calculatrice renvoie la valeur requise. Elle vérifie la longueur avant le calcul, préserve les zéros initiaux et fonctionne de façon déterministe sans consulter de registre. Utilisez-la pour préparer des fiches produit, des étiquettes, des jeux d’essai ou des chaînes d’importation automatisées.
Saisissez les données, pas un code-barres déjà complet
Commencez par les chiffres qui portent les données et omettez le chiffre de contrôle que vous souhaitez calculer. Pour EAN-13, saisissez exactement douze chiffres de données : le résultat fournit le treizième et renvoie également le code-barres complet à treize chiffres. Pour UPC-A, saisissez-en exactement onze afin d’obtenir le douzième. Lors d’un appel API, conservez la valeur sous forme de texte pour que tout zéro initial reste présent. La calculatrice refuse les espaces, signes, points décimaux et autres caractères non numériques, car un nettoyage silencieux pourrait masquer une faute de transcription. Elle refuse aussi une charge dont le nombre de chiffres ne correspond pas à la symbologie choisie. Ce contrat explicite est pratique lorsqu’une colonne de tableur ou un flux produit mélange plusieurs formats : sélectionnez la norme attendue au lieu de la déduire de l’entrée. Le calcul confirme uniquement la cohérence mathématique. Il n’attribue aucun préfixe d’entreprise, ne vérifie aucun propriétaire et ne prouve pas qu’un numéro correspond à un produit enregistré.
Calcul des chiffres EAN-13 et UPC-A
EAN-13 et UPC-A emploient la même pondération modulo dix. En partant du chiffre de données le plus à droite vers la gauche, la calculatrice multiplie les positions alternées par trois et un, additionne les produits, puis choisit le chiffre qui porte le total au multiple de dix suivant. Si la somme est déjà divisible par dix, le chiffre de contrôle vaut zéro. Les appellations restent importantes, car les longueurs requises diffèrent : EAN-13 comporte douze chiffres utiles avant le contrôle, tandis qu’UPC-A en comporte onze. Un chiffre correct détecte toute substitution d’un seul chiffre et de nombreuses inversions courantes, ce qui sécurise la saisie et la lecture, sans constituer pour autant une signature cryptographique. Plusieurs modifications coordonnées peuvent parfois conserver le même résultat. Considérez ce contrôle comme une vérification structurelle rapide, puis appliquez les règles métier propres à votre catalogue. Puisque l’opération repose uniquement sur une arithmétique entière fixe, une entrée et une symbologie données produisent toujours la même sortie dans le navigateur et via l’API.
Traitement du Code 128 Mod-103 numérique
Pour Code 128 Mod-103, cette capacité utilise le jeu C, représentation compacte conçue pour des données numériques groupées par paires. Saisissez un nombre pair de deux à quatre-vingt-dix-huit chiffres. Chaque paire devient un mot Code 128 dont la valeur va de zéro à quatre-vingt-dix-neuf. La somme de contrôle commence par la valeur Start C 105, puis ajoute chaque mot de données multiplié par sa position à partir de un. Le reste de cette somme modulo 103 donne la valeur renvoyée. Celle-ci peut occuper un, deux ou trois caractères décimaux dans la réponse JSON, mais elle représente un seul mot de contrôle Code 128, et non des chiffres imprimables à ajouter au texte initial. Un générateur de barres doit encoder ce mot, puis ajouter le motif d’arrêt. Cette calculatrice ne choisit pas entre les jeux A, B et C et n’optimise pas leurs transitions ; la restriction aux chiffres rend l’hypothèse d’encodage explicite et reproductible. Utilisez un encodeur complet en présence de lettres, de ponctuation ou d’un dernier chiffre isolé nécessitant un changement de jeu.
Cas d’usage
Préparer des étiquettes de vente
Calculez le dernier chiffre EAN-13 ou UPC-A avant d’envoyer les numéros approuvés au logiciel d’étiquetage ou de génération des barres.
Tester une chaîne d’importation
Produisez les valeurs attendues pour vos essais de flux produit et refusez les lignes dont la longueur ne correspond pas à la norme déclarée.
Créer des essais Code 128 numériques
Obtenez le mot Mod-103 du jeu C pour tester lecteurs, encodeurs, étiquettes d’entrepôt ou intégrations.
Questions fréquentes
Faut-il inclure le chiffre de contrôle existant ?
Non. Saisissez douze chiffres pour EAN-13, onze pour UPC-A, ou la charge numérique paire de Code 128.
Pourquoi envoyer le numéro sous forme de texte ?
Le texte préserve exactement les zéros initiaux. Une valeur numérique JSON peut les perdre et modifier la longueur requise.
Un bon résultat prouve-t-il que le produit est enregistré ?
Non. Il prouve seulement que la valeur suit la règle arithmétique choisie ; aucun registre de produits ou d’entreprises n’est consulté.
Pourquoi Code 128 exige-t-il un nombre pair de chiffres ?
Cette capacité utilise le jeu C, qui encode les nombres par paires. Un contenu mixte ou impair nécessite un encodeur complet.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. Le même calcul déterministe peut aussi être exécuté gratuitement dans le navigateur.
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/web/barcode-check-digit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"400638133393","symbology":"ean13"}'const res = await fetch("https://api.kit.forhosting.com/web/barcode-check-digit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "400638133393",
"symbology": "ean13"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/barcode-check-digit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "400638133393",
"symbology": "ean13"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/barcode-check-digit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"400638133393","symbology":"ean13"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"400638133393","symbology":"ean13"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/barcode-check-digit", 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": "400638133393",
"symbology": "ean13"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.barcode_check_digit",
"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.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |