Airwallex logo
Airwallex logo

United Kingdom (GB_BACS_DEBIT)

Before you begin

Check your eligibility

Bacs direct debit is only available to customers who are onboarded to the Airwallex United Kingdom entity with a local United Kingdom Bank Account

  • Platforms must ensure that only customers that are United Kingdom entities and onboarded to Airwallex United Kingdom are allowed to set up Bacs direct debit
  • If you, as the Platform, would also like to use Bacs direct debit for your operational purposes, you must also be a United Kingdom entity onboarded to Airwallex United Kingdom

Settlement times

gb bacs direct debit settlement time

As indicated above, Bacs direct debit in the United Kingdom takes 4-5 business days to settle, depending on submission before/after the cut-off time. Therefore, we recommend leaving some buffer time ahead of the cut-off to avoid delays.

Customers who wish to accelerate the settlement time may apply for our Faster Direct Debit offering, which offers a shortened settlement time of 2-3 business days, and will settle before 11:30 AM GMT/BST. To enable this capability, please contact your Account Manager and confirm our terms, conditions, and fees.

Mandate requirements

To add funds via Bacs direct debit, your customers must first link their United Kingdom external bank accounts, as outlined in Linked Accounts.

The owner of the external bank account must agree with the Direct Debit Guarantee, displayed and signed according to UI guidance that will be shared by your relationship manager. You are also required to send the bank account owner a setup confirmation email after the Linked Bank Account is created, and an advance notice email 3 business days before each debit: both are available to you as white-labeled solutions.

Before any Bacs direct debit is processed, the owner of the external bank account must authorize Airwallex to directly debit the account on your behalf by agreeing to the Bacs Direct Debit Guarantee. A copy of the agreement will be sent by Airwallex via email to the bank account owner, and is stored and made available to be shared with the customer at all times. An advance notice email will also be sent 3 business days before each direct debit’s collection date.

The following is a guide to building your native product experience for your customers to link their external bank account and sign the mandate/agreement.

1. Linking an external bank account

The title should clearly inform your customers that they are linking an external bank account to set up direct debit.

You must ask the external bank account owner (or display their previously entered):

  • Bank account name
  • Bank account number
  • Sort code
  • Bank account owner's email address
  • Bank account billing address

2. Confirmation of account details and direct debit authorization

The connected account customers must be given a prompt to confirm that their bank account details are correct before submitting the linked bank account.

  • On the confirmation prompt, only the last 2 digits of the account number/sort code can be shown

There must be a checkbox or a similar mechanism for the external bank account owner to confirm that they are authorised to set up Direct Debit payments on the account.

The following Direct Debit Guarantee must be provided to the customer, exactly as shown and with the Direct Debit Guarantee logo included:

bacs_dd_logo Direct Debit Guarantee

The Guarantee is offered by all banks and building societies that accept instructions to pay Direct Debits. If there are any changes to the amount, date or frequency of your Direct Debit, Airwallex (UK) Limited will notify you 2 working days in advance of your account being debited or as otherwise agreed. If you request Airwallex (UK) Limited to collect a payment, confirmation of the amount and date will be given to you at the time of the request. If an error is made in the payment of your Direct Debit, by Airwallex (UK) Limited or your bank or building society, you are entitled to a full and immediate refund of the amount paid from your bank or building society. If you receive a refund you are not entitled to, you must pay it back when Airwallex (UK) Limited asks you to. You can cancel a Direct Debit at any time by simply contacting your bank or building society. Written confirmation may be required. Please also notify us.

The following privacy notice wording should also be displayed:

By clicking “Confirm”, you are confirming that you are authorised to set up a Direct Debit Instruction on this account and you understand that Airwallex will be collecting Direct Debit on behalf of {merchant’s name}. Airwallex will appear on the statements of this account following each Direct Debit payment. Regulatory information regarding how Airwallex's partner processes your payments is available here , including the handling of personal data as outlined in their Privacy Notice .

The following wording or something to a similar effect should also be included:

This is the Instruction to your bank or building society to pay by Direct Debit. Please check these details are correct before selecting Confirm below. You can go back to make changes, or cancel the setup.

There should also be contact information for customer support.

3. Confirmation of direct debit set up

You should provide a confirmation page that the connected account customer will receive notification within 3 business days confirming that the mandate has been set up.

It is also recommended that you provide a confirmation page to your customers at the end of the process to inform them that direct debit has been successfully set up for the Linked Bank Account.

API Instructions

1. Create Linked Account with direct debit mandate

Referring to Linked Account requirements for direct debit, both BUSINESS and INDIVIDUAL Linked Account types are supported for Bacs direct debit in the United Kingdom.

Micro-deposit and Open Banking are both available for this scheme. Please follow the instructions in Create a Linked Account and submit the required mandate information under the mandate object.

For GB_BACS_DEBIT, the preferred_reference field can be used and should not exceed 10 characters. This is the reference that will show up for all direct debit deposits under this Linked Account. We may add a unique ID after your preferred reference per the scheme requirements.

