

If you accept payments with Stripe, you need Stripe test cards โ special card numbers that let you simulate every payment scenario without moving real money. This reference covers every test card you'll realistically need: successful payments, specific decline codes, 3D Secure challenges, international cards and fraud triggers. Every number has a one-click copy button, so you can stop hunting through the Stripe docs mid-checkout.
Bookmark this page โ and if you run a WooCommerce store, read the checkout troubleshooting guide. Testing with these cards once is easy; the hard part is knowing your checkout still works next week.
Quick answer: the universal Stripe test card number is 4242 4242 4242 4242 . Use any future expiry date (e.g. 12/34), any 3-digit CVC and any postal code. It always succeeds in test mode.
Stripe test cards only work in test mode โ when your site uses test API keys (pk_test_ / sk_test_). They simulate real payment behavior without charging anyone.
Expiry
CVC
Name & address
The two classic mistakes
These cards always produce a successful payment in test mode:
| Brand | Card number | CVC |
|---|---|---|
| Visa | 4242 4242 4242 4242 | Any 3 digits |
| Visa (debit) | 4000 0566 5566 5556 | Any 3 digits |
| Mastercard | 5555 5555 5555 4444 | Any 3 digits |
| Mastercard (2-series) | 2223 0031 2200 3222 | Any 3 digits |
| Mastercard (debit) | 5200 8282 8282 8210 | Any 3 digits |
| Mastercard (prepaid) | 5105 1051 0510 5100 | Any 3 digits |
| American Express | 3782 822463 10005 | Any 4 digits |
| American Express | 3714 496353 98431 | Any 4 digits |
| Discover | 6011 1111 1111 1117 | Any 3 digits |
| Diners Club | 3056 9300 0902 0004 | Any 3 digits |
| JCB | 3566 0020 2036 0505 | Any 3 digits |
| UnionPay | 6200 0000 0000 0005 | Any 3 digits |
Decline handling is where revenue is lost โ customers abandon carts when errors are unclear. Test each scenario:
| Scenario | Card number | decline_code |
|---|---|---|
| Generic decline | 4000 0000 0000 0002 | generic_decline |
| Insufficient funds | 4000 0000 0000 9995 | insufficient_funds |
| Lost card | 4000 0000 0000 9987 | lost_card |
| Stolen card | 4000 0000 0000 9979 | stolen_card |
| Expired card | 4000 0000 0000 0069 | expired_card |
| Incorrect CVC | 4000 0000 0000 0127 | incorrect_cvc |
| Processing error | 4000 0000 0000 0119 | processing_error |
| Incorrect number | 4242 4242 4242 4241 | incorrect_number |
| Attaches OK, charge fails | 4000 0000 0000 0341 | Fails at charge time |
In the EU and UK, Strong Customer Authentication (SCA) is mandatory for most online payments. Use these cards to test the 3DS flow:
| Behavior | Card number |
|---|---|
| 3DS required โ authentication succeeds | 4000 0025 0000 3155 |
| 3DS required โ off-session/setup flows | 4000 0027 6000 3184 |
| 3DS authentication fails / declined | 4000 0084 0000 1629 |
| 3DS supported but not required | 4000 0000 0000 3055 |
What to check during a 3DS test
Card country affects fees, Radar scoring, tax, and currency handling. Test with country-specific cards:
| Country | Card number |
|---|---|
| ๐บ๐ธ United States | 4242 4242 4242 4242 |
| ๐ฌ๐ง United Kingdom | 4000 0082 6000 0000 |
| ๐ฉ๐ช Germany | 4000 0027 6000 0016 |
| ๐ซ๐ท France | 4000 0025 0000 0003 |
| ๐ฆ๐บ Australia | 4000 0003 6000 0006 |
| ๐จ๐ฆ Canada | 4000 0012 4000 0000 |
| ๐ง๐ท Brazil | 4000 0007 6000 0002 |
| ๐ฏ๐ต Japan | 4000 0039 2000 0003 |
| ๐ฎ๐ณ India | 4000 0035 6000 0008 |
Stripe maintains cards for dozens more markets (pattern 4000 + country numeric code); full list in Stripe's testing docs.
Stripe Radar uses these cards to simulate fraud signals and disputes:
4100 0000 0000 0019
Always blocked as highest risk. Customer should see a decline, not success.
4000 0000 0000 9235
Flagged as elevated risk, but succeeds. Good for manual-review workflows.
4000 0000 0000 0259
Charge succeeds, then is disputed as fraudulent. Test chargeback handling.
4000 0000 0000 2685
Disputed as product not received.
Copy a card number above and run through your real checkout โ not the Stripe dashboard alone. Here's a practical test sequence:
Enable test mode in your Stripe plugin (WooCommerce โ Settings โ Payments โ Stripe) or use a staging site with test keys.
Add a product to the cart and go through the entire checkout โ don't jump straight to payment; cart fragments, shipping and coupons have their own failure modes.
Pay with 4242 4242 4242 4242 and verify order created, stock reduced, confirmation email sent, webhook received.
Repeat with decline card 4000 0000 0000 0002 โ customer must see a clear error, no order marked paid.
Repeat with 3DS card 4000 0025 0000 3155 โ the test that most often exposes caching/JS conflicts.
ShopMonitor runs a real test purchase through your WooCommerce checkout around the clock, verifies every step with AI vision, and alerts you the moment anything breaks โ before your customers notice and before you lose a day of revenue.
No credit card required. Set up in 5 minutes, no code changes.

About the author
Written by the Winning Solutions team โ the agency behind ShopMonitor, automated WooCommerce checkout monitoring.