CVV, CVC, CID und CVV2: Was der Sicherheitscode wirklich bedeutet
Kaum etwas im Zahlungsverkehr sorgt für mehr Verwirrung als der dreistellige Code auf der Rückseite einer Karte. Heißt er CVV, CVC, CVV2 oder CID? Steht er bei Amex auf der Vorderseite? Dürfen Sie ihn speichern? Dieser Artikel klärt die Begriffe und die Regeln, die für Entwickler wirklich relevant sind.
Viele Namen, eine Idee
Der aufgedruckte Sicherheitscode ist eine kurze Zahl, die nicht im Magnetstreifen oder im EMV-Chip gespeichert ist. Da Skimming im Kartenpräsenzgeschäft ihn nicht erfasst, zeigt seine Abfrage, dass die zahlende Person die physische Karte besitzt (oder gesehen hat), was ihn für Card-not-present-Transaktionen (CNP) wertvoll macht.
| Begriff | Steht für | Verwendet von | Länge | Position |
|---|---|---|---|---|
| CVV2 | Card Verification Value 2 | Visa | 3 Ziffern | Rückseite |
| CVC2 | Card Verification Code 2 | Mastercard | 3 Ziffern | Rückseite |
| CID | Card Identification Number | American Express | 4 Ziffern | Vorderseite |
| CID | Card Identification | Discover | 3 Ziffern | Rückseite |
| CAV2 | Card Authentication Value 2 | JCB | 3 Ziffern | Rückseite |
| CVV1 / CVC1 | Card Verification Value / Code | Visa / Mastercard | — | Im Magnetstreifen gespeichert, nicht aufgedruckt |
CVV1 und CVV2 (bzw. CVC1 und CVC2) sind unterschiedliche Werte. CVV1/CVC1 ist im Magnetstreifen gespeichert und wird bei Transaktionen mit vorliegender Karte geprüft; CVV2/CVC2 wird separat berechnet und für Card-not-present-Zahlungen auf die Karte gedruckt. Der Chip trägt wiederum einen eigenen Wert (iCVV). Checkout-Formulare erfassen immer nur den aufgedruckten Code, und im Entwickleralltag wird „CVV“ als generischer Name für dieses Feld über alle Kartennetzwerke hinweg verwendet.
Die zwei Dinge, auf die es im Code wirklich ankommt:
- Amex verwendet 4 Ziffern auf der Vorderseite — jedes Eingabefeld, das auf 3 Ziffern besteht, lässt Amex-Tests scheitern.
- Der Code zählt unter PCI DSS zu den sensiblen Authentifizierungsdaten (SAD), für die strengere Regeln gelten als für die Kartennummer selbst.
Die PCI-DSS-Regeln, die Sie nicht ignorieren können
Die CVV gilt als sensible Authentifizierungsdaten. Unter PCI DSS gilt:
- Sie dürfen sie verwenden, um eine Transaktion zu verarbeiten.
- Sie dürfen sie nicht aufbewahren, sobald die Transaktion autorisiert ist — weder in Logs noch in einer Datenbank, in einem Analytics-Event oder in einem Support-Screenshot —, auch nicht verschlüsselt (PCI DSS v4.0, Anforderung 3.3.1).
- Wenn Sie sie vor der Autorisierung kurzzeitig vorhalten, muss sie mit starker Kryptografie geschützt sein (Anforderung 3.3.2).
- Für hinterlegte Karten (Card on File) oder wiederkehrende Zahlungen darf sie niemals gespeichert werden. Nur Kartenaussteller haben eine eng begrenzte Ausnahme.
In der Praxis bedeutet das:
- Loggen Sie niemals Request-Payloads mit
cvv,cvc,cidodersecurity_code. - Markieren Sie das Feld in Ihrem Observability-Stack als sensibel und entfernen Sie es an der Peripherie.
- Wenn Anbieter ein Prüfergebnis zurückgeben, speichern Sie das Ergebnis (zum Beispiel Stripes
cvc_check:pass,fail,unavailableoderunchecked), niemals den Wert selbst. - Halten Sie das CVV-Feld aus Ihrer eigenen API heraus, wenn der Browser es direkt an den Tokenisierungs-Endpunkt des Gateways senden kann.
- Zeigen Sie den Wert Nutzern nach dem Absenden nie wieder an.
Wie sich CVV-Prüfungen in der Praxis verhalten
Eine CVV-Prüfung ist ein separates Autorisierungssignal, kein hartes Gate. Verschiedene Kartenaussteller und Gateways gehen unterschiedlich mit einer Abweichung um:
- Manche lehnen die Transaktion direkt ab.
- Manche genehmigen sie und geben einen
CVC mismatch-Code zurück, sodass der Händler entscheiden kann. - Manche sind so konfiguriert, dass sie die Prüfung in bestimmten Regionen ganz überspringen.
Sie können das gezielt testen: Stripes 4000 0000 0000 0127 liefert bei jeder übermittelten CVC eine Ablehnung mit incorrect_cvc, ideal um Ihre Fehlerbehandlung zu testen, ohne eine echte Karte anzufassen. Weitere Nummern finden Sie in der vollständigen Liste der Testkarten.
Test-CVVs generieren
Für Sandbox-Arbeit akzeptieren Stripe und Braintree beliebige 3 Ziffern (bei Amex 4); manche Gateways verlangen bestimmte Werte, etwa 737 bei Adyen. Unser Kartengenerator kann jeder generierten Nummer einen zufälligen oder festen CVV anhängen und das Ergebnis in einem pipe-getrennten Format ausgeben, das sich leicht in Fixtures parsen lässt:
4242424242424242|12|2030|123
Wenn Sie Nummern für einen bestimmten Ausstellerbereich generieren müssen, akzeptiert der erweiterte Generator Wildcard-Muster, und der BIN-Checker sagt Ihnen, zu welchem Kartennetzwerk ein Präfix gehört.
Zusammenfassung
- CVV2, CVC2, CID und CAV2 sind netzwerkspezifische Namen für denselben aufgedruckten Sicherheitscode.
- Amex ist die Ausnahme: 4 Ziffern, auf der Vorderseite aufgedruckt.
- Speichern Sie den Code nach der Autorisierung nie — PCI DSS behandelt ihn als sensible Authentifizierungsdaten.
- Behandeln Sie eine CVV-Abweichung als konfigurierbares Ergebnis und testen Sie sowohl den Ablehnungs- als auch den Soft-Fail-Pfad.