How to import a PDF bank statement into Xero
When you connect a bank feed, Xero usually only receives the last 30 to 90 days. Everything before that — and every account that never connects — has to come in as a statement file. Xero imports CSV, not PDF, so here is how to turn the PDF into a CSV Xero accepts and import it without duplicates.
When you need this
- Setting up a new Xero organisation and the feed doesn't go back to the start of the financial year.
- Closed accounts, or banks and cards that don't offer a feed in your country.
- Clients who send PDF statements instead of exports.
What Xero needs in the file
- One header row, with no title or summary lines above it.
- A date and an amount on every row. Description is optional but makes matching much easier.
- One signed amount column: money out negative (-150.00), money in positive (250.00).
- A period as the decimal separator and no currency symbols.
- UTF-8 encoding, so names with accents import correctly.
Export the right CSV
Export each statement on its own for this. The combined multi-file export adds extra columns (source file, bank, review status) that accounting imports don't expect.
- Convert and review the statement until the balance check passes.
- In Export, choose CSV and the Amount (signed) layout.
- Turn off Balance and Source page, keep the comma delimiter, and download.
Import it into Xero
- Go to Accounting › Bank accounts and find the account the statement belongs to.
- Open the account's menu and choose Import a statement.
- Select the CSV. If you can't see it, switch the file filter to All files.
- Map the columns: Date → Transaction date, Amount → Transaction amount, Description → Description (or Payee).
- Confirm the date format when Xero asks. Our files use YYYY-MM-DD.
- Import, then reconcile the lines as usual.
Avoid duplicates with your bank feed
Find the date of the first transaction your bank feed brought in. Import statements only up to the day before. If a statement overlaps that date, untick or delete the overlapping lines before you reconcile. Import long histories in date order, one statement per file, so problems are easy to trace.
Fixing common Xero import errors
| Message | Likely cause | Fix |
|---|---|---|
| The file does not contain valid statement data | Date or Amount not mapped, or blank rows at the end | Map both columns. Our export has no blank or total rows. |
| The date ... is not valid | The date format chosen doesn't match the file | Choose the YYYY-MM-DD format when asked. |
| There was a problem importing the file | The file was re-saved in a different encoding or is still open | Close the file and import the original download, or re-save as CSV UTF-8. |
| Payments showing as receipts | Two amount columns combined the wrong way | Use the signed Amount layout so money out is already negative. |
Try it with your own statement
Upload a text-based PDF — the first 5 processed pages are free.