← Back to blog
stripedecline-codesdo-not-honorfailed-paymentsrecovery
4 min readRecova

Stripe do_not_honor: What It Means and How to Recover It

do_not_honor sounds permanent but is usually temporary. It is one of the most common soft declines on Stripe subscription payments and recovers well with correct retry timing.

Contents

do_not_honor is one of the most alarming-sounding Stripe decline codes, and one of the most misunderstood. The name suggests a hard refusal. In practice, it is almost always a soft decline that resolves with a properly timed retry.

This page covers what do_not_honor means, why banks use it, and how to recover the payment without bothering the customer.


What does do_not_honor mean?

do_not_honor means the issuing bank declined the transaction without providing a specific reason. It maps to ISO 8583 code "05," which is the most common network decline code for card-not-present transactions.

Banks use do_not_honor as a catch-all for situations where they do not want to disclose the actual reason for the decline. Common underlying causes include temporary fraud flags, spending limits reached, multiple back-to-back declines on the same card, velocity triggers, or a bank system issue.

The important thing: do_not_honor does not mean the card is blocked, closed, or fraudulent. It means the bank said no right now, for a reason it is not sharing. That distinction matters for how you respond.


How is do_not_honor different from generic_decline?

They are effectively the same in practice. Both are catch-all soft declines from the issuer. The difference is that do_not_honor comes through when the bank explicitly returns the "05" network code, while generic_decline is Stripe's broader catch-all when no specific code is returned.

Both are soft declines. Both should be retried before emailing. Both recover at similar rates with correct timing, and both map to the same ISO 8583 "05" response. The generic_decline guide covers the shared recovery approach in detail.


Why do_not_honor happens on subscription payments

Subscription renewals trigger do_not_honor more often than one-time purchases for the same reasons as generic_decline: they fire at odd hours during batch billing runs, they look different to bank fraud systems than customer-initiated purchases, and they can stack with recent activity on the same card.

A customer who just made several purchases in quick succession may see their bank soft-decline the next charge automatically. The decline clears once the activity pattern normalizes, typically within 24 to 48 hours.


How to handle do_not_honor

Step 1: Retry silently after 24 hours. do_not_honor is a soft decline. The first response is always a silent retry, not an email. The underlying condition usually clears within a day.

Step 2: If the first retry fails, wait another 24 to 48 hours and retry again. A second retry at 72 hours from the original failure catches a different window and a different set of bank conditions.

Step 3: Email on day 4 if both retries failed. If two silent retries have not resolved it, a brief email asking the customer to check with their bank or try a different card is appropriate. Keep it short. The right trigger timing and tone matters more than length. Most customers do not know the charge failed.

Step 4: Follow up at day 7 and day 14. Continue the sequence with one more retry at day 7 and a follow-up email if needed. Most recoveries happen within the first 14 days.


What Recova does with do_not_honor

Recova treats do_not_honor identically to generic_decline: both are soft declines routed to a retry-first sequence. The first retry fires at 24 hours, the second at 72 hours. If both fail, an AI-written email goes out at day 4 using the merchant's brand voice and follows up through day 30.

What does do_not_honor mean on Stripe?
The issuing bank declined the charge without providing a specific reason. It is the card-not-present equivalent of a generic refusal. Most do_not_honor declines are temporary soft declines.
Is do_not_honor a hard or soft decline?
Almost always soft. The card is valid and the account exists. The bank declined for a temporary reason it chose not to disclose. Retrying after 24 hours is the right first response.
Should I email the customer after a do_not_honor decline?
Not immediately. Try two silent retries first. Most do_not_honor declines resolve without the customer needing to take any action.
What causes do_not_honor on subscription renewals?
Common causes include temporary fraud flags, spending velocity limits, multiple recent charges on the same card, or bank system issues. All of these are temporary and clear within 24 to 48 hours.
How is do_not_honor different from generic_decline?
They are functionally the same. Both are catch-all soft declines from the issuer. do_not_honor comes through when the bank returns the ISO 8583 code 05 explicitly. Both are handled identically: retry first, email if retries fail.
Further reading
Recova
Published by
Recova

Recova recovers failed Stripe payments, fights chargebacks, and surfaces revenue intelligence for subscription businesses. 20% of what we recover, nothing until then.

Run your free Stripe audit

See exactly what your account is leaking. Free, no account required.

Start free audit →