How to Import Bank Data into Xero from a CSV
The fastest, least error-prone way to get a bank CSV into Xero is to convert it to an OFX file first, then upload that. Xero itself recommends OFX because it imports without any column mapping, date-format guessing, or debit/credit clean-up. Here is the full workflow.
Why convert to OFX instead of importing the CSV directly?
Xero accepts OFX, QFX, QIF, CSV and QuickBooks files for manual statement import, and its own help docs say to use OFX where possible. The reason is simple: a CSV is just a grid of text, so Xero has to interpret your columns, your date order, and how you signed debits versus credits. An OFX file is structured financial data, dates, amounts, descriptions and a unique ID per transaction are already tagged, so it imports cleanly with nothing to map.
If you have a CSV or Excel export from your bank, you do not need to hand-edit it into Xero's template. Drop it into the converter, get a valid .OFX back in seconds, and upload that instead. Everything runs in your browser, your statement is never sent anywhere.
Step 1: Convert your bank CSV or Excel file to OFX
- Download your transactions from online banking as CSV or Excel (XLSX/XLS). PDF statements will not import into Xero, so export the data format, not a printable statement.
- Open QBO Maker and drop the file into the tool.
- Map the columns once, typically Date, Description, and Amount (or separate Debit/Credit columns). The tool previews the parsed rows so you can confirm before exporting.
- Choose OFX as the output format and download. For Quicken you would pick QFX instead, and for QuickBooks Desktop a
.QBO, but Xero wants OFX.
Because the conversion happens client-side, there is no upload step and no file-size queue. Free covers a single file a full statement with unlimited transactions; Pro adds batch multi-file conversion and saved reusable templates per bank.
Step 2: Upload the OFX file into Xero
- In Xero, go to Accounting > Bank accounts.
- Find the account you want to import into, click the three-dot menu, and choose Import a statement.
- Under File to upload, drag in your
.OFXfile (or click Select file), then click Next. - Confirm the statement details and finish the import. Xero reads the dates, amounts and descriptions straight from the OFX, no field mapping screen.
- Head to Reconcile for that account and match the imported lines to bills, invoices and spend.
If you do import a raw CSV into Xero instead
You can still import a CSV directly, but Xero is strict about its format, which is exactly why OFX saves time. If you go the CSV route, make sure:
- Columns: use either Date, Description, Amount (3 columns) or Date, Description, Debit, Credit (4 columns). At minimum Date and Amount are required.
- One amount column: with the 3-column layout, income is positive and expenses are negative (
-30.00or(30.00)). If your bank splits debits and credits, you must consolidate them. - Date format must match your region:
DD/MM/YYYYfor the UK, Australia and New Zealand;MM/DD/YYYYfor the US. A mismatched order is the single most common cause of failed or wrongly-dated imports. - Row cap: a CSV cannot exceed 100,000 rows.
Converting to OFX sidesteps all four of these gotchas, since the format carries unambiguous dates and signed amounts internally.
Common import problems and how to avoid them
- Dates landing in the wrong month, almost always a DD/MM vs MM/DD mismatch in a CSV. OFX uses an unambiguous timestamp, so this disappears.
- Duplicate transactions on re-import, OFX assigns each line a unique ID (FITID), which helps Xero recognise lines it has already seen. When converting, avoid overlapping date ranges between exports.
- Expenses showing as income, caused by sign or debit/credit handling in a CSV. Preview the parsed amounts in the converter before exporting to confirm money out is negative.
- File rejected, confirm you exported real CSV/Excel data, not a PDF, and that the file actually contains transaction rows. You can sanity-check a generated OFX on our validator before uploading.
Quick comparison: OFX vs CSV for Xero
- OFX, recommended by Xero, no column mapping, unambiguous dates, built-in duplicate protection. Best for clean, repeatable monthly imports.
- CSV, works, but you own the formatting: correct columns, regional date order, single signed amount column. Fine for one-offs if your export already matches Xero's template.
For most bookkeepers doing monthly reconciliations, converting once and uploading OFX is faster and far less fiddly. Convert your statement now and import a clean file into Xero.
Frequently asked questions
Does Xero accept OFX files?
Yes. Xero supports OFX, QFX, QIF, CSV and QuickBooks formats for manual bank statement import, and recommends OFX where possible because it imports without any column mapping or reformatting.
Can I import a PDF bank statement into Xero?
No. Xero needs structured data, not a printed PDF. Export your transactions as CSV or Excel from online banking, then convert them to OFX and upload that.
Why are my dates wrong after a Xero CSV import?
Your CSV date order does not match your Xero region. Xero expects DD/MM/YYYY for the UK, Australia and New Zealand, and MM/DD/YYYY for the US. Converting to OFX avoids this because the format stores dates unambiguously.
Will importing the same file twice create duplicates in Xero?
OFX files include a unique ID per transaction, which helps Xero recognise lines it has already imported. To stay safe, avoid exporting overlapping date ranges across separate files.
Is my bank data uploaded anywhere during conversion?
No. The conversion runs entirely in your browser. Your CSV or Excel file is parsed and turned into an OFX locally, nothing is sent to a server.