To convert a PDF statement for Xero, turn the PDF into a CSV that matches Xero's import layout, confirm the totals reconcile, then load it through Import a Statement on the right bank account. Xero won't read a PDF directly — its import tool takes CSV, OFX or QIF, and your rows come in as reconcilable bank statement lines. This is a file import you do yourself, not a live bank-feed API push. Get the columns and the date format right, check that every transaction ties to the running balance, and the import is clean the first time.
That last part is the bit most people skip. Converting a PDF is easy. Knowing the converted file is *complete* — that nothing was dropped at a page break or misread by a column off — is the part that actually protects your books.
What Xero needs in the CSV
Xero doesn't ask for much, but it's exact about what it asks for. When you run Import a Statement, it reads a CSV and lets you map your columns to its fields. The fields it works with are:
- Date — the transaction date.
- Amount — money in or out, as a single signed number; or
- Payee — who the money went to or came from.
- Description — what the transaction was.
- Reference — optional, for a cheque number or transaction ref.
At a minimum you need a Date, an Amount, and a Payee or Description. Reference is nice to have and safe to leave out. The whole job of converting a PDF for Xero is producing a file with those columns filled correctly.
Two decisions trip people up more than anything else.
The date format. Xero asks you, on the import screen, which format the file uses — DD/MM/YYYY, MM/DD/YYYY, and so on. It doesn't guess. If your statement reads 03/04/2024 and you're in the UK, that's 3 April; tell Xero MM/DD by mistake and it becomes 4 March, shifting your whole period. Pick the format your statement actually prints.
Signed amount versus separate debit and credit. Xero takes either one Amount column — money out as a negative, money in as a positive — or two separate columns, one debit and one credit. Both import fine. What you mustn't do is mix the two approaches in one file, or map a money-out figure as a positive amount, which quietly inflates your balance.
Column | What Xero expects | Where it goes wrong |
|---|---|---|
Date | A real date in the format you tell Xero | Wrong format chosen at import → dates shift or reject |
Amount | One signed number, or split debit/credit | Currency symbols left in; signs reversed; the two styles mixed |
Payee | Who paid or was paid | Left blank, so lines are hard to match later |
Description | What the transaction was | Merged with Payee, or cut off from a wrapped PDF line |
Reference | Cheque or transaction ref (optional) | Useful for matching; fine to omit |
Convert any bank's PDF to a Xero-ready CSV
The process is the same whether the statement came from Barclays, HSBC, Monzo or a bank in another country. The labels on the page change; the steps don't.
- Open the PDF in Export Bank Statement. Text-based downloads work, and so do scanned or photographed statements — scans go through OCR to read the text before anything else happens.
- Let it extract every line. It pulls the date, description, money out, money in and the running balance for each transaction, and carries blank-date rows down to the correct day where a bank prints the date only once.
- Read the reconciliation result. It recomputes opening balance plus transactions and checks that against the printed closing balance. Tie out, and you get a tick. Off by anything, and the statement is flagged before you download it.
- Export in Xero's bank-import format. The file comes out with the Date, Amount, Payee and Description columns Xero reads, ready for Import a Statement.
Catching a misread figure here — a "1,180" that should read "1,780" — costs you a few seconds while you're still converting. Chasing that 600 hole through an already-reconciled month a fortnight later costs you an afternoon. The order matters: verify, then import.
Why the reconciliation check is the part that matters
Pull text out of a PDF and most tools hand you a grid and call it done. You're left trusting that everything came across. It usually does. The trouble is the time it doesn't, because a PDF is a layout, not a table — columns wrap, dates blank out, a page break lands mid-transaction — and a missing line doesn't announce itself. Your closing total just ends up quietly wrong.
A running balance is the built-in defence against that. Every statement shows opening balance, the transactions, and a closing balance, and the maths has to hold: opening, plus money in, minus money out, equals closing. If the converted file doesn't reconcile, a transaction was misread or dropped, full stop.
Export Bank Statement runs that check for you on every file and flags any statement that doesn't reconcile — so you catch a gap before it reaches Xero, not three months later when the numbers are reconciled and trusted. Most converters just extract the figures rather than verifying them. On a PDF, where what's *absent* is exactly what you can't see by eye, that's the difference between an import you can rely on and one you'll be unpicking.
Import the CSV into Xero
Once the file reconciles, the Xero side is short:
- Open the bank account in Xero — import into the account the statement belongs to, one account per file.
- Choose Manage Account → Import a Statement and upload the CSV.
- Map your columns to Xero's fields and confirm the date format when prompted.
- Import. The rows land as bank statement lines, the same as a feed would deliver, ready to reconcile against your bills, invoices and spend money.
Map the columns once and Xero remembers the layout for that account, so the next import for the same bank is faster.
A couple of honest limits worth stating plainly. This is convert, then import the CSV — it is not a one-click sync. Export Bank Statement does not push transactions into Xero through a live bank-feed API; that's a separate, certified integration. And Xero's own feeds only fetch recent activity, roughly the last 90 days, so anything older has to come in as a file regardless. If you're loading several past months, the historical-import approach covers ordering and overlapping periods. Still unsure whether Xero takes a PDF at all? The short answer is in can Xero import PDF bank statements.
Frequently asked questions
Can I import a PDF straight into Xero?keyboard_arrow_down
No. Xero's Import a Statement tool only accepts CSV, OFX or QIF. Convert the PDF to a CSV first — a Xero-ready one with Date, Amount, and Payee or Description columns is the simplest route.
What columns does Xero need in a bank statement CSV?keyboard_arrow_down
A Date column, an Amount column, and a Payee or Description column at a minimum; Reference is optional. Amount can be a single signed number (negative for money out) or two separate debit and credit columns. Xero asks which date format the file uses during import, so set it to match your statement.
Does converting a PDF push transactions into Xero automatically?keyboard_arrow_down
No. You produce a CSV and import it yourself — convert, then import. There's no live bank-feed API forcing transactions in from a PDF. If a tool promises one-click API sync straight from a statement file, treat it warily; the file route is the one that holds up.
How do I know the conversion didn't miss anything?keyboard_arrow_down
Use the reconciliation check. If opening balance, plus money in, minus money out, equals the printed closing balance, the statement reconciles and nothing was dropped. If it doesn't, the file is flagged so you can fix it before importing into Xero.
Will a scanned or photographed statement work?keyboard_arrow_down
Yes. Scanned and photographed PDFs go through OCR to read the transactions, then through the same running-balance check before you get a CSV.
What date format should I use?keyboard_arrow_down
Whatever the statement actually prints, matched to what you tell Xero on the import screen. UK statements run DD/MM/YYYY; pick that on the mapping step or a date can flip its month and day. More UK guidance sits on the UK hub, and the wider Xero pillar collects the related import and reconciliation guides.
Try it on your own statement
Clean Excel/CSV, with every transaction checked to balance.
