Last editedMar 20222 min read
In the Direct Debit scheme, all communications with the banking system go through the Bacs clearing service. Therefore, submitting and receiving messages from Bacs is essential to collecting payments by Direct Debit.
To collect Direct Debit payments, any new mandate or payment requests must be submitted through Bacs. This guide details how to submit new DDIs and payment requests to Bacs. For details on receiving update messages, see Receiving messages from the banks.
Learn how business owners are saving time, money & stress with GoCardless & Direct Debit.
Businesses collecting Direct Debit payments via GoCardless always get paid on time, enjoy better cash flow & spend 90% less time on financial admin - you can easily join them!
What is Bacs?
Bacs is a UK payment system used to transfer payments directly from one bank account to another. Bacs stands for Bankers' Automated Clearing Services. For further details on Bacs see our guide to Bacs and Bacs payments.
Submissions to Bacs happen through secure, Bacs approved software.
What is Bacs Approved Software?
Bacs Approved Software is software which Bacs have assessed to meet certain standards for quality. For further details see our guide to Bacstel-IP and Bacs Approved Software.
The submission process
New Direct Debit Instructions and payment requests are submitted to Bacs by uploading an "Input File". The contents of this file depend on the submission, but the process is always the same:
An Input File is created with the required structure, details of which are provided below. Separate files are required for DDI and payment request submissions.
The file is uploaded using Bacs approved software, which helps ensure the security of the Direct Debit system.
Bacs generate an "Input Report" and send it to the submitter to confirm receipt of the file and its contents.
Once successfully submitted, the contents of the Input File are processed over a three day cycle (see Timings).
Generally, you'll use Bacs approved software to create the Input File itself, but it's useful to understand its structure. An example Input File for submitting DDIs is available here, and one for payment requests is here. The key to understanding the entries in both files is:
Note that a file containing DDIs must not contain payment requests.
You may also have noticed that the payment request file contains an extra "CONTRA" line - all the other lines specify an amount that must be debited from your customer's bank, while this line specifies how much must be credited to your account.
Submitting Direct Debit Instructions
The transaction codes for submitting DDI actions to Bacs are relatively straightforward, as there are only two actions a service user can take: creation and cancellation. A different transaction code is used for each:
|0N||Create a new DDI, or re-instate a DDI which has been cancelled|
|0C||Cancel an existing DDI|
For more details on setting up DDIs, see Direct Debit Mandates.
Submitting Direct Debit payments
The transaction codes for submitting payment requests are slightly more complicated, as they depend on previous payment requests:
|01||The first collection under a DDI. This code is also used after any transfers, reinstatements, or amendments to a DDI (e.g., after a payer updates their details)|
|17||Standard collections under a DDI. Use this for all regular payments|
|18||Retries of failed payments. Bacs best practice is NOT to use this code, unless your customer has cancelled their DDI since the failure. Instead you should submit a new payment request with the same transaction code used for the failed payment|
|19||Final Direct Debit collections. The paying bank will mark your customer's DDI as expired after this payment|
For more details on taking Direct Debit payments, see taking payments by Direct Debit.
Submitting to Bacs through GoCardless
GoCardless provides a simple but powerful user interface for creating DDIs and payment requests. We then create and submit all messages to Bacs for you.
Click here to find out more about collecting Direct Debits with GoCardless.