StatementCheck · Free bank CSV checker

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.

In brief: One transaction per row, a date, and one signed amount. Money in is positive, money out is negative.

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

TransactionAmount to import
Payment received125.00
Expense / withdrawal-12.50
Credit card purchase-12.50
Credit card payment125.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 →

Final safety check: This is formatting assistance, not accounting advice or verification of the underlying statement. Confirm transaction counts, net balances, signs and duplicates against the original, and inspect Xero's import preview.

Source: Xero Central: Import a bank statement in CSV format. Independent from and unaffiliated with Xero Limited.