Bank statement PDF to a Xero import CSV
When a bank feed is missing months, or you only have PDF statements, Xero lets you import a CSV bank statement instead. Xero needs at least a Date and an Amount column, with income positive and expenses negative in the same column; Description and Payee make reconciliation easier.
StatementLocal produces that from a text-based PDF statement in your browser. The Amount column is already signed the way Xero expects, and the running-balance check helps you catch a missing line before it causes a reconciliation gap.
Try it on your own statement. Free: 1 file per day, CSV & Excel export, nothing uploaded.
Open the free converterHow to do it
- Download the PDF statement from your bank.
- Drop it into the converter and review the balance check. Click any cell to correct it.
- Export CSV. Keep Date, Amount and Description; delete Balance (Xero calculates balances itself), Debit, Credit, Source File and Check.
- In Xero open the bank account, choose Import a Statement, upload the CSV, and assign Date to Transaction Date and Amount to Transaction Amount.
What columns you get
Every export, CSV or Excel, has the same columns, so your templates and import mappings keep working from month to month:
| Column | What it contains |
|---|---|
| Date | Transaction date (YYYY-MM-DD in CSV, a real date cell in Excel). The year is inferred from the statement period, including December–January rollovers. |
| Description | The transaction text, with multi-line descriptions joined into one cell. |
| Amount | One signed number: money in positive, money out negative. |
| Debit / Credit | The same amount split into money-out and money-in columns. |
| Balance | The running balance, when the statement prints one. |
| Source File | Which PDF the row came from, useful when merging several statements. |
| Check | OK when the row reconciles with the running balance, or a MISMATCH note to review. |
Tips for a clean result
- Copy the Description column into a Payee column if you use bank rules that match on payee.
- Xero lists YYYY/MM/DD, DD/MM/YYYY and MM/DD/YYYY among its date formats. If the YYYY-MM-DD dates in the CSV aren't accepted, reformat the column in Excel before importing.
- Import one statement period at a time and compare Xero's statement balance with the closing balance on the PDF.
- For credit card accounts, check the sign convention: Xero wants spending negative. Use "Flip signs on export" if your card statement shows charges as positive.
Private by design
The PDF is opened by JavaScript inside your browser tab and never uploaded. No AI is involved: parsing is deterministic, so the same PDF always gives the same result. Scanned (image-only) PDFs aren't supported yet. Read more in the privacy guide or the Privacy Policy.
Pricing: the free plan converts 1 file per day. Pro ($9/month or $59/year) and the one-time 30-Day Pass ($19) unlock unlimited files and batch merging. See plans.
Try it on your own statement. Free: 1 file per day, CSV & Excel export, nothing uploaded.
Convert a statement nowFAQ
Does StatementLocal connect to Xero?
No. It never asks for Xero or bank credentials. You export a CSV and import it into Xero yourself.
Why remove the Balance column?
Xero calculates the bank balance from the transactions and asks you to remove opening and closing balance columns before importing.
Can I import several months at once?
Pro merges several PDFs into one CSV. Importing one statement at a time is still easier to reconcile.
Does it support UK or European statements for Xero?
Only partially. DD/MM date order and European number formats (1.234,56) are not supported yet, so many UK and EU statements will not convert correctly today.