Declined Card Test Numbers — Multi-Provider Reference
Consolidated declined test card numbers across Stripe, PayPal, Adyen, Braintree, Square, and more — by decline reason and provider.
Consolidated declined card test numbers across all supported payment providers. Each card triggers a specific decline reason — generic, insufficient funds, lost card, stolen card, expired card, or processing error.
Showing 34 of 43 test cards
| Card Number | Network | Scenario | Code | Copy |
|---|---|---|---|---|
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 0119TEST ONLY | Visa | Declined — processing errorGlobal | processing_error | |
4242 4242 4242 4454TEST ONLY | Visa | Declined — incorrect numberGlobal | incorrect_number | |
4000 0000 0000 0002TEST ONLY | Visa | Declined — do not honorGlobal | INSTRUMENT_DECLINED | |
4111 1111 1111 1115TEST ONLY | Visa | Declined — insufficient fundsGlobal | INSUFFICIENT_FUNDS | |
5105 1051 0510 5100TEST ONLY | Mastercard | Declined — expired cardGlobal | EXPIRED_CARD | |
4000 0000 0000 0002TEST ONLY | Visa | Declined — genericGlobal | Refused | |
4000 0000 0000 9995TEST ONLY | Visa | Declined — insufficient fundsGlobal | Refused:InsufficientFunds | |
4000 0000 0000 0069TEST ONLY | Visa | Declined — expired cardGlobal | Refused:ExpiredCard | |
4000 1111 1111 1115TEST ONLY | Visa | Declined — do not honorGlobal | processor_declined | |
4000 1111 1111 1123TEST ONLY | Visa | Declined — insufficient fundsGlobal | insufficient_funds | |
4000 1111 1111 1131TEST ONLY | Visa | Declined — lost or stolen cardGlobal | card_reported_lost_or_stolen | |
4012 0000 3333 0026TEST ONLY | Visa | Declined — card account length errorGlobal | — | |
4000 0000 0000 0002TEST ONLY | Visa | Declined — do not honorGlobal | GENERIC_DECLINE | |
4000 0000 0000 1026TEST ONLY | Visa | Declined — invalid accountGlobal | INVALID_ACCOUNT | |
4000 0000 0000 1034TEST ONLY | Visa | Declined — card expiredGlobal | EXPIRED_CARD | |
4000 0000 0000 1042TEST ONLY | Visa | Declined — insufficient fundsGlobal | INSUFFICIENT_FUNDS | |
4000 0000 0000 0002TEST ONLY | Visa | Declined — genericIndia | PAYMENT_FAILED | |
4000 0000 0000 9995TEST ONLY | Visa | Declined — insufficient fundsIndia | BAD_REQUEST_ERROR | |
4000 0000 0000 0119TEST ONLY | Visa | Declined — processing errorIndia | GATEWAY_ERROR | |
4000 0000 0000 0002TEST ONLY | Visa | Declined — card declinedEU | card_declined | |
4000 0000 0000 9995TEST ONLY | Visa | Declined — insufficient fundsEU | insufficient_funds | |
4000 0000 0000 0069TEST ONLY | Visa | Declined — expired cardEU | expired_card | |
4000 0000 0000 0002TEST ONLY | Visa | Declined — soft declineGlobal | soft_decline | |
4000 0000 0000 0119TEST ONLY | Visa | Declined — processing errorGlobal | processing_error | |
4000 0000 0000 1091TEST ONLY | Visa | Declined — blockedGlobal | blocked | |
4111 1111 1111 1111TEST ONLY | Visa | Declined — use amount $0.01 or test decline triggerUS | 2 | |
4444 3333 2222 1111TEST ONLY | Visa | Declined — refusedGlobal | 5 | |
4444 1111 2222 3333TEST ONLY | Visa | Declined — card stolenGlobal | 43 | |
4444 2222 3333 4444TEST ONLY | Visa | Declined — insufficient fundsGlobal | 51 |
TEST ONLY. These numbers will not process real transactions. Use only in All Providers's sandbox environment with test API credentials.
What it does
All decline types covered
Generic decline, insufficient funds, lost card, stolen card, expired card, processing error, and do not honor — all in one place.
Provider-specific decline codes
Each card shows the exact decline code or error it returns for that provider (e.g., Stripe's insufficient_funds, Braintree's 2001).
Multi-provider consolidation
Decline cards from Stripe, PayPal, Adyen, Braintree, Square, Razorpay, and more — labeled by provider.
Test your error handling
Use these cards to verify that your checkout displays the right error message for each decline type.
How to use Declined Card Test Numbers — Multi-Provider Reference
- 1Pick a decline scenario
Use the search or filter to find a card for the specific decline you want to test (e.g., "insufficient" for insufficient funds).
- 2Note the provider
Cards are labeled [Stripe], [Adyen], etc. Use the card with that provider's sandbox credentials.
- 3Submit in your checkout
Enter the card in your payment form. The provider's sandbox returns the decline.
- 4Verify error handling
Check that your checkout displays a helpful error message matching the decline type.
Building robust decline handling
Payment declines fall into two categories: soft declines (temporary, worth retrying) and hard declines (permanent, no point retrying). Generic declines (do_not_honor) are technically soft but usually indicate the cardholder should contact their bank.
For the best checkout experience: show a human-readable error message, suggest contacting the bank for generic declines, offer alternative payment methods, and for insufficient funds, don't suggest retrying with the same card. Log the specific decline code internally for debugging and analytics.
Frequently Asked Questions
What is the difference between generic decline and specific decline codes?
- A generic decline (card_declined, GENERIC_DECLINE) means the issuer declined without a specific reason — often a soft decline that the cardholder should try again or contact their bank about. Specific decline codes like insufficient_funds or stolen_card tell you (and the cardholder) exactly why the payment failed, enabling more specific error messages.
Should I show decline codes to users?
- Generally no. Specific decline codes (like stolen_card) should be handled generically to the user to avoid information leakage. Show users a friendly message like "Your payment was declined — please contact your bank" rather than "Your card was reported stolen." Use the specific code internally for logging and analytics.
What is a soft decline vs hard decline?
- A soft decline is temporary — the card may succeed on a retry (e.g., processing error, temporary issuer unavailability). A hard decline is permanent — the card won't succeed regardless of retries (stolen card, expired card, closed account). Your error handling should distinguish between the two.
Related Tools
UUID Generator
Generate random UUID v4 identifiers. Bulk generate up to 100 UUIDs, toggle uppercase/lowercase and hyphen formatting.
JSON Formatter
Clean, minify, and validate JSON data structures.
JWT Decoder
Decode and inspect JWT tokens — header, payload, timestamps.
Regex Tester
Real-time expression matching and testing.