BACS and Faster Payment files

Follow this guide to set up BACS and Faster Payment Files. In Company Setup ‣ Report Definitions you will need first need to select a Report Template and then you may need to modify the settings using copy and paste before adding the report (be sure to select the entire line of text if needed).

The following sections give specific instructions for specific formats for some banks, see also gb_bacs-custom-bank-files for creating customised output for other formats.

Bank of Scotland (Faster Payments)

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB Bank of Scotland

Description:

GB Bank of Scotland

Header:

One line:

H,{actual_t:%Y%m%d},YourCompanyNumber
Row:

One line:

FPS,{actual_t:%Y%m%d},{pay_graph_results.net_pay:.2f},YourCompanyName,{company.bankdetail.sort_code}-{company.bankdetail.account_number},{bankdetail.account_name:.18},{bankdetail.account_number},{bankdetail.sort_code},YourReference
Trailer:

One line:

T
Filename:

BankofScotland.csv

Barclays

Select the GB BACS Barclays and click Add

Barclays SIF

Select the GB BACS Barclays Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB BACS Barclays SIF

Description:

GB BACS Barclays SIF

Header:

Not used, delete all content

Row:

One line:

{bankdetail.sort_code},{bankdetail.account_name},{bankdetail.account_number},{pay_graph_results.net_pay:.2f},Payroll,99/
Trailer:

Not used, delete all content

Filename:

BACS_Barclays_SIF.csv

Cashbacs

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

Cashbacs

Description:

Cashbacs

Header:

Not used, delete all content

Row:

One line:

"{bankdetail.sort_code_hyphen}","{bankdetail.account_number}","{bankdetail.account_name}","{pay_graph_results.net_pay:.2f}",,,"{sub_reference}"
Trailer:

Not used, delete all content

Filename:

cashbacs.csv

Coutts (Faster Payments)

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB FPS Coutts CSV

Description:

GB FPS Coutts CSV

Header:

Not used, delete all content

Row:

One line:

,,,01,,,,,,,,,{company.bankdetail.sort_code}{company.bankdetail.account_number},,,,{pay_graph_results.net_pay:.2f},,{bank_t:%d%m%Y},,,,,,{bankdetail.sort_code},,,,,,{bankdetail.account_number},,{bankdetail.account_name:.18},,,,{company.bankdetail.reference:<18}
Trailer:

Not used, delete all content

Filename:

FPS_Coutts.csv

HSBC BACS Standard 18 (Faster Payments) - single date serial number

Select the GB BACS Standard 18 and click Add

Note

The default template uses a single serial number based on the frequency and pay date e.g. M13103. Multiple company fiels that have the same pay date mey be rejected by your bank

HSBC BACS Standard 18 (Faster Payments) - unique serial numbers

Uses a unique serial number based on the rightmost 6 digits of the pay run id.

Select the GB BACS Standard 18 and modify the settings fields by copying the text below and pasting into each of the settings and then click Add

Header:

4 lines:

VOL1{payrun_serial_no} {none:<20}HSBC{none:<44}1
HDR1A{none:<6}S{none:<9}{payrun_serial_no}00010001{none:<6} {report_date:%y%j} {report_date:%y%j} 000000{none:<20}
HDR2F0200000100{none:<35}00{none:<28}
UHL1 {report_date:%y%j}999999    000000002 FPS    001{none:<40}
Row:

One line:

{bankdetail.sort_code}{bankdetail.account_number}099{company.bankdetail.sort_code}{company.bankdetail.account_number}{none:<4}{pay_pence:0>11}{company.bankdetail.account_name:18.18}{company.bankdetail.reference:<18}{bankdetail.account_name:18.18}
Trailer:

4 lines:

