← Decline Codes
Hard Decline

Stripe Decline Code · Glossary

restricted_card

restricted_card fires when the issuing bank has placed a specific restriction on the card that prevents it from being used for this particular type of transaction — the card is physically active and the account may have funds, but the bank has programmatically blocked it from processing charges that match your merchant category, billing model, or transaction characteristics.

Non-recoverable·25–40%·Updated May 2026

What It Means

What restricted_card actually means.

restricted_card fires when the issuing bank has placed a specific restriction on the card that prevents it from being used for this particular type of transaction — the card is physically active and the account may have funds, but the bank has programmatically blocked it from processing charges that match your merchant category, billing model, or transaction characteristics. Unlike do_not_honor (situational) or stolen_card (permanent), restricted_card is a policy-level block — structural, but not necessarily permanent.

Not sure if this code is recoverable for your specific situation? Use the Stripe Failure Lookup →

Why It Happens

The root causes.

  • 1Merchant Category Code (MCC) blockThe customer's bank has restricted their card from transacting with merchants in specific categories — common on corporate cards, government-issued cards, prepaid cards, and certain co-branded debit cards that explicitly block SaaS, digital goods, or online subscriptions
  • 2Recurring billing restrictionSome banks and card issuers block cards from being charged as recurring/subscription transactions specifically — the card works fine for one-time purchases but fails the moment Stripe sends it as a recurring charge
  • 3Geographic or cross-border restrictionThe card has been restricted from transacting with foreign merchants or in foreign currencies — a customer using a domestic-only debit card to pay a USD-billed SaaS product triggers this, especially common in India (RuPay), Brazil, and parts of Southeast Asia
  • 4Corporate or fleet card policy enforcementBusiness-issued cards often have strict expense category controls set by the employer — a subscription billing charge against a corporate card blocked for SaaS tools returns restricted_card regardless of available balance
  • 5Card tier or product limitationCertain card products (basic debit, student accounts, prepaid cards) are programmatically restricted from specific transaction types at the card product level — not an account-level decision, but a bank product policy

What NOT to Do

Common mistakes that make it worse.

Don't retry the same card on the same billing model

restricted_card is a policy block — not a timing issue, not a funds issue, not a temporary system glitch. Retrying the identical charge with the same card under the same subscription billing flag will produce the exact same failure every time until the underlying restriction is lifted. Retry cycles are entirely wasted effort here and burn your merchant health signal with no recovery upside.

Don't ask the customer to "contact their bank to authorize the charge"

While this sometimes works for do_not_honor, it rarely works for restricted_card. The restriction is often baked into the card product policy or corporate card configuration — the customer's bank may not even allow exceptions at the cardholder request level. Sending customers down this path wastes their time, damages trust, and delays the real solution: a different payment method.

Don't default to a card update prompt asking for the same card type

If a customer is paying with a corporate card, government card, or regional debit card that triggered restricted_card, asking them to "update their credit card" will likely result in them entering the same restricted card type again. Your update flow must explicitly offer non-card payment alternatives — bank transfer, PayPal, UPI, wire — as primary options for this decline code specifically.

Retry Timing

Optimal retry schedule.

restricted_card is a zero-retry, payment-method-switch-first code. The recovery path is entirely about capturing an unrestricted payment method, not about timing a retry.

Recovery Benchmark

What good looks like.

MetricResult
Overall recovery rate25–40%
Recovery via alternate payment method30–45% of those who receive a tailored email
Recovery from corporate card customers20–30% (budget approval or alternate card needed)
Recovery from regional debit card customers35–50% (adding UPI/bank transfer as options performs strongly)
Recovery with generic card update email8–12%
Recovery with BIN-targeted, method-specific outreach+20–25% lift over generic email

A 35%+ recovery rate on restricted_card is achievable when your recovery flow leads with non-card payment methods and your email copy explicitly acknowledges that their card type may not support subscription billing — without making the customer feel at fault. Teams that send generic "update your payment method" emails without offering alternatives consistently underperform at 10–15% recovery.

At Scale

How to handle it at scale.

