Do not honor do_not_honor
What this decline means
The customer's bank declined the charge and deliberately gave no reason. 'Do not honor' is the issuer's catch-all — the card may be fine, the balance may be fine, and the bank still said no.
Why it happens on subscription renewals
- The issuer's risk system disliked something about this particular charge — merchant category, recurring pattern, amount, or a temporary account flag it won't disclose.
- The account has a hold or restriction the customer may not even know about (a fraud review, an address mismatch on file, a recent dispute).
- Sometimes it is balance-related — some issuers return do-not-honor where another bank would say insufficient funds.
The merchant playbook
- Retry once or twice with real spacing (days apart). A meaningful share of do-not-honor declines are transient risk flags that clear on their own.
- If it persists, stop retrying and tell the customer plainly: their bank is refusing the charge and only they can find out why. A customer phone call to the issuer resolves what no merchant-side setting can.
- Don't hammer it. Repeated attempts into a risk-flagged account make the flag stickier and can spread to the customer's other charges at your store.
- Check for a pattern across subscribers: many do-not-honor declines from one bank or one day can indicate an issuer-side rule change rather than anything about your customers.
Should you retry?
One or two spaced retries, then escalate to the customer. Persistent do-not-honor is a conversation between the cardholder and their bank — not a retry-schedule problem.
Common questions
What should the customer actually say to their bank?
That they authorize this recurring charge and want it approved. The issuer can see the exact decline reason internally and can whitelist future attempts — but only the cardholder can ask.
Why won't the bank say what's wrong?
Issuers deliberately keep risk-system reasons vague — detailed decline reasons would teach fraudsters exactly which checks they tripped. Legitimate customers pay the opacity tax.
Related codes: call_issuer · generic_error · fraud_suspected · or see the
full decline-code guide.
Where Moorly fits: Moorly reads the decline reason behind every failed renewal in your existing subscription app and applies the playbook above automatically — the right treatment per code, with a dollar figure on what each failure family costs your store. It starts read-only. Join the early-access list →
Moorly is an independent product by Velun Labs and is not affiliated with Shopify, Appstle Inc., or Seal Subscriptions s.r.o. Code names follow Shopify's public API documentation as of August 2026; bank behavior varies by issuer — always confirm against your own admin.