{company.bankdetail.sort_code}{company.bankdetail.account_number}017{company.bankdetail.sort_code}{company.bankdetail.account_number}{none:<4}{total_pay_pence:011}{company.bankdetail.reference:<18}CONTRA{none:<12}{company.bankdetail.account_name:18.18}
EOF1A{none:<6}S{none:<9}{payrun_serial_no}00010001{none:<6} {report_date:%y%j} {report_date:%y%j} {none:<26}
EOF2F0200000100{none:<35}00{none:<28}
UTL1{total_pay_pence:013}{total_pay_pence:013}0000001{count:07d}{none:<36}

HSBC BACS Standard 18 (BACS 3-day Payments) - unique serial numbers

Uses a unique serial number based on the rightmost 6 digits of the pay run id.

Select the GB BACS Standard 18 and modify the settings fields by copying the text below and pasting into each of the settings and then click Add

Header:

4 lines:

VOL1{payrun_serial_no} {none:<20}HSBC{none:<44}1
HDR1A{none:<6}S{none:<2}1{none:<6}{payrun_serial_no}00010001{none:<6} {creation_dt:%y%j} {bank_t:%y%j} 000000{none:<20}
HDR2F0200000100{none:<35}00{none:<28}
UHL1 {processing_dt:%y%j}999999    000000001 DAILY  001{none:<40}
Row:

One line:

{bankdetail.sort_code}{bankdetail.account_number}099{company.bankdetail.sort_code}{company.bankdetail.account_number}{none:<4}{pay_pence:0>11}{company.bankdetail.account_name:18.18}{company.bankdetail.reference:<18}{bankdetail.account_name:18.18} {processing_dt:%y%j}
Trailer:

4 lines:

{company.bankdetail.sort_code}{company.bankdetail.account_number}017{company.bankdetail.sort_code}{company.bankdetail.account_number}{none:<4}{total_pay_pence:011}{none:<18}CONTRA{none:<12}{company.bankdetail.account_name:18.18} {processing_dt:%y%j}
EOF1A{none:<6}S{none:<2}1{none:<6}{payrun_serial_no}00010001{none:<6} {creation_dt:%y%j} {bank_t:%y%j} 000000{none:<20}
EOF2F0200000100{none:<35}00{none:<28}
UTL1{total_pay_pence:013}{total_pay_pence:013}0000001{count:07d}{none:<36}

Lloyds

Select the GB BACS Lloyds and click Add

Lloyds BACS CSV

Select the GB BACS Lloyds Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB BACS Lloyds CSV

Description:

GB BACS Lloyds CSV

Header:

Two lines:

H,{report_date:%Y%m%d},{payrun_serial_no}
D,{bank_t:%Y%m%d},Payroll,{company.bankdetail.sort_code}-{company.bankdetail.account_number},
Row:

One line:

C,{pay_graph_results.net_pay:.2f},{bankdetail.account_name:.18},{bankdetail.account_number},{bankdetail.sort_code},Payroll
Trailer:

One line:

T
Filename:

BACS_lloyds.csv

Lloyds Faster Payments (FPS) CSV

Select the GB BACS Lloyds Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB FPS Lloyds CSV

Description:

GB FPS Lloyds CSV

Header:

One line:

H,{report_date:%Y%m%d},{payrun_serial_no}
Row:

One line:

FPS,{bank_t:%Y%m%d},{pay_graph_results.net_pay:.2f},Payroll,{company.bankdetail.sort_code}-{company.bankdetail.account_number},{bankdetail.account_name:.18},{bankdetail.account_number},{bankdetail.sort_code},Payroll
Trailer:

One line:

T
Filename:

FPS_lloyds.csv

Metro Bank CSV text file

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB BACS Metro CSV

Description:

GB BACS Metro CSV

Header:

Not used, delete all content

Row:

One line:

{bankdetail.sort_code},{bankdetail.account_name:18.18},{bankdetail.account_number},{pay_graph_results.net_pay:.2f},Payroll,99
Trailer:

Not used, delete all content

Filename:

BACS_Metro.csv

You can modify the word Reference above with a maximum of 18 characters.

Modulr Payment file

