Stripe Bacs Direct Debit in QuickBooks: Timing and Disputes
Bacs payments take three to seven business days to clear, and customers can dispute them forever. Here is what each stage does to your QuickBooks books.
A Leeds gym chain collects 600 monthly memberships of £35 each by Bacs Direct Debit on Monday, 28 September. The Stripe Dashboard shows 600 payments processing that evening. By Thursday night, 591 of them have succeeded, nine have failed, and the money reaches the Stripe balance on Friday.
That looks like a slower version of a card run. It is not. In November, one of those "successful" payments comes back from the member's bank as a dispute, because Bacs can report a failure after Stripe has already called a payment successful. And next March, a former member tells their bank they cancelled in August. Under the Direct Debit Guarantee the bank refunds them, and there is no deadline for asking and no appeal.
This guide covers how Stripe Bacs Direct Debit moves money, what it costs, and what reaches QuickBooks at each stage: the three-day wait, the failures, the disputes that can arrive in any later period, and the refund mistake that costs you the payment twice.
Acodei syncs your Stripe activity into QuickBooks Online, including the failures and disputes that arrive long after the sale. Start a free trial.
How long does a Stripe Bacs Direct Debit payment take?
With a mandate already in place, a Stripe Bacs Direct Debit payment succeeds at T+3 (21:00 UTC, three business days after submission), and the funds are available at the start of T+4. When you collect a new mandate at the same time, the whole cycle takes seven business days.
Stripe's Bacs Direct Debit documentation sets out both timelines. A payment created before 20:00 London time on a business day is submitted that day. Otherwise it goes the next business day.
| Step | Existing mandate | New mandate |
|---|---|---|
| Mandate submitted | Already active | T+0 |
| Payment submitted | T+0 | T+3, once the mandate is active |
| Money leaves the customer's account | T+2 | T+5 |
| Payment marked successful | T+3 at 21:00 UTC | About T+6 |
| Funds available in Stripe | T+4 at 00:00 UTC | T+7 |
Stripe states the new-mandate success date only as "up to 7 business days" for confirmation, so treat T+6 as an estimate. The other rows come straight from Stripe's tables.
In the Leeds example, the 600 renewals go in before the cutoff on Monday, 28 September. The money leaves members' accounts on Wednesday the 30th. Stripe marks the payments successful on Thursday, 1 October, and the funds are available on Friday the 2nd. So the September billing run is settled in October, after the month has closed.
Now add 25 new members who sign up and pay on that same Monday. Their mandates go to the banks on the 28th and become active on Thursday, 1 October. Their first payments are submitted that day, leave their accounts on Monday the 5th, and are available on Wednesday, 7 October. That is nine calendar days between the sign-up and the cash.
One trap for subscription businesses: Stripe warns that a subscription "can become active while its first payment is still processing." If your team or your access-control system treats an active subscription as a paid one, new members can be using the gym for a week before anyone knows whether their bank will pay.
How Bacs differs from SEPA, and why it matters for your books
If you also collect in euros, you will have read our guide to SEPA Direct Debit failures and disputes in QuickBooks. The two schemes look alike, and their accounting is not.
| Bacs Direct Debit | SEPA Direct Debit | |
|---|---|---|
| Currency | GBP only | EUR only |
| Success with an existing mandate | T+3 | T+6 |
| Dispute window | No time limit | 8 weeks, or 13 months if unauthorized |
| Late failures | Can arrive as disputes after success | Arrive in the refusal window |
| Appeal | None | None |
Two rows drive almost everything else in this guide.
The first is the dispute window. Stripe's Bacs page says it plainly: "There's no set time limit for customers to file Bacs Direct Debit disputes." A SEPA debit stops being at risk after 13 months. A Bacs debit never does.
The second is late failures. Stripe notes that "in some cases, the bank might notify us of a payment failure after the payment has been marked as successful." When that happens, Stripe records the failure as a dispute with a reason code. So in your books, a Bacs failure can look like either a failure or a dispute, depending on when the bank reported it.
What Bacs Direct Debit costs on Stripe
Stripe's UK pricing for local payment methods lists Bacs Direct Debit as:
- 1% of each payment, with a minimum of 20p and a cap of £4.00
- £5.00 for each disputed payment
- 2% on top when currency conversion is required
The page lists no separate charge for a failed Bacs payment. Two other costs sit outside that table. Custom Branding, which puts your business name on customers' bank statements instead of Stripe's, costs £50 for each active month. And a new account starts with a weekly Bacs limit of £10,000, which grows as you process more, alongside a default limit of £10,000 per payment. The weekly limit is not a fee, but it caps how much of a large first billing run you can collect in one week.
On a £35 membership, 1% is 35p, so the minimum and the cap never apply. At £15 it would be the 20p minimum, and at anything over £400 the £4 cap takes over. That matters for high-ticket billing: a £1,200 annual membership costs £4.00 to collect, not £12.
Here is how the Leeds September run plays out:
| Line | Count | Amount |
|---|---|---|
| Renewals submitted 28 September | 600 | £21,000.00 |
| Failed before success | 9 | −£315.00 |
| Successful payments | 591 | £20,685.00 |
| Stripe fees (591 × 35p) | −£206.85 | |
| Net from the run | £20,478.15 |
Then, in November, one of the 591 comes back as a late failure, recorded as a dispute: −£35.00 and −£5.00 in dispute fee. In March, a Direct Debit Guarantee claim takes another £35.00 plus £5.00. The run ends £80.00 lower than it looked on 2 October, and the March loss lands in a different financial year for any company with a 31 December or 31 March year end.
Recording Stripe Bacs Direct Debit in QuickBooks while payments settle
A Bacs payment spends three to seven business days in processing. You can record the sale when the debit is taken and reverse it if it fails, or you can wait for Stripe to call it successful. Recording early keeps your sales in line with what you billed. Waiting means every sale in QuickBooks is backed by settled cash, but late-month runs slide into the next month.
Acodei records early. When its daily scan finds a pending charge, such as a bank debit that has not settled, it creates an individual transaction for it and sends it through the same real-time path as any other sale, rather than putting an unsettled amount into a daily summary. The charge is marked succeeded when Stripe's webhook confirms settlement. If the payment fails instead, the entry is reversed on the failure date and included as a line item on the daily balance summary.
For the Leeds example, that has three consequences:
- The nine early failures are reversed on the dates the banks reported them, inside the first week of October. If the sales are in September, the reversals are not.
- Your holding account carries the run at month-end. Synced sales sit in the holding account until the payout that settles them. On 30 September that balance is real money in transit, not a reconciling error. Our guide to Stripe payout schedules and clearing accounts explains why comparing the clearing account with Stripe's available balance always shows a gap like this.
- A late failure does not take this path. Once Stripe has marked a payment successful, a later failure arrives as a dispute, so it follows the dispute route in the next section, not the reversal.
Refunds follow the same rule from the other direction. If you refund a payment that is still processing, Stripe holds the refund until the charge succeeds, and cancels it if the charge fails "because the customer's bank account was never debited." So a payment that fails never leaves a refund behind for you to account for.
When a Bacs payment fails: early failures and retries
An early failure is a payment that never succeeds. The failure_code on the charge tells you what to do next, and Stripe's Bacs testing guide shows the two that matter most:
insufficient_funds: the mandate stays active, and the same bank details can be charged again.debit_not_authorized: the mandate becomes inactive, and that payment method cannot be used again. You need a new mandate before you can collect anything.
Stripe Billing can retry the first kind for you. With Direct Debit retries switched on, Stripe retries a failed Bacs payment caused by insufficient funds up to two times, within 30 days of the first attempt.
Each retry is a new payment with its own three-day cycle. If a member who failed on 1 October pays on a retry submitted on 8 October, QuickBooks shows the original sale, a reversal dated 1 October, and a new sale for the retry. The member's net is £35. It just takes three lines to get there.
debit_not_authorized deserves more attention than the money. A Bacs mandate can be cancelled by the customer through their bank at any time, and you often find out only when the next debit bounces. Stripe sends a mandate.updated event when a mandate is rejected, cancelled or reactivated, and that is the point at which to act. Treat an inactive mandate as a cancellation until the member tells you otherwise. Chasing it as a late payment usually ends in a Direct Debit Guarantee claim.
Bacs disputes and the Direct Debit Guarantee in QuickBooks
Every UK Direct Debit is covered by the Direct Debit Guarantee. If an error is made in a payment, by the business or by the bank, the payer "is entitled to a full and immediate refund" from their bank. On Stripe, that refund arrives as a dispute, and three rules make Bacs disputes different from card disputes:
- There is no deadline. Customers can dispute "for an unlimited period of time."
- There is no appeal. "You can't submit evidence or counter a Bacs Direct Debit dispute." The bank's decision is final.
- The fee stays. Stripe deducts the disputed amount and the £5 fee from your balance when the dispute is created. If the customer later agrees to pay, they make a new payment, and the dispute fee is not refunded.
A payment can be disputed only once, and only in full. There are no partial Bacs disputes.
In Stripe's balance-transaction model, a dispute is an adjustment. In Acodei you map adjustments once, under Balance Transaction Mapping on the Account Mapping page, to a product. That product can point at your refunds account or at a separate expense account for disputes. Acodei then processes the dispute in the daily balance summary or with the payout, depending on your holding-account setup. If Adjustments are not mapped yet, the payout that contains the dispute does not sync, and the Data Feed asks you to turn the type on. Once it is mapped, you resync the deposit from the Payouts tab. Our guide to Stripe balance transaction mapping walks through the setup.
The account choice matters more for Bacs than for cards. A card dispute can be won, so some businesses park it until the outcome. A Bacs dispute is lost on the day it arrives, and with Bacs it covers two different events: a member using the Guarantee, and a bank reporting a late failure. A dedicated "Direct Debit disputes" expense account keeps both out of your refunds line and gives you a figure you can watch month by month. The wider choices are covered in our guide to Stripe chargeback accounting in QuickBooks.
The unlimited window has one more consequence. A dispute on a payment from a closed period, like the March claim in the Leeds example, belongs in the current period. Book it where it lands. Do not reopen last year to move it next to the sale.
The double credit: why a Bacs refund does not end the risk
This is the most expensive Bacs mistake, and Stripe warns about it directly. Refunds "aren't part of the Bacs Direct Debit scheme and are provided outside of Bacs by Stripe." So refunding a member does nothing to their Direct Debit Guarantee rights. In Stripe's words: "Because Bacs has an indefinite indemnity period, a customer can create a dispute at any time after a refund has been issued. This means you can lose both the disputed amount and the refunded amount."
Picture a member who was charged for October after asking to cancel. You refund the £35 on 6 October. In January, they spot the October debit on a bank statement and claim it under the Guarantee. Their bank refunds them again. You have now paid back £70 and £5 in fees for one £35 payment.
In QuickBooks that shows up as two reversals of the same sale:
- A refund dated 6 October. Acodei records Stripe refunds to the Stripe refunds account you chose at setup, or to the matching product's account if you use multiple product mapping.
- A dispute adjustment dated in January, wherever you mapped Adjustments, plus the £5 fee.
Both entries are true, so both belong in the books. The fix is a receivable. The Guarantee itself says that a payer who receives a refund they are not entitled to "must pay it back when the organisation asks." If they agree, they pay it with a new payment.
Stripe suggests three ways to cut the risk:
- Tell the customer you are refunding, so they do not also go to their bank.
- Tell them it takes 3 to 4 business days.
- Only refund once the original payment has fully settled.
None of these closes the window, because there is no window to close. Refunds are allowed up to 180 days after the payment. A Guarantee claim is allowed forever. If a member left on bad terms, a refund note in your CRM is worth keeping for longer than you would keep it for a card customer. For refunds that come after the money has already been paid out, see refunding a Stripe payment after payout.
A Bacs month-end close in QuickBooks
Card-first close checklists miss the Bacs timings. These six steps cover them:
- List the payments still processing on the last day of the month. A run submitted in the last three business days of a month always settles in the next one. New-mandate payments need seven.
- Clear the early failures. Match each reversal to a next step: retry pending, new mandate needed, or cancellation confirmed.
- Check mandates. Every
mandate.updatedevent that moved a mandate to inactive this month is a member who will not pay next month. Update your subscriber count before you forecast. - Reconcile disputes and fees. Your dispute account in QuickBooks should equal Stripe's dispute total for the month. A gap usually means a payout that did not sync because Adjustments were not mapped.
- Look for refund-and-dispute pairs. Any customer with both a refund and a dispute on the same payment gets a receivable and a polite email.
- Expect the long tail. Disputes on payments from closed periods will keep arriving. Book them in the current month, and track them as their own line so you can see the rate.
If your QuickBooks home currency is not GBP, for example a US company that collects from UK customers, every Bacs payment is a foreign-currency transaction too. Multicurrency Support in Acodei is turned on by the Acodei team rather than in your own settings. Once it is on, QuickBooks keeps a separate customer record for each currency, such as "Acme - GBP", by design. The details are in our guide to Stripe multicurrency in QuickBooks.
Frequently asked questions
How long does a Stripe Bacs Direct Debit payment take to clear?
With an existing mandate, Stripe marks a Bacs Direct Debit payment successful at T+3 and makes the funds available at T+4. When a new mandate is collected first, it takes up to seven business days. Payments created before 20:00 London time on a business day are submitted the same day. A payment can still be disputed after it clears.
How long can a customer dispute a Bacs Direct Debit?
There is no time limit. Stripe states that customers can dispute a Bacs Direct Debit payment through their bank for an unlimited period, under the Direct Debit Guarantee. Each payment can be disputed only once, the dispute is final, and you cannot submit evidence. Stripe deducts the amount and a £5.00 dispute fee from your balance.
Why did a successful Bacs payment turn into a dispute?
Sometimes the customer's bank reports a failure after Stripe has already marked the payment successful. Stripe records that late failure as a dispute with a reason code, rather than as a failed payment. In QuickBooks it follows the same route as any other dispute, so map Stripe adjustments to the account where you want these losses to land.
Does refunding a Bacs payment stop the customer from disputing it?
No. Stripe provides Bacs refunds outside the Bacs scheme, so a refund does not remove the customer's Direct Debit Guarantee rights. A customer can dispute at any time after a refund, and you can lose both the refunded and the disputed amount. Confirm the refund with the customer and keep a record of it.
How much does Stripe charge for Bacs Direct Debit in the UK?
Stripe's UK pricing lists Bacs Direct Debit at 1% per payment, with a 20p minimum and a £4.00 cap, plus £5.00 for each disputed payment and 2% if currency conversion is needed. Custom Branding, which shows your business name on bank statements, costs £50 for each active month.
Bacs Direct Debit is cheap to collect and never quite finished. Acodei records each payment, reverses the early failures on the dates they happen, and posts disputes through your Balance Transaction Mapping, so late failures and Guarantee claims show up where your close can find them. Start a free trial.
Automate your Stripe to QuickBooks sync
Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.
14-day free trial · card required · cancel anytime
How Acodei handles this in your stack
Stripe QuickBooks Integration
See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.
Or go straight to a capability
Advanced Product Mapping
Map Stripe products to QuickBooks with rule-based logic on product ID, price ID, metadata, and account. Set rule priority and extend mapping to refunds and fees.
Automated Invoice Sync
Bring Stripe invoices into QuickBooks and auto-apply payments and credit memos, with numbering, invoice matching, and quantity tracking to cut double-entry.
Multi-Currency Mastery
Sync Stripe transactions across currencies with automatic exchange rate handling and currency-specific customer records. Our team enables multicurrency on request, and zero-decimal currencies such as JPY are not supported.
Class Mapping
Map Stripe products to QuickBooks classes for scalable categorization and multi-entity reporting. Class tracking requires QuickBooks Online Plus or Advanced.
Historical Data Import
Backfill historical Stripe data into QuickBooks by month range. Preview volume and cost before syncing so reporting starts from a complete baseline.
How to Connect Stripe to QuickBooks Online
Connect Stripe to QuickBooks Online in minutes. Acodei links both accounts with secure OAuth and syncs payments, fees, refunds, and payouts automatically.
Reconcile Stripe Payments in QuickBooks
Reconcile Stripe in QuickBooks Online automatically. Acodei splits out fees, matches payouts to deposits, and keeps every charge audit-ready.
Related articles
Acodei Journal
Stripe SEPA Direct Debit Failures and Disputes in QuickBooks
Acodei Content Team
Stripe SEPA Direct Debit Failures and Disputes in QuickBooks
10/10/2026
Acodei Journal
Stripe Connect 1099-NEC Forms and Your QuickBooks Books
Acodei Content Team
Stripe Connect 1099-NEC Forms and Your QuickBooks Books
10/9/2026
Acodei Journal
GST and PST on One Stripe Line: QuickBooks Group Tax Codes
Acodei Content Team
GST and PST on One Stripe Line: QuickBooks Group Tax Codes
10/9/2026
Get more operational finance guides like this one
We will only send high-value product and finance content.