Stripe Decline Code · Glossary
card_not_supported fires when the customer's card type is not accepted for this specific type of transaction — the card is active and the account may be funded, but the card product itself is structurally incompatible with the transaction class being attempted.
What It Means
What It Means
card_not_supported fires when the customer's card type is not accepted for this specific type of transaction — the card is active and the account may be funded, but the card product itself is structurally incompatible with the transaction class being attempted. It is a hard, card-product-level decline that sits close to service_not_allowed in the taxonomy: where service_not_allowed blocks a service category, card_not_supported blocks a specific card product type from being used for your transaction type entirely — prepaid cards on subscription billing, virtual cards on recurring charges, or specific network card products not accepted by your merchant configuration.
Not sure if this code is recoverable for your specific situation? Use the Stripe Failure Lookup →
Why It Happens
Why It Happens
What NOT to Do
What NOT to Do
✕ Don't retry — this is a permanent card product incompatibility
card_not_supported is not a timing issue, a funds issue, or a bank-contact-resolvable problem. The card product itself is incompatible with your transaction type — no retry interval or cardholder action changes this. Add it to your no-retry blocklist alongside service_not_allowed and restricted_card immediately.
✕ Don't ask the customer to contact their bank
Unlike call_issuer or security_violation, a bank call cannot override a card product specification. The incompatibility is baked into the card type at the product level — the bank's customer service team has no mechanism to make a prepaid card support recurring billing or make an HSA card work at a non-qualifying merchant. Sending customers on a bank call for card_not_supported wastes their time and destroys trust.
✕ Don't send a generic "update your credit card" email without specifying why
If the customer is using a prepaid card, virtual card, or restricted card product, asking them to "update their payment method" without explaining that their specific card type isn't supported leads to them re-entering the exact same incompatible card type — generating another card_not_supported failure. Your email must name the card type limitation explicitly and guide them to a compatible alternative.
Retry Timing
Retry Timing
Zero retries. The entire recovery path is a payment method replacement sequence — the card product is permanently incompatible.
Recovery Benchmark
Recovery Benchmark
| Metric | Result |
|---|---|
| Overall recovery rate | 20–35% |
| Recovery with BIN-targeted email (card type specific) | 35–50% of those who engage |
| Recovery with generic card update email | 5–10% |
| Recovery via alternate payment method (PayPal, bank transfer) | +15–20% additional lift |
| Recovery with blind retries | ~0% |
| Prevention via BIN check at checkout | Eliminates 55–65% of occurrences |
A 30–35% overall recovery rate with BIN-targeted emails that name the exact card type issue and lead with a compatible alternative. The dominant ROI lever — identical to service_not_allowed — is checkout-level BIN detection that prevents incompatible cards from being saved in the first place.
At Scale
At Scale
Automated
Manual Escalation
FAQs
FAQs
What does the Stripe card_not_supported decline code mean?
card_not_supported means the customer's card product type is structurally incompatible with the transaction being attempted. The card may be active and funded, but the card type itself — prepaid, virtual, HSA/FSA, or an unsupported network — cannot be used for this merchant or transaction class. It is a permanent card product incompatibility, not a timing or funds issue.
What are the most common causes of a card_not_supported error in Stripe?
Common causes include prepaid cards being used for subscription or recurring billing, a card network not configured in your Stripe merchant account, benefits or government cards restricted to specific merchant categories, virtual or corporate cards with product-level recurring billing restrictions, and HSA/FSA cards used at non-qualifying merchant category codes.
Should I retry a payment after a card_not_supported decline?
Never. The card product itself is incompatible with your transaction type — no retry interval changes this outcome. Add card_not_supported to your permanent no-retry blocklist and focus all recovery effort on capturing a compatible payment method: a standard credit or debit card, PayPal, bank transfer, or a local payment method.
How do I prevent card_not_supported failures at checkout?
Implement a BIN API lookup at card entry in your checkout to identify incompatible card types — prepaid, virtual, HSA/FSA, unsupported networks — before the customer completes signup. An inline, non-alarming message at this stage eliminates 55–65% of card_not_supported failures before they reach your billing system. This is the highest-ROI engineering investment for this specific decline code.
What is the recovery rate for Stripe card_not_supported failures?
Overall recovery rates are 20–35%. BIN-targeted emails that name the specific card type incompatibility and lead with compatible alternatives recover 35–50% of customers who engage. Generic card update emails recover only 5–10%. Alternate payment method options like PayPal and bank transfer add 15–20% additional lift. Checkout-level BIN detection prevents 55–65% of occurrences entirely.
What to do next
You are here
card_not_supported
Decline code reference
Check recoverability
Stripe Failure Lookup
See what's recoverable — and what isn't →
Then
Sign up for Recurflux
Automate recovery for every decline code →
Before you retry
Before you retry
Most card_not_supported failures are retried on the wrong schedule — which recovers the payment about 30% of the time. The other 70% leaves permanently. See what this code is actually costing at your MRR before deciding how to handle it.
Stop leaving revenue on the table
Recurflux handles code-specific retry scheduling, adaptive dunning, and dispute intelligence across all 30 Stripe decline codes. Connect in under 5 minutes.