Stripe Test Card Numbers: Full List and How to Use Them

Stripe test card numbers are fake card values that only work in Stripe test mode. They let you trigger a successful charge, a decline, a 3D Secure prompt, or a validation error without moving money or touching a real card. Because they exist only in the sandbox, they are safe to paste into forms, automated tests, and staging environments.

What a Stripe test card number actually is

A test card number follows the same format as a live card: 16 digits for Visa and Mastercard, 15 digits for American Express, plus an expiry date and a CVC. The difference is that the number is registered inside Stripe's test environment, so the payment network is never involved. Any future expiry, any CVC, and any postal code will pass basic validation on the success cards.

Test cards only work when you send a request with a test mode API key (a key starting with sk_test_ or pk_test_). Send that same number with a live key and the charge fails immediately.

Common Stripe test card numbers

Test cards that force a decline

Stripe adds and retires cards as acquirer behavior changes, so treat the official testing documentation as the source of truth and keep your test suite aligned with it.

How to use a Stripe test card number

  1. Open your Stripe Dashboard and confirm you are in test mode, not live mode.
  2. Use a test API key in your development or staging environment.
  3. Enter one of the numbers above into your checkout form, with any future expiry date such as 12/34.
  4. Enter any three digits for Visa and Mastercard, or four digits for American Express.
  5. Submit the payment and inspect the response object for the outcome you expected.
  6. Repeat with a decline card to confirm your error messaging and retry logic behave correctly.

Test mode and live mode never mix

Test mode and live mode are separate environments with separate data. Objects created in test mode do not appear in live reports, and test charges never settle. This separation is deliberate: it keeps experimentation away from real money and real customers. If a charge behaves unexpectedly during development, the first thing to check is which key your code is using.

Never test with real card numbers

Real card numbers do not belong in a development environment. Storing or processing card data without a legitimate business purpose and a compliant setup breaks card network rules, and using someone else's card credentials is fraud regardless of the amount involved. Test cards exist so you never need a real number while building. A card number offered for sale outside a bank or a merchant relationship does not work in test mode, and using it against a live system is a criminal offense, not a shortcut.

Questions people ask about Stripe test cards

Are Stripe test card numbers real cards?

No. They are reserved values that route to simulated results inside Stripe's sandbox. No issuer, bank, or cardholder is attached to them.

Can a test card be charged in production?

No. A live mode request with a test card number is rejected. The reverse is also true, and a real card number will not produce a useful result in test mode.

Why does my test payment fail with a valid test card?

Check the API key, the expiry date, the CVC length, and whether your account requires a specific payment method before the charge can succeed.

More

Read our complete guide: Buy CVV Cheap: Pricing, Risks, and What First-Time Buyers Need to Know