Short answer

In test mode Stripe accepts any CVC value. Use 4242 4242 4242 4242 with any three digits, any future expiry date, and any postal code. The charge succeeds. Use the American Express test card with any four digits. Stripe checks the CVC value only when the card number is one of the check-behavior cards listed in its testing docs.

read more

Why any CVC works

Test mode does not contact a card network. Stripe simulates the authorization on its own servers. The CVC field is read, tokenized, and returned in the API response as a check result. The digits you type do not change the outcome unless the card number is coded to force a specific cvc_check value.

more on this topic

Live mode runs the other way. The issuer returns the CVC check result. Stripe stores the result, not the CVC.

Stripe Test Card CVV Example: What to Enter in Test Mode

CVC length by brand

  • Visa: 3 digits. Test card 4242 4242 4242 4242.
  • Mastercard: 3 digits. Test card 5555 5555 5555 4444.
  • American Express: 4 digits. Test card 3782 822463 10005.
  • Discover: 3 digits. Test card 6011 1111 1111 1117.

Stripe rejects a 4-digit CVC on a non-Amex card at the form level. The field label reads CVC for most brands and CID for Amex.

Stripe Test Card CVV Generator: A Comprehensive Guide

Cards that test CVC failures

Stripe publishes separate card numbers that force CVC outcomes. 4000 0000 0000 0127 returns a decline with the code incorrect_cvc. Other numbers return cvc_check values of pass, fail, or unavailable while the charge still succeeds.

Stripe edits this list. Check the current testing page before you depend on one number. The full set of check-behavior cards is not fixed.

Test mode limits

  • Test card numbers work only with test API keys.
  • A live key rejects every test card.
  • The 4242 card passes all checks.
  • Radar rules and 3D Secure tests use other cards.

What the API returns

The charge object holds a checks object with cvc_check, address_line1_check, and address_zip_check. Values are pass, fail, unavailable, or unchecked. Read cvc_check when your code decides to hold an order for review.