Xero bank feeds handle most accounts automatically. Manual import is for everything else: a bank Xero doesn't connect to, a feed that broke and left a gap, historical periods from before the feed started, or a client who hands you statements rather than bank access. This guide covers the import itself, the file requirements, and what to do when the statement only exists as a PDF.

Which file formats Xero accepts

Xero's manual import takes CSV, OFX and QFX. It does not accept PDF. If your bank offers an OFX or QFX download, prefer it: those formats carry structured fields, so Xero needs little or no column mapping. CSV is the fallback when that's all the bank provides, or when you need to review and edit rows before importing.

The import steps

  1. Go to Accounting → Bank accounts.
  2. On the target account, open Manage Account → Import a Statement. Confirm it's the right account before continuing — importing into the wrong one creates reconciliation work that has to be undone by hand.
  3. Select the file and continue.
  4. For a CSV, assign each column to a Xero bank statement field. Xero keeps this mapping for future imports unless a later file has different headers or extra columns.
  5. If prompted, select the date format the file uses.
  6. On the review screen, clear the checkbox next to any transaction you don't want, then complete the import.

The imported lines appear on the Reconcile tab, where they're matched against invoices, bills and bank rules the same way feed transactions are.

CSV requirements

Only two fields are mandatory: transaction date and transaction amount. A file with nothing else will import. The optional fields are where the useful information lives:

FieldRequiredNotes
DateYesMust match the date format you confirm during import
AmountYesSingle signed column: positive for money in, negative for money out
PayeeNoIf it matches an existing Xero contact exactly, it links to that contact; a near-match creates a duplicate contact
DescriptionNoFree text; useful for bank rules and later review
ReferenceNoPayment reference or invoice number — the field that makes reconciliation fast

If you import without a payee, Xero shows the bank account name as the contact. That works, but reconciling anything beyond a handful of lines becomes slow.

The errors that cause most failed imports

Dates read the wrong way round

This is the most common problem and the most dangerous one. A date like 03/04/2026 is valid as 3 April and as 4 March, so Xero will accept it either way without an error. The import succeeds, the transactions land in the wrong month, and reconciliation fails later for no obvious reason. Confirm the date format during import and check a few dates on the review screen against the original statement.

Opening the CSV in Excel first

Double-clicking a CSV to open it in Excel lets Excel reinterpret the contents. It can switch date formats to match your computer's locale, strip leading zeros from references (so 007823 becomes 7823), and add thousand separators to amounts. If you save the file afterwards, those changes are written back. Review CSVs in a plain text editor, or in Excel through Data → From Text/CSV with columns set to Text.

Wrong sign convention

Xero expects money out as negative. Some banks print debits as positive numbers in a separate column, or mark them with DR, a trailing minus, or brackets. All of those need converting to a leading minus sign in a single amount column before import. If your imported payments appear as income, this is the cause.

Encoding

Save as UTF-8. Other encodings turn currency symbols and accented characters into garbled text — a common problem with Central European payee names on statements from banks like Tatra banka or ČSOB.

Overlapping date ranges

Importing January 1–31 and then January 15–February 15 duplicates two weeks of transactions. Before importing, check the last transaction date already in Xero for that account and start the new file from the day after. This is especially relevant when filling a gap left by a broken feed, where the feed and the manual import can overlap at both ends.

When the statement is a PDF

Many banks — and most clients — only provide PDFs. Xero can't import those, so they need converting first. Options:

Whichever route you use, test an unfamiliar bank's file against Xero's Demo Company first. It's a sandbox organisation every Xero user has access to. Importing there costs nothing and shows exactly how Xero reads the dates and signs, without touching your real books.

After importing: confirm the balance

A clean import isn't proof of a complete one. Check that the statement balance shown in Xero after import matches the closing balance printed on the bank statement for that date. If it doesn't, a transaction is missing or duplicated, and it's easier to find now than after reconciliation.

Summary

For PDF statements, convert to Xero CSV free — 3 pages without signing up, 20 with an account, no credit card required.