Stripe Error: Do Not Honor — What It Means & How to Fix It
A broad issuer refusal with limited detail. Commonly used for risk-related declines.
What do_not_honor means in Stripe
A do_not_honor decline means the issuing bank refused the charge without giving Stripe a more specific reason. Treat it as a customer-assisted recovery problem, not a pure retry-timing problem.
- Decline type
- Hard or customer-action decline
- Retry guidance
- Retry once after 24 hours if the customer is active, then ask the customer to contact their bank or use a different card.
Common causes
- Issuer fraud/risk model blocked transaction
- Card spending controls or merchant restrictions
- Issuer declined without returning granular reason
How to fix it
- Ask customer to contact issuer and whitelist the charge.
- Retry later once customer confirms approval.
- Collect a different card if repeated declines continue.
Recovery email template
Use this as a starting point when the payment needs customer action.
Subject
Action needed: your payment could not be approved
Body
Hi {{customer_name}}, your bank declined the latest payment for {{product_name}}. Please contact your card issuer to approve the charge or update your payment method here: {{billing_portal_link}}.
Related Stripe decline-code questions
What does do_not_honor mean in Stripe?
It means the card issuer declined the payment but did not provide a more specific decline reason to Stripe.
Should I keep retrying do_not_honor?
Do not retry aggressively. One delayed retry can be reasonable, but repeated unattended retries usually need customer or issuer action.
What should I tell the customer?
Ask the customer to contact their bank to approve the charge or update to a different payment method.
Should you retry this Stripe error?
Hard decline: Often treated as hard decline for unattended retries. RetryKit should avoid aggressive auto-retries and move quickly to customer outreach.
Stop losing revenue to failed payments. RetryKit automatically recovers failed Stripe payments. Connect in 5 minutes.
Start with RetryKit