Dans cet article
Qu'est-ce que la validation de carte bancaire ?
La validation de carte bancaire est le processus de vérification de la validité structurelle d'un numéro de carte avant de tenter une transaction. Cela inclut la vérification du format du numéro, l'application de l'algorithme de somme de contrôle de Luhn et la détection du réseau de carte (Visa, Mastercard, Amex, etc.) à partir des premiers chiffres.
La validation n'est pas la même chose que l'autorisation. Un numéro de carte valide signifie que le format et la somme de contrôle sont corrects — cela ne confirme pas que la carte existe, qu'elle dispose de fonds ou qu'elle appartient à la personne qui l'utilise. L'autorisation réelle nécessite de contacter l'émetteur de la carte via le réseau de paiement.
Comment fonctionne l'algorithme de Luhn
L'algorithme de Luhn (également appelé algorithme modulo 10) est une formule de somme de contrôle simple inventée par Hans Peter Luhn en 1954. Il détecte les erreurs accidentelles dans les numéros de carte — chiffres transposés, erreurs sur un seul chiffre et la plupart des fautes de frappe courantes. Voici comment il fonctionne étape par étape.
- En partant du chiffre le plus à droite (chiffre de contrôle), doublez un chiffre sur deux en allant vers la gauche
- Si le doublement produit un nombre supérieur à 9, soustrayez 9 du résultat (par exemple, 8 x 2 = 16, puis 16 - 9 = 7)
- Additionnez tous les chiffres — à la fois ceux doublés/ajustés et ceux inchangés
- Si le total est divisible par 10 (modulo 10 égal à 0), le numéro est valide selon Luhn
Par exemple, le numéro 4532015112830366 : après application de l'algorithme, la somme des chiffres est 40, qui est divisible par 10, donc il passe le contrôle de Luhn. Cet algorithme détecte environ 95 % des erreurs sur un seul chiffre et toutes les erreurs de transposition de chiffres adjacents.
Essayez gratuitement — sans inscription
Valider un numéro de carte bancaire →Détection du type de carte par BIN
Le numéro d'identification bancaire (BIN) — les 6 à 8 premiers chiffres d'un numéro de carte — identifie le réseau de carte et la banque émettrice. Chaque réseau possède des préfixes distincts et des exigences de longueur.
- Visa — commence par 4, généralement 16 chiffres (certaines anciennes cartes en ont 13)
- Mastercard — commence par 51-55 ou 2221-2720, toujours 16 chiffres
- American Express — commence par 34 ou 37, toujours 15 chiffres
- Discover — commence par 6011, 65 ou 644-649, toujours 16 chiffres
Cas d'utilisation courants
La validation côté client des cartes bancaires sert plusieurs objectifs pratiques dans les applications web et les processus métier.
- Paiement e-commerce — valider le format de la carte avant de l'envoyer au processeur de paiement pour réduire les transactions échouées et les appels API
- UX du formulaire de paiement — afficher l'icône du type de carte (Visa, Mastercard, etc.) en temps réel pendant la saisie et signaler immédiatement les erreurs
- Prévention de la fraude — détecter les numéros manifestement invalides avant qu'ils n'atteignent votre passerelle de paiement, réduisant les frais de traitement pour les transactions refusées
- Génération de cartes de test — les développeurs utilisent des numéros de test valides selon Luhn (comme 4111 1111 1111 1111 pour Visa) pour tester les flux de paiement sans cartes réelles
Considérations de sécurité
La validation de carte bancaire est une vérification de format, pas une mesure de sécurité. Comprendre ses limites est essentiel pour construire des systèmes de paiement sécurisés.
- La validation côté client détecte les fautes de frappe mais ne peut pas détecter les cartes volées ou annulées — traitez toujours via une passerelle de paiement conforme PCI DSS
- Ne stockez jamais les numéros de carte complets — utilisez les services de tokenisation de votre fournisseur de paiement (Stripe, Braintree, Adyen) pour remplacer les données de carte par des jetons sécurisés
- La conformité PCI DSS exige que les données des titulaires de carte ne touchent jamais vos serveurs — utilisez des champs de paiement hébergés ou des flux de paiement par redirection
Questions fréquemment posées
L'algorithme de Luhn peut-il produire des faux positifs ?
Oui. L'algorithme de Luhn ne valide que la somme de contrôle — il confirme que le numéro est mathématiquement cohérent, pas qu'une carte réelle existe avec ce numéro. Vous pouvez générer une infinité de numéros valides selon Luhn qui ne correspondent à aucune carte émise. C'est pourquoi la validation de Luhn doit toujours être suivie d'une autorisation réelle auprès du réseau de carte.
Les numéros de cartes virtuelles suivent-ils les mêmes règles ?
Oui. Les numéros de cartes virtuelles générés par les banques et les services comme Apple Pay, Google Pay ou Privacy.com suivent les mêmes règles de préfixe BIN et de somme de contrôle de Luhn que les cartes physiques. Ce sont des numéros de carte valides émis par les mêmes réseaux — la seule différence est qu'ils peuvent être temporaires, à usage unique ou limités à des commerçants spécifiques.
Quels numéros de carte de test puis-je utiliser pour le développement ?
Les processeurs de paiement fournissent des numéros de test spécifiques : Visa 4111 1111 1111 1111, Mastercard 5500 0000 0000 0004, Amex 3782 822463 10005, Discover 6011 1111 1111 1117. Ceux-ci passent la validation de Luhn et sont reconnus par les environnements de test/sandbox. N'utilisez jamais de vrais numéros de carte pour les tests — même en développement, utilisez uniquement les numéros de test officiels de votre fournisseur de paiement.