Xero batch payments to NatWest Bankline, Revolut and Monzo
Updated 17 October 2026
For a UK bank account other than HSBC UK or Santander UK, Xero exports a batch payment as a BACS file and leaves any reformatting to you: its help page says you "might need to change formatting to meet your bank's requirements". NatWest Bankline can import a BACS file or its own CSV layout, Revolut Business takes BACS, CSV or XML files, and Monzo Business takes a six-column CSV.
Paying from Santander? Its files fail for different reasons, covered in Santander rejected my Xero batch payment file.
What is in the BACS file Xero exports
The file is in the BACS Standard 18 layout: plain text, with header lines starting VOL1, HDR1, HDR2 and UHL1, then one line per payment, then a contra line that balances the batch against your own account, then trailer lines starting EOF1, EOF2 and UTL1. Every payment line is 100 characters wide and each value sits at a fixed position:
| Characters | What they hold |
|---|---|
| 1 to 6 | The payee's sort code |
| 7 to 14 | The payee's account number |
| 16 to 17 | The transaction code: 99 for a payment (the contra line uses 17) |
| 18 to 31 | Your sort code and account number |
| 36 to 46 | The amount in pence, padded with zeros |
| 47 to 64 | Your account name |
| 65 to 82 | The payment reference |
| 83 to 100 | The payee's account name |
What the layout and Xero's export mean in practice:
- A payee name or a reference can never be longer than 18 characters, so long supplier names arrive shortened.
- Xero combines bills for the same supplier into one payment, "so each supplier receives a single payment and reference".
- Before you export, Xero needs a BACS Service User Number (or Owner ID) in your financial settings. Xero says that if you do not have one, you can type
000000.
Open the file in Notepad or another text editor if you want to check it. Excel can drop the leading zeros from sort codes and account numbers such as 040605, which breaks the file for every bank below.
NatWest Bankline
Bankline's payment import reads two layouts.
The BACS file itself (Bacstel-IP import)
NatWest's Bacstel-IP import guide says Bankline recognises a standard BACS file automatically and turns it into an ad hoc bulk payment. It expects one complete BACS file per import, saved with a .txt extension, with the work code 1 DAILY or 4 MULTI on the UHL1 line, and it ignores anything after the UTL1 line. Bankline treats the processing date in the file as day two of the BACS cycle and sets the payment to arrive one working day later. So the first thing to try is importing the Xero file as it is, named .txt.
Bankline's own CSV layout
If Bankline will not take the BACS file, the alternative is its CSV layout (NatWest's guide, October 2025), with each payment written as a Faster Payment record. The file can be saved as .csv or .txt, and every record has a fixed number of commas (79, 84, 142 or 176). In a Faster Payment record:
- Field T001 is
01, the record type for a Faster Payment. - T010 is your sort code and account number as 14 digits, with no spaces or hyphens.
- T014 is the amount, and T016 the date the payment should arrive, written ddmmyyyy.
- T022 and T028 are the payee's sort code and account number, and T030 the payee's name.
- T034 is the reference the payee sees. If it is blank, Bankline uses your account name.
,,,01,,,,,,,,,60100087654321,,,,166.42,,16012025,,,,,,151000,,,,,,12345678,,MR JOHN SMITH,,,,INVOICE 1234,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Free-text fields in Faster Payments may use only capital letters, numbers, full stop, hyphen, slash, ampersand and space, and only the first 18 characters of the payee name are used. A file can hold only one bulk payment, and a payment from a bulk list must name a bulk list that already exists in Bankline.
Revolut Business
Revolut's help centre says a bulk payment can be made from a CSV, XML or BACS file (BACS for local UK payments), with up to 1,000 payments per file. Files can only be uploaded in the web app, under Transfers, then New, then Bulk. That means the Xero BACS file may go straight in.
If it does not, or you would rather check every row first, use Revolut's CSV template. Its columns change with the destination country and currency, and each recipient has to be marked Company or Individual. Revolut also points out that each payment in a bulk payment appears as its own transaction, so salary payments are visible to everyone who can see that account. Revolut suggests a separate private account for payroll.
Monzo Business
Monzo's bulk payments come with its Team plan. In the web app you upload a CSV with six columns, which Monzo's help lists in this order: payee name, sort code, bank account number, bank account type, payment reference and amount. One bulk payment can hold up to 200 payments. Monzo checks the file and tells you about any problem before it sends anything, and you confirm the payment in the Monzo mobile app.
Monzo's help pages describe CSV uploads only, so a Xero batch needs converting into that CSV, either by copying each payment across by hand or with a converter.
Xero Payroll payment files
A Xero Payroll payment file is a BACS file too, so the same steps apply to a pay run. Xero has said it has no plans to offer the payroll payment file as a CSV. On 8 September 2026 it announced direct wage payments through Crezco for UK organisations on Xero Payroll, which avoids the file altogether if your bank and process suit it.
Convert the Xero file with Bank-Bridge
Bank-Bridge is FourFourFive's free tool that turns the BACS file Xero exports into each bank's own upload layout.
Upload the BACS file from Xero, pick the bank and download the converted file. For the three banks on this page it writes:
| Bank | What Bank-Bridge writes | What you choose |
|---|---|---|
| NatWest Bankline | One Faster Payment record per payment in the 84-comma CSV layout, with your account, the amount, the date and each payee's sort code, account number and name. Saved as .txt. The payee reference is left blank, so Bankline uses your account name. | The payment date |
| Revolut Business | A CSV with the columns Name, Recipient type, Account number, Sort code, Recipient bank country (GB), Currency (GBP), Amount and Payment reference. | Company or Individual for the whole file, and one payment reference |
| Monzo Business | A CSV with Monzo's six columns and a header row, with sort codes written 12-34-56. | Business or Personal account type for the whole file, and one payment reference |
Bank-Bridge also produces files for Santander, Virgin Money and Allica Bank. The conversion runs in your browser, so the payment file is not uploaded to FourFourFive. Every payee keeps the name held in the BACS file, which is limited to 18 characters.
Sources
- Xero Central, Pay multiple bills. Which banks get a BACS file, supplier bills combined, the 000000 Service User Number
- NatWest, Bankline import file layout guide: Bacstel-IP format. Standard 18 field positions and how Bankline imports a BACS file
- NatWest, Bankline import file layout guide: comma separated value format (October 2025). Record lengths, the Faster Payment record and example, character set, bulk payment rules
- Revolut Business help, What are bulk payments?. File types, the 1,000-payment limit, the CSV template
- Monzo help, How do I make a Bulk Payment?. The six CSV columns and the 200-payment limit
- Monzo, Bulk payments. Available with the Team plan
- Xero Product Ideas, UK Payroll - Export payment file in CSV format. Xero's updates of 2 March 2026 and 8 September 2026