Short answer
Stripe’s docs say card issuers categorize most declines as generic, so the exact decline reason is often unclear. Check the payment in the Dashboard: if Radar blocked it, the outcome type is blocked and you can allow-list a legitimate payment; if the issuer declined it, read the decline code and the advice code, ask the customer to re-enter the card or use another one, and don’t keep retrying a charge the advice code says not to.
Find which kind of decline it is, then act on it
01
The bank declined it without giving a reason
“Card issuers categorize most declines as generic (generic_decline), making the exact decline reason unclear.” Stripe, Card declines
generic_decline and do_not_honor mean the issuer said no without saying why. Stripe’s docs say the customer needs to contact their card issuer for more information. Your app should say the card was declined and offer another card, not guess at a reason.
02
Stripe Radar blocked it before it reached the bank
“If a rule you configured blocks a payment you recognize as legitimate, you can lift the block by locating the payment in the Dashboard and clicking Add to allow list.” Stripe, Declines
generic_decline can also mean Radar or Adaptive Acceptance blocked the payment. In the Dashboard, a blocked payment’s outcome type is blocked, and Stripe doesn’t obtain authorization from the card issuer. If one of your own rules blocked a customer you trust, add them to the allow list; that doesn’t retry the payment, so the customer has to try paying again.
03
The card details are wrong or the card has expired
“If a customer enters an incorrect card number, CVC, or expiration date, the card issuer might decline the transaction.” Stripe, Card declines
incorrect_cvc and expired_card have a clear fix: ask the customer to re-enter the card or use another one. Stripe also suggests collecting the CVC and postal code at checkout to avoid declines that stem from suspected fraud.
04
Retrying a charge the bank won’t accept
“Be aware that card networks limit the number of times you can reattempt a single charge.” Stripe, Card declines
The advice code on the outcome says whether to retry: try_again_later means you can, do_not_try_again means don’t use that card again for the same transaction. Card networks limit how many times a single charge can be reattempted, so don’t loop on retries.
05
A renewal fails while the customer isn’t there
“If your customer isn’t available to make a payment or update a payment method, notify them” Stripe, Card declines
When a subscription renewal or other off-session charge is declined, nobody is on the page to try another card. Tell the customer and send them to a page where they can update their payment method. A renewal that needs 3D Secure is covered on the incomplete subscription page linked below.
Checked against the vendor’s docs on : Stripe docs: Declines; Stripe docs: Card declines; Stripe docs: Decline codes.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- $950Stripe Billing Fix and SetupSubscriptions, webhooks, customer portal and failed payments set up or fixed, tested in Stripe test mode.See scope and start
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way.See scope and start
Related: Stripe subscription stuck incomplete · Stripe works in test mode but not live · Stripe memberships not auto-renewing · Stripe cancel at period end