Stripe Test Cards — Complete Developer Reference

Curated, verified Stripe sandbox test cards covering success, decline codes, 3D Secure, AVS, and fraud scenarios.

verifiedVerified against Stripe documentation April 22, 2026
Official docsopen_in_new

Stripe provides an extensive set of test card numbers for its sandbox environment. Each number triggers a specific payment outcome — successful charges, specific decline reasons, and 3DS authentication flows. Use any future expiry date and any 3-digit CVC unless otherwise noted.

search

Showing 28 of 28 test cards

Card NumberNetworkScenarioCodeCopy
4242 4242 4242 4242TEST ONLY
Visa
Successful paymentGlobal
4000 0566 5566 5556TEST ONLY
Visa (debit)
Successful payment (debit)Global
5555 5555 5555 4444TEST ONLY
Mastercard
Successful paymentGlobal
2223 0031 2200 3222TEST ONLY
Mastercard (2-series)
Successful paymentGlobal
5200 8282 8282 8210TEST ONLY
Mastercard (debit)
Successful payment (debit)Global
3782 822463 10005TEST ONLY
Amex
Successful paymentGlobal
6011 1111 1111 1117TEST ONLY
Discover
Successful paymentUS
3056 9300 0902 0004TEST ONLY
Diners Club
Successful paymentGlobal
3566 0020 2036 0505TEST ONLY
JCB
Successful paymentGlobal
6200 0000 0000 0005TEST ONLY
UnionPay
Successful paymentGlobal
4000 0000 0000 0002TEST ONLY
Visa
Declined — generic declineGlobal
card_declined
4000 0000 0000 9995TEST ONLY
Visa
Declined — insufficient fundsGlobal
insufficient_funds
4000 0000 0000 9987TEST ONLY
Visa
Declined — lost cardGlobal
lost_card
4000 0000 0000 9979TEST ONLY
Visa
Declined — stolen cardGlobal
stolen_card
4000 0000 0000 0069TEST ONLY
Visa
Declined — expired cardGlobal
expired_card
4000 0000 0000 0127TEST ONLY
Visa
Declined — incorrect CVCGlobal
incorrect_cvc
4000 0000 0000 0119TEST ONLY
Visa
Declined — processing errorGlobal
processing_error
4242 4242 4242 4454TEST ONLY
Visa
Declined — incorrect numberGlobal
incorrect_number
4000 0000 0000 3220TEST ONLY
Visa
3DS — challenge required (new 3DS2)Global
4000 0027 6000 3184TEST ONLY
Visa
3DS — challenge required (3DS1 fallback)Global
4000 0000 0000 3055TEST ONLY
Visa
3DS — challenge required on setupGlobal
4000 0000 0000 3097TEST ONLY
Visa
3DS — frictionless (no challenge)Global
4000 0084 0000 1629TEST ONLY
Visa
3DS — authentication required (SCA EU)EU
4000 0000 0000 0028TEST ONLY
Visa
AVS check — zip code fails, charge succeedsUS
zip_code_fail
4000 0000 0000 0036TEST ONLY
Visa
AVS check — line1 fails, charge succeedsUS
address_line1_fail
4000 0000 0000 0044TEST ONLY
Visa
AVS check — line1 and zip both failUS
address_zip_fail
4000 0000 0000 4954TEST ONLY
Visa
Always blocked — fraud preventionGlobal
card_declined
4100 0000 0000 0019TEST ONLY
Visa
Highest risk — Radar review triggeredGlobal

TEST ONLY. These numbers will not process real transactions. Use only in Stripe's sandbox environment with test API credentials.

What it does

27 verified Stripe test cards

Covers every major scenario: success, all decline types, 3DS challenge, frictionless auth, AVS checks, and Radar fraud rules.

Expected response codes

Each card shows the Stripe decline_code or error it produces, so you can test your error handling logic precisely.

3DS2 and SCA scenarios

Cards for 3DS2 challenge, frictionless, SCA required (EU), and authentication unavailable — essential for PSD2 compliance.

Verified against Stripe docs

Data verified against stripe.com/docs/testing with a dated verification badge.

How to use Stripe Test Cards — Complete Developer Reference

  1. 1
    Select a scenario

    Use the scenario filter to narrow to Success, Declined, 3DS, AVS, or Specialty cards.

  2. 2
    Copy the card number

    Click Copy next to any card. Choose Number only, Full card, JSON, or cURL format.

  3. 3
    Paste into Stripe sandbox

    Use the copied number with Stripe.js, Stripe Elements, or direct API calls using your sk_test_ key.

  4. 4
    Check the expected outcome

    Verify your integration handles the documented response code or error correctly.

Stripe's test card system: how it works

Stripe's sandbox maps specific card numbers to specific outcomes at the network-simulation layer. When you submit a test card, Stripe doesn't forward it to Visa or Mastercard — it short-circuits to a simulated issuer response. The card numbers in the 4000 0000 0000 XXXX range are entirely Stripe-specific test sentinels.

This design means you can test any code path in your payment integration without needing real bank accounts. The tradeoff is that you need to know which number triggers which outcome — which is what this reference is for.

Testing 3DS2 with Stripe: what each card does

Stripe's 3DS2 test cards map to specific authentication outcomes:

• 4000 0000 0000 3220 — requires a 3DS challenge in Payment Intent flow • 4000 0027 6000 3184 — triggers a 3DS1 fallback • 4000 0000 0000 3097 — authenticates frictionlessly (no user step) • 4000 0084 0000 1629 — requires SCA for EU merchants

When testing 3DS, use Stripe.js 'confirmCardPayment' with the return_url parameter so the redirect flow works correctly in your test environment.

Frequently Asked Questions

What expiry and CVC do I use with Stripe test cards?

Any future date (e.g., 12/28) and any 3-digit CVC for Visa/Mastercard/Discover. For Amex, use a 4-digit CID. The specific values don't matter unless testing CVC/AVS failures.

Why does 4242 4242 4242 4242 always succeed?

Stripe recognizes this as a designated test card that always returns a successful authorization. It is hardcoded in Stripe's test infrastructure and will always return a Charge or PaymentIntent in 'succeeded' state.

Do Stripe test cards work in production mode?

No. Test card numbers only work with sk_test_ API keys. Using them with sk_live_ keys returns an error. Production keys require real card numbers.

What is the difference between 3DS challenge and 3DS frictionless?

A 3DS challenge shows the cardholder a verification step (OTP, biometric). Frictionless authentication happens silently — the card is authenticated without user interaction. Both complete 3DS authentication; frictionless just has no visible step.

How do I test Stripe Radar fraud rules?

Stripe provides specific test cards that trigger Radar rules: 4000 0000 0000 4954 is always blocked, 4100 0000 0000 0019 triggers a review. These help test your fraud-handling flows without real fraud.

Related Tools