BACS Direct Debit
Bankers' Automated Clearing System (BACS) Direct Debit is a payment method widely used in the UK for the automated collection of recurring payments directly from a customer's bank account. With BACS Direct Debit, organizations can collect payments on agreed dates, making it ideal for subscription services, utility bills, or loan repayments.
BACS enables efficient and secure processing of transactions such as direct debit and direct credit, commonly used for salary payments, invoices, and recurring bills. Operating across the UK, BACS simplifies domestic transfers by automating and streamlining the movement of funds between bank accounts.
This system is widely trusted for handling large volumes of payments, ensuring that transactions are processed accurately and on time.
BACS Direct Debit at a glance
Payment Method | BACS Direct Debit |
Region | United Kingdom |
The Customer is Debited in | GBP |
Processing Currency | GBP |
Single payments |
|
Merchant Initiated Payments | Yes |
Processing Time |
|
Refunds | NA |
Customer Indemnity Claims | Supported under Direct Debit Guarantee (customer initiated). |
Reporting | Transactions reviewable via Payments Optic Portal. |
Languages Supported | EN |
Key features 
Authorization and Automation: Customers authorize a business to collect payments from their bank account by setting up a Direct Debit mandate. Once authorized, payments are collected automatically on agreed dates without the need for customer intervention.
Secure and Protected: BACS Direct Debit is processed securely and comes with the direct debit guarantee, offering customers protection against incorrect or unauthorized payments, ensuring peace of mind for both parties.
Implementation flow
To process a BACS Direct Debit Core payment with Paysafe, follow these steps:
- Set Up the Mandate: Obtain your customer’s consent for BACS payments by establishing a mandate. If you already have a mandate ID, you can skip this step and continue with the next.
- Send a Pre-Notification: Notify your customer in advance about the planned debit from their account. This step ensures compliance and keeps your customer informed.
Direct Debit Set Up and Payment Cycle:
The following scenarios represent a typical new sign up for a customer taking Direct Debit.
- Day 1: Direct Debit Instruction (DDI) sent to banking network.
- Day 5: Direct Debit Instruction (DDI) approved.
- Day 6: Payment sent to banking network.
- Day 8: Customer debited.
- Day 10: Payment completed.
The Paysafe Payments API supports BACS as a Payment Instrument. You can process BACS payments using the Payments API.
Create a customer - Create a customer profile with the required information.
Create paymentHandle - Based on the payment type, create paymentHandle with the billing details.
Create a mandate - Create a mandate for each customer and link the mandate to the payment handle via unique reference number.
Make a payment with paymentHandle - Initiate the payment processing request using the required transaction information.

