Bank debits and transfers
Bacs Direct Debit

Bacs Direct Debit payments in the UK

Learn how to accept payments with Bacs Direct Debit in the UK.

Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account.

In order to debit an account, businesses must collect a mandate from their customers. The mandate includes the customer’s sort code, account number, name, email, and full address. Stripe is able to generate this mandate for businesses to present to their customers.

Bacs Direct Debit is a reusable, delayed notification payment method. This means it takes 3 business days to confirm the success or failure of a payment when a mandate is already in place and 6 business days when a new mandate must be collected.

Getting started

Get started with accepting Bacs Direct Debit payments or saving Bacs payment details for future payments.

Debit notifications

Bacs Direct Debit requires that customers are notified of the following:

  • When payment details are initially collected and confirmed
  • Each time a debit will be made on their account

By default, Stripe automatically sends emails to the customer for the above cases. You can customize the colors and logo for these emails to fit the design and branding of your business.

If you require sending your own customer email notifications, follow these steps.

Disputed payments

Bacs Direct Debit provides a dispute process for customers to dispute payments.

When a dispute is created, a charge.dispute.created webhook event is sent and Stripe deducts the dispute amount and dispute fee from your Stripe balance.

Unlike credit card disputes, Bacs Direct Debit disputes are final and there is no appeals process. If a customer successfully disputes a payment, you must contact them if you want to resolve the situation. If you’re able to come to an arrangement and your customer is willing to return the funds to you, they must make a new payment.


During the payment flow, businesses must collect a mandate which gives them authorization to debit an account. For Bacs, this mandate is called a Direct Debit Instruction or DDI. Information on how to collect a mandate with Stripe Checkout can be found on the Accept a payment page.

Customers can at any time request the cancellation of a mandate. To cancel a mandate, a customer must either reach out to the party they established the mandate with, or to their bank. Canceling a mandate invalidates any future debit requests that you issue using this mandate. If you wish to accept additional payments from your customer, you need to establish a new mandate with them.

Mandate events

Event name Description Can accept payments?
mandate.updated Occurs whenever a mandate is rejected, canceled, or reactivated by the Bacs network. Check mandate.status to determine if the mandate can continue to be used. Yes, if the new status is active, otherwise - no.
payment_method.automatically_updated Occurs whenever customer’s bank account details change Yes

You can see the events in your dashboard, but you should still set up a webhook endpoint.


Refunds for payments made with Bacs Direct Debit must be submitted within 180 days from the date of the original payment. Refunds require additional time to process (typically three to four business days). If you accidentally debit your customer, please contact them immediately to avoid a payment dispute.

You can issue full or partial refunds for Direct Debit payments by using the API to create a refund with the PaymentIntent object.

Refunds are processed only after the payment process is complete. If you create a full or partial refund on a payment that has not yet completed, the refund is actioned when the Charge object’s status transitions to succeeded. If the Charge object’s status transitions to failed, the full or partial refund is marked as cancelled because the money was never debited from the customer’s bank account.


It takes 3 business days to confirm the success or failure of a Bacs Direct Debit payment when a mandate is already in place and 6 business days when a new mandate must be collected. Payments made after 20:00 UTC are submitted the following business day.

In some cases, the bank may notify us of a payment failure after the payment has been marked as successful in your Stripe account. In this case the payment failure is surfaced as a dispute with the appropriate reason code.

This table shows the Bacs timeline in business days from the time (T) that a payment is made when a new mandate must be collected:

T+0 Mandate submitted
T+3 Mandate is active and the payment is submitted
T+5 Funds leave the customer’s bank account
T+6 Funds are available in Stripe


Checkout creates a secure, Stripe-hosted payment page that lets you collect payments quickly. You can use Checkout to collect Bacs Direct Debit payments, or to collect payment details that can be used to initiate payments at a later date.


Stripe Connect can be used with Bacs Direct Debit to process payments on behalf of others.

Connect users can use Bacs Direct Debit with the following account and charge types:

Account types Charge types Stripe's recommendation
Custom with destination charges

Request the bacs_debit_payments Capability

Requesting the bacs_debit_payments capability is required if you want to use the on_behalf_of parameter. This will allow you to collect mandates using the connected accounts chosen display name, and have that name appear on statement descriptors.

Request Bacs Direct Debit capabilities for your custom Connect accounts.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.