Bacs Direct Debit collection file

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.LengthPositionContentsMapping
131-3Label identifierN/A, always VOL
214Label identifierN/A, always 1
365-10Serial numberDay of year the file was generated (DDD) + running number of files generated for the payment schedule target
4111Accessibility indicatorN/A
52012-31Reserved fieldN/A
6632-37Reserved fieldN/A
71438-51Owner IdService User Number from target on payment schedule
82852-79Reserved fieldN/A
9180Label standard levelN/A, always 1

HDR1 Record mapping

No.LengthPositionContentsMapping
131-3Label identifierN/A, always HDR
214Label identifierN/A, always 1
3175-21File identifierSame as VOL serial number
4622-27Accessibility indicatorN/A
5428-31File section numberN/A, always 0001
6432-35File sequence numberN/A, always 0001
7436-39Generation numberN/A
8240-41Generation version numberN/A
9642-47Creation dateDate the file was generated (YYDDD)
10648-53Expiration dateUHL1 processing day +1
11154Accessibility indicatorN/A
12655-60Block countN/A
131361-73System codeN/A
14774-80Reserved fieldN/A

HDR2 Record mapping

No.LengthPositionContentsMapping
131-3Label identifierN/A, always HDR
214Label identifierN/A, always 2
315Record formatN/A, always F
456-10Block lengthN/A, always 02000
5511-15Record lengthN/A, 00100 (single processing day)
63516-50Reserved for operating systemsN/A
7251-52Buffer offsetN/A
82853-80Reserved fieldN/A

UHL1 Record mapping

No.LengthPositionContentsMapping
131-3Label identifierN/A, always UHL
214Label identifierN/A, always 1
365-10Bacs processing dayProcessing date from payment schedule (YYDDD)
41011-20Identifying number of receiving partyN/A, always 999999
5221-22Currency codeN/A, always 00
6623-28Country codeN/A
7929-37Work codeN/A, 1 DAILY (single processing day)
8338-40File numberRunning number of generated files for target on payment schedule
9741-47Reserved fieldN/A
10748-54Audit print identifierN/A
112655-80For use by service user or bureauN/A

Standard Record mapping

No.LengthPositionContentsMapping
161-6Destination sort code numberSort code from mandate linked to installment
287-14Destination account numberBank account from mandate linked to installment
3115Destination type of accountN/A
4216-17Transaction codeSee installment status and transaction codes
5618-23Originating sort codeSort code of target on payment schedule
6824-31Originating account numberBank account of target on payment schedule
7432-35Free formatN/A
81136-46AmountAmount of installment in pence
91847-64User's nameCompany name from target on payment schedule
101865-82User's referenceMandate Id from installment
111883-100Destination account nameAccount holder name from installment
126101-106Bacs processing day of dataN/A

Contra Record mapping

No.LengthPositionContentsMapping
161-6Originating sort code numberSort code of target on payment schedule
287-14Originating account numberBank account of target on payment schedule
3115Type of user's accountN/A
4216-17Transaction codeN/A, always 99 (credit)
5618-23Originating sort codeSort code of target on payment schedule
6824-31Originating account numberBank account of target on payment schedule
7432-35Free formatN/A
81136-46AmountAmount of installment in pence
91847-64Narrative of user's choicePayment schedule record name + Processing date (YYYYMMDD)
101865-82Contra referenceN/A, always CONTRA
111883-100Abbreviated account name of user's nominated accountCompany name of target on payment schedule
126101-106Bacs processing day of dataN/A

EOF1 Record mapping

No.LengthPositionContentsMapping
131-3Label identifierN/A, always EOF
214Label identifierN/A, always 1
3-11505-54Same as HDR1HDR1 positions 5-54
12655-60Block countN/A
13-142061-80Same as HDR1HDR1 positions 61-80

EOF2 Record mapping

No.LengthPositionContentsMapping
131-3Label identifierN/A, always EOF
214Label identifierN/A, always 2
3-8765-80Same as HDR2HDR2 positions 5-80

UTL1 Record mapping

No.LengthPositionContentsMapping
131-3Label identifierN/A, always UTL
214Label identifierN/A, always 1
3135-17Monetary total of debit recordsN/A, calculated during file generation
41318-30Monetary total of credit recordsN/A, calculated during file generation
5731-37Count of debit recordsN/A, calculated during file generation
6738-44Count of credit recordsN/A, always 1
71045-54Reserved for future standardizationN/A
82855-80For use by service user or bureauN/A

Was this page helpful?