Skip to content
stmtai

Accounting software

How to import bank statements into Xero

Bank feeds versus manual CSV, OFX and QIF imports in Xero, the CSV template columns, the date-format trap, duplicates and PDF-only statements.

7 min read · Last reviewed · by the stmtai team

Xero gets bank transactions in two ways: a bank feed that pulls them automatically, or a statement file you import by hand. For the manual route, open the bank account in Xero, choose Manage account, then Import a statement, and upload a CSV, OFX or QIF file (US organisations can also use QBO and QFX). Transactions land on the Reconcile tab as statement lines, and nothing hits your accounts until you reconcile them.

The rest of this guide covers when to use each method, how to build a CSV that Xero accepts first time, and the two mistakes that account for most failed imports: the date format and the sign on the amount. Details were checked against Xero's help centre and product notes in September 2026.

Feeds first, files for the gaps

Bank feeds

Under Accounting, Bank accounts, choose Add bank account, search for your bank and follow the connection flow. Depending on the bank and your country this is either a direct feed maintained by the bank or an open-banking connection that you may need to re-authorise periodically. Xero prompts you when that is due.

Xero says you can bring in up to 12 months of history when a feed is first connected, but that depends on the bank. Some give 90 days. If the feed starts later than your books do, or a feed drops out for a few weeks, you fill the gap with a file import. Feeds and imports can coexist on the same account; Xero treats both as statement lines.

Manual import

Use a file when:

  • your bank has no feed in your region,
  • you need months before the feed started,
  • the feed broke and you are missing a period,
  • you are catching up several years of records for a new client or a tax filing.

There is no time limit on manual imports. You can import 2019 statements today if you have the files.

Which file format to use

FormatColumn mappingDuplicate detectionWhere it comes from
OFXNone, Xero reads itGood, each transaction carries an IDBank download, or converted from a statement
QIFNoneWeaker, no IDsOlder bank exports, Quicken
CSVYou map columns once per accountXero checks date, amount and referenceNearly every bank, spreadsheets, converters
QBO / QFX (US organisations)NoneGoodUS bank downloads

If the bank offers OFX, take it. It is the least fiddly. CSV is the universal fallback and the one you will use for converted PDFs, so most of this guide is about CSV.

Building a CSV Xero will accept

Xero's own template

On the Import a statement screen Xero offers a template you can download. Its columns are:

ColumnRequiredNotes
DateYesOne format throughout, matching your organisation's region setting
AmountYesPositive for money in, negative for money out
PayeeNoWho paid or was paid; Xero uses it to suggest contacts
DescriptionNoThe bank's narrative
ReferenceNoUsed in duplicate checks and shown on the statement line
Cheque No.NoCheque number if any

You do not have to use the template headings. Xero lets you map your own column names on import and remembers the mapping per bank account. But the template removes a step, and if you export a Xero CSV from a converter it will normally already be in this layout. stmtai's Xero CSV export, for example, writes exactly these columns from a PDF, scanned or CSV statement, after checking that the rows add up to the printed opening and closing balances; see /convert/bank-statement-to-xero.

Signed amount or separate debit and credit columns

Xero accepts either. If your bank's CSV has Debit and Credit columns, map them as such and leave the Amount column unmapped. If it has one Amount column, check the sign convention. Some banks export money out as a positive number in a Debit column with no sign at all; if you paste that into a single Amount column without negating it, every payment imports as a receipt.

Dates: the one that bites

Xero reads dates according to the region your organisation is set to. A UK, Australian or New Zealand organisation expects day first (DD/MM/YYYY); a US organisation expects month first (MM/DD/YYYY). On the mapping screen Xero shows you the date format it has assumed and lets you change it, so look at it every time.

The trap is that a wrongly interpreted date often does not error. 03/04/2026 is a valid date in both orders. Import a US bank CSV into a UK organisation without changing the format and every transaction on or before the 12th of the month silently lands in the wrong month; the ones after the 12th fail because there is no 14th month. If you see a mix of errors and successes with dates, this is almost always why.

An unambiguous format, 2026-04-03, avoids the problem if your source lets you choose one. Excel likes to reformat dates when you save as CSV, so check the file in a text editor rather than trusting the spreadsheet view.

