Stripe generic_decline — recovery guide
The issuer said no and wouldn't tell Stripe why. Nearly identical to card_declined, with one tactical difference below.
TL;DR
Email the customer within an hour, retry at +24h and +3d, include SMS at +5d. The key tactical move: explicitly ask the customer to call their bank — generic_decline almost always comes from risk scoring, and a 2-minute bank call usually clears it.
What generic_decline means
generic_decline is the issuing bank responding with a refusal and no specific reason code. It's close cousin to card_declined, but with a subtle difference: generic_decline typically comes from the bank's risk or fraud scoring engine, while card_declined can come from anywhere in their stack.
For recovery purposes, treat them the same. For messaging purposes, you can be slightly more explicit about asking the customer to call their bank.
Why it happens
- Risk model false positive — the bank's fraud model decided your charge was suspicious based on amount, merchant type, velocity, geography, etc.
- Customer's recent activity — if they just got a fraud alert from the bank on another charge, subsequent charges get blocked reflexively.
- Unusual MCC — your merchant category code may be flagged by some issuers as high-risk.
- Geographic mismatch — customer traveling, billing address doesn't match IP.
Recovery playbook
- +1h: email explicitly saying "the bank declined — this is usually a fraud alert on their end, please contact them."
- +24h: retry the charge (bank may have cleared the block once customer called).
- +48h: second email offering Billing Portal to switch cards.
- +3d: retry again.
- +5d: SMS — short and direct.
- +7d: final email + subscription pause.
What to tell the customer
Hi [name], your bank declined the charge for $[amount] with no specific reason. This usually means their fraud system flagged it — a 2-minute phone call to the number on the back of your card to approve the charge almost always clears it. Or, if you'd rather use a different card, you can update in 20 seconds here: [Billing Portal link].
The extra sentence explaining that a bank call fixes it is the difference between generic_decline messaging and card_declined messaging — and it's worth adding because it recovers measurably more customers.
Related decline codes
Use the right script for each decline code
RecoverKit's AI writes code-specific messaging so your bank-call suggestion only fires when it actually applies. $19/mo.
Start Free Trial →