Back to Blog

How to Import a Bank Statement into Xero (CSV, OFX, and Manual Upload)

Step-by-step guide to importing bank statements into Xero. Covers CSV import, OFX/QFX file upload, direct bank feed setup, and how to fix common import errors like duplicate transactions and mismatched dates.

8 min read

Importing a bank statement into Xero should be straightforward, but the reality depends on your bank and the format of your statement. Xero supports several import methods—CSV, OFX, QFX, and direct bank feeds—and each has its own requirements, quirks, and failure modes. This guide walks through every method so you can get your transactions into Xero with the least manual work.

Why You Need to Import Bank Statements into Xero

Xero's bank reconciliation workflow depends on having your transaction data inside the platform. Without it, you cannot match payments to invoices, track cash flow accurately, or produce reliable reports. For businesses that use Xero as their primary accounting system, importing bank statements is a routine task—often monthly or weekly.

The need to import a bank statement into Xero arises most often in three scenarios: your bank does not support Xero's direct bank feed, you are setting up a new organization and need to import historical transactions, or you are switching banks and need to backfill data for the period before the feed was active.

Method 1: Direct Bank Feed (Best Option When Available)

Xero supports direct bank feeds from hundreds of banks and credit unions. A direct feed automatically imports transactions each day, eliminating manual uploads entirely. To set up a bank feed, go to Accounting → Bank Accounts in Xero, click Add Bank Account, search for your institution, and follow the authentication steps. Once active, the feed imports new transactions daily without any further action.

The limitation is coverage. Not every bank supports Xero direct feeds, and even for supported banks, the feed may only cover certain account types. Business checking accounts are usually supported; some savings accounts or specialized accounts are not. If your bank appears in Xero's institution list but the feed setup fails, check whether your account type is eligible.

Method 2: Import Bank Statement via CSV

CSV import is the most flexible way to import a bank statement into Xero. Xero accepts a three-column or four-column CSV: Date, Description, Amount (three-column), or Date, Description, Debit, Credit (four-column). The file must have no header row, or Xero must be told to skip the first row during the import wizard.

To import a CSV bank statement into Xero: go to Accounting → Bank Accounts, click the account you want to import into, then click Import a Statement. Upload your CSV file. The import wizard lets you map columns if your file uses a different layout. After mapping, Xero shows a preview of the transactions. Review the dates and amounts before confirming the import.

Common CSV import errors in Xero: dates in the wrong format (Xero expects DD/MM/YYYY or MM/DD/YYYY depending on your region settings—check under Settings → General Settings → Date Format), amounts using a comma as a decimal separator instead of a period, or extra columns that confuse the column mapper. Strip the file down to Date, Description, Amount before importing if you are having trouble.

If your bank statement is a PDF rather than a CSV, CleanStmt converts it to a clean CSV formatted for Xero import—correct date format, no merged cells, amounts as numbers.

Convert Bank Statement to CSV →

Method 3: Import Bank Statement via OFX or QFX

OFX (Open Financial Exchange) and QFX (Quicken Financial Exchange) are structured file formats that include more metadata than CSV—account numbers, transaction IDs, and balance information. Xero accepts both formats. Some banks allow you to export your statement as OFX or QFX directly from your online banking portal.

The import process is identical to CSV: Accounting → Bank Accounts → Import a Statement, then upload the OFX or QFX file. Xero reads the file structure automatically, so there is no column mapping step. Transaction IDs in OFX files also help Xero detect and prevent duplicate imports.

If your bank provides QFX downloads, this is generally more reliable than CSV for Xero imports because the format is unambiguous and the file includes account-level metadata that Xero can use to validate the import.

How to Convert a PDF Bank Statement for Xero Import

Most bank statements arrive as PDF files, not CSV or OFX. To import a PDF bank statement into Xero, you first need to convert it to a format Xero accepts. The conversion steps are: upload the PDF to a bank statement converter, extract the transaction data, and download a CSV formatted for Xero.

  1. 1Download your bank statement PDF from your online banking portal. Most banks keep 12–24 months of statements available.
  2. 2Upload the PDF to CleanStmt. The AI extracts each transaction row—date, description, and amount—into structured columns. Scanned statements are handled via OCR.
  3. 3Download the CSV export. The file uses the date format and column structure that Xero expects.
  4. 4In Xero, go to Accounting → Bank Accounts, select the account, click Import a Statement, and upload the CSV.
  5. 5Review the transaction preview in Xero. Verify dates and amounts on a few rows before confirming the import.

Fixing Common Xero Import Errors

Duplicate transactions are the most common problem when you import bank statements into Xero manually. If you import overlapping date ranges, Xero will import the same transactions twice. To avoid this, always check the date range of your most recent import before uploading a new file. Xero shows the date of the last imported transaction on the bank account screen.

  • Date format mismatch: If Xero imports all transactions with the wrong year, your regional date format setting does not match the CSV file. Go to Settings → General Settings and change the date format, then re-import.
  • Amounts imported as zero: This usually means amounts in the CSV are text strings rather than numbers, often because they include currency symbols or thousand-separator commas. Strip these before importing.
  • Transactions out of order: Xero re-sorts by date after import, so import order does not matter—but if dates are wrong, the statement history will appear scrambled.
  • Import fails entirely: Check that the file has no merged cells, no subtotal rows, and no blank rows between transactions. The CSV should contain only transaction rows.

Importing Historical Bank Statements into Xero

Setting up a new Xero organization often requires importing historical bank statements to establish opening balances and reconcile the first months of activity. Xero allows imports up to any date, including dates before your organization was created. For historical imports, it is worth converting all your bank statement PDFs at once and importing them in chronological batches rather than one file at a time.

If you are importing more than 12 months of transactions, check with your accountant about whether to import all transactions or set an opening balance and import only the current year. Importing several years of historical transactions can create a large backlog of unreconciled items that takes significant time to clear.

Frequently Asked Questions

Can Xero import PDF bank statements directly?

No. Xero does not accept PDF files for bank statement import. You must convert the PDF to CSV, OFX, or QFX first. An AI-powered bank statement converter like CleanStmt handles the conversion automatically and outputs a file formatted for Xero.

What CSV format does Xero require for bank statement import?

Xero accepts a three-column format (Date, Description, Amount) or a four-column format (Date, Description, Debit, Credit). Dates should match your Xero regional date format. Amounts should be plain numbers without currency symbols. Positive amounts are credits (money in); negative amounts are debits (money out) in the three-column format.

How do I avoid duplicate transactions when importing into Xero?

Check the date of the last transaction in your Xero bank account before uploading a new import file. Start your new import file one day after that date. If duplicates do slip through, you can delete unreconciled imported transactions from the bank account statement view in Xero.

Does Xero support direct import from all banks?

No. Xero's direct bank feed list covers hundreds of institutions but not all banks. Smaller regional banks, credit unions, and international banks are less likely to have a direct feed. For banks not on the list, CSV or OFX import is the standard alternative.