Mis à jour le 5 min de lecture Par Namso Gen
CVV, CVC, CID et CVV2 : ce que signifie vraiment le code de sécurité

CVV, CVC, CID et CVV2 : ce que signifie vraiment le code de sécurité

Peu de sujets dans le paiement créent plus de confusion que le code à trois chiffres au dos d'une carte. Est-ce CVV, CVC, CVV2 ou CID ? Se trouve-t-il au recto pour Amex ? Pouvez-vous le stocker ? Cet article clarifie la terminologie et les règles qui comptent pour les développeurs.

Plusieurs noms, une seule idée

Le code de sécurité imprimé est un nombre court qui n'est pas encodé dans la piste magnétique ni dans la puce EMV. Comme le skimming en carte présente ne le capture pas, le demander montre que la personne qui paie a (ou a vu) la carte physique, ce qui le rend précieux pour les transactions carte absente (CNP).

Terme Signification Utilisé par Longueur Position
CVV2 Card Verification Value 2 Visa 3 chiffres Verso
CVC2 Card Verification Code 2 Mastercard 3 chiffres Verso
CID Card Identification Number American Express 4 chiffres Recto
CID Card Identification Discover 3 chiffres Verso
CAV2 Card Authentication Value 2 JCB 3 chiffres Verso
CVV1 / CVC1 Card Verification Value / Code Visa / Mastercard — Encodé dans la piste magnétique, non imprimé

CVV1 et CVV2 (ou CVC1 et CVC2) sont des valeurs différentes. CVV1/CVC1 est encodé dans la piste magnétique et vérifié lors des transactions carte présente ; CVV2/CVC2 est calculé séparément et imprimé sur la carte pour les paiements carte absente. La puce porte encore une autre valeur (iCVV). Les formulaires de paiement ne recueillent jamais que le code imprimé, et au quotidien les développeurs utilisent « CVV » comme nom générique de ce champ, quel que soit le réseau de la carte.

Les deux points qui comptent vraiment dans le code :

  1. Amex utilise 4 chiffres au recto — tout champ de saisie qui impose 3 chiffres fera échouer les tests Amex.
  2. Le code est une donnée d'authentification sensible (SAD) au sens de PCI DSS, soumise à des règles plus strictes que le numéro de carte lui-même.
Interactif

Où se trouve le code de sécurité ?

Choisissez un réseau pour voir où son code est imprimé et sa longueur, puis testez un champ de saisie.

•••• 4242 4242 4242 4242 Visa
•••
Nom
CVV2
Chiffres
3
Position
Verso

Les règles PCI DSS que vous ne pouvez pas ignorer

Le CVV est classé comme donnée d'authentification sensible. Selon PCI DSS :

  • Vous pouvez l'utiliser pour traiter une transaction.
  • Vous ne pouvez pas le conserver une fois la transaction autorisée — ni dans les logs, ni dans une base de données, ni dans un événement analytics, ni dans une capture d'écran de support — même chiffré (PCI DSS v4.0, exigence 3.3.1).
  • Si vous le conservez brièvement avant l'autorisation, il doit être protégé par une cryptographie robuste (exigence 3.3.2).
  • Il ne peut jamais être stocké pour les cartes enregistrées ou les paiements récurrents. Seuls les émetteurs de cartes bénéficient d'une exception limitée.

En pratique, cela signifie :

  • Ne journalisez jamais de payloads de requête contenant cvv, cvc, cid ou security_code.
  • Marquez le champ comme sensible dans vos outils d'observabilité et supprimez-le en périphérie.
  • Quand un fournisseur renvoie un résultat de vérification, stockez le résultat (par exemple le cvc_check de Stripe : pass, fail, unavailable ou unchecked), jamais la valeur elle-même.
  • Gardez le champ CVV hors de votre propre API si le navigateur peut l'envoyer directement au point de terminaison de tokenisation de la passerelle.
  • Ne réaffichez jamais la valeur à l'utilisateur après l'envoi.

Comment se comportent les contrôles CVV en pratique

Un contrôle CVV est un signal d'autorisation distinct, pas une barrière stricte. Les émetteurs et les passerelles gèrent différemment une non-concordance :

  • Certains refusent purement et simplement la transaction.
  • Certains l'approuvent et renvoient un code CVC mismatch, laissant le marchand décider.
  • Certains sont configurés pour ignorer complètement le contrôle dans certaines régions.

Vous pouvez le tester délibérément : le numéro 4000 0000 0000 0127 de Stripe renvoie un refus incorrect_cvc chaque fois qu'un CVC est envoyé, ce qui est idéal pour exercer votre gestion d'erreur sans toucher à une vraie carte. Voir la liste complète des cartes de test pour en savoir plus.

Générer des CVV de test

Pour le travail en sandbox, Stripe et Braintree acceptent 3 chiffres quelconques (4 pour Amex) ; certaines passerelles exigent des valeurs précises, comme le 737 d'Adyen. Notre générateur de cartes peut attacher un CVV aléatoire ou fixe à chaque numéro généré et produire le résultat dans un format séparé par des barres verticales, facile à parser en fixtures :

4242424242424242|12|2030|123

Si vous devez générer des numéros pour une plage d'émetteur précise, le générateur avancé accepte les motifs avec jokers, et le vérificateur de BIN vous indique à quel réseau appartient un préfixe.

Résumé

  • CVV2, CVC2, CID et CAV2 sont les noms propres à chaque réseau d'un même code de sécurité imprimé.
  • Amex est l'exception : 4 chiffres, imprimés au recto.
  • Ne stockez jamais le code après l'autorisation — PCI DSS le traite comme une donnée d'authentification sensible.
  • Traitez une non-concordance de CVV comme une issue configurable et testez à la fois le refus et le soft-fail.

Articles connexes