How to import a bank statement CSV into Xero
Xero is fussier about the shape of a CSV than most people expect. This guide covers the layouts it accepts, the date and number rules that cause most failures, and a short checklist to run before you upload.
By Muhammad Sharif · October 2026 · 8 min read
Xero normally pulls bank transactions through a bank feed, but feeds do not always exist. Smaller banks, credit unions, older periods before the feed started, accounts opened mid-year and many overseas banks all end up as "import a statement" jobs. If you can get a clean CSV, the import itself takes a minute. Getting the CSV clean is where the time goes.
The rules below reflect Xero's documented import behaviour at the time of writing. Menus and limits can change, so treat the figures as a guide and confirm anything that matters against Xero's own help pages.
Where the import option lives
In Xero, open Accounting → Bank accounts, choose the account the statement belongs to, and look for Manage Account → Import a Statement (older layouts show an "Import a Statement" button near the top of the statement tab). Xero accepts CSV files as well as OFX and QFX files. OFX and QFX are structured formats that carry their own field definitions, so they import without column mapping. CSV is the flexible option, but you are responsible for its layout.
The CSV layouts Xero accepts
| Layout | Columns | Sign convention |
|---|---|---|
| Three columns | Date · Description · Amount | One signed amount: money in positive, money out negative |
| Four columns | Date · Description · Debit · Credit | Both columns positive; the column decides the direction |
The converter on this site produces Date, Description, Amount and Balance. The signed Amount column matches the three-column layout, and the extra Balance column can simply be mapped to nothing or deleted. If you want the least surprise, delete the Balance column before uploading.
Xero's mapping screen lets you assign columns to fields, but it is best to keep the header row and a consistent order, because Xero reads the first row as column names and then asks you to confirm what each one means.
Rules that cause most failed imports
1. Date format must match your organisation's region
Xero interprets dates using the regional settings of your organisation. A US organisation expects MM/DD/YYYY. UK, Australian and New Zealand organisations expect DD/MM/YYYY. A file written in the wrong order either fails or, worse, imports with swapped day and month for any date where both numbers are 12 or less. That means 04/05/2026 silently becomes 5 April or 4 May. Check one date in the 13th to 31st range, such as 25/03/2026, to see how Xero reads your file. Our date format guide explains why this happens and how to convert safely.
2. Amounts should be plain numbers
Write 4500.00, not 4,500.00 and not $4,500.00. Currency symbols and thousands separators are common reasons for rows being rejected or read as text. Use a minus sign for negatives rather than brackets in the three-column layout.
3. Include a header row, and use UTF-8
A first row with column names helps Xero identify the fields. If your descriptions contain accented characters, save as CSV UTF-8 rather than plain CSV, so they are not turned into question marks.
4. Watch the row limit
Xero has documented a cap of roughly 500 transaction lines per CSV import. A busy business account can exceed that in one month, so split large files by week or half-month and import them one after another. Make sure the files do not overlap, or you will create duplicates.
5. No blank rows, no totals, no notes
Opening-balance lines, "Total" rows, and blank lines inside the data should be removed before upload. A single stray text row in the Amount column can make Xero refuse the whole file.
A pre-flight checklist
- Open the CSV in a plain text editor (not Excel) and confirm that the first line is the header and that commas separate the columns.
- Check one date with a day above 12 to confirm the order.
- Confirm amounts contain only digits, a decimal point and a leading minus sign where needed.
- Make sure the number of rows is below Xero's limit.
- Run the opening balance plus total equals closing balance check from our reconciliation guide before importing, not after.
- Select the correct bank account, and the correct date range, in Xero before uploading.
After the import
Imported lines appear on the bank account's reconciliation screen as statement lines waiting to be matched. From there the normal process applies: match them to invoices and bills, create spend and receive money transactions, or set up bank rules for recurring payees. If you imported a period that overlaps lines already in Xero, you may need to remove the duplicates before reconciling, so it is worth importing a single month first and checking it before loading a full year.
CSV or OFX/QFX?
If a file is available as OFX or QFX and the bank's own file is trustworthy, it saves the mapping step and carries a transaction ID that helps Xero spot duplicates. A converted PDF does not come with those IDs, so CSV with a clean layout is usually the practical route. See CSV versus Excel versus QBO and OFX for how the formats differ.
Frequently asked questions
Why did Xero import my file but show the wrong dates?
Almost always a day/month swap: the file was written in one order and Xero read it in the other, which only shows when both numbers are 12 or less. Re-save the file in the order your Xero region expects and re-import.
Can I import a PDF directly into Xero?
No. Xero's statement import takes CSV, OFX and QFX files. A PDF has to be converted first.
How do I undo a bad import?
You can delete imported statement lines from the bank account's statement view before they are reconciled. Check Xero's help for the current steps, because the option is not available for lines that are already reconciled.