Example request for Linked Account created using micro-deposit verification

Shell
1curl --request POST \
2--url 'https://api-demo.airwallex.com/api/v1/linked_accounts/create' \
3--header 'Content-Type: application/json' \
4--header 'Authorization: Bearer <your_bearer_token>' \
5--data '{
6 "type": "GB_BANK",
7 "gb_bank": {
8 "account_name": "Tester Smith",
9 "account_number": "89098199202",
10 "currency": "GBP",
11 "entity_type": "BUSINESS",
12 "sort_code": "608382"
13 },
14 "preferred_verification_type": "MICRO_DEPOSIT",
15 "mandate": {
16 "email": "[email protected]",
17 "signatory": "Tester Smith",
18 "type": "GB_BACS_DEBIT",
19 "version": "1.0" ,
20 "preferred_reference": "Airwallex"
21 }
22}'

If you are registered as a platform account, you can call this endpoint on behalf of your customers by specifying the open ID in the x-on-behalf-of header.

Example response

JSON
1{
2 "id": "1277aa91-b9d7-4a20-998a-87c1a4bad6bc",
3 "status": "REQUIRES_ACTION",
4 "supported_currencies": [
5 "GBP"
6 ],
7 "type": "GB_BANK",
8 "gb_bank": {
9 "account_name": "Tester Smith",
10 "account_number": "89098199202",
11 "currency": "GBP",
12 "entity_type": "BUSINESS",
13 "sort_code": "608382"
14 },
15 "next_action": {
16 "type": "verify_micro_deposits",
17 "remaining_attempts": 3,
18 "micro_deposit_count": 2
19 },
20 "capabilities": {
21 "balance_check": false,
22 "direct_debit_deposit": true
23 }
24}

Example request for Linked Account created using Open Banking verification

Shell
1curl --request POST \
2--url 'https://api-demo.airwallex.com/api/v1/linked_accounts/create' \
3--header 'Content-Type: application/json' \
4--header 'Authorization: Bearer <your_bearer_token>' \
5--data '{
6 "type": "GB_BANK",
7 "gb_bank": {
8 "account_name": "Tester Smith",
9 "account_number": "89098199202",
10 "currency": "GBP",
11 "entity_type": "BUSINESS",
12 "sort_code": "608382"
13 },
14 "preferred_verification_type": "TRUELAYER",
15 "truelayer": {
16 "code": "B2D8A5F9896AAA08E34DF3099649A1C249D562996D1416BCE76F66C372E56797",
17 "state": 6781472155828238
18 },
19 "mandate": {
20 "email": "[email protected]",
21 "signatory": "Tester Smith",
22 "type": "GB_BACS_DEBIT",
23 "version": "1.0" ,
24 "preferred_reference": "AWX"
25 }
26}'

If you are registered as a platform account, you can call this endpoint on behalf of your customers by specifying the open ID in the x-on-behalf-of header.

Example response

JSON
1{
2 "id": "1277aa91-b9d7-4a20-998a-87c1a4bad6bc",
3 "status": "SUCCEEDED",
4 "supported_currencies": [
5 "GBP"
6 ],
7 "type": "GB_BANK",
8 "gb_bank": {
9 "account_name": "Tester Smith",
10 "account_number": "89098199202",
11 "currency": "GBP",
12 "entity_type": "BUSINESS",
13 "sort_code": "608382"
14 },
15 "capabilities": {
16 "balance_check": true,
17 "direct_debit_deposit": true
18 }
19}

If you already have a Linked Account created using micro-deposit verification, you may call Update a Direct Debit Mandate API to create the mandate.

After creating the Linked Account or updating the direct debit mandate, Airwallex will return the status as SUCCEEDED. Bacs mandates take 3-4 days to be activated, during which your Linked Account status will remain as PROCESSING.

Review status codes to track status transitions when Linked Accounts are created and verified.

Example request

Shell
1curl --request POST \
2--url 'https://api-demo.airwallex.com/api/v1/linked_accounts/<your_linked_account_ID>/mandate' \
3--header 'Content-Type: application/json' \
4--header 'Authorization: Bearer <your_bearer_token>' \
5--data '{
6 "email": "[email protected]",
7 "signatory": "Tester Smith",
8 "type": "GB_BACS_DEBIT",
9 "version": "1.0"
10}'

If you are registered as a platform account, you can call this endpoint on behalf of your customers by specifying the open ID in the x-on-behalf-of header.

Example response

JSON
1{
2 "accepted_at": "1648387704",
3 "email": "[email protected]",
4 "signatory": "Tester Smith",
5 "status": "ACTIVE",
6 "type": "US_FEDWIRE_DEBIT",
7 "version": "1.0"
8}

2. Create direct debit deposit

Before creating a direct debit deposit, please ensure that you have a sufficient funding limit by checking your available funding limit.

If the Linked Account was created using Open Banking verification, you may use Check available balance API to ensure that the Linked Account has sufficient balance before initiating a direct debit deposit.