Automated

  • Webhook trigger: invoice.payment_failed → check failure_code === 'restricted_card' → immediately trigger BIN lookup on the failed card to classify card type (corporate, prepaid, regional debit, consumer) — this data drives everything downstream
  • Zero retries: Add restricted_card to your no-retry segment — unlike soft declines, retrying a restricted card produces 0% success regardless of timing
  • Segmented email sequences by card type:
  • Corporate card → email copy mentions expense tool alternatives, ACH/wire transfer, and purchasing card options
  • Regional debit card (IN/BR/SEA markets) → email prominently features UPI, Boleto, GrabPay, or local bank transfer as primary CTAs
  • Prepaid card → email focuses on adding a full bank account or credit card
  • Consumer card with subscription block → email explains the bank restriction simply and offers PayPal as the fastest fix
  • Payment method update page optimization: Ensure your card update page displays non-card options (bank transfer, PayPal, UPI) as first-class options, not buried footnotes — for restricted_card customers, these are the primary conversion path, not fallbacks
  • Alternate method conversion tracking: Tag all restricted_card customers in your CRM and track their payment method conversion separately — this cohort has the highest alternate-method conversion of any decline code and reveals where your checkout's payment method diversity gaps are

Manual Escalation

  • B2B/corporate accounts with restricted cards: Proactive CSM outreach on Day 2 — offer ACH/wire transfer, invoicing via Stripe Invoices, or a direct bank transfer arrangement for accounts that can't use card billing due to corporate policy; this is how enterprise-tier SaaS retains clients whose corporate cards can't process subscription charges
  • High-value international customers on regional debit: Personal outreach to walk them through enabling UPI, adding a credit card, or using PayPal — many international customers don't realize their domestic debit card has cross-border or subscription restrictions until it fails
  • Repeat restricted_card on consecutive billing cycles: Hard flag for payment method replacement conversation — a card that returns restricted_card every month will never successfully charge; the conversation with the customer needs to be direct, clear, and solution-oriented: this card can never work for your subscription
  • Product-level insight: Track restricted_card frequency by country, card BIN, and customer segment monthly — high occurrence in specific markets signals that you should add a local payment method to your checkout (e.g., adding UPI for India reduces restricted_card failures across your Indian customer base structurally)

FAQs

Frequently asked questions.

What does the Stripe restricted_card decline code mean?

restricted_card means the issuing bank has placed a policy-level restriction on the card that prevents it from being used for this type of transaction. The card may be active and the account may have funds, but the bank has blocked it from processing charges that match your merchant category, billing model, or geographic origin. It is a structural block, not a timing or funds issue.

What are the most common causes of a restricted_card error in Stripe?

Common causes include a Merchant Category Code block preventing the card from transacting with SaaS or digital goods merchants, a bank restriction on recurring or subscription billing, a geographic or cross-border restriction on domestic-only cards, corporate card expense policy enforcement, and card product-level limitations on prepaid, student, or basic debit cards.

Should I retry a payment after a Stripe restricted_card decline?

No. restricted_card is a policy-level block and retrying the same card will always fail. Add it to your no-retry segment immediately. All recovery effort should focus on getting the customer to switch to an unrestricted payment method — bank transfer, PayPal, UPI, or a different credit card without subscription billing restrictions.

How do I recover a payment after a restricted_card decline?

The recovery path for restricted_card is entirely through alternate payment methods, not retries. Use a BIN lookup on the failed card to identify the card type, then send a targeted email leading with non-card payment options — bank transfer, PayPal, or local payment methods like UPI for Indian customers. Generic card update emails without alternate method offers typically recover only 8–12% of restricted_card failures.

What is the recovery rate for Stripe restricted_card failures?

With BIN-targeted, payment-method-specific outreach, recovery rates of 30–45% are achievable. Regional debit card customers offered UPI or local bank transfer recover at 35–50%. Corporate card customers typically recover at 20–30% depending on whether an alternate expense method or invoicing option is available. Generic outreach without alternate payment method CTAs recovers only 8–12%.

Before you retry

Most restricted_card 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.

See what restricted_card costs me →

Stop leaving revenue on the table

restricted_card can't be retried — but it can be caught earlier.

Recurflux handles code-specific retry scheduling, adaptive dunning, and dispute intelligence across all 30 Stripe decline codes. Connect in under 5 minutes.