← Back to Stripe Error Codes

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

  1. Ask customer to contact issuer and whitelist the charge.
  2. Retry later once customer confirms approval.
  3. 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