Xero Bank Statement CSV Import Format: Columns and Rules
When a bank feed isn't available, or you need history from before the feed started, Xero lets you import a bank statement file. CSV is the most flexible option, and also the easiest to get wrong. This guide covers the format Xero expects, based on Xero's own help articles, plus the precoded CSV option and fixes for common errors.
Before you start
- You need the administrator or standard + bank accounts user role in Xero to import a statement.
- Import one file per bank account. If you have several accounts, prepare a separate file for each.
- If your bank offers OFX, QFX or QuickBooks (QBO) files, Xero recommends those over CSV. Use CSV when that's all your bank offers, or when you're working from PDF statements.
The columns
Xero offers a CSV template from the import screen. The template is regional: its file name and column headings depend on the language set in your web browser, and it defaults to New Zealand English if Xero can't tell. Mandatory fields are marked with an asterisk.
| Column | Required? | What goes in it |
|---|---|---|
| Date | Yes | The transaction date, in one of Xero's accepted formats (below) |
| Amount | Yes | One signed amount column: money in positive, money out negative |
| Payee | No (recommended) | Who you paid or who paid you. If they're an existing Xero contact, match the name exactly to avoid duplicate contacts |
| Description | No | Detail about the transaction. It appears under Particulars on the Bank statements tab |
| Reference | No | Any reference you want on the line |
| Check number (Cheque number outside the US) | No | The check number, if there is one |
| Analysis code | No (extra column) | The bank's analysis code for the line |
| Transaction Type | No (extra column) | The bank's transaction type. It only shows on the line in the reconciliation screen |
Only Date and Amount are needed to create statement lines. Xero points out that reconciling is easier when you include more detail, so keep the payee and description if you have them.
Example file
| Date | Amount | Payee | Description | Reference | Check Number |
|---|---|---|---|---|---|
| 09/03/2026 | 1850.00 | Acme Payroll | Payroll deposit | SEP-1 | |
| 09/05/2026 | -640.00 | Main Street Rentals | Check paid | 1042 | |
| 09/18/2026 | -142.10 | City Electric | ACH utility payment | INV 88213 | |
| 09/30/2026 | -12.00 | Monthly service fee |
Saved as CSV, the header line looks like Date,Amount,Payee,Description,Reference,Check Number. Your headings don't have to match the template exactly. The first time you import a CSV, Xero asks you to assign each column to a statement field, and it remembers that assignment for future imports unless a new file has extra or different columns.
Amount rules
- Income and expenses go in the same column. Don't use separate debit and credit columns.
- Income is positive. Expenses are negative, written with a minus sign or brackets:
-30.00or(30.00). - Don't use commas to show decimal places.
- For credit card accounts, payments to the card are positive and purchases are negative.
Date formats Xero accepts
Use one format for every date in the file. Xero lists these main formats:
DD/MM/YYYY(15/01/2023)MM/DD/YYYY(01/15/2023)YYYY/MM/DD(2023/01/15)
It also accepts DD/MM/YY, MM/DD/YY, DD/MMM/YY (15/JAN/23), DD/MMM/YYYY, dates separated by spaces, hyphens (15-01-2023) or periods (15.01.2023), and DDMMYYYY with no separators.
If a date could be read more than one way, such as 03/04/2026, Xero asks you to confirm the format. It applies your choice to the whole file and to future CSV imports, so pick carefully the first time.
Clean the file before importing
Xero's checklist:
- Delete opening and closing balance columns. Xero works out the balance from the transactions.
- Delete the bank account number if it appears in the file.
- Delete empty rows.
- Put the header row in row 1, and give every column a unique name.
- Keep the file under 100,000 rows. Larger files fail; split them or use OFX or QIF instead.
Bank exports often include a few summary lines above the header. Delete those too.
How to import
- In the Accounting menu, select Bank accounts.
- For the account you want, click the menu icon and select Import a Statement.
- In File to upload, drag and drop the file or click Select file, then click Next.
- If prompted, assign your columns to the matching statement fields. The Transaction Date and Transaction Amount fields must be assigned. Click Next.
- If prompted, select the date format used in your file, then click Next.
- Review the transactions. Clear the checkbox next to any you don't want.
- Click Complete import.
The review screen shows which lines are ready to import, which have warnings that affect how they're imported, and which have errors that prevent import. Transactions that match ones already in Xero are treated as duplicates and skipped. Once imported, the lines are ready to reconcile.
Precoded CSV: import and reconcile in one step
Xero also accepts a precoded CSV. You add an account code and a tax rate to each line, and Xero creates spend money and receive money transactions and reconciles them against the statement lines automatically.
- Required fields: Date, Amount, Account code (the code only, not the account name) and Tax Rate (the tax rate's display name, mapped to Tax Type during import).
- Optional: Payee, Description, Reference, Cheque number, Tracking1 and Tracking2, Transaction Type and Analysis code.
- Dates use DD/MM/YYYY, MM/DD/YYYY or YYYY/MM/DD. Amounts follow the same sign rules, with no currency symbols.
- If a mandatory field is missing, Xero imports plain statement lines instead of reconciled transactions.
Use it carefully. Xero warns that if lines in a precoded file match invoices, bills or other transactions already in Xero, importing it will introduce errors. For accounts with invoices and bills, a regular import followed by normal reconciliation is safer.
Common errors and fixes
| Problem | Fix |
|---|---|
| Dates land in the wrong month | Day and month were swapped. Check the format you chose on the date step; it carries forward to future imports |
| Every amount is positive | Your file has separate debit and credit columns. Combine them into one signed Amount column |
| Import fails on amount | Remove currency symbols and commas used as decimal separators |
| Lines missing after import | They matched existing transactions and were skipped as duplicates |
| Balance in Xero doesn't match the bank | A month is missing, or opening and closing balance rows were imported as transactions |
From PDF to Xero CSV
If all you have is PDF statements, you first need the transactions in this format. StatementCheap converts PDF bank and credit card statements directly to a Xero CSV, as well as Excel, CSV, QBO and OFX. Before you download, each conversion is checked against the statement's opening and closing balances, so a missing page or misread amount shows up before it reaches Xero. You get 5 free pages a day with a free account: just an email, no card. Convert a statement, or read more about bank statements to Xero and QBO vs OFX vs QFX.
Skip the copy-paste
Convert a PDF statement to Excel, CSV or QuickBooks in seconds, checked against its balances. 5 free pages a day.
Convert a statement free