Home / Decline codes / do_not_honor

What does the Stripe do_not_honor decline code mean?

do_not_honor Ambiguous: Stripe calls this "unknown reason"

What it means

Stripe's own description for do_not_honor is as plain as it gets: "The card was declined for an unknown reason." This is one of the oldest and most generic codes in card payments, originating from a banking-network era where issuers weren't required to disclose a specific reason for a decline. It's also one of the most commonly seen decline codes across Stripe accounts generally, precisely because it's a default fallback for so many different underlying causes.

Will retries fix it?

Stripe's documentation genuinely doesn't say either way, and we're not going to invent a more confident answer than Stripe itself gives. Some do_not_honor declines are temporary (a bank's fraud system flagged one transaction but not the next), and others reflect a standing block that will fail every time. Without more information from the issuer, there's no way to tell which one you're looking at from the code alone.

What you should do

Let Stripe's Smart Retries make its automatic attempts first, since that costs you nothing and does resolve a portion of these. For the ones still failing afterward, direct customer outreach asking them to try a different card or contact their bank is the only path forward, since Stripe's own guidance is for the customer to contact their issuer.

Where Valkyrie helps: we only chase do_not_honor declines that are still unresolved after Stripe's own retries have had their shot, so we're not billing you for recoveries Smart Retries would have gotten anyway. From there, it's a branded email asking the customer to update their card.

$
$
MRR at risk each month
Stripe recovers automatically
What Valkyrie chases
Your Valkyrie fee

Your net monthly gain

300% ROIEvery $1 you pay us puts $3 back in your pocket.

Estimates based on industry averages. Connect your Stripe to see your real number.

See my actual number

Questions, answered

Why won't Stripe say the real reason for a do_not_honor decline?

Because the issuing bank itself often doesn't send Stripe a more specific reason. do_not_honor is a decades-old banking term that effectively means "we're declining this and we're not required to explain why," and that opacity carries through to Stripe's own records.

Is do_not_honor usually fraud-related?

It can be, but Stripe's documentation doesn't say that's the typical cause. It's genuinely a catch-all, which is exactly why we're not going to claim a specific cause Stripe hasn't confirmed.

Should I treat every do_not_honor decline the same way?

We'd suggest letting Smart Retries attempt it first, since some do resolve, and reserving direct customer outreach for the ones that are still failing after Stripe's automatic attempts are exhausted.

Source: Stripe decline codes documentation, checked October 2026.