What are Stripe test cards?
Stripe test cards are card numbers that Stripe publishes for test mode. Each number triggers a set result: a successful charge, a named decline code, a CVC mismatch, or a 3D Secure challenge. No money moves and no real bank account is involved.
They work only with test API keys (pk_test_ and sk_test_) and with test mode switched on in the Stripe Dashboard. Live keys refuse them.
How do you use a Stripe test card?
- Turn on test mode in the Stripe Dashboard, or copy your test keys from Developers, then API keys.
- Load your payment form with the test publishable key.
- Enter a test card number from the lists below. Use any future expiry date, any three-digit CVC, and any postal code.
- Submit the payment and check the result in the Dashboard under Payments, or in the API response.
- For server-side flows, confirm the PaymentIntent with the test secret key and read the status field.
The card number alone decides the outcome. Expiry, CVC, and postal code do not need to match the number you picked.
Which test cards produce a successful payment?
- 4242 4242 4242 4242, Visa
- 5555 5555 5555 4444, Mastercard
- 3782 822463 10005, American Express
- 6011 1111 1111 1117, Discover
- 3056 9300 0902 5904, Diners Club
- 3566 0020 2036 0505, JCB
Each of these returns a charge with a succeeded status and no authentication step. Use them for smoke tests and for the first pass on a new integration.
The Ultimate Guide to Choosing the Best Stripe Card Checker
Which test cards trigger declines?
- 4000 0000 0000 0002: generic decline, card_declined
- 4000 0000 0000 9995: insufficient funds
- 4000 0000 0000 0069: expired card
- 4000 0000 0000 0127: incorrect CVC
- 4000 0000 0000 0119: processing error
Declines arrive with a decline_code on the error object. Branch on that code, not on the human-readable message, because messages change between API versions.
Which test cards cover CVC and postal code checks?
- 4000 0000 0000 0101: CVC check fails, the charge still succeeds
- 4000 0000 0000 0102: CVC check cannot be verified
- 4000 0000 0000 0106: postal code check fails
These cards matter if you gate a purchase on the cvc_check or address_zip_check field. A failed check is not the same as a declined charge, and your code should treat the two cases apart. Stripe documents more check variants in its testing guide.
Which test cards cover 3D Secure?
- 4000 0000 0000 3220: 3D Secure 2 authentication is required, so the flow stops at a challenge.
- 4000 0000 0000 3063: authentication runs first, then the charge fails with a processing error.
Use these to confirm that your code handles the requires_action status, the return_url, and the second confirmation call. Skipping that second call is a common source of stuck payments.
What should you test beyond the card numbers?
Test cards only cover the authorization response. The rest of a payment flow needs its own checks. A charge that succeeds in the browser can still fail on your server if you miss a step.
- Webhooks: run
stripe listen --forward-to localhost:4242/webhookand confirm you handle payment_intent.succeeded and payment_intent.payment_failed. - Retries: send the same request twice with one idempotency key and confirm you get one charge.
- Double submits: click Pay twice on a slow page and check that only one PaymentIntent exists.
- Currency and rounding: run a small charge in a zero-decimal currency such as JPY.
What are the limits of Stripe test cards?
- Test mode data stays separate from live data. Nothing you do in test mode shows up in live reports or payouts.
- Simulation covers a fixed set of responses. Real issuers return outcomes that test cards cannot reproduce.
- Disputes, Radar reviews, and payout timing need extra setup or remain simulated.
- Stripe updates the list over time, so check the testing docs before you hardcode numbers into a test suite.
One more rule matters for compliance: never enter a real card number in test mode. Test systems sit outside the controls that protect live card data.
Frequently asked questions
Does the expiry date on a Stripe test card matter?
No. Use any date in the future, such as 12/34. An expired date produces a decline only when you pick one of the expired-card test numbers.
Can you use 4242 4242 4242 4242 with live keys?
No. Stripe blocks test numbers outside test mode, so the charge fails with an error.
Do the CVC and postal code need to match the test card?
No. Any three digits and any postal code pass, unless you pick a card built to fail that check.
Are Stripe test cards free to use?
Yes. Test mode charges move no money and add no fees to your account.