The Bacs Direct Debit payment instruction is a Standard 18 file used to communicate payment collection instructions through the Bacs Service. FinDock uses this file format for native direct debit processing with Bacs Manual.
Bacs Direct Debit collection file structure
The Standard 18 format defines a fixed-width file structure with the following records:
VOL - defines the file and the originator; 80 characters
HDR1 - identifies the file, e.g. sequency number, creation date, etc.; 80 characters
HDR2 - indicates if the file includes a single processing day or multiple processing days; 80 characters
UHL1 - includes designated Bacs processing day and other general data points; 80 characters
Standard Record(s) - each Standard Record line represents a debit to collect; 106 characters
Contra Record(s) - each Contra Record line represents a credit to pay; ; 106 characters
EOF1 - End of file indicator for HDR1; 80 characters
EOF2 - End of file indicator for HDR2; 80 characters
UTL1 - sum totals for amounts and number of records included in file; 80 characters
Bacs Direct Debit collection file field mapping
The following table outlines how Salesforce data is mapped to Bacs Direct Debit payment instructions. Please note the mappings cover the most common data points and is not an exhaustive mapping of all possible variables.
VOL Record mapping
No.
Length
Position
Contents
Mapping
1
3
1-3
Label identifier
N/A, always VOL
2
1
4
Label identifier
N/A, always 1
3
6
5-10
Serial number
Day of year the file was generated (DDD) + running number of files generated for the payment schedule target
4
1
11
Accessibility indicator
N/A
5
20
12-31
Reserved field
N/A
6
6
32-37
Reserved field
N/A
7
14
38-51
Owner Id
Service User Number from target on payment schedule
8
28
52-79
Reserved field
N/A
9
1
80
Label standard level
N/A, always 1
HDR1 Record mapping
No.
Length
Position
Contents
Mapping
1
3
1-3
Label identifier
N/A, always HDR
2
1
4
Label identifier
N/A, always 1
3
17
5-21
File identifier
Same as VOL serial number
4
6
22-27
Accessibility indicator
N/A
5
4
28-31
File section number
N/A, always 0001
6
4
32-35
File sequence number
N/A, always 0001
7
4
36-39
Generation number
N/A
8
2
40-41
Generation version number
N/A
9
6
42-47
Creation date
Date the file was generated (YYDDD)
10
6
48-53
Expiration date
UHL1 processing day +1
11
1
54
Accessibility indicator
N/A
12
6
55-60
Block count
N/A
13
13
61-73
System code
N/A
14
7
74-80
Reserved field
N/A
HDR2 Record mapping
No.
Length
Position
Contents
Mapping
1
3
1-3
Label identifier
N/A, always HDR
2
1
4
Label identifier
N/A, always 2
3
1
5
Record format
N/A, always F
4
5
6-10
Block length
N/A, always 02000
5
5
11-15
Record length
N/A, 00100 (single processing day)
6
35
16-50
Reserved for operating systems
N/A
7
2
51-52
Buffer offset
N/A
8
28
53-80
Reserved field
N/A
UHL1 Record mapping
No.
Length
Position
Contents
Mapping
1
3
1-3
Label identifier
N/A, always UHL
2
1
4
Label identifier
N/A, always 1
3
6
5-10
Bacs processing day
Processing date from payment schedule (YYDDD)
4
10
11-20
Identifying number of receiving party
N/A, always 999999
5
2
21-22
Currency code
N/A, always 00
6
6
23-28
Country code
N/A
7
9
29-37
Work code
N/A, 1 DAILY (single processing day)
8
3
38-40
File number
Running number of generated files for target on payment schedule