# Stripe: “The card doesn’t support this type of purchase” (card_not_supported)

> Stripe declines a payment with card_not_supported: the card doesn’t support this type of purchase. Show a clear message, offer another card, don’t retry.

Canonical: https://app369.com/fix/stripe-card-not-supported/
Last updated: 2026-11-09

card_not_supported is a Stripe decline code that means the card doesn’t support this type of purchase, so the card issuer refused it. Code can’t override that decision. The app does decide what the customer sees next, and whether they can finish with another card or payment method.

**Short answer**

Don’t retry the same card. Show a message that asks the customer to use another card or payment method, or to contact their bank, and keep checkout open for a second try. For a renewal, ask the customer to update the saved card. If many customers hit it, look for a pattern in the declined payments in the Dashboard.

Rather not fix it yourself? [**Stripe Billing Fix and Setup**](https://app369.com/fixed-price/stripe-billing-setup/) handles it at a fixed price, agreed before work starts.

## **What the code means, and what to do**

1. 01 ### **The issuer won’t allow this kind of purchase**
  > “The card doesn’t support this type of purchase.” [**Stripe, Decline codes (card_not_supported)**](https://docs.stripe.com/declines/codes) Declines like this come from the bank that issued the card, not from your code. The decline code doesn’t say which limit applied; the customer’s bank can tell them.
2. 02 ### **Tell the customer what to do next**
  > “The customer needs to contact their card issuer to make sure their card can be used to make this type of purchase.” [**Stripe, Decline codes (card_not_supported)**](https://docs.stripe.com/declines/codes) A generic "payment failed" leaves people stuck. Check the decline code and show a message that names the fix: another card, another payment method you accept, or a call to their bank.```
const { error } = await stripe.confirmPayment({ elements, confirmParams: { return_url: 'https://example.com/done' }, redirect: 'if_required' });
if (error?.decline_code === 'card_not_supported') {
  showMessage('This card can’t be used for this purchase. Try another card or contact your bank.');
}
```
3. 03 ### **A renewal or a saved card** When a subscription renewal fails with this code, retrying the same saved card is unlikely to help until the customer has talked to their bank. Email them a link to update the payment method, for example through the customer portal, before the next retry.
4. 04 ### **currency_not_supported is a different code**
  > “The card doesn’t support the specified currency.” [**Stripe, Decline codes (currency_not_supported)**](https://docs.stripe.com/declines/codes) If the code is currency_not_supported instead, the card can’t pay in the currency you charged. Charging in a currency the card supports, or another card, fixes that one.

Checked against the vendor’s docs on November 9, 2026: [Stripe docs: Decline codes](https://docs.stripe.com/declines/codes).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

- [$950**Stripe Billing Fix and Setup**Subscriptions, webhooks, customer portal and failed payments set up or fixed, tested in Stripe test mode.**See scope and start**](https://app369.com/fixed-price/stripe-billing-setup/)
- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.****No issues worth fixing, no charge.**** If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.**See scope and start**](https://app369.com/fixed-price/ai-app-rescue/)

[**All 127 Fiverr reviews**](https://app369.com/reviews/)

Related: [**Stripe card declined (generic_decline)**](https://app369.com/fix/stripe-card-declined-generic-decline/) · [**Stripe insufficient funds**](https://app369.com/fix/stripe-insufficient-funds/) · [**Stripe subscription incomplete**](https://app369.com/fix/stripe-subscription-incomplete-requires-action/) · [**Stripe currency_not_supported**](https://app369.com/fix/stripe-currency-not-supported/)

Questions

## **More on this error**

<details>

<summary>**Will retrying the same card work? **+</summary>

Not on its own. Stripe’s advice is for the customer to contact their card issuer, so retry only after they have, or with a different card.

</details>

<details>

<summary>**Is card_not_supported a fraud flag? **+</summary>

Stripe’s description doesn’t say so. It says the card doesn’t support this type of purchase, which is a limit set by the card issuer.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

</details>

A different error?

## **Describe it and get a written quote**

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)