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
- • Shopify billing attempt errorCode: CARD_DECLINED
- • Recharge charge error_type: CARD_DECLINED
- • Stripe Charge outcome.reason: card_declined with no specific decline_code sub-reason
- • Subscription remains ACTIVE in Shopify while revenue is not collected
- • Recharge retries per dunning schedule but failures may persist
How to fix it
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 →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 →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.
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 →