Short answer
In Stripe test mode you can type any 3-digit number as the CVV, such as 123 or 456. Stripe accepts it on standard test cards because no real card network is contacted. For American Express test cards, use any 4-digit number, such as 1234. The one exception is a small set of test cards built to fail the CVC check on purpose.
Prerequisites
- A Stripe account with test mode enabled, no activated live account needed.
- Your test API keys, which start with pk_test_ and sk_test_.
- A payment form or the Stripe Dashboard payment page open in test mode.
Test cards and the CVV they accept
- 4242 4242 4242 4242 (Visa): any 3 digits, any future expiry date, any postal code.
- 5555 5555 5555 4444 (Mastercard): any 3 digits.
- 3782 822463 10005 (Amex): any 4 digits.
- 4000 0000 0000 0002: generic decline, the CVV is irrelevant.
- 4000 0000 0000 0127: declines with an incorrect CVC code.
- 4000 0000 0000 0101: succeeds on the charge but returns a failed CVC check.
How to run a test payment with a CVV
- Open the Stripe Dashboard and confirm the Test mode toggle is on.
- Go to the payments or checkout test page, or load your own form in a test environment.
- Enter the card number 4242 4242 4242 4242.
- Enter any future expiry date, for example 12/34.
- Enter the CVV 123.
- Enter any 5-digit postal code.
- Submit the payment and confirm the charge appears in the Dashboard under test payments.
How to force a CVC failure
- Close the successful test charge and start a new payment.
- Enter the card number 4000 0000 0000 0127.
- Enter any future expiry date.
- Enter the CVV 123.
- Submit the payment and read the decline reason, which returns incorrect_cvc.
Use the 0101 card when you want the charge to go through but the CVC check to come back as failed. That case is useful for testing Radar rules and manual review flows.
Common mistakes
- Typing a 4-digit CVV on a Visa test card. Standard test cards validate length, so the field rejects it.
- Using a live card number in test mode. Stripe rejects it, and you should never enter real card data into a test form.
- Assuming a test CVV proves anything about production. Live CVV checks run against the issuer and can decline a card that passed in test mode.
- Expecting Stripe to store the CVV. It is checked and discarded, and the cvc_check result is all that remains on the charge object.
What the CVC check actually verifies
The CVV is a 3-digit code on the back of most cards and a 4-digit code on the front of American Express cards. It exists to prove the person paying holds the physical card. Stripe passes the value to the issuer during authorization and records the outcome as cvc_check, with values such as pass, fail, unavailable, or unchecked. In test mode that round trip is simulated, which is why the value of the CVV only has to be well formed.