← All Stripe decline codes

Stripe decline code

generic_decline

The card issuer declined the charge but did not provide a specific reason. This is a catch-all soft decline used when the bank will not say why.

Type

Soft decline

Recoverable

Partially recoverable

Frequency

Very Common

What does generic_decline mean?

generic_decline is the second most common decline code after insufficient_funds. Because the bank refused to share the reason, diagnosis requires guesswork. The underlying cause is usually one of: a fraud or velocity flag on the issuer side, an internal bank policy (like international transactions being blocked), a temporary freeze, or a spending limit. About 40-50% of generic_decline failures recover on a 24-72 hour retry as the bank flag clears.

Recovery strategy

Retry approach

Retry once after 24 hours. If it fails again, retry after 72 hours. If that also fails, stop retrying and send the customer a payment update link. Unlike insufficient_funds, long waits rarely help generic_decline because the cause is usually a persistent bank policy, not a missing balance.

Customer message

Avoid blaming the customer. The right message explains that the bank declined the charge without giving a reason and suggests two actions: (1) wait while you retry, or (2) contact the bank or use a different card if it fails again.

Best practices

  • Retry after 24 hours first, then 72 hours
  • Stop retrying after 2-3 attempts and switch to customer outreach
  • Offer the customer a way to try a different card or contact their bank
  • Do not confuse generic_decline with do_not_honor, which is more fraud-flavored
  • If generic_decline rates are unusually high, check whether you are triggering issuer fraud heuristics (large charges, new merchant, unusual geography)

About soft declines

Temporary issue. The card is still valid. High recovery rate with proper retry timing.

Frequently asked questions

What is the difference between generic_decline and card_declined?

In practice they are nearly identical: both mean the issuer refused the charge without giving a specific reason. card_declined is the top-level Stripe error code, while generic_decline is the more specific decline_code value. Treat them the same way.

Why does Stripe return generic_decline instead of a specific code?

The card network and issuer choose what reason to send back. Many banks deliberately send generic decline codes to avoid giving fraudsters clues about why a stolen card was rejected. As a merchant, you have no way to force a more specific code.

How Rebounce handles generic_decline

Automatic soft decline handling, no code required

Rebounce classifies every failed payment by its Stripe decline code and applies the optimal recovery strategy automatically. For generic_decline, that means a limited retry window combined with customer outreach. Multi-channel follow-up through email, SMS, WhatsApp, and in-app banners ensures the customer actually sees the message.

Start free trial