BACS and Faster Payment files¶
Follow this guide to set up BACS and Faster Payment Files. In 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).
you will need first need to select aThe 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 weekendleft 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.
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. |
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 |
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 |