Import Bank Statement into Xero: CSV, OFX and Reconciling
Updated
To import a bank statement into Xero, convert the statement into a CSV or OFX file, open the bank account in Xero and use its import option, then reconcile the new statement lines. The import itself takes a minute; the real work is giving Xero clean columns and making sure you don’t load the same transactions twice. Here’s how to get each part right.
Why import manually?
Bank feeds are the usual way transactions reach Xero, but a manual import helps when a feed isn’t available for your bank, when you need history from before the feed started, when a feed has a gap, or when a client hands you PDF statements. Xero’s import works from data files, so the first step is turning the PDF into one.
Step 1: Convert your PDF statement
Open the free bank statement converter, add the PDF and review the preview. The converter re-adds the running balance and flags any row that doesn’t reconcile, so you can fix misreads before they reach Xero. Then export:
- CSV if you want to review or adjust the data in a spreadsheet first.
- OFX if you’d rather skip column mapping entirely.
Your statement is processed in your browser and never uploaded. The bank statement to Xero page summarises the best settings.
Step 2: Prepare a CSV that Xero understands
Xero’s own statement CSV template is built around a single signed amount column. The fields are:
| Field | Required? | Notes |
|---|---|---|
| Date | Yes | One consistent format throughout |
| Amount | Yes | Money in positive, money out negative |
| Payee | No | Who paid you or who you paid |
| Description | No | Free text from the statement |
| Reference | No | Invoice or transaction reference |
| Cheque (check) number | No | Only if relevant |
The converter’s Amount column already uses the money-in-positive, money-out-negative convention, so it maps straight to Xero’s Amount field. Its Description column can go into Description or Payee.
Before importing:
- Keep one header row and remove anything above it.
- Delete the Debit, Credit and Balance columns, or plan to leave them unassigned during import.
- Remove opening balance, closing balance and subtotal rows.
- Use plain numbers (1200.00, not £1,200.00).
- Save the file as CSV.
On dates: Xero needs to read your dates the way you intend. If 03/10/2026 means 3 October, make sure that’s how Xero will interpret it for your organisation’s region. The converter auto-detects DD/MM or MM/DD and lets you choose the output format, so export in the format your Xero organisation uses.
Using OFX instead
An OFX file describes each transaction in a standard structure: date, amount, description and usually a unique transaction ID. Xero can read it without any column mapping, and there’s no question about which sign means money out. The trade-off is that OFX isn’t easy to edit, so make any corrections in the converter’s preview before exporting. Our guide to bank statement file formats compares OFX and CSV in more detail.
Step 3: Import the statement in Xero
Menu names can vary by version and region, but the steps are broadly:
- Go to the Bank accounts area (usually under the Accounting menu).
- Find the account, open its Manage account menu and choose Import a statement.
- Browse to your CSV or OFX file and start the import.
- For CSV: Xero shows your columns and asks you to assign each one to a field. Assign Date and Amount at minimum, plus Description or Payee. If the first row holds column headings, tell Xero not to import it.
- Review the summary of statement lines and complete the import.
If your screens look different, Xero Central, Xero’s help site, has current instructions.
Step 4: Avoid duplicates
Duplicates are the most common headache with manual imports, and they make reconciling confusing.
- Check what’s already there. Look at the account’s existing statement lines and note the date of the most recent one. Only import transactions after that date.
- Be careful with feed accounts. If the account also has a live bank feed, import only the period the feed doesn’t cover. A feed and a file can describe the same transaction differently, so automatic duplicate checks may not catch the overlap.
- Trim before you import. Delete out-of-range rows in the converter’s preview, or remove them from the CSV.
- Check combined files. If you merged several statements into one file, confirm its first and last dates before importing.
- Fix mistakes early. Xero generally lets you remove an imported statement from the account’s statement view as long as its lines haven’t been reconciled. Check Xero Central for the exact steps.
Xero may warn you about lines it thinks you’ve already imported, but don’t rely on that alone.
Step 5: Reconcile after import
Imported lines appear on the account’s Reconcile tab, waiting to be matched.
- Accept good matches. Where Xero suggests a matching invoice, bill or transaction, check the amount and date, then confirm.
- Create transactions for the rest. For bank charges, interest or one-off payments, create a spend or receive money transaction against the right account.
- Use bank rules for repeats. If the same supplier appears every month, a bank rule can fill in the coding for you.
- Record transfers properly. Money moving between your own accounts is a transfer, not income or an expense.
- Check the balance. When you’re done, compare Xero’s statement balance with the closing balance printed on the PDF. If they don’t agree, a line is missing, doubled or has the wrong sign.
Prefer to check things in a spreadsheet first? Our guide on how to reconcile a bank statement in Excel has formulas for matching statement lines against a ledger.
Common problems
| Problem | Likely cause | Fix |
|---|---|---|
| Day and month swapped | Date format doesn’t match the organisation’s settings | Re-export in the right format |
| Every amount has the wrong sign | Debit column used as Amount, or signs reversed | Use the signed Amount column, or multiply by -1 |
| Import fails or shows no lines | Extra rows above the header, or file saved as .xlsx | Save a clean CSV with one header row |
| Transactions appear twice | Overlap with a feed or an earlier import | Remove the duplicate statement and re-import the right range |
| Statement balance doesn’t match | Missed or misread transaction | Recheck the flagged rows in the converter |
Key takeaways
- Convert the PDF to CSV or OFX first; Xero’s import works with data files, not PDFs.
- For CSV, Date and a single signed Amount are the essentials; add Description or Payee for easier coding.
- Match the date format to your Xero organisation and keep exactly one header row.
- Import only date ranges that aren’t already in the account, especially where a bank feed exists.
- Finish by reconciling and comparing Xero’s statement balance with the PDF’s closing balance.
Also working in QuickBooks? See our guide to importing a bank statement into QuickBooks.
Frequently asked questions
What CSV format does Xero need for a bank statement import?
At minimum, a date and a single signed amount for each transaction, with money in as positive and money out as negative. Payee, description and reference columns are optional but make reconciling easier.
Can I import a PDF bank statement into Xero?
Xero's statement import works with data files such as CSV and OFX rather than PDFs. Convert the PDF to one of those formats first, then import the resulting file.
How do I stop Xero importing duplicate transactions?
Only import date ranges that aren't already in the account, and take extra care with accounts that also have a bank feed. If a duplicate import slips through, you can usually remove the imported statement before its lines are reconciled.
Is OFX or CSV better for Xero?
OFX needs no column mapping and records amounts in a standard way, so it's quicker. CSV lets you review and edit the data in a spreadsheet before you import it.