Aller au contenu
Tutorial

Validez les cartes de crédit avec le chèque Luhn en un seul appel API

| 5 min read

Détectez les fautes de frappe et les contrefaçons de numéros de carte avant qu'elles n'atteignent votre processeur de paiement. One POST renvoie la validité Luhn, la marque (Visa, Mastercard, Amex) et le crédit ou le débit. Niveau gratuit, pas de SDK.

Payment cards representing credit card validation at checkout
Photo by CardMapr.nl on Unsplash

Un numéro de carte mal saisi vous coûte deux fois : l'utilisateur voit un déclin déroutant, et votre processeur facture des frais pour l’autorisation échouée. Vous pouvez en attraper la plupart avant qu'ils ne quittent le pays. navigateur. L'algorithme de Luhn est une somme de contrôle à laquelle chaque numéro de carte réel satisfait, donc un nombre qui En cas d'échec, il est garanti invalide et n'a jamais besoin d'atteindre Stripe ou Adyen.

Ce point de terminaison exécute le contrôle Luhn et détecte la marque de la carte en un seul POST. Voici l'appel complet.

La demande

Envoyez le numéro sous forme de chaîne. Les espaces et les tirets sont automatiquement supprimés. 4111 1111 1111 1111 et 4111-1111-1111-1111 les deux fonctionnent. La réponse vous dit trois choses :

  • valid: réussit ou non la somme de contrôle de Luhn.
  • brand: Visa, Mastercard, Amex, Discover, JCB, Diners Club ou UnionPay.
  • type: crédit ou débit, à partir du numéro d'identification de l'émetteur.

Valider à la caisse dans Node.js

Appelez le point final avant d’envoyer quoi que ce soit à votre processeur. Un contrôle Luhn échoué renvoie un message clair erreur que vous pouvez montrer à l'utilisateur, et vous évitez les frais d'autorisation qu'un faux numéro aurait coûté :

Bloquer les mauvaises entrées dans un formulaire React

React Hook Form exécute un validateur asynchrone avant la soumission, de sorte qu'un numéro invalide ne déclenche jamais le commande. Câblez l'appel directement dans register:

Gardez votre portée PCI petite. La conception la moins risquée tokenise la carte dans le navigateur via votre processeur et valide uniquement les premiers chiffres du logo de la marque. Exécutez un plein validation côté serveur lorsque vous en avez réellement besoin, pas à chaque frappe, et n'enregistrez jamais le numéro complet.

Ce qu'il fait et ne vous dit pas

La validation Luhn est un filtre, pas une garantie. Un numéro de passage est bien formé ; ça ne prouve pas la carte existe ou dispose de fonds. Seule une autorisation via votre processeur le confirme. Utiliser ce point de terminaison pour rejeter les déchets évidents à moindre coût et piloter l'interface utilisateur de la marque de la carte, puis laissez votre Le processeur gère la charge réelle.

Le validateur de carte de crédit est l'un des quelque 200 points de terminaison à usage unique sur botoi, aux côtés de IBAN et TVA validation pour le reste de votre flux de facturation. Tous se trouvent derrière une clé API avec 5 demande/min gratuite. Essayez l'appel dans le aire de jeux interactive ou connectez le Serveur MCP pour valider les cartes de Claude.

FAQ

Que prouve réellement le contrôle Luhn ?
L'algorithme de Luhn est une somme de contrôle qui détecte les fautes de frappe et les contrefaçons générées aléatoirement. Un numéro qui échoue à Luhn est garanti invalide, vous pouvez donc le rejeter avant qu'il n'atteigne votre processeur de paiement. Un numéro qui passe par Luhn est bien formé, mais cela ne signifie pas que la carte existe ou dispose de fonds. Seule une autorisation via votre processeur le confirme. Utilisez Luhn pour filtrer les déchets évidents à moindre coût, puis laissez Stripe ou Adyen s'occuper de la vraie charge.
L'API stocke-t-elle ou enregistre-t-elle les numéros de carte que j'envoie ?
Non. Le numéro est validé côté serveur et n’est jamais stocké ou enregistré. Cela dit, le modèle intelligent consiste à ne jamais envoyer de PAN complet sur le réseau. Exécutez la détection de marque sur les 6 à 8 premiers chiffres côté client pour l'interface utilisateur et réservez un appel de validation complet pour les cas où vous en avez réellement besoin côté serveur, loin de votre portée PCI.
Quelles marques de cartes détecte-t-il ?
Visa, Mastercard, American Express, Discover, JCB, Diners Club et UnionPay, en fonction du numéro d'identification de l'émetteur (les premiers chiffres). La réponse vous indique également si le numéro ressemble à un produit de crédit ou de débit, ce qui est utile pour la logique de routage ou de surtaxe lorsque cette distinction est importante.
Puis-je afficher le logo de la marque de la carte au fur et à mesure que l'utilisateur tape ?
Oui, et c’est l’utilisation la plus rentable. Détectez la marque à partir des premiers chiffres et échangez le logo correspondant avant que l'utilisateur ait fini de taper. Il rassure l'utilisateur sur le fonctionnement du formulaire et réduit le "ma carte est-elle acceptée ?" tickets d'assistance. Annulez l'appel ou exécutez la détection de marque sur le préfixe localement et réservez la validation complète pour la soumission.
L'exécution d'un contrôle Luhn est-elle suffisante pour la conformité PCI ?
Non. Un contrôle Luhn est une validation d’entrée, pas un contrôle de conformité. Si vos serveurs touchent un numéro de carte complet, vous êtes dans la portée PCI quelle que soit la validation. La conception la plus basse consiste à tokeniser via votre processeur dans le navigateur et à valider uniquement le préfixe pour l'interface utilisateur. Cette API aide à la couche de validation ; cela ne change pas vos obligations en matière de portée.

Commencez a construire avec botoi

150+ endpoints API pour la recherche, le traitement de texte, la generation d'images et les utilitaires pour developpeurs. Offre gratuite, sans carte bancaire.