Paysafe supports the processing of Standard 18 (STD-18) files via SFTP connection. Our platform is fully compatible to provide all BACS native reports (ADDACCS, AUDDIS, ARUDD, etc.), ensuring smooth and efficient Direct Debit transactions. By offering support for the STD-18 format, we provide an optimal solution for seamless migration, allowing merchants to transition to our services with minimal disruption and operational impact.
Webhooks 
Payment Handle Webhooks
Webhook | Description |
---|---|
PAYMENT_HANDLE_PAYABLE | The payment handle for processing payments is created. |
Payment Webhooks
Webhook | Description |
---|---|
PAYMENT_COMPLETED | The transaction was completed successfully, and request is sent to the bank. |
SETTLEMENT_CANCELLED | The settlement while in pending state (before request is sent to the bank) it is cancelled by the merchant. |
SETTLEMENT_COMPLETED | The settlement is completed i.e., successfully sent to bank and received positive acknowledgement from the bank. |
SETTLEMENT_CLEARED | The settlement is cleared i.e., No return/rejection is received from bank. |
PAYMENT_RETURNED_COMPLETED | Failed payment reported by the bank. |
PAYMENT_FAILED | The payment failed during the validation process i.e., risk rule failure. |
The above PAYMENT_COMPLETED webhook notification is sent to a specified URL when a payment is completed successfully. It triggers backend processes like updating transaction records.
{
"variables": {
"payload": {
"accountId": "1003459920",
"id": "5263bd64-e0ff-4a09-bc80-7e58aa44cb73",
"merchantRefNum": "a19c49e0-336e-4db9-8e82-65d1e1c8106b",
"amount": 25469,
"currencyCode": "GBP",
"gatewayReconciliationId": "42071120",
"status": "COMPLETED",
"paymentType": "BACS",
"txnTime": "2024-09-04T23:05:32Z",
"statusTime": "2024-09-04T23:05:32Z",
"processorCode": "BACS",
"mandateId": "d1e51cb7-c561-48f1-8070-df3d6af7a0b3",
"dueDate": "2024-09-04T23:05:32Z",
"billingDetails": {
"street1": "17 William Nichols Court",
"city": "Peterborough",
"country": "GB",
"zip": "PE1 4DW"
},
"profile": {
"firstName": "abc def",
"lastName": "xyz",
"merchantCustomerId": "35658742681254125",
"id": "f56aeb15-6769-4893-9ebb-bf82a1e73bbe"
},
"customerId": "f56aeb15-6769-4893-9ebb-bf82a1e73bbe",
"settleWithAuth": true,
"bacs": {
"lastDigits": "9891",
"accountHolderName": "abc def",
"sortCode": "123456",
"mandateReference": "4677MNAO66",
"bankReference": "4677MNAO6642071120"
},
"settlementId": "5263bd64-e0ff-4a09-bc80-7e58aa44cb73",
"settlementAmount": 25469,
"settlementStatus": "PENDING"
},
"attemptNumber": "1",
"type": "PAYMENT",
"eventDate": "2024-09-04T23:05:32Z"
},
"type": "PAYMENT",
"eventName": "PAYMENT_COMPLETED"
}
{
"variables": {
"payload": {
"accountId": "1003459920",
"id": "5263bd64-e0ff-4a09-bc80-7e58aa44cb73",
"merchantRefNum": "a19c49e0-336e-4db9-8e82-65d1e1c8106b",
"amount": 25469,
"currencyCode": "GBP",
"gatewayReconciliationId": "42071120",
"status": "COMPLETED",
"statusTime": "2024-09-05T12:30:56Z",
"paymentType": "BACS",
"txnTime": "2024-09-04T23:05:32Z",
"processorCode": "BACS"
},
"attemptNumber": "1",
"type": "SETTLEMENT",
"eventDate": "2024-09-04T23:05:32Z"
},
"type": "SETTLEMENT",
"eventName": "SETTLEMENT_COMPLETED"
}
{
"variables": {
"payload": {
"accountId": "1003459920",
"id": "5263bd64-e0ff-4a09-bc80-7e58aa44cb73",
"merchantRefNum": "a19c49e0-336e-4db9-8e82-65d1e1c8106b",
"amount": 25469,
"currencyCode": "GBP",
"gatewayReconciliationId": "42071120",
"status": "COMPLETED",
"statusTime": "2024-09-11T18:04:47Z",
"paymentType": "BACS",
"txnTime": "2024-09-04T23:05:32Z",
"processorCode": "BACS"
},
"attemptNumber": "1",
"type": "SETTLEMENT",
"eventDate": "2024-09-04T23:05:32Z"
},
"type": "SETTLEMENT",
"eventName": "SETTLEMENT_CLEARED"
}
{
"variables": {
"payload": {
"accountId": "1003459920",
"id": "1c1129ab-e386-4c47-90f8-c5a8242c29a5",
"merchantRefNum": "a19c49e0-336e-4db9-8e82-65d1e1c8106b",
"amount": 25469,
"currencyCode": "GBP",
"gatewayReconciliationId": "42071120",
"status": "COMPLETED",
"paymentType": "BACS",
"txnTime": "2024-09-12T11:03:00Z",
"statusTime": "2024-09-12T11:03:00Z",
"processorCode": "BACS",
"paymentId": "5263bd64-e0ff-4a09-bc80-7e58aa44cb73",
"settlementId": "5263bd64-e0ff-4a09-bc80-7e58aa44cb73",
"bankResponse": {
"name": "Bacs",
"scheme": "BACS",
"message": "Refer to Payer",
"reasonCode": "0"
},
"reason": "No Funds"
},
"attemptNumber": "1",
"type": "PAYMENT_RETURN",
"eventDate": "2024-09-12T11:03:00Z"
},
"type": "PAYMENT_RETURN",
"eventName": "PAYMENT_RETURN_COMPLETED"
}
{
"variables" : {
"payload" : {
"accountId" : "1001770190",
"id" : "e8a80748-78e2-49de-b98f-d5c8aad297b6",
"merchantRefNum" : "373041564046027840",
"amount" : 500,
"currencyCode" : "GBP",
"gatewayReconciliationId" : "144755230",
"status" : "CANCELLED",
"statusTime" : "2024-09-20T12:33:23Z",
"paymentType" : "BACS",
"txnTime" : "2024-09-20T12:31:37Z",
"processorCode" : "BACS"
},
"attemptNumber" : "1",
"type" : "SETTLEMENT",
"eventDate" : "2024-09-20T12:31:37Z"
},
"subscriberId" : "1001770190",
"type" : "SETTLEMENT",
"eventName" : "SETTLEMENT_CANCELLED"
}