Reference guide · updated for 2026

Stripe test card numbers, explained properly.

Stripe ships its own fixed set of test card numbers for exact scenarios — success, decline, 3D Secure. Here's the official list, and where a bulk generator like Luhnly fits in instead.

Ad unit — 728×90 placeholder

Stripe's Official Test Card Numbers

These numbers are reserved by Stripe specifically for test-mode API keys (sk_test_… / pk_test_…). Each one triggers one exact, predictable outcome — which is exactly what you want when testing a specific code path like a decline handler or a 3D Secure challenge.

NumberScenarioNetwork
4242 4242 4242 4242Always succeedsVisa
5555 5555 5555 4444Always succeedsMastercard
3782 822463 10005Always succeedsAmerican Express
4000 0000 0000 0002Generic declineVisa
4000 0000 0000 9995Decline — insufficient fundsVisa
4000 0000 0000 0069Decline — expired cardVisa
4000 0025 0000 3155Requires 3D Secure authenticationVisa
Use any future expiry date, any 3-digit CVC (4 digits for Amex), and any postal code — only the card number itself determines the outcome. These numbers only work against Stripe's test-mode API; they'll do nothing against a live key or any other payment provider.
Ad unit — in-content responsive placeholder

Where Stripe's Fixed List Runs Out

Stripe's official cards are perfect for testing specific, known scenarios one at a time. But they're still the same handful of numbers — which becomes a limitation the moment you need:

This is exactly the gap Luhnly fills. It's not a replacement for Stripe's test cards — it's a complement, for everything upstream of the actual API call.

Generate test card numbers →

Frequently Asked Questions

Can I use a Luhnly-generated number with Stripe's test mode?

No. Stripe's sandbox only recognizes card numbers from its own reserved test ranges, not any Luhn-valid number. Use Stripe's official test cards above for anything that actually calls the Stripe API, and use Luhnly for UI, form-validation, or autofill testing that never reaches Stripe.

Why would I need more than Stripe's 4242 card?

Stripe's fixed test numbers are great for specific scenarios like declines or 3D Secure, but they're the same handful of numbers every time. If you need many unique-looking numbers — for load testing, seeding a database, or testing input masks and card-brand detection — a generator like Luhnly fills that gap.

Do Stripe's test card numbers change?

The core numbers like 4242 4242 4242 4242 have stayed stable for years, but Stripe periodically adds new scenario-specific cards. Always cross-check against Stripe's own testing documentation before relying on a specific number in production test suites.