For use with the Modulr portal to upload a Bacs 18 Standard payment file containing multiple payments (see more here). The payments are set to bank_t. If you need to modify this, simply alter each occurrence in the header, row and trailer from {bank_t:%y%j to:

  • {actual_t:%y%j} for the actual_t pay run date, even if this falls on a public holiday or weekend

  • left blank {none:<5} If choosing to not provide a date

Select the GB BACS Standard 18 and modify the settings fields by copying the text below and pasting into each of the settings and then click Add

Name:

GB BACS Modulr

Description:

GB BACS Modulr

Header:

4 lines:

VOL1{payrun_serial_no} {none:<20}HSBC{none:<44}1
HDR1A{none:<6}S{none:<2}1{none:<6}{payrun_serial_no}00010001{none:<6} {creation_dt:%y%j} {bank_t:%y%j} 000000{none:<20}
HDR2F0200000100{none:<35}00{none:<28}
UHL1 {bank_t:%y%j}999999    000000001 DAILY  001{none:<40}
Row:

One line:

{bankdetail.sort_code}{bankdetail.account_number}099{company.bankdetail.sort_code}{company.bankdetail.account_number}{none:<4}{pay_pence:0>11}{company.bankdetail.account_name:18.18}{company.bankdetail.reference:<18}{bankdetail.account_name:18.18} {bank_t:%y%j}
Trailer:

4 lines:

{company.bankdetail.sort_code}{company.bankdetail.account_number}017{company.bankdetail.sort_code}{company.bankdetail.account_number}{none:<4}{total_pay_pence:011}{none:<18}CONTRA{none:<12}{company.bankdetail.account_name:18.18} {bank_t:%y%j}
EOF1A{none:<6}S{none:<2}1{none:<6}{payrun_serial_no}00010001{none:<6} {creation_dt:%y%j} {bank_t:%y%j} 000000{none:<20}
EOF2F0200000100{none:<35}00{none:<28}
UTL1{total_pay_pence:013}{total_pay_pence:013}0000001{count:07d}{none:<36}
Filename:

modulr_bacs_18.txt

NatWest Ad Hoc Bulk payment file

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB Adhoc Bulk NatWest

Description:

GB Adhoc Bulk NatWest

Header:

One line:

,,,08,,,,,{company.bankdetail.account_name:.18},,,,{company.bankdetail.sort_code}{company.bankdetail.account_number},,,,,,{bank_t:%d%m%Y},,,,,,,,,,,,,,,,,,PAYROLL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Row:

One line:

,,,09,,,,,,,,,,,,GBP,{pay_graph_results.net_pay:.2f},,,,,,,,{bankdetail.sort_code},,,,,,{bankdetail.account_number},,{bankdetail.account_name:.18},,,,PAYROLL 01,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Trailer:

Not used, delete all content

Filename:

NatwestAdhocBulkFile.txt

NatWest CSV DAT file

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB BACS NatWest

Description:

GB BACS NatWest

Header:

Not used, delete all content

Row:

One line:

{bankdetail.sort_code},{bankdetail.account_number},{bankdetail.account_name:<18.18},{pay_pence:0>11},{works_id:<18.18},{none:<4},99,{company.bankdetail.sort_code},{company.bankdetail.account_number},{company.bankdetail.account_name:.18},{processing_dt:%d/%m/%Y}
Trailer:

Not used, delete all content

Filename:

BACS.DAT

RBS Bankline Standard domestic bulk list CSV file

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB RBS Bankline

Description:

GB RBS Bankline

Header:

One line:

,,,06,,PAYROLL,,,,,,,{company.bankdetail.sort_code}{company.bankdetail.account_number},,,,,,{bank_t:%d%m%Y},,,,,,,,,,,,,,,,,,PAYROLL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Row:

One line:

,,,07,,,,{bankdetail.account_name:.18},,,,,,,,GBP,{pay_graph_results.net_pay:.2f},,,,,,,,{bankdetail.sort_code},,,,,,{bankdetail.account_number},,{bankdetail.account_name:.18},,,,PAYROLL 01,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Trailer:

Not used, delete all content

Filename:

RBSBankline.txt

Revolut Bank CSV text file

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

GB FPS Revolut CSV

Description:

GB FPS Revolut CSV

Header:

One line:

Name,Recipient type,Account number,Sort code,Recipient bank country,Currency,Amount,Payment reference
Row:

One line:

{bankdetail.account_name},INDIVIDUAL,{bankdetail.account_number},{bankdetail.sort_code},GB,GBP,{pay_graph_results.net_pay:.2f},Payroll
Trailer:

Not used, delete all content

Filename:

FPS_Revolut.csv

You can modify the word Reference above with a maximum of 18 characters.

Santander

Select the GB BACS Santander and click Add

Silicon Valley Bank

Select the GB BACS Santander Report Template and modify the settings fields by copying the text below and pasting into each of the settings. Then click Add

Name:

BJL BACS File Format

Description:

BJL BACS File Format

Header:

One line:

BJL Bank Account number,Supplier Name,Sort Code,Account Number,Payment Amount,Payment Date,Payment Type,Reference
Row:

One line:

{company.bankdetail.account_number},{bankdetail.account_name},{bankdetail.sort_code},{bankdetail.account_number},{pay_graph_results.net_pay:.2f},{actual_t:%d%m%Y},FP,YourReference
Trailer:

One line:

PAYMENT,TRAILER,{total},{count}
Filename:

BJL_BACS.csv

Custom bank files

You can create you own custom bank file by using a standard template and then selecting the Header, Row and Trailer fields as below.

Header fields

Field

Description

Example

{actual_t}

Actual Pay date

{pay_run.frequency}

Frequency

{bank_t}

Earlier pay date if the actual pay day falls on a public holiday

{creation_dt}

BACS Creation date

{processing_dt}

BACS Processing date - one day before pay date

{report_date}

Date the report was run

{payrun_serial_no}

Unique serial number based on the rightmost 6 digits of the pay run id.

123456

{none:<35}

Spaces

e.g. 35

{draft}

If the pay run is not approved, “DRAFT not approved”, else the empty string.

Row fields

Field

Description

Example

{company.bankdetail.sort_code}

6 digit company sort code

112233

{company.bankdetail.sort_code_hyphen}

Sort code including hyphens

11-22-33

{company.bankdetail.account_number}

8 digit company account number

12345678

{company.bankdetail.account_name}

Company bank account name

ACME LTD

{bankdetail.sort_code}

Employee 6 digits sort code

445566

{bankdetail.sort_code_hyphen}

Employee sort code including hyphens

44-55-66

{bankdetail.account_number}

Employee bank account number

87654321

{bankdetail.account_name}

Employee bank account name

MR J SMITH

{pay_graph_results.net_pay:.2f}

Employee Net pay 2 decimal places

1234.45

{pay_pence}

Employee pay with decimal point removed

123456

{sub_reference}

HMRC RTI sub-reference

#A34

{none:<8}

Spaces

e.g. 8

Trailer fields

Field

Description

Example

{total}

The total value of all payments

123.45

{total_pay_pence}

Total Pay with decimal point removed

12345

{count}

The number of payments

15

{none:<4}

Spaces

e.g. 4

Fields can be formatted using a format specifier. See Python Format Specification Mini-Language for full formatting options, or below for some possibilities:

Format

Example or meaning

{actual_t:%Y%m%d}

20221201

{actual_t:%d%m%Y}

01122022

{bank_t:%y%j}

22185

{total:>35}

Right aligned and padded to 35 characters

{bankdetail.account_name:<18.18}

Left aligned, padded to 18 characters and limited to 18 characters

{count:^29}

Centre aligned and padded to 29 characters

{total_pay_pence:013}

Zero padded to 13 places

{none:<36}

36 spaces