All recovery guides

Failed-payment guideStripe decline reason: do_not_honor

What do_not_honor means in Stripe, and how to recover the payment

do_not_honor is the most common Stripe decline nobody can explain: the bank refused and gave no reason. What it actually means, why retries sometimes work anyway, and the email to send.

What do not honor means

The issuing bank refused the charge and declined to say why. Stripe's own documentation describes do_not_honor as “the card was declined for an unknown reason”, and its recommended next step is for the customer to contact their card issuer. The card itself is usually valid: this is the bank exercising discretion, not a data problem you can fix on your side.

Why it happens

  • The bank's risk model flagged the charge — a recurring merchant it does not recognise, an unusual amount, or a country mismatch.
  • The customer has a block on recurring or card-not-present transactions they set up and forgot about.
  • A temporary hold on the account that the bank will not describe to the merchant.
  • The card was replaced and the old number still authorises some transactions but not others.

What Stripe does on its own

Stripe will retry on its schedule, and a meaningful share of do_not_honor declines clear on a later attempt because the bank-side condition was temporary. But there is no signal in the response telling you whether this one will, which is exactly what makes the code frustrating.

Bank decline codes you may see alongside do_not_honor

Your customer's bank sends its own numeric code, which Stripe surfaces separately from its decline_code. The same number means different things on different card networks, and Stripe does not publish a strict one-to-one mapping between them, so treat these as codes commonly seen with this failure rather than as equivalents.

CodeNetworkWhat the network calls it
05VisaDo not honor.
05MastercardDo not honor.
05DiscoverDo not honor.
05JCB InternationalDo not honor.
05Cartes BancairesDo not honor.

Quoted from Stripe's network decline codes reference.

The recovery playbook

  1. Let Stripe's retry run first. A do_not_honor that clears on its own costs you nothing, and emailing before the retry spends goodwill on a problem that may not exist.
  2. If the retry fails, email the customer and be specific about what to do: their bank refused the charge and only the bank can say why, so the fastest fix is a quick call to the number on the back of the card, or paying the invoice link with a different card.
  3. Do not tell the customer their card was declined for insufficient funds or that it expired. You do not know that, and guessing wrong makes you look careless about their money.
  4. For a high-value account, send a personal note rather than a template. A do_not_honor often needs the customer to actively authorise the merchant with their bank, and that only happens if someone asks them to.
  5. If the same customer produces do_not_honor repeatedly, stop retrying and ask for a different card. Repeated declines against one issuer rarely resolve themselves.

Moderately recoverable, but only with customer involvement. Nothing you can do on the Stripe side changes a bank's decision — the recovery path runs through the cardholder.

The email to send

This is the exact template MRRdue's recovery assistant suggests for do_not_honor cases. Copy it, swap the details, and send it from your own address.

Subject: Let's keep your subscription running

Hi Alex,

Your $49.00 payment is still pending (your bank declined the charge), and I wanted to reach out personally so nothing gets interrupted on your end.

Here's a secure link to update your payment details — it only takes a minute:
https://invoice.stripe.com/i/…

If something doesn't look right, or you're not sure what changed, just reply here and we'll help you figure it out.

Thanks so much,
Your SaaS

More variants (and retention-risk templates) in the free recovery email template gallery.

Stop working declines from a spreadsheet

MRRdue imports your failed payments with read-only access, ranks them by recoverable dollars and decline reason, and drafts this email for every case. You stay the sender.