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.
Quatre noms, une seule idée
Le code de sécurité est un nombre court qui n'est pas encodé dans la piste magnétique ni dans la puce EMV. Son rôle est de prouver que la personne qui paie tient physiquement la carte, ce qui le rend précieux pour les transactions carte absente (CNP).
| Terme | Signification | Utilisé par | Longueur | Position |
|---|---|---|---|---|
| CVV | Card Verification Value | Visa | 3 chiffres | Verso |
| CVV2 | Card Verification Value 2 | Visa (carte absente) | 3 chiffres | Verso |
| CVC | Card Verification Code | Mastercard | 3 chiffres | Verso |
| CVC2 | Card Verification Code 2 | Mastercard (CNP) | 3 chiffres | Verso |
| CID | Card Identification Number | American Express | 4 chiffres | Recto |
| CVV / CAV2 | Card Authentication Value | JCB | 3 chiffres | Verso |
| CSC | Card Security Code | Discover | 3 chiffres | Verso |
La distinction entre CVV et CVV2 (ou CVC et CVC2) est historique : le suffixe « 2 » désigne l'usage de la même valeur en carte absente. Au quotidien, les développeurs utilisent « CVV » comme nom générique du champ, quel que soit le réseau de la carte.
Les deux points qui comptent vraiment dans le code :
- Amex utilise 4 chiffres au recto — tout champ de saisie qui impose 3 chiffres fera échouer les tests Amex.
- La valeur complète est une donnée de titulaire sensible, donc couverte par PCI DSS.
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 stocker après l'autorisation — 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.
- Vous ne pouvez pas le stocker même chiffré. L'interdiction est absolue.
- Vous ne devriez pas le réafficher à l'utilisateur après l'envoi.
En pratique, cela signifie :
- Ne journalisez jamais de payloads de requête contenant
cvv,cvc,cidousecurity_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 (
cvv_check: pass/fail/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.
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 toujours une réponse CVC incorrecte, 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, la plupart des passerelles acceptent 3 chiffres quelconques (4 pour Amex). 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é
- CVV, CVC, CID, CVV2 et CSC décrivent tous la même idée avec des noms propres à chaque réseau.
- 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.