How to import a PDF bank statement into Xero
By Kayabyte · Last updated 28 October 2026
Xero normally pulls transactions through a bank feed. When there is no feed for your bank, the feed broke, or you need to catch up on months before the feed started, the fallback is importing a statement file. The catch: Xero imports structured files (CSV, OFX, QIF), not PDFs, and a PDF statement is often all your bank gives you for older periods.
Here is how to get from a PDF to a clean import. The exact labels in Xero vary by version and region, so treat the menu names below as a guide.
1. Check whether your bank will give you a file instead
Before touching the PDF, log in to online banking and look for a download option on the transaction list: CSV, OFX, QFX or QIF. A file straight from the bank is the most reliable source. Many banks limit this to the last 12 to 24 months or a set number of rows, which is why people end up with PDFs. If the file covers your period, skip to step 4.
2. Turn the PDF into rows by hand
If only the PDF exists, the free manual way is copy and paste:
- Open the PDF in Preview or your browser, select the transaction table and copy it.
- Paste into Excel or Numbers. Often everything lands in one column; use Text to Columns (Excel) or split by a delimiter to separate date, description and amounts.
- Build the columns Xero wants. Xero’s own CSV template uses a date column, an amount column (money in as positive, money out as negative), and optional Payee, Description, Reference columns. Download the current template from the import screen to see the exact headers.
- Merge separate “money out” and “money in” columns into one signed amount. Put your formula in a helper column, then paste values.
- Fix dates. Make them one consistent format, and watch for day/month versus month/day mix-ups.
- Save as CSV.
3. The real limits of the manual way
- Multi-line descriptions break rows. A payee that wraps onto two lines becomes two rows, one with no amount.
- Page headers and footers repeat in the middle of the data and have to be deleted.
- Signs go wrong easily: a card refund, an overdraft balance with “DR” or “CR” suffixes, or amounts with trailing minus signs.
- Thousands separators differ (1,234.50 versus 1.234,50) and Excel may silently turn them into text or the wrong number.
- Silent errors. One missed row doesn’t show up until reconciliation weeks later.
A simple safeguard: add up your signed amounts in the sheet, add the opening balance, and compare with the closing balance on the statement. If they differ, something was dropped or flipped.
4. Import into Xero
- In Xero, open the bank account you want (Accounting, then Bank accounts, then Manage account or the equivalent).
- Choose the option to import a statement and pick your file.
- Xero shows a column mapping or a preview. Check that dates and amounts look right before confirming.
- Reconcile as usual.
Two things to know. First, Xero asks for the statement’s closing balance or date range in some flows; have it ready. Second, importing a period that overlaps an existing feed can create duplicates. Xero tries to flag duplicates, but check the first few rows of any overlap yourself. If you import a wrong file, check Xero’s help for how to delete an imported statement before reconciling.
5. Where Balanced helps
Balanced is a Mac app we make that does steps 2 and 3 for you. Open the PDF (text PDF, or a scanned PDF or photo, which it reads with Apple’s on-device text recognition), and it shows the table it found in a preview. You can change a column’s role (date, description, debit, credit, amount, balance), the date order, and how signs are handled. Then it checks the totals: opening balance plus the transactions must equal the closing balance, and the running balance per row when your statement has one. If it does not add up, Balanced tells you which rows and by how much, and exporting then needs an explicit “Export anyway”.
When it is right, choose Xero bank statement CSV from the Export button. There is no AI guessing: every number is copied from your statement and checked. It works with headers and month names in 10 languages, remembers each bank’s layout, and everything is processed on your Mac. Statements never leave it.
Honest limits: results depend on the statement’s layout, so always check the preview; heavily skewed or low-quality scans can fail; and for a password-protected PDF, unlock the PDF first with the password from your bank. We can’t promise it reads every bank.
Download Balanced and convert for free: the free version converts and checks everything and exports the first 10 transactions per file, so you can test your own statement before paying. Pro is USD 59 per year or USD 7.99 per month, for up to 3 Macs. See pricing and the help page. macOS 14 or later.
6. After the import
- Compare Xero’s statement balance with the bank’s closing balance for the period.
- Look at the first and last transaction dates.
- Keep the converted CSV with the original PDF.
This is not accounting advice; if you are unsure how to treat a period, ask your accountant or bookkeeper.
Related guides
- Why converted statements don’t add up
- How to import a bank statement into YNAB
- How to turn a bank statement into Beancount
More guides
- How to export Apple Card transactions to a spreadsheet
- How to convert a Bank of America statement to Excel
- How to turn a Chase statement into Excel or CSV
- How to convert a PDF bank statement to CSV
- How to convert a PDF bank statement to Excel
- DocuClipper alternatives for Mac: online service or an app on your Mac
- How to import a bank statement into Actual Budget
- How to convert a PDF bank statement to OFX
- How to import a PDF bank statement into QuickBooks as a QBO file
- How to get a PDF bank statement into Quicken (QIF or QFX)
- A private bank statement converter for Mac: keep your statements off other people’s servers
- ProperConvert alternatives for Mac: what to compare before you pay