Other cleanup

  • Remove currency symbols and thousands separators from amounts. 1,250.00 must be 1250.00, or the comma splits the field.
  • Quote descriptions that contain commas, or the columns shift for that row.
  • Delete blank rows, subtotal rows and the running-balance column. Xero has no use for the balance column and it can confuse the mapping.
  • Save as UTF-8. Accented characters saved in another encoding come through as junk.
  • Keep files to a manageable size. Xero can reject very large files; splitting by month also makes it far easier to trace a total that does not match.

Importing step by step

  1. In Xero, go to Accounting, then Bank accounts.
  2. On the account tile choose Manage account, then Import a statement.
  3. Browse to the file and upload it.
  4. For CSV, assign each column on the mapping screen and confirm the date format. For OFX, QIF and QBO there is no mapping.
  5. Check the preview. Xero shows the first rows as it has read them, so this is where a swapped day and month or an inverted sign is visible.
  6. Import. The lines appear under Reconcile with a count of items to reconcile.

Before you touch the Reconcile tab, compare the statement balance Xero now shows for that period against the printed closing balance on the bank statement. If they differ, a line is missing, doubled or has the wrong sign, and it is much quicker to find now than after coding.

Duplicates

Xero compares incoming lines to existing statement lines on date, amount and reference and warns about likely duplicates during import. It is not perfect. If a description changed between the feed and your file, or the reference column is empty, repeats can get through.

If duplicates do land, do not reconcile them. On the Bank statements tab (under Manage account), select the offending lines and delete them; deleting an unreconciled statement line has no effect on your accounts. If you have already reconciled a duplicate, use Remove and Redo on the transaction, then delete the statement line.

To avoid the problem, keep import date ranges from overlapping the feed, and when you split a long period into monthly files, make sure each file starts the day after the previous one ends.

Statements you only have as PDF

Xero can read PDF statements directly for a set of supported banks, currently in the US and Canada, from the same Import a statement screen. If your bank is on that list, try it first.

For everything else, the PDF has to become CSV or OFX before Xero can use it. Options, in order of effort:

  • Copy the transaction table into a spreadsheet, fix the columns, save as CSV. Fine for a page or two, error-prone for a year of statements, and impossible with scanned PDFs.
  • Use Acrobat's export to spreadsheet. Works on text-based PDFs with a clean table; merges or splits columns on multi-line descriptions.
  • Use a converter that outputs Xero's CSV layout and checks the arithmetic. Whichever tool you use, the test that matters is whether the rows add up to the printed closing balance. See converting a PDF statement to Excel for what to check.

Once you have the CSV, the import is identical to the steps above.

Reconciling after import

Imported lines are only half the job. On the Reconcile tab each statement line needs one of:

  • Match, to an invoice, bill or existing transaction Xero has found or you search for.
  • Create, a new spend or receive money transaction with an account code and tax rate.
  • Transfer, when the other side is another bank account in Xero.
  • Discuss, to leave a note for whoever needs to answer a question about it.

Bank rules speed this up for recurring payees. Set them up on the first month you import and most routine lines in the remaining months will already be coded. Rules match on the statement line text, so write them against what you actually see after import, not what you expect the bank to have written.

When the period is reconciled, run the Bank Reconciliation Summary report and check that the statement balance and Xero balance agree. The bank reconciliation guide explains what to do when they do not.

Questions

Can I import a bank statement into Xero without setting up a bank feed?

Yes. Add the bank account in Xero without connecting a feed, then use Manage account and Import a statement whenever you have a file. Some small businesses run this way permanently, importing once a month from the bank download. Reconciliation works the same either way.

My imported transactions have the wrong sign. Do I need to delete and re-import?

Usually, yes. Delete the unreconciled statement lines from the Bank statements tab, fix the sign in the CSV (or map the Debit and Credit columns separately instead of a single Amount), and import again. Deleting unreconciled statement lines does not change any account balances.

Does Xero import the running balance from my bank CSV?

No. Xero calculates its own statement balance from the imported lines and the balance already in the account. Remove the balance column before import. Then compare the balance Xero shows after import against the printed closing balance on the statement to confirm nothing is missing.

Can I import several bank accounts from one file?

No. Each import goes to a single bank account in Xero, and each file should contain only that account. If your bank exports multiple accounts in one CSV, split it by account before importing. The column mapping is remembered per bank account, so the second account will need its own mapping the first time.

How do I import a QIF file into Xero?

The same way as OFX and CSV: Manage account, Import a statement, choose the .qif file. Xero reads QIF without a mapping step. QIF has no transaction IDs, so duplicate detection is weaker than with OFX; keep the date range from overlapping anything already imported.

Related guides

All guides · All banks and formats