Stripe Decline Code · Glossary
currency_not_supported fires when the customer's card issuer does not support the currency in which your Stripe charge was denominated — the card is active, the account may be funded, but the bank has blocked the transaction because the currency doesn't match what the card is permitted to process.
What It Means
What It Means
currency_not_supported fires when the customer's card issuer does not support the currency in which your Stripe charge was denominated — the card is active, the account may be funded, but the bank has blocked the transaction because the currency doesn't match what the card is permitted to process. This is a hard decline at the transaction level — not a timing issue, not a funds issue — and it will repeat on every retry until either the billing currency changes or the customer switches to a payment method that supports your transaction currency.
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 in the same currency against the same card
currency_not_supported is a structural card-currency incompatibility — no retry interval, timing adjustment, or bank contact resolves it. Retrying an identical charge in the same currency against the same card produces the same failure permanently. Every retry wastes an API call and contributes zero to recovery.
✕ Don't ask the customer to "contact their bank to authorize the charge"
Unlike security_violation or do_not_honor, a bank call cannot override a currency restriction that is baked into the card product or network protocol. Sending customers on a futile bank call erodes trust and delays the actual fix: either a currency change on your billing side or a different payment method on the customer side.
✕ Don't assume it's always the customer's problem
A meaningful percentage of currency_not_supported failures originate from a Stripe account configuration issue — your checkout is billing in a currency that your merchant account or the customer's card network doesn't support for your region. Always audit your Stripe currency settings before building a customer-facing outreach sequence.
Retry Timing
Retry Timing
Zero retries in the same currency. The recovery path splits into two parallel tracks — a merchant-side fix and a customer-side payment method switch.
Recovery Benchmark
Recovery Benchmark
| Metric | Result |
|---|---|
| Overall recovery rate | 30–50% |
| Recovery via merchant currency config fix | 85–95% of the config-issue subset |
| Recovery via alternate payment method (customer side) | 30–45% of card-incompatibility cases |
| Recovery via local payment method offer (UPI, Boleto, etc.) | 40–55% in relevant markets |
| Recovery with blind retry in same currency | ~0% |
| Prevention via dynamic currency presentation | Eliminates 60–75% of occurrences for international customers |
A 45%+ overall recovery rate is achievable — but only if you separate the merchant-config sub-type from the customer-card sub-type and handle each independently. The single highest-ROI action for this code is enabling dynamic currency billing or local payment methods at checkout — teams that do this reduce currency_not_supported failures by 60–75% structurally, making post-failure recovery largely a secondary concern.
At Scale
At Scale
Automated
Manual Escalation
FAQs
FAQs
What does the Stripe currency_not_supported decline code mean?
currency_not_supported means the customer's card issuer has blocked the transaction because the charge currency is not supported by their card. The card may be active and funded, but the bank or card network restricts it from processing transactions in the billing currency. It is a structural decline that will repeat on every retry until either the billing currency changes or the customer uses a different payment method.
What are the most common causes of a currency_not_supported error in Stripe?
Common causes include a domestic-only debit card being charged in a foreign currency, a card issued on a regional network like RuPay or Elo with programmatic currency restrictions, a Stripe account billing in a currency incompatible with the customer's card, a prepaid or virtual card locked to a single currency, or a regional card product that only supports a narrow set of approved currencies.
Can currency_not_supported be caused by a Stripe configuration issue?
Yes. If multiple customers from the same country or region are hitting currency_not_supported within the same billing cycle, your Stripe account may be configured to bill in a currency that is incompatible with the card networks dominant in that market. Always audit your billing currency settings before sending customer-facing outreach — a merchant-side currency fix recovers the entire affected cohort immediately.
Should I retry a payment after a currency_not_supported decline?
Never in the same currency. If your Stripe account supports the customer's local currency, immediately re-attempt the charge in their home currency — this requires no customer action. If you do not support local currency billing, route the customer to an alternate payment method such as PayPal, bank transfer, or a local payment option like UPI for India or Boleto for Brazil.
What is the recovery rate for Stripe currency_not_supported failures?
Overall recovery rates are 30–50%. Merchant-side currency configuration fixes recover 85–95% of the affected cohort immediately. For customer-side card incompatibility cases, alternate payment method offers achieve 30–45% recovery. Local payment method options like UPI or Boleto achieve 40–55% in relevant markets. Blind retries in the same currency produce zero recovery.
What to do next
You are here
currency_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 currency_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.