AltorLabFree Scan →
Error CodesCARD_DECLINED
shopifystriperecharge

CARD_DECLINED on Shopify Subscription Billing Attempt — Cause and Fix

Root cause

CARD_DECLINED fires when the customer's issuing bank refuses the subscription renewal charge without a specific machine-readable reason. It is the generic bank refusal code and maps to Stripe's card_declined decline code. Common triggers include suspected fraud, card blocked for online or recurring transactions, daily spending limits exceeded, or a temporary bank system issue. Unlike INSUFFICIENT_FUNDS, CARD_DECLINED does not indicate a specific recoverable condition — the exact reason is only available to the customer from their bank.

Symptoms

How to fix it

1

Confirm CARD_DECLINED errorCode in Shopify Admin

Navigate to Shopify Admin > Orders > Subscriptions. Find the affected subscription contract and open the billing attempts tab. Confirm the most recent attempt shows errorCode: CARD_DECLINED.

Open in admin →
2

Check Recharge charge attempt count

In Recharge Admin, navigate to Charges and filter by status=ERROR. Find the affected charge and check the number of retry attempts. If attempts are below the dunning limit, Recharge will continue retrying automatically per your dunning schedule.

Open in admin →
3

Wait 3–5 days and retry billing attempt

For CARD_DECLINED without a specific sub-reason, wait 3–5 days before retrying. Temporary bank holds and fraud flags often clear within this window. Use subscriptionBillingAttemptCreate in the Shopify Admin API to trigger a new attempt without cancelling the subscription.

4

Send payment method update email if retries fail

If 2–3 retry attempts fail across 7+ days, the card is likely persistently blocked. Send the customer a payment method update email via Recharge Admin > Customer record > Send Payment Update Email. Ask the customer to contact their bank or provide a new card.

Open in admin →

Frequently asked questions

Is CARD_DECLINED the same as INSUFFICIENT_FUNDS on a Shopify subscription?

No. INSUFFICIENT_FUNDS is a specific decline code indicating the account lacks funds — it often resolves after a few days. CARD_DECLINED is the generic refusal code with no specific reason. It may resolve on retry, or the card may be permanently blocked. The retry strategy differs: INSUFFICIENT_FUNDS should be retried after 3–5 days aligned with payday cycles; CARD_DECLINED warrants fewer retries before requesting a new payment method.

How many times does Recharge retry a CARD_DECLINED subscription charge?

Recharge retries according to your configured dunning schedule, up to the maximum attempts set in Recharge Admin > Settings > Dunning. The default is typically up to 8 attempts. CARD_DECLINED does not automatically stop retries — Recharge treats it the same as other soft declines unless you configure a per-error-type rule.

Why does the same card get CARD_DECLINED for a subscription but work for a one-time purchase?

Banks apply different fraud rules to recurring off-session charges versus customer-present transactions. A card that works for a one-time purchase at checkout — where the customer is actively authenticating — may be blocked for an automated subscription renewal because the bank's recurring transaction rules are stricter than its interactive payment rules.

When should I ask the customer to update their payment method after CARD_DECLINED?

After two to three retry attempts spanning 7 or more days with no success, the decline is likely persistent. At that point, send a payment update email. Continuing to retry a persistently declined card wastes dunning attempts and risks the subscription being cancelled before the customer is even contacted.

Detect this error automatically

Free cross-stack scan finds all billing errors in 60 seconds.

Run Free Scan →