Stripe do_not_honor Error — Causes, Fix & MRR Impact
The Stripe do_not_honor error occurs when the card issuer declines the transaction without providing a specific reason, causing failed charges and MRR risk for SaaS businesses processing subscription payments.
What this means
The bank declined the charge and did not give a specific reason. The customer should try again later, use another card, or contact their bank.
Why it happens
Issuer policy or internal rule
The issuer declined based on internal rules (e.g. risk, velocity) but did not return a specific decline code.
Temporary issuer issue
The bank or network had a temporary problem; a retry later may succeed.
Account or card status
The card or account is in a state that triggers a generic decline (e.g. restricted, under review).
Network or issuer communication
The decline was passed from the network as do_not_honor when the issuer did not specify a code.
MRR Impact
Generic issuer declines reduce MRR; retries and dunning can recover a portion. Customer contact with bank may be needed.
Do not honor is a common generic decline; retries and clear messaging help recover MRR.
Avg. recovery rate: Variable; retries help; some cases require the customer to contact the issuer.
Urgency: within 24hHow to fix it
- 1
Treat as retriable decline
Include do_not_honor in your retry logic. Schedule a retry with exponential backoff (e.g. 1, 3, 5 days) and use Stripe's advice_code if present.
- 2
Show generic decline message
Do not display 'do_not_honor' to the customer. Use: 'Your card was declined. Please try again, use another card, or contact your card issuer.'
- 3
Send dunning email
After the first failure, email the customer that the payment did not go through and ask them to ensure their card is valid and has funds, or to try another payment method.
- 4
Log for analytics
Track do_not_honor volume and recovery rate. If you see patterns (e.g. one issuer or region), you can tailor messaging or retry strategy.
- 5
Escalate after max retries
After your max retries, prompt the customer to contact their bank or update their payment method. Consider in-app banner or support outreach for high-value accounts.
Detect do_not_honor automatically
Monitor do_not_honor rate; spikes may indicate issuer or network issues. Track recovery rate over time.
Monitor your Stripe health free →FAQ
What does Stripe do_not_honor mean?
Should I retry do_not_honor?
How do I message do_not_honor to the customer?
Does do_not_honor affect MRR?
Related errors
The Stripe generic_decline error occurs when the card is declined for an unspecified reason or blocked by Stripe Radar or Adaptive Acceptance, causing failed charges and MRR risk for SaaS businesses processing subscription payments.
Affects MRRno_action_takenThe Stripe no_action_taken error occurs when the card issuer declines the transaction without specifying a reason, causing failed charges and MRR risk for SaaS businesses processing subscription payments.
Affects MRR