Les numéros de carte semblent interchangeables au premier regard, mais leur format de numéro de carte bancaire n’est pas une forme unique répétée — la longueur change selon le réseau, les premiers chiffres portent un sens, et le chiffre final relève de l’arithmétique plutôt que d’une attribution. Savoir comment les pièces s’emboîtent est ce qui vous permet de distinguer un numéro bien formé d’un numéro seulement plausible, et cela explique la plupart des comportements de validation étranges que vous rencontrez dans les formulaires de paiement.
Les sections ci-dessous décomposent le numéro en ses parties, décrivent comment lire un numéro groupé tel qu’il est imprimé, et se terminent par les détails pratiques qui décident si votre gestion des entrées survit au contact de vrais utilisateurs.
Les trois parties d’un numéro de carte
Chaque numéro de carte est la concaténation de trois champs, écrits sans séparateur lorsqu’il est stocké :
- Le préfixe émetteur. Historiquement appelé numéro d’identification de banque et désormais désigné comme numéro d’identification de l’émetteur, ce bloc initial indique au système de routage à quel réseau la carte appartient et, dans la plupart des cas, quelle institution l’a émise. Sa largeur n’est pas fixe ; des formes plus courtes et plus longues sont en usage, et la longueur est enregistrée plutôt que devinée.
- Les chiffres de compte. C’est la partie que l’émetteur attribue. Sa seule exigence est d’être unique dans la plage de l’émetteur. Ce n’est pas un numéro de client que vous pouvez décoder, et deux chiffres de compte consécutifs n’ont aucune relation entre eux.
- Le chiffre de contrôle. Un chiffre calculé à partir de tous les autres avec l’algorithme de Luhn. Il existe pour attraper les fautes de frappe et rien d’autre.
Lus ensemble, le tableau est simple : le début du numéro indique d’où vient la carte, le milieu est une attribution arbitraire, et la fin est un garde-fou contre les fautes de frappe.
Pourquoi les numéros de carte ont-ils des longueurs différentes ?
La longueur n’a jamais été normalisée sur une valeur unique parce que la numérotation des cartes est issue de plusieurs schémas nationaux et sectoriels qui ont ensuite été harmonisés plutôt que réécrits. La norme internationale qui régit le format fixe une borne supérieure de dix-neuf chiffres et laisse la longueur exacte à chaque réseau et à chaque produit.
En pratique, vous rencontrez un petit ensemble de longueurs. Seize chiffres est la plus courante et celle que les gens imaginent en entendant le mot carte. Quinze chiffres est la norme pour American Express. Des formes à treize et quatorze chiffres existent aussi, surtout dans des produits anciens ou régionaux, et certains réseaux utilisent un agencement plus long pour des types de cartes particuliers.
La conséquence importante pour la validation est qu’une règle écrite comme exactement seize chiffres est fausse. Elle rejette de vraies cartes, et elle refuse aussi des données de test parfaitement valides. Une règle correcte accepte un intervalle, vérifie le préfixe par rapport aux attentes de ce réseau, et seulement ensuite exécute la somme de contrôle.
Que vous indique le premier chiffre ?
Le premier chiffre est un marqueur sectoriel plutôt qu’un nom de réseau, et la correspondance est publique. Il restreint le type d’émetteur auquel vous avez affaire avant que le reste du préfixe n’identifie le programme précis.
| Premier chiffre | Secteur d’activité |
|---|---|
| 1 et 2 | Compagnies aériennes |
| 3 | Voyage et divertissement |
| 4 et 5 | Banque et finance |
| 6 | Commerce et banque |
| 7 | Pétrole |
| 8 | Télécommunications |
| 9 | Attribution nationale |
Le premier chiffre seul n’identifie jamais un réseau. Les plages de cartes vivent à l’intérieur de ces secteurs : le chiffre quatre appartient au secteur bancaire, et une plage à l’intérieur de celui-ci est associée à un réseau, tandis qu’une autre plage du même secteur appartient à un autre. C’est pourquoi la détection de marque a besoin de plus d’un chiffre, et pourquoi un détecteur construit sur le seul premier caractère étiquettera mal une proportion surprenante d’entrées.
Comment lire un numéro de carte groupé ?
Sur une carte et dans la plupart des interfaces, les chiffres apparaissent par groupes, et le groupement suit le réseau plutôt qu’une règle universelle. Quatre groupes de quatre est l’agencement familier d’une carte à seize chiffres ; American Express est conventionnellement présenté comme quatre, six et cinq, en accord avec ses quinze chiffres. Certaines interfaces isolent le premier groupe de six pour rendre visible le préfixe émetteur, et d’autres laissent le numéro d’un seul tenant.
Pour un lecteur, le groupement est un aide-mémoire. Pour un développeur, c’est de la présentation uniquement, et cette distinction cause de vrais bugs : une entrée qui rejette un numéro collé parce que le collage contenait des espaces rejette le format dans lequel la carte elle-même est imprimée. Stockez des chiffres, affichez des groupes, et convertissez entre les deux aux extrémités.
Le formatage n’est pas la validation
Il est tentant de traiter une forme bien connue comme une preuve d’authenticité. Ce n’en est pas une. N’importe quel préfixe peut être combiné avec n’importe quels chiffres du milieu, et un chiffre final calculé pour correspondre, si bien qu’une chaîne qui ressemble exactement à une carte familière peut être entièrement synthétique.
Tout dans cet article décrit une structure. Cela ne dit rien de l’existence d’un compte, de l’activité d’une carte ou de l’approbation d’un paiement, car aucune de ces questions ne peut être tranchée en examinant les chiffres. Tous les numéros produits par le générateur de ce site se situent exactement dans cette catégorie : correctement formés, jamais émis.
Pour les développeurs : nettoyer les entrées sans perdre d’information
La vérité inconfortable à propos des champs de numéro de carte est que les utilisateurs les saisissent de manière imprévisible. Ils collent depuis un e-mail avec des espaces, ils incluent un caractère résiduel du champ précédent, ils tapent un tiret là où un espace devrait se trouver. Nettoyer cela est nécessaire ; le faire négligemment est la façon dont une entrée valide se retrouve détruite.
Une séquence viable ressemble à ceci. Supprimez les espaces aux extrémités. Retirez les caractères séparateurs que vous entendez tolérer plutôt que tous les non-chiffres, afin qu’une lettre produise une erreur claire au lieu d’être silencieusement supprimée. Conservez le résultat sous forme de chaîne pendant toute sa durée de vie, car un type numérique supprimera un zéro initial et changera le sens de la valeur. Comparez la longueur nettoyée à l’intervalle du réseau pour le préfixe détecté. Exécutez la somme de contrôle en dernier.
Décidez ensuite comment vous afficherez ce que vous avez reçu. Un champ qui se reformate au fil de la frappe est agréable sur un clavier d’ordinateur et peut être franchement hostile sur un téléphone, où le curseur saute et où la touche de suppression se comporte de façon inattendue. Si vous groupez les chiffres pendant la saisie, testez le cas d’une correction au milieu de la chaîne, pas seulement à la fin.
Gardez également les messages d’échec séparés. Trop court, caractères non pris en charge, préfixe inconnu et somme de contrôle échouée sont quatre problèmes différents, et un formulaire qui les signale tous par « numéro de carte invalide » rend le débogage lent pour l’utilisateur comme pour vous.
Vérifier un numéro dans l’outil de carte
Si vous avez besoin d’un numéro d’une forme précise — un réseau, une longueur, un préfixe — le générateur de numéros de carte les produit sans compte et vous laisse choisir explicitement le réseau ou laisser le choix aléatoire. Le mode de complétion est utile lorsque vous détenez déjà une partie d’une valeur et souhaitez que les chiffres inconnus soient complétés de manière cohérente avec le reste.
Deux pages associées vont plus loin. La comparaison des réseaux liste les plages publiées et les longueurs qui les accompagnent, et le parcours de validation transforme les conseils d’ordonnancement ci-dessus en une séquence concrète de contrôles.
Étapes suivantes
Auditez un formulaire existant par rapport à l’ordre décrit ici — longueur, puis caractères, puis préfixe, puis somme de contrôle — et confirmez que chaque échec produit son propre message. Générez ensuite un petit ensemble de numéros qui couvre délibérément plus d’une longueur, afin que la prochaine personne qui modifie la règle de validation ait de quoi tester.