How to Import a Bank Statement CSV into Xero
Xero's live bank feeds don't cover every bank, and even when they do, feeds only pick up new transactions going forward — not the last six months you need for reconciliation or a loan application. Importing a CSV statement manually fills that gap. Here's the column format Xero actually expects and the region-specific detail that causes most failed imports.
Step 1: Start from a clean CSV, not a PDF
Xero's statement import only accepts CSV (or QIF/OFX) files — not PDF statements. If your bank only gives you a PDF, convert it to CSV first. Digital statements are parsed directly in your browser; StatementSheet also runs a balance reconciliation as it goes, so you know the row-by-row running balance actually ties out before you hand the file to Xero.
Step 2: Match Xero's column format
Xero only strictly needs two columns to create statement lines — Date and
Amount — but importing Payee, Description and
Reference as well makes reconciliation much faster because Xero can suggest matches
automatically. The full recommended layout is:
- Date — must match your Xero organisation's regional date format:
DD/MM/YYYYfor UK, Australian and New Zealand organisations,MM/DD/YYYYfor US organisations. Importing the wrong order is the single most common cause of a failed or garbled Xero import. - Amount — one signed column for both income and spending. Show money in as a positive number and money out as negative, either with a minus sign (
-45.00) or in brackets ((45.00)). Don't use a comma as a decimal separator. - Payee — if the name matches an existing Xero contact exactly, Xero will link the transaction to that contact automatically; small spelling differences create duplicate contacts instead.
- Description — free text that becomes the line's description in the bank reconciliation screen.
- Reference — optional, useful for cheque numbers or invoice references.
Xero also requires the file to be saved as UTF-8 encoded CSV. If your statement has non-ASCII characters (currency symbols, accented merchant names) and you edited the file in an older version of Excel, re-save it explicitly as "CSV UTF-8" from the Save As dialog, or the import can silently mangle those characters.
Step 3: Import it in Xero
- Go to Accounting → Bank accounts.
- Find the bank account you're importing into, open its options menu (the ⋮ or arrow icon on the account card), and choose Import a Statement.
- Drag your CSV into the upload panel, or click to browse for it, then select Next.
- If Xero can't automatically detect your columns, you'll be prompted to map each column in your file (Date, Amount, Payee, Description, Reference) to the matching Xero field.
- Confirm the date format shown matches your file — this is the step where a US-formatted file gets misread by a UK-region Xero org, or vice versa.
- Review the preview of parsed transactions, then complete the import. The statement lines appear in Reconcile, ready to match against existing bills, invoices or spend money transactions.
Why imports fail (and how to fix them)
- Every date is off by a day, or dates don't sort correctly — the file's date order doesn't match your Xero organisation's region setting. Re-check whether your org is set to DD/MM/YYYY or MM/DD/YYYY under Settings → Organisation details, and make sure your CSV uses the same order throughout.
- Amounts import as all positive or all negative — your source file used separate Debit/Credit columns instead of one signed Amount column. Combine them into a single column in Excel first (debits as negative, credits as positive).
- New contacts created for payees that already exist — the Payee text in your CSV doesn't exactly match the existing Xero contact name (extra spaces, "Inc." vs "Inc", etc.). Clean up the Payee column before importing, or just leave it blank and reconcile manually.
- Duplicate statement lines after re-importing — Xero doesn't automatically prevent importing the same date range twice. Only import date ranges you haven't already brought in, and check the account's statement balance before and after.
After the import: reconcile, then set up bank rules
Once your statement lines are sitting in Reconcile, Xero will suggest matches against existing invoices, bills and spend-money transactions automatically wherever the amount and date are close enough. For recurring items that never have a matching bill — a monthly software subscription, bank fees, or owner drawings — create a Bank rule (from the account's options menu) once, and every future statement line from that payee gets coded to the right account and, optionally, split by percentage across cost categories or tracking categories automatically.
If you're importing more than one bank account or several months at once, do it one account and one date range at a time. It keeps the column-mapping screen simpler, and if the account's statement balance doesn't match your real bank balance afterward, you'll know immediately which import caused it instead of having to comb through a combined file.
Convert your statement first
Turn a PDF bank or credit-card statement from any major US, UK, Canadian or Australian bank into a clean, Xero-ready CSV in seconds — parsed entirely in your browser and reconciled against the running balance before you export.