Next, follow the instructions outlined in Create a direct debit deposit. Please note that the Becs direct debit does not support unique references for each direct debit deposit. Instead, a reference must be provided at the mandate level when Creating a Linked Account with direct debit mandate, which will apply to all direct debit deposits initiated from this Linked Account.

Example request

Shell
1curl --request POST \
2--url 'https://api-demo.airwallex.com/api/v1/deposits/create' \
3--header 'Content-Type: application/json' \
4--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0b20iLCJyb2xlcyI6WyJ1c2VyIl0sImlhdCI6MTQ4ODQxNTI1NywiZXhwIjoxNDg4NDE1MjY3fQ.UHqau03y5kEk5lFbTp7J4a-U6LXsfxIVNEsux85hj-Q' \
5--data '{
6 "amount": 12794.27,
7 "currency": "GBP",
8 "deposit_type": "DIRECT_DEBIT",
9 "funding_source_id": "67f687fe-dcf4-4462-92fa-20335321d9d8",
10 "request_id": "c559d7fe-d911-4f3d-a937-7c24ba4b732a"
11}'

If you are registered as a platform account, you can call this endpoint on behalf of your customers by specifying the open ID in the x-on-behalf-of header.

Example response

JSON
1{
2 "amount": 12794.27,
3 "created_at": "2017-03-20T14:00:01+1100",
4 "currency": "GBP",
5 "deposit_id": "67f687fe-dcf4-4462-92fa-20335301d9d8",
6 "payer_name": "tester",
7 "source": {
8 "funding_source_id": "67f687fe-dcf4-4462-92fa-20335321d9d8",
9 "type": "GB_BACS_DEBIT"
10 },
11 "statement_ref": "5487287788",
12 "status": "SETTLED",
13 "type": "DIRECT_DEBIT"
14}

Clearing system error codes

To help you handle exceptions systematically, this page provides a comprehensive list of all possible clearing system errors and detailed descriptions when the direct debit deposit or the Linked Accounts are in failure status, or when the Linked Account is in a REQUIRES_ACTION status.

We recommend using the Airwallex error code or the iso_code for systematic exception handling. The code from provider_failure_details can be used for troubleshooting against the clearing system rules, but it is not advised for systematic handling because the clearing system may update it from time to time.

Linked Account error codes

codeiso codeprovider failure details codedescription
invalid_debtor_account_numberAC02AUDDIS-5This bank account does not exist.
closed_debtor_account_numberAC05ADDACS-B, AUDDIS-BThe bank account is closed.
transaction_not_supportedAG03AUDDIS-F, AUDDIS-G, AUDDIS-NThe bank account does not support Direct Debit. Please contact the payer for further information.
end_customer_deceasedMD07ADDACS-2, AUDDIS-2This bank account is closed as the customer is deceased.
refer_to_payerNARRADDACS-0The mandate was cancelled at a bank branch. Please contact the payer for further information.
account_transferredNARRADDACS-3, ADDACS-C, ADDACS-E, AUDDIS-3The bank account was transferred to a different bank or building society. Please contact the payer for further information.
advance_notice_disputedNARRADDACS-DThe payer has disputed the amount of notice specified on the mandate via their bank. Please contact the payer for further information.

Direct debit deposit error codes

codeiso codeprovider failure details codedescription
refer_to_payerNARRARUDD-0This direct debit failed because the payer's bank was unable to pay the Direct Debit. This is almost always due to insufficient funds. Contact the payer or payer’s bank for further information.
requested_by_customerCUSTARUDD-1Instruction is cancelled by the payer. Contact the payer for further information.
end_customer_deceasedMD07ARUDD-2You cannot create a direct debit against the payer’s bank account because the payer is deceased. Contact the payer’s bank for further instructions.
account_transferredNARRARUDD-3The payer’s bank account has been transferred to a new bank. You must create a new mandate with the payer.
advance_notice_disputedNARRARUDD-4The payer disputes the time, amount or frequency of the advance notice and has requested to return/reject this direct debit. You should not create further direct debits under this mandate until the dispute has been resolved.
invalid_debtor_account_numberAC02ARUDD-5The payer’s bank account number is invalid. Please confirm the account number with the payer.
no_mandateMD01ARUDD-6The direct debit mandate is not present. Please confirm that the payer or payer's bank has not cancelled the mandate before contacting your account manager for further information.
wrong_amountAM09ARUDD-7, DDICA-1The payer disputes that the debit amount differs from the amount agreed or expected.
closed_debtor_account_numberAC05ARUDD-BThe payer’s bank account is closed. Contact the payer to reopen the account, or create a new mandate to charge a different bank account.
incorrect_account_numberAC01ARUDD-E, ARUDD-YThe bank account does not exist.
refer_to_payerNARRDDICA-2The payer has disputed having been notified of this Direct Debit.
refer_to_payerNARRDDICA-4The payer claims that they have requested for a cancellation of the mandate before this payment was made.
refer_to_payerNARRDDICA-5, DDICA-6, DDICA-8The payer disputes having authorised the set up of a mandate.
Was this page helpful?