How to Import Bank Statements into Xero from a PDF (2026)
How to Import Bank Statements into Xero from a PDF (2026)
If you need to import bank statements into Xero from a PDF, you have probably already hit the wall: Xero simply will not accept a PDF file. Your bank emails or downloads a tidy-looking PDF statement, but when you open the Xero statement import screen, the only formats it offers are CSV, OFX, QIF, and a few bank-specific variants. The data you need is trapped inside a document Xero refuses to read.
This guide explains why that happens, which file formats Xero actually accepts for a bank statement to Xero import, and what the columns inside those files must contain. Then it walks through the two practical paths forward: the slow manual route of retyping or wrangling spreadsheets, and the faster route of converting any bank's PDF into a clean, Xero-ready CSV in seconds. By the end you will be able to reconcile transactions in Xero from a statement that started life as a PDF.
Why Xero Won't Accept a PDF Bank Statement
Xero reconciles your accounts by matching individual transaction lines against the invoices, bills, and payments already in your ledger. To do that, it needs structured data: a row per transaction, with clearly labelled columns for the date, the description, and the amount. A PDF is a layout format. It is designed to look the same on every screen and printer, not to hand over machine-readable rows and columns.
When you open a bank statement PDF, you see a table. Xero does not. It sees a stream of positioned text and graphics with no reliable column boundaries. Two banks can produce visually identical statements while storing the underlying text in completely different orders. That is why Xero asks for a CSV, OFX, or QIF file instead. These formats carry the transaction data as explicit fields, so Xero can map each value to the right place without guessing.
The practical consequence: before any PDF statement can enter Xero, something has to convert the document into one of those structured formats. The question is what does the converting, and how much manual cleanup it leaves behind.
File Formats Xero Accepts for Bank Statement Imports
Xero supports several formats for importing a bank statement. Each has trade-offs, but CSV is the most universal because almost any tool can produce it.
| Format | What it is | Best when |
|---|---|---|
| CSV | Comma-separated values; plain columns of data | Your bank only provides PDF or you generate the file yourself |
| OFX / QFX | Open Financial Exchange; a standard banking data format | Your bank offers a direct OFX download |
| QIF | Quicken Interchange Format; an older transaction format | Legacy exports or specific bank tools |
| Direct bank feed | Automated daily connection from your bank to Xero | Your bank is supported and you want hands-off reconciliation |
A direct bank feed is the ideal end state, but feeds are not available for every bank, every account type, or every region, and historical periods before the feed was connected still need a manual import. That is exactly the gap a PDF-to-CSV conversion fills: backfilling closed periods, importing from banks without a feed, and handling accounts the feed never covered.
What a Xero-ready CSV must contain
Xero's CSV statement import expects a small, predictable set of columns. At minimum you need:
- Date — the transaction date, in a consistent format Xero can parse.
- Amount — either a single signed column (negative for money out) or two separate columns for debit and credit.
- Payee or Description — what the transaction was, so you can recognise and code it.
- Reference (optional) — a cheque number, payment reference, or transaction ID.
A running Balance column is useful for your own checks even though Xero does not require it. The key point is consistency: every row must follow the same structure, dates must use one format throughout, and amounts must not mix currency symbols or stray text into the number field. Get any of that wrong and the import either fails or silently misallocates values.
The Manual Route, and Why It Hurts
The traditional way to get a PDF statement into Xero is to rebuild it by hand. People try a few approaches, and each has a catch.
Retyping every line into a spreadsheet is accurate if you are careful, but it is slow and error-prone across hundreds of transactions. Copy-pasting from the PDF usually collapses columns into a single mangled blob, splits amounts across the wrong rows, or drops the minus signs that distinguish money out from money in. Generic PDF-to-Excel converters handle clean, single-column layouts but fall apart on multi-line descriptions, statements with carried-forward balances, or any bank that prints debits and credits in separate columns.
Then comes the cleanup: normalising date formats, stripping thousands separators, splitting a combined description into payee and reference, and lining up debit and credit columns so the signs are correct. For an accountant processing several clients a month, this is hours of unbillable, joyless work, and a single misplaced decimal can throw a reconciliation off until someone hunts it down. This is the same friction that drives much of the wider push toward document automation for accountants.
How ExtractBee Converts a PDF Bank Statement to a Xero-Ready CSV
ExtractBee reads the PDF the way a person does and outputs the structured rows Xero needs. There are no templates to build and no per-bank setup. The AI reads any layout on the first try, whether the statement comes from a high-street bank, a neobank, or a business account in another country.
Under the hood, scanned or photographed statements pass through OCR first, then Google Gemini 2.5 Flash extracts each transaction as a row with date, description, amount, and running balance. Every field is assigned a confidence score, and any value the model is unsure about, a smudged amount or an ambiguous date, is flagged for review in the Human Review interface before you export. That confidence layer is what separates a reliable conversion from a hopeful one, and you can read more about how it works in our deep dive on bank statement data extraction.
The output is a clean CSV or Excel file with one row per transaction and consistent date, description, amount, and balance columns: precisely the shape Xero's statement import expects. You review the flagged fields, export, and import.
A note on the native Xero integration
To be precise about what connects where: ExtractBee's native Xero integration pushes extracted invoices and bills straight into Xero. It does not sync bank-statement lines. Bank statements in Xero are imported as CSV, OFX, or QIF files through the statement import screen, so ExtractBee's role with statements is to produce that Xero-ready CSV for you to import. If your goal is getting supplier and sales documents into the ledger automatically, see extract invoice data to QuickBooks and Xero. For bank statements, follow the CSV path below.
Step-by-Step: From PDF to Reconciled in Xero
Part 1 — Convert the PDF with ExtractBee
- Sign in to ExtractBee and upload your bank statement PDF. Scanned and photographed statements are fine; they pass through OCR automatically.
- Let the AI extract the transactions. Each row captures the date, description, amount, and running balance.
- Open the Human Review view and check any fields flagged with low confidence. Correct anything the model was unsure about.
- Export the result as a CSV (or Excel) file. This is your Xero-ready statement.
Part 2 — Import the CSV into Xero
- In Xero, go to Accounting → Bank accounts (or Business → Bank accounts, depending on your menu layout).
- Select the account that matches the statement, then choose Manage Account → Import a Statement.
- Upload the CSV you exported from ExtractBee.
- On the mapping screen, match your columns to Xero's fields: Date to Date, Amount to Amount (or your debit and credit columns), and Description to Payee or Reference. Confirm the date format matches your file.
- Review the preview, complete the import, then head to Reconcile to start matching the imported lines against your existing transactions.
If a column does not map cleanly, return to ExtractBee, adjust the export, and re-import. Because the CSV is consistent row to row, the mapping you set once will hold for every future statement from the same bank.
Manual Conversion vs ExtractBee
| Task | Manual / generic converter | ExtractBee |
|---|---|---|
| Reading any bank layout | Breaks on unusual layouts | Reads any layout, no templates |
| Scanned or photo statements | Often unusable | OCR handled automatically |
| Date and amount normalisation | Done by hand | Consistent columns on export |
| Debit / credit sign handling | Easy to get wrong | Captured per transaction |
| Catching errors | You hope you spot them | Low-confidence fields flagged for review |
| Time per statement | Minutes to hours | Seconds plus a quick review |
Frequently Asked Questions
Can I import a PDF bank statement directly into Xero? No. Xero does not accept PDF files for bank statement imports. It requires a structured format such as CSV, OFX, or QIF. You first convert the PDF into one of those formats, then import that file. ExtractBee produces a Xero-ready CSV from any bank's PDF statement.
What columns does Xero need in a bank statement CSV? At minimum: a Date column, an Amount column (either a single signed value or separate debit and credit columns), and a Payee or Description column. A Reference column is optional, and a Balance column is useful for your own checks. ExtractBee exports these columns in a consistent structure.
Does ExtractBee sync bank statements straight into Xero? Not for bank statements. ExtractBee's native Xero integration pushes extracted invoices and bills into Xero. For bank statements, ExtractBee creates the Xero-ready CSV that you import through Xero's statement import screen, because that is how Xero handles statement lines.
Will it work with scanned or photographed statements? Yes. Scanned and photographed statements pass through Tesseract OCR before extraction, so a phone photo or a scanned paper statement can still become a clean CSV. Always review the confidence-flagged fields, since image quality affects accuracy.
How accurate is the extraction? Every extracted field carries a confidence score. Values the AI is unsure about are flagged for human review before you export, so you catch errors at the source rather than discovering them during reconciliation. Google Gemini 2.5 Flash handles extraction, with Claude Sonnet 4.6 as an automatic fallback.
Can I try it before paying? Yes. The Free plan includes 20 pages with no credit card required, which is enough to convert a statement or two and check the output against Xero. Paid plans start at €35 per month for 300 pages.
Getting Started
- Create a free ExtractBee account: 20 pages free, no credit card required.
- Upload a bank statement PDF, including scanned or photographed ones.
- Let the AI extract every transaction with a date, description, amount, and balance.
- Review the fields flagged for low confidence, then export a Xero-ready CSV or Excel file.
- In Xero, go to Accounting → Bank accounts → Manage Account → Import a Statement, upload the CSV, map the columns, and reconcile.
Ready to stop retyping statements? Start free at extractbee.com/signup — 20 pages free, no credit card.
Last updated: June 2026. ExtractBee is operated by MB Dokigo.