Import Bank Statements into Xero: CSV and OFX
Manual imports help fill a historical gap or replace a missing bank feed. Start by establishing which account and dates are missing; importing a whole statement without checking existing lines can create overlap.
Xero's current US documentation lists OFX, QFX, QIF, PDF, CSV, and QuickBooks formats. It recommends a bank-provided OFX file where available.[2] Do not assume every PDF requires an external converter. Check the PDF import option in your Xero account first; this guide focuses on a reviewable CSV workflow and the bank-native OFX alternative.
Establish the source and account
Download the statement and any transaction export for the same period. Keep each bank or card account separate. Confirm the destination account's name, currency, and identifying details before importing. Do not create another account merely because an import preview is unfamiliar.
For native OFX, retain the original file and use the relevant account's statement-import action. Compare the resulting transaction dates and signs with the statement before proceeding to reconciliation. A structured format does not correct a missing source period.
For PDF-only records, use the native PDF route if appropriate, or extract a CSV and inspect it in a spreadsheet. Open the converter if you need to review an external extraction option; conversion is separate from your approval of the import.
Prepare a CSV Xero can map
Xero requires Date and Amount for statement lines; optional payee, description, and reference detail can make review easier. Money received is positive and money spent is negative in the same Amount column.[1] A fixed seven-column order is not required: review the column assignments in the importer.
Use the template downloaded from your account as a starting point. Retain an untouched working copy with source references. In the import copy, remove statement-summary rows and account-number or balance columns, rather than importing them as activity. Include one transaction per row.
Worked example: illustrative September import
Assume a checking account receives 900.00 on September 2 and pays 42.50 on September 3:
Date,Amount,Payee,Description,Reference
09/02/2026,900.00,Example Client,Invoice payment,000731
09/03/2026,-42.50,Example Store,Office supplies,000732
Select MM/DD/YYYY for this example. The net movement is 857.50; an opening balance of 1,000.00 implies a closing balance of 1,857.50. These numbers are illustrative, not evidence of a successful software import.
If your working data has separate positive deposit and withdrawal columns, derive Amount as deposits minus withdrawals, then verify representative rows. Use decimal points in the import amounts. Preserve references as text during spreadsheet editing.
Import and inspect the preview
From Accounting → Bank accounts, open the relevant account menu and select Import a Statement. Choose the file, assign CSV columns if prompted, confirm the date format, and review the transactions before completing the import.[1]
Use that preview as a stop point. Check a known deposit, a known withdrawal, an ambiguous date, and the first and last transactions. Resolve warnings and errors rather than repeatedly uploading the same uncorrected file. Clear rows you do not intend to import.
Reconcile and handle overlap
Importing statement lines is not the same as reconciling them to invoices, bills, transfers, or other account transactions. Match existing records where appropriate; do not create another payment simply because a statement line has arrived.
Keep a small import log recording the account, source filename, date range, row count, and completion date. After a feed starts or reconnects, compare its coverage with manual imports. Review duplicate candidates using date, amount, description, and reference; same-value transactions are not automatically duplicates.
For extraction cleanup, see bank statement to CSV. If choosing an accounting file type, read OFX vs QBO vs IIF before exporting.
Official sources
[1] Xero Central: Import a bank statement in CSV format.
[2] Xero Central: About manually importing bank transactions (US).

