Independent guide · October 2026
How to prepare a bank statement CSV for Xero
A failed bank import often comes down to date formats, debit/credit signs, or extra columns exported by the bank. This guide follows Xero's official CSV bank import instructions. It does not replace reconciliation against your original statement.
A minimal CSV example
Date,Amount,Payee,Description,Reference 2026/10/08,-12.50,Coffee shop,Office coffee,TX1001 2026/10/09,1025.00,Client,Invoice payment,TX1002
These are synthetic transactions. The first is an expense; the second is income. Xero lets you map source columns during the import process, but both expense and income amounts must be in the same signed Amount column.
Date formats that Xero supports
Xero's documentation lists DD/MM/YYYY, MM/DD/YYYY, and YYYY/MM/DD, among others. StatementCheck exports YYYY/MM/DD to avoid swapping the day and month. October 8, 2026 becomes 2026/10/08. Verify ambiguous source dates: 04/05/2026 can mean two different days.
Correct debit and credit signs
| Transaction | Amount to import |
|---|---|
| Payment received | 125.00 |
| Expense / withdrawal | -12.50 |
| Credit card purchase | -12.50 |
| Credit card payment | 125.00 |
If your bank exports separate debit and credit columns, translate every debit to a negative amount and every credit to a positive amount. Confirm the conventions in your particular bank export before importing.
Common CSV import failures
Invalid or ambiguous dates
Inspect an unambiguous date in your source or confirm the format in the bank's export settings. Never silently guess between day-first and month-first formats.
Incorrect amounts
Don't strip thousands separators blindly. In one locale 1,23 means 1.23; in another it is invalid grouping. Confirm the decimal locale and compare the source net amount to the converted net amount.
Missing rows
Remove empty rows and use unique column names in the first header row. Xero may also flag or exclude transactions it already holds. Compare source and output transaction counts, dates and totals, then review the Xero import screen before completing the import.
Too many rows or unnecessary fields
Xero currently limits CSV imports to 100,000 rows. Remove columns with opening and closing balances, bank account numbers and other unneeded fields. Do not upload bank credentials.
Check the source file before importing
StatementCheck maps source columns, validates amount formatting and dates, flags duplicates and provides an audit report. It runs inside your browser and never connects to your bank or Xero.
Open the free StatementCheck converter →
Source: Xero Central: Import a bank statement in CSV format. Independent from and unaffiliated with Xero Limited.