What happens when an auto-draft payment fails, and how do I retry it without double-charging the client?
When an auto-draft charge fails, no money was actually taken — the bank or card network rejected the attempt, so there's nothing to refund and nothing sitting in limbo. To retry it safely, confirm the specific decline or return reason first, fix the underlying cause (expired card, stale bank link, insufficient funds), and then run a single new attempt against the original invoice rather than creating a second one, so you never end up with two live charges chasing the same debt.
Auto-draft failures are routine, not exceptional — cards expire, ACH bank links go stale, and low balances bounce a charge right on the due date. The risk isn't the failure itself; a declined or returned charge simply means no money moved. The risk is what happens next: a second charge attempt fired off before you've confirmed the first one actually failed, or two invoices chasing the same debt because a human and an automated reminder both tried to collect at once. Getting this right is mostly about sequencing and record-keeping, not special software.
Why the answer is what it is
Confirm the decline reason before you touch anything
Card networks and ACH returns both send a reason code — insufficient funds, closed account, expired card, invalid account number. Retrying blind wastes a cycle and, on ACH in particular, can trigger a second return fee if the underlying problem (a closed account) was never going to clear.
Treat it as one billing event, not two
The safest pattern is to attach every retry attempt to the original invoice or subscription record rather than generating a fresh invoice. That way the client sees one open balance with an attempt history, not two amounts that could both get paid.
Give ACH the time it actually needs
Card declines are usually instant, but ACH returns can take a few business days to post. Re-drafting the same day a charge shows as failed, before the bank has confirmed it's truly returned, is one of the more common ways agencies end up with two live attempts on one invoice.
Only one channel should be allowed to draw funds at a time
If a teammate can manually resend a payment link while an automated reminder is also live, or if the client can hit Pay Now in a portal at the same moment a manual re-draft goes out, you get parallel attempts. Decide who owns the retry before you fix anything else.
Fix the payment method, not just the amount
If the failure was an expired card or a bank link that needs re-authorization, an identical retry will fail again. Get the client to update or re-link the method first, then charge it — HubWho's auto-draft is built with a per-subscription safety guard against double-charging and a per-run cap, so a corrected retry through it doesn't also fire the original failed attempt.
What to look for
- Pull the decline or return reason code before you touch the invoice again
- For ACH, wait out the return window (typically 2-4 business days) before re-drafting — a same-day retry can land on top of a return that hasn't posted yet
- Retry against the original invoice or subscription record — never spin up a second invoice for the same charge
- Confirm no one else (a teammate or an automated reminder) is also trying to collect on that same invoice at the same time
- Get the payment method fixed first — an expired card or a disconnected bank link will just fail again on a straight retry
- Log every attempt with its date, amount, and result directly on the invoice so the retry history is visible later
- Reconcile against your bank or processor statement before marking the invoice paid, so a pending attempt doesn't get counted twice
Related questions
Can I just charge the client's card again right after a decline?
Not immediately without checking the reason first. A hard decline (closed account, stolen card) will just fail again; a soft decline (temporary insufficient funds) might clear in a day or two. Pull the reason code, and only re-attempt once you know the underlying cause is actually resolved.
How long should I wait before retrying a failed ACH auto-draft?
Give it a few business days. ACH returns aren't always instant — a charge can show as pending, then come back as returned two to four business days later. Re-drafting before that window closes risks two attempts landing on the same invoice.
Does HubWho automatically retry failed auto-draft payments for me?
Not automatically today — automated dunning and retry sequencing are on HubWho's roadmap. What's built now is visibility and manual control: failed auto-charges surface in the notification feed and the AI daily brief, clients can pay directly from their portal, and the auto-draft feature itself carries a per-subscription safety guard against double-charging plus a per-run cap when you do re-run it.
How Roffik addresses this
Billing, ACH and card payments, recurring subscriptions, per-client margin tracking, and branded client portals for marketing agencies — built on Midnight + cyan. Learn more about HubWho.