How to import a PDF bank statement into Xero
Xero doesn't import PDF statements. It imports statement files: CSV, OFX, QIF and QBO, according to Xero's documentation. If the only record you have is a PDF, you'll need to turn it into one of those formats first.
This guide explains the options, the CSV layout Xero expects, the import steps, and what to check before you import.
Start with the bank feed or bank download
If the account supports a Xero bank feed, that's the most reliable route for ongoing transactions. If your online banking lets you download CSV or OFX for the dates you need, use that next.
Converting a PDF is the fallback for the gaps: periods before the feed started, closed accounts, statements sent by clients, or banks that don't provide downloads.
Rowsafe reads your PDF in the browser and checks every row against the running balance.
Open the converter
Choosing a format
| Format | Pros | Cons |
|---|---|---|
| OFX | Structured, no column mapping, carries transaction IDs | Needs a converter or a bank download |
| CSV | Easy to inspect and fix in a spreadsheet | Must match Xero's template; you map columns on import |
| QIF / QBO | Accepted by Xero | Less common to produce from a PDF |
For a one-off historical import, CSV is easiest to inspect. For regular work, OFX avoids the mapping step.
The Xero CSV layout
Xero provides a CSV template you can download from the import screen. Its main columns are:
| Column | Required | Notes |
|---|---|---|
| Date | Yes | One consistent format, matching your Xero region settings |
| Amount | Yes | Signed: money out is negative, money in is positive |
| Payee | Recommended | Helps bank rules and matching |
| Description | Optional | Extra detail from the statement line |
| Reference | Optional | Cheque numbers, invoice references |
The template may include other columns (such as a cheque number or analysis code). You can leave unused ones blank. Download the current template from Xero rather than relying on a copy from an older guide.
A few rows in the expected shape:
| Date | Amount | Payee | Description | Reference |
|---|---|---|---|---|
| 02/10/2026 | -86.40 | Office Supplies Co | Card payment | |
| 03/10/2026 | 1500.00 | Client Ltd | Transfer | INV-1042 |
Formatting rules:
- One header row, transactions only. No opening balance line, no subtotals, no repeated page headers.
- A single Amount column with signs. If your statement has separate Debit and Credit columns, combine them:
=Credit - Debit. - No currency symbols or thousands separators.
- Dates in one format. Xero reads dates according to your organisation's region. A UK organisation expects day-first; a US one expects month-first. Mixing them is the most common cause of transactions landing in the wrong month.
- No line breaks inside cells. Merge multi-line descriptions first.
For a step-by-step on producing a clean CSV from a PDF by hand, see bank statement to CSV.
Import steps in Xero
Xero updates its navigation occasionally. The general path has been stable, but check Xero Central for the current wording.
- Go to Accounting → Bank accounts.
- Find the account and open Manage account (in the account's options).
- Choose Import a statement.
- Select your CSV, OFX, QIF or QBO file and continue.
- For a CSV, map each column to a Xero field and confirm the date format. Xero lets you save the mapping for next time.
- Review the summary and complete the import.
The transactions then appear under the account's Reconcile tab, ready to match against invoices, bills and bank rules. Importing doesn't post anything to the ledger on its own.
Check before you import
Deleting a bad import in Xero is possible but tedious, and statement lines that have already been reconciled need unreconciling first. Check the file first.
- Row count matches the number of transactions on the statement.
- Totals: opening balance + money in − money out equals the closing balance.
- Signs: a payment out is negative.
- Date range matches the statement period, with no dates swapped by day/month confusion. A quick sort by date usually exposes these.
- No overlap with dates already imported or brought in by a feed. Xero flags some duplicates, but not reliably enough to skip this check.
If the statement prints a running balance, recomputing it row by row tells you exactly where any discrepancy starts. The reconciliation guide shows how.
After the import, compare Xero's statement balance for the account with the closing balance on the PDF. They should agree.
Where Rowsafe helps
Rowsafe converts text-based PDF statements into Xero-ready files in your browser.
- No upload. The PDF is processed locally by JavaScript on your computer. You can check developer tools to confirm the file isn't transmitted.
- Every row checked. Rowsafe recomputes the running balance and flags any row that doesn't add up, before you export.
- Xero CSV and OFX. The Xero CSV export uses a signed Amount column with consistent dates; OFX is also available.
- Column fixes in a preview grid when a layout is unusual.
Xero CSV and OFX exports are part of Pro ($12/month or $96/year), along with unlimited statements and batch conversion. The free plan converts 3 statements a day with standard CSV export and balance verification, which you can reshape for Xero using the steps above. See pricing.
Limitations: text-based PDFs only. Scanned or photographed statements are not supported yet. Rowsafe doesn't connect to Xero; you download the file and import it yourself.
FAQ
Why are my imported transactions in the wrong month? Almost always day/month order. Check your organisation's regional settings and make sure every date in the file uses that order.
Xero rejected my CSV. What should I check first?
Extra rows above the header, text in the Amount column (currency symbols, CR/DR, parentheses), and blank required fields.
Can I import a credit card statement into Xero? Yes, into a credit card account set up in Xero. Check the sign of charges versus payments before importing; see the credit card statement guide.
Is OFX better than CSV for Xero? OFX avoids mapping and carries transaction IDs. CSV is easier to inspect. Both work.
Rowsafe reads your PDF in the browser and checks every row against the running balance.
Open the converter