BACS Standard 18
This document details the specification of the BACS Standard 18 file that is to be transmitted by the customer for Direct Debits, Direct Credits, and AUDDIS. This format will not support fast payment.
The file structure for all messages should follow the format:
'VOL' > 'HDR1' > 'HDR2' > 'UHL' >'EOF1' > 'EOF2' >'UTL'
A file not following this structure will be rejected.
If using BACS Standard 18 with HSBC, the Service User Number (SUN) is not required.
VOL Record
No. | Length | Position | Contents | Notes |
1 | 3 | 1-3 | Label identifier | Must be 'VOL' |
2 | 1 | 4 | Label number | Must be '1' |
3 | 6 | 5-10 | Serial number | Unique alphanumeric characters, right justified. Cannot be all spaces or zeroes. Each unique reference is validated against duplicates and is held for a period of 3 months. |
4 | 1 | 11 | Accessibility indicator | Should be blank or '0' |
5 | 20 | 12-31 | Reserved field | Blank filled |
6 | 6 | 32-37 | Reserved field | Blank filled. HSBCbb or SAGEbb (b=blank) marker is mandatory in the files where no OIN/SUN is quoted. See Example 2 below. |
7 | 14 | 38-51 | Owner ID | 38-41 Blank filled |
|
|
|
| 42-47 Must be Service User Number (SUN) Assigned by BACS to a customer. Blank if HSBC or SAGE is used. |
|
|
|
| 48-51 Blank filled |
8 | 28 | 52-79 | Reserved field | Blank filled |
9 | 1 | 80 | Label standard level | Should be '1' |
HDR1 Record
No. | Length | Position | Contents | Notes |
1 | 3 | 1-3 | Label identifier | Must be 'HDR' |
2 | 1 | 4 | Label number | Must be '1' |
3 | 17 | 5-21 | File identifier |
|
|
|
|
| 5 Should be 'A |
|
|
|
| 6-11 Must be same as VOL1 (character positions 42-47). Blank if HSBC or SAGE is used. |
|
|
|
| 12 Should be 'S' |
|
|
|
| 13-14 Space filled |
|
|
|
| 15 Blank space or 1 |
|
|
|
| 16-21 Should be blank filled or the same as VOL1 (character positions 42-47) |
4 | 6 | 22-27 | Set identification | Must be the same as the submission serial number is VOL1 (character positions 5-10) |
5 | 4 | 28-31 | File section number | Must be '0001' |
6 | 4 | 32-35 | File sequence number | Must be '0001' |
7 | 4 | 36-39 | Generation number | 4 numeric or space filled |
8 | 2 | 40-41 | Generation version number | 2 numeric or space filled |
9 | 6 | 42-47 | Creation date | This is the creation date of the file. Must be in the form bYYDDD (i.e. a blank space followed by the last 2 digits of the year and the day (001 to 366) of the year (should be less than or equal to the BACS processing day in UHL1 (positions 5-10) |
10 | 6 | 48-53 | Expiration date | The expiration date indicates to BACS the earliest date at which file may be overwritten. Should be in the form bYYDDD as described for character positions 42-47 above. Should be greater than the BACS processing day in UHL1 (positions 5-10). For Multi processing day files this should be greater than the latest processing date. |
11 | 1 | 54 | Accessibility indicator | Should be blank space or '0' |
12 | 6 | 55-60 | Block count | Should be zero filled |
13 | 13 | 61-73 | System code | May contain any valid characters or be space filled |
14 | 7 | 74-80 | Reserved field | Should be blank space filled |
HDR2 Record
No. | Length | Position | Contents | Notes |
1 | 3 | 1-3 | Label identifier | Must be 'HDR' |
2 | 1 | 4 | Label number | Must be '2' |
3 | 1 | 5 | Record format | Should be 'F' |
4 | 5 | 6-10 | Block length | Should be 5 numeric characters. Use 02000 |
5 | 5 | 11-15 | Record length | 00100 for single processing day files, 00106 for multiple processing day files |
6 | 35 | 16-50 | Reserved for operating systems | May contain any valid characters or be space filled |
7 | 2 | 51-52 | Buffer offset | Should be zero filled |
8 | 28 | 53-80 | Reserved field | Should be blank space filled |
UHL1 Record
No. | Length | Position | Contents | Notes |
1 | 3 | 1-3 | Label identifier | Must be 'UHL' |
2 | 1 | 4 | Label number | Must be '1' |
3 | 6 | 5-10 | BACS processing day | BACS have a 3 days cycle (minimum three UK bank working days) for a payment instruction to be submitted, processed, and reach the destination account. Must be in the form bYYDDD, as described in HDR1 Record field 9. Must be a valid BACS processing day (BACS processing calendar is available from www.bacs.co.uk). If not a valid BACS processing day, the file will be rejected. |
4 | 10 | 11-20 | Identifying number of receiving party |
|
|
|
|
| 11-16 Must be 999999 |
|
|
|
| 17-20 should be blank space filled |
5 | 2 | 21-22 | Currency code | Should be '00' |
6 | 6 | 23-28 | Country code | Should be zero filled |
7 | 9 | 29-37 | Work code |
For a single processing day file, must be 1bDAILYbb (where b indicates blank)
For a multi processing day file, must be 4bMULTIbb (where b indicates blank)
|
8 | 3 | 38-40 | File number | Must be all numeric, unique IDs should be used in each file as these are validated to avoid duplicate submissions. |
9 | 7 | 41-47 | Reserved field | Should be blank space filled |
10 | 7 | 48-54 | Audit print identifier |
|
|
|
|
| 48-50 May contain the alphabetic characters 'AUD' if a sample of transactions is required to be printed on the input report. |
|
|
|
| 51-54 May be all numeric and used to indicate the frequency of transactions printed on the input report. |
11 | 26 | 55-80 | For use by User/ bureau | Must be blank. Not used nor validated. |
Standard Records
No. | Length | Position | Contents | Notes |
1 | 6 | 1-6 | Destination sort code | This must be six numbers and must be a valid sorting code |
2 | 8 | 7-14 | Destination account number | This must be eight numbers and must be a valid account number |
3 | 1 | 15 | Destination account type | Must be '0' |
4 | 2 | 16-17 | Transaction code |
01 - First payment Direct Debit
17 - Direct Debit
18 - Re-presented direct debit
19 - Final payment direct debit
99 - Bank Giro credit
Z4 - Interest payments
Z5 - Dividend payments
0N - AUDDIS New DDI
0C - AUDDIT Cancel DDI
0S - AUDDIS Convert DDI
|
5 | 6 | 18-23 | Originating sort code | This must be six numbers and must be the originators sort code |
6 | 8 | 24-31 | Originating account number | This must be eight numbers and must be a valid account number linked to originators SUN |
7 | 4 | 32-35 | Free format | 4 blank spaces |
8 | 11 | 36-46 | Amount (in pence) | The contents must end at the right and any unused character positions at the beginning must be zero filled. |
9 | 18 | 47-46 | Users name | The contents must begin at the left and any unused character positions at the end must be blank space filled. Should be the originating account name abbreviated. |
10 | 18 | 65-82 | Users reference |
To identify the payment being claimed (Direct Debit) or made (Direct Credit).
For Direct Debit payment instructions, must contain at least six alphanumeric characters. Other valid characters may be included but will not be included in the count of six alpha-numerics. After taking out non-alphanumeric characters, must not contain a string of all the same alphanumeric characters.
The following are allowed characters by BACS: Alpha characters (UC only) A-Z, numeric characters 0-9, full stop, ampersand, slash, hyphen, and blank space.
Beneficiary roll number must be quoted in this field if the payment is made to financial institutions that require it.
|
11 | 18 | 83-100 | Destination account name | To identify the account to be debited/ credited from the account number in fields 1 and 2 |
12 | 6 | 101-106 | BACS processing day of data |
To identify the BACS processing cycle intended for this record in MULTI PROCESSING FILES ONLY:
Must be in the form bYYDDD (as described above), must not be earlier than UHL1 date, must be a valid BACS processing day, must not be more than 39 days after UHL1 date.
|
Contra Record
Note: CONTRA Records are not permitted for AUDDIS files.
No. | Length | Position | Contents | Notes |
1 | 6 | 1-6 | Originating sort code | This must be six numbers and must be the originators sort code |
2 | 8 | 7-14 | Originating account number | This must be eight numbers and must be a valid account number linked to the originators SUN |
3 | 1 | 15 | Type of users account | Must be '0' |
4 | 2 | 16-17 | Transaction code |
17 - Debit
99 - Credit
|
5 | 6 | 18-23 | Originating sort code | This must be six numbers and must be the originators sort code |
6 | 8 | 24-31 | Originating account number | This must be eight numbers and must be a valid account number linked to the originators SUN |
7 | 4 | 32-35 | Free format | 4 blank spaces |
8 | 11 | 36-46 | Amount (in pence) | The contents must end at the right and any unused character positions at the beginning but me zero filled. This is the contra total. |
9 | 18 | 47-64 | Narrative (users choice) | Reference for the debit account (for Direct Credits) or credit account (for Direct Debits). The contents must begin at the left and any unused character positions at the end must be blank space filled |
10 | 18 | 65-82 | Contra identification | Must be 'CONTRA' followed by 12 blank spaces |
11 | 18 | 83-100 | Abbreviated account name of users nominated account | To identify the account to be debited/ credited from the account number in fields 1 and 2. Should be the Users name in the Standard Record. |
12 | 6 | 101-106 | BACS processing day of data |
To identify the BACS processing cycle intended for this record in MULTI PROCESSING FILES ONLY.
* Must be in the format bYYDDD (see above)
|
EOF1 Record
No. | Length | Position | Contents | Notes |
1 | 3 | 1-3 | Label identifier | Must be 'EOF' |
2 | 1 | 4 | Label number | Must be '1' |
3-11 | 50 | 5-54 | Same as HDR1 | Same as HDR1 |
12 | 6 | 55-60 | Block count | Many contain any valid characters but is not checked by BACS |
13-14 | 20 | 61-80 | Same as HDR1 | Same as HDR1 |
EOF2 Record
No. | Length | Position | Contents | Notes |
1 | 3 | 1-3 | Label identifier | Must be 'EOF' |
2 | 1 | 4 | Label number | Must be '2' |
3-8 | 76 | 5-80 | Same as HDR2 | Same as HDR2 |
UTL1 Record
No. | Length | Position | Contents | Notes |
1 | 3 | 1-3 | Label identifier | Must be 'UTL' |
2 | 1 | 4 | Label number | Must be '1' |
3 | 13 | 5-17 | Monetary total of debit records | Must contain the monetary total (in pence, right justified, zero filled) of the amounts in debit records (transaction codes 01, 17, 18, 19). DDI file must quote zeros only. |
4 | 13 | 18-30 | Monetary total of credit records | Must contain the monetary total (in pence, right justified, zero filled) of the amounts in credit records (transaction codes 99, Z4, Z5). DDI files must quote zeros only. |
5 | 7 | 31-37 | Count of debit records | Must contain the count (right justified and zero filled) of the number of debit records, e.g. ACH Credit file: 18 records with transaction code 99 and a contra record with transaction code 17, value would be 0000001. ACH Direct Debit file: 18 records with transaction code 17 and a contra record with transaction code 99, value would be 0000018. DDI must quote zeros only. |
6 | 7 | 38-44 | Count of credit records | Must contain the count (right justified, zero filled) of the number of credit records, e.g. 18 records with transaction code 99 and a contra record with transaction code 17, value would be 0000018. ACH Direct Debit file: 18 records with transaction code 17 and a contra record with transaction code 99, value would be 0000001. DDI file must quote zeros only. |
7 | 10 | 45-54 | Reserved for future use | Should be blank space filled |
8 | 26 | 55-80 | For use by user or bureau | Should be blank space filled. |
