Stripe test cards and test card numbers
Updated
The standard Stripe test card is 4242424242424242, the Visa card that Stripe uses in its own examples. It gives a successful payment. Use any future expiry date, such as 12/34, and any three-digit CVC (four digits for American Express). Stripe's test cards work only with your test API keys in test mode or a sandbox, and they move no money. The tables below list Stripe's other dummy cards for each brand, country, decline, fraud check, dispute and 3D Secure case, with a copy button next to each number.
How to use Stripe test cards
- Open a sandbox with the account picker in the Stripe Dashboard.
- Use your test API keys, such as a secret key that starts with
sk_test_, in every API call. - Enter a test card number in your payment form or in the Dashboard.
- Use any future expiry date, such as 12/34.
- Use any three-digit CVC, or any four digits for American Express.
- Use any value for the other fields, such as name and postal code.
In test code, Stripe recommends a PaymentMethod ID such as pm_card_visa instead of a card number. If your server-side code uses card numbers, it might not be PCI compliant when you go live. For example:
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_...:" \
-d amount=500 \
-d currency=gbp \
-d payment_method=pm_card_visa
When you go live, replace the test publishable and secret keys with live keys. Live payments fail while your integration still uses test keys.
Stripe test card numbers by brand
Each of these cards gives a successful payment for its card brand.
| Brand | Number | CVC |
|---|---|---|
| Visa | 4242424242424242 | Any 3 digits |
| Visa (debit) | 4000056655665556 | Any 3 digits |
| Mastercard | 5555555555554444 | Any 3 digits |
| Mastercard (2-series) | 2223003122003222 | Any 3 digits |
| Mastercard (debit) | 5200828282828210 | Any 3 digits |
| Mastercard (prepaid) | 5105105105105100 | Any 3 digits |
| American Express | 378282246310005 | Any 4 digits |
| American Express | 371449635398431 | Any 4 digits |
| Discover | 6011111111111117 | Any 3 digits |
| Discover | 6011000990139424 | Any 3 digits |
| Discover (debit) | 6011981111111113 | Any 3 digits |
| Diners Club | 3056930009020004 | Any 3 digits |
| Diners Club (14 digits) | 36227206271667 | Any 3 digits |
| BCcard and DinaCard | 6555900000604105 | Any 3 digits |
| JCB | 3566002020360505 | Any 3 digits |
| UnionPay | 6200000000000005 | Any 3 digits |
| UnionPay (debit) | 6200000000000047 | Any 3 digits |
| UnionPay (19 digits) | 6205500000000000004 | Any 3 digits |
Stripe sets cross-border fees by the country of the card's issuer. Cards issued outside the US, such as JCB and UnionPay, might show a cross-border fee even in test environments.
Stripe test cards by country
These cards give a successful payment from a card issued in that country. Stripe's documentation lists more than 60 countries. This is a selection:
| Country | Number | Brand |
|---|---|---|
| United States | 4242424242424242 | Visa |
| Canada | 4000001240000000 | Visa |
| Mexico | 4000004840008001 | Visa |
| Brazil | 4000000760000002 | Visa |
| United Kingdom | 4000008260000000 | Visa |
| United Kingdom | 4000058260000005 | Visa (debit) |
| United Kingdom | 5555558265554449 | Mastercard |
| Ireland | 4000003720000005 | Visa |
| Germany | 4000002760000016 | Visa |
| France | 4000002500000003 | Visa |
| Spain | 4000007240000007 | Visa |
| Italy | 4000003800000008 | Visa |
| Netherlands | 4000005280000002 | Visa |
| United Arab Emirates | 4000007840000001 | Visa |
| India | 4000003560000008 | Visa |
| Australia | 4000000360000006 | Visa |
| Japan | 4000003920000003 | Visa |
| Japan | 3530111333300000 | JCB |
| Singapore | 4000007020000003 | Visa |
Online payments in the European Economic Area need 3D Secure under Strong Customer Authentication rules. The European cards above succeed without authentication, so also test the 3D Secure cards.
Test cards for declined payments
These cards return a card error with the error code and decline code in the table, so you can test how your integration shows a failed payment.
| Result | Number | Error code | Decline code |
|---|---|---|---|
| Generic decline | 4000000000000002 | card_declined | generic_decline |
| Insufficient funds | 4000000000009995 | card_declined | insufficient_funds |
| Lost card | 4000000000009987 | card_declined | lost_card |
| Stolen card | 4000000000009979 | card_declined | stolen_card |
| Expired card | 4000000000000069 | expired_card | none |
| Incorrect CVC | 4000000000000127 | incorrect_cvc | none |
| Processing error | 4000000000000119 | processing_error | none |
| Incorrect number | 4242424242424241 | incorrect_number | none |
| Velocity limit exceeded | 4000000000006975 | card_declined | card_velocity_exceeded |
To test the incorrect CVC card, enter a CVC. If you leave the CVC out, Stripe skips the CVC check, so it can't fail.
You can't attach these decline cards to a Customer. To test a saved card that fails later, use 4000000000000341: attaching it to a Customer succeeds, and charging that customer fails.
Errors from invalid card details
You don't need a special card to test invalid details. Enter a value that is wrong:
invalid_expiry_month: a month such as 13.invalid_expiry_year: a year in the past, no more than 50 years back, such as 95.invalid_cvc: a two-digit CVC, such as 99.incorrect_number: a number that fails the Luhn check, such as 4242424242424241.
Test cards for fraud checks (Radar)
Stripe Radar can block payments that have a high risk level or fail verification checks. Blocked payments return a card error with the code fraud. Radar always blocks the first card in the table. Whether it blocks the others depends on your Radar settings.
| Case | Number | What happens |
|---|---|---|
| Always blocked | 4100000000000019 | Risk level "highest". Radar always blocks it. |
| Highest risk | 4000000000004954 | Risk level "highest". Radar might block it. |
| Elevated risk | 4000000000009235 | Risk level "elevated". Radar might queue it for review. |
| CVC check fails | 4000000000000101 | The CVC check fails if you enter a CVC. |
| Postal code check fails | 4000000000000036 | The postal code check fails if you enter a postal code. |
| Address checks fail | 4000000000000010 | The postal code and address line 1 checks both fail. |
Test cards for disputes
With the default account settings, each of these payments succeeds and is then disputed or flagged.
| Dispute | Number | What happens |
|---|---|---|
| Fraudulent (asynchronous) | 4061219946393810 | Stripe creates a fraud dispute shortly after the payment, as in live mode. Stripe suggests this card for most tests. |
| Fraudulent (synchronous) | 4000000000000259 | Stripe creates a fraud dispute during the payment request. |
| Product not received | 4000000000002685 | The payment is disputed as "product not received". |
| Inquiry | 4000000000001976 | The payment is disputed as an inquiry. |
| Early fraud warning | 4000000000005423 | The payment gets an early fraud warning. |
| Multiple disputes | 4000000404000079 | The payment is disputed more than once. |
To end a test dispute, submit evidence with one of these values, as uncategorized_text in the API or in the "Additional information" field in the Dashboard:
winning_evidencecloses the dispute as won.losing_evidencecloses the dispute as lost.escalate_inquiry_evidenceturns an inquiry into a full dispute.
Test cards for 3D Secure
Only the cards in this section test 3D Secure on purpose. Other test cards can still start 3D Secure, but Stripe skips the authentication steps for them. 3D Secure redirects don't happen for payments you create in the Stripe Dashboard, so test these cards through your own checkout or the API.
| Case | Number | What happens |
|---|---|---|
| Always authenticate | 4000002760003184 | Every payment needs authentication. |
| Authenticate unless set up | 4000002500003155 | Off-session payments need authentication until the card is set up for future payments. |
| Already set up | 4000003800000446 | Off-session payments succeed, and on-session payments need authentication. |
| 3D Secure required | 4000000000003220 | The payment succeeds only after authentication. |
| Declined after authentication | 4000008260003178 | The payment is declined with insufficient_funds even after authentication. |
| Frictionless flow | 4000000032200000 | Authentication runs without a challenge and succeeds. |
| Not supported | 378282246310005 | The card can't use 3D Secure, so the payment goes ahead without it. This is also the American Express card from the brand table. |
Test cards for refunds and your balance
With most test cards, a refund succeeds at once and doesn't change after that. The first two cards below act like live refunds, which can change status later. The third card skips the pending balance.
| Case | Number | What happens |
|---|---|---|
| Refund succeeds later | 4000000000007726 | A refund starts as pending and changes to succeeded later. |
| Refund fails later | 4000000000005126 | A refund starts as succeeded and changes to failed after a few minutes. |
| Bypass pending balance | 4000000000000077 | The funds go straight to your available balance. |
Stripe test bank account numbers (ACH)
For US bank account payments (ACH Direct Debit), use the routing number 110000000 with one of these account numbers:
| Result | Account number | PaymentMethod ID |
|---|---|---|
| Payment succeeds | 000123456789 | pm_usBankAccount_success |
| Account closed | 000111111113 | pm_usBankAccount_accountClosed |
| Insufficient funds | 000222222227 | pm_usBankAccount_insufficientFunds |
| Debit not authorized | 000333333335 | pm_usBankAccount_debitNotAuthorized |
| Dispute | 000555555559 | pm_usBankAccount_dispute |
Before these payments complete, verify the test account with the microdeposit amounts 32 and 45, or the descriptor code SM11AA.
Mistakes to avoid when testing Stripe payments
- Testing with a real card. The Stripe Services Agreement doesn't allow testing in live mode with real card details. Use test keys and test cards.
- Reusing one card for every test. Stripe keeps some results on the card itself, so one test can change the next test that uses the same card. Use a different test card for each separate scenario.
- Leaving out the CVC or postal code. Stripe skips the CVC check when the CVC is empty, and the postal code check when the postal code is empty. The test cards for those checks can't fail unless you fill in the field.
- Testing 3D Secure in the Dashboard. Dashboard payments don't redirect to 3D Secure. Use your checkout or the API.
- Load testing in test mode. Test mode has stricter rate limits than live mode and returns 429 errors. Stripe has a separate load testing guide.
For other fake data to fill a test checkout, such as names and addresses, use the fake data generator or the random address generator.
Frequently asked questions
What is the Stripe test card number?
The standard Stripe test card is 4242 4242 4242 4242, a Visa card that gives a successful payment. Use any future expiry date and any three-digit CVC.
What expiry date and CVC do Stripe test cards use?
Any future date, such as 12/34, and any three-digit CVC. American Express test cards take any four-digit CVC.
Can I use a real credit card in Stripe test mode?
No. Stripe's agreement doesn't allow testing with real card details. Use the test card numbers with your test API keys.
How do I test a declined payment in Stripe?
Use 4000 0000 0000 0002 for a generic decline, or 4000 0000 0000 9995 for insufficient funds. The table above lists the error code that each decline card returns, and the decline code where there is one.
Which Stripe test card triggers 3D Secure?
4000 0027 6000 3184 asks for authentication on every payment. 3D Secure doesn't run for payments made in the Stripe Dashboard, so test it through your checkout or the API.
Is there a Stripe test bank account number?
Yes. For ACH, use routing number 110000000 with account number 000123456789 for a payment that succeeds.
Sources
- Stripe, Test card numbers (Stripe test cards documentation), checked on 2026-11-08. Every card number and behaviour on this page comes from it.
- Stripe API reference, The Dispute object, for the
uncategorized_textevidence field, checked on 2026-11-08.