A payment fails when the card issuer or bank won't pay it, when a fraud screen blocks it, or when the request itself is invalid. On cards, common reasons are insufficient funds, an expired card, incorrect card details and suspected fraud, though most declines arrive as a generic code with no detail. Bank (ACH) payments can fail for insufficient funds, a wrong account number or debits being blocked, and can take up to four business days to report. On a payment plan, tell the customer the day it fails and offer another card or a bank payment.
Why do payments fail?
Stripe groups failures into three types:
- Issuer declines: the card issuer or bank decides not to authorize the payment.
- Blocked payments: Stripe's fraud screening (Radar) blocks a high-risk payment before it reaches the issuer.
- Invalid API calls: an error in the request itself.
Issuers weigh signals such as spending habits, account balance and card data, including the expiry date, address and CVC.
What do the common decline codes mean?
From Stripe's decline code list:
| Code | What it means | Next step Stripe gives |
|---|---|---|
insufficient_funds |
Not enough funds to complete the purchase | Use another payment method |
expired_card |
The card has expired | Use another card |
incorrect_cvc |
The CVC is wrong | Try again with the correct CVC |
card_velocity_exceeded |
Over the balance, credit limit or transaction limit | Contact the card issuer |
do_not_honor |
Declined for an unknown reason | Contact the card issuer |
generic_decline |
Declined for an unknown reason, or blocked by Stripe | Contact the card issuer |
Stripe says issuers categorize most declines as generic, and they discuss the specifics only with their cardholders. For lost, stolen or suspected fraudulent cards, Stripe advises telling the customer only that the card was declined.
Why do bank (ACH) payments fail?
Stripe lists insufficient funds, an invalid account number and the customer disabling debits from their account. An ACH Direct Debit can take up to four business days to confirm success or failure. If it fails after the funds reached your Stripe balance, Stripe removes them. Some failures also make the customer's authorization inactive, so you need a new one before debiting that account again. See ACH returns on payment plans.
What should you do when a plan payment fails?
Stripe's guidance for payments made while the customer isn't present is to notify them and ask them to come back and pay or update their payment method. On a plan:
- Tell the customer the same day, with the amount and a link to pay.
- Offer another way to pay: a different card, or a bank payment.
- Ask for an updated card when the code says expired or incorrect details.
- Send them to their bank for generic and
do_not_honordeclines. - Record the payment as unpaid until it settles, and follow your agreement on late fees.
Should you retry a declined card?
Card networks limit how many times you can retry a single charge. Stripe recommends a maximum of eight retries, and warns that issuers may see more as potential fraud.
For reference, Stripe Billing (Stripe's subscription and invoicing product) offers automatic retries. Its Smart Retries default is 8 tries within 2 weeks, and it won't retry hard declines such as lost_card, stolen_card or incorrect_number until there's a new payment method. For ACH, it retries only insufficient-funds failures, at most 2 times within 40 days. These apply to Stripe Billing subscriptions and invoices, not to every payment on Stripe.
- Stripe: Declines
- Stripe: Decline codes
- Stripe: Card declines
- Stripe: Automate payment retries
- Stripe: ACH Direct Debit
Every figure on this page was checked against these sources on Oct 6, 2026. General information, not legal or tax advice.