Summary
You can accept ACH payments on B2B invoices without building anything: connect Stripe, turn on ACH Direct Debit, and put a pay link on every invoice and reminder. The customer authorizes a debit from their bank account, the payment confirms within a few business days, and it is recorded against the invoice in Xero or QuickBooks.
- What you need: A Stripe account with ACH Direct Debit turned on, connected to the tool that sends your invoices and reminders. Stripe collects the customer's authorization and emails them the mandate confirmation.
- How long it takes: Stripe says an ACH debit can take up to 4 business days to confirm success or failure. Until then the payment is pending, so do not chase it or mark it paid manually.
- What it costs: Stripe's standard US price for ACH Direct Debit is 0.8%, capped at $5.00. Paidnice adds no fee on any plan.
A customer clicks pay on your invoice and chooses to pay from their bank account. Their account needs micro-deposit verification, so the debit is still not through two weeks later. In the meantime they pay the same invoice by check, your bookkeeper marks it paid, and then the bank debit clears too.
That is a real case from a US distributor using Paidnice. Here is what you need to accept ACH payments on B2B invoices, what happens between the click and the cash, and what to do when a debit is pending, fails or is returned.
Paidnice is accounts receivable automation for businesses on Xero and QuickBooks Online. It offers direct debit for invoices in six bank schemes through Stripe, including ACH in the United States.
Free: Payment reminder email templatesCopy the reminder emails for before, on and after the due date.ACH debit or ACH credit: which to ask a business customer for
Ask a business customer for an ACH debit if you want to control when the payment starts. Nacha, which governs the ACH network, describes an ACH credit as a "push" of funds from the payer's account and an ACH debit as a "pull" of funds into the collector's account (Nacha ACH developer guide).
| ACH credit (customer pushes) | ACH debit (you pull) | |
|---|---|---|
| Who starts it | The customer, from their bank or AP system | You, after the customer authorizes it |
| What the customer needs | Your routing and account number | A pay link and their own bank login or account details |
| When it arrives | When their payment run goes out | A few business days after they click pay |
| Matching to the invoice | Manually, from the remittance advice | Automatic, because the debit starts from the invoice |
Many larger customers will still pay by ACH credit from their own payment run, and that is fine. Keep your bank details on the invoice for them, and offer the debit as the faster option for everyone else.
Nacha also separates business and consumer debits. A CCD entry goes "to a corporate account" and a PPD entry goes "to a consumer account". The difference matters most when a debit is disputed, which is covered further down this page.
What you need before you accept ACH payments
- A Stripe account with ACH Direct Debit turned on in your payment method settings.
- Stripe connected to the tool that sends your invoices and reminders. In Paidnice, connect it on the Stripe integration.
- Customer authorization. Stripe says "ACH Direct Debit payments require customer authorization before you can debit their bank account". Stripe shows the authorization when the customer pays and then emails them a confirmation of the mandate (Stripe ACH Direct Debit docs).
- A billing email for each customer, so Stripe can send that confirmation.
You do not need a separate ACH processor, a merchant account or a bank file upload. Stripe originates the debit for you.
How to accept ACH payments on an invoice, step by step
- Send the invoice from Xero or QuickBooks as usual. Paidnice adds a pay link to the reminders, statements and SMS that follow it.
- The customer opens the link and lands on their customer payment portal, which lists every open invoice.
- They tick one invoice, several, or pay the whole balance, and choose bank debit instead of card.
- Stripe verifies their bank account. By default it uses instant verification through the customer's bank login, with a fallback to manual entry and micro-deposits.
- The customer accepts the authorization. The payment completes on the portal itself, with no redirect to a separate checkout.
- The payment shows as pending until Stripe confirms it, and is then recorded against each invoice in your ledger.
One authorization can cover several invoices, and Paidnice applies the payment to each invoice the customer ticked.
How long an ACH debit takes
Stripe says an ACH debit "can take up to 4 business days to receive acknowledgement of success or failure". Until then, Stripe holds the payment in a processing state, and Paidnice shows it on the Payments page as a pending bank debit.
Verification can add time. If the customer cannot use instant verification, Stripe sends micro-deposits that "take 1-2 business days to appear" on their statement, and the customer then has 10 days to confirm them (Stripe docs). That gap is how the distributor at the top of this page ended up with a two-week delay and a double payment.
Same Day ACH exists: Nacha says it allows payments "of up to $1 million" to settle on the same banking day (Nacha fact sheet). For a debit started from an invoice, plan around Stripe's timing, not the fastest the network can go.
Before you mark an invoice paid manually
Check the Payments page for a pending debit on that invoice first. If one is pending and the customer has paid another way, ask them which payment to keep before the debit clears.
When an ACH debit fails or is returned
An ACH debit can fail at any point before it confirms, usually because the account has insufficient funds, is closed, or the details are wrong. Stripe also warns that a failure can arrive after a payment was marked successful, in which case it is treated as a dispute and Stripe charges a failure fee.
The dispute window depends on the account type. Stripe says a customer can dispute "up to 60 calendar days after a debit on a personal account, or up to two business days for a business account", and that disputes in those windows are final. Debiting business accounts is one of the quieter advantages of B2B ACH.
In Paidnice, a failed debit shows on the Payments page and the invoice is frozen. No reminders or automatic late fees go out while it is frozen, so the customer does not get a "your invoice is overdue" email for a payment they think they made.
You contact them, fix the cause, then unfreeze the invoice and let the reminders carry on. For the full playbook, see what to do when a direct debit fails.
How the payment reaches Xero or QuickBooks
Once Stripe confirms the debit, Paidnice records the payment against the invoice in Xero or QuickBooks Online, and writes the Stripe fee and any surcharge to the ledger too. Reminders stop because the invoice is paid.
If the record cannot be written, for example because someone already marked the invoice paid in the ledger, the Payments page shows the payment as paid but not synced. That is your cue to check for a double payment and refund or book the overpayment.
What ACH costs to accept
Stripe's standard US price for ACH Direct Debit is 0.8% per payment, capped at $5.00, against 2.9% + 30¢ for a domestic card (Stripe pricing). On a $10,000 invoice that is $5.00 by ACH and $290.30 by card. Custom Stripe pricing can differ, so check your own account.
Paidnice adds no fee to a direct debit on any plan. You can pass a processing fee on to the customer, and set it separately for bank debit and for card. For a side by side of the two methods, see card or direct debit for B2B invoices.
How Paidnice handles ACH payments
- Pay links everywhere: every reminder, SMS and statement carries a link to the portal, where the customer can pay by card or bank debit.
- Every attempt on one page: the Payments page lists abandoned or expired checkouts, pending bank debits, payments that need the customer to act, failed debits, and payments that were collected but did not sync to the ledger.
- A failed debit freezes the invoice: nothing is sent until you fix it. There is no automatic late fee on a failed debit; charge one manually if your terms allow.
- Payment plans on ACH: customers can save a bank account for Autopay, and each installment of a payment plan is collected on its date (Pro and above).
- Exclude ACH payers from chasing: put customers who pay by debit in their own group, or tag them, for lighter or no reminders. QuickBooks cannot filter customers by payment method, so a Paidnice group or tag does it.
💡 Paidnice insight
The ACH problems we see are rarely the debit failing. They come from the days in between: a customer pays twice while a debit is pending, or a reminder goes out on an invoice that is already being paid. Watch the pending column, not only the failed one.
Frequently asked questions
Can I accept ACH payments without a merchant account?
Yes. Stripe originates the debit, so you need a Stripe account with ACH Direct Debit turned on, not a merchant account with your bank. The money lands in your Stripe balance and is paid out to your bank account.
Is ACH Direct Debit the same as an ACH payment?
ACH Direct Debit is one kind of ACH payment: you pull the money from the customer's account with their authorization. An ACH credit is the other kind, where the customer pushes the money to you from their own bank.
Can a customer pay several invoices with one ACH debit?
Yes. On the customer portal they tick the invoices they want to pay, or pay the whole balance, and authorize one debit. Paidnice applies it to each invoice.
Do I need a separate authorization form for each customer?
No. The customer accepts the authorization when they pay, and Stripe emails them the mandate confirmation that Nacha requires. Keep any signed agreement you already use with large customers, but you do not need a paper form to start.
Can I accept ACH from Canadian customers?
Canadian bank accounts use a different scheme, pre-authorized debit. See PAD for B2B invoices in Canada.
Paidnice features in this article
About the editorial team
Ashley is a co-founder and lead developer of Paidnice and has built accounting software for more than 10 years. He builds the ledger connections that put reminders, late fees and payments into Xero, QuickBooks and ERPs such as NetSuite and Business Central. Before Paidnice he co-founded A2X, ecommerce accounting software for Xero and QuickBooks.








