Import a bank statement into Xero from a PDF
Xero’s CSV rules, the signed-amount convention, and a browser-based converter that checks statement balances before you import.
What Xero needs from a statement file
Xero imports bank statements as CSV with a refreshingly short requirement list: a Date column and an Amount column. The amount is a single signed number, money in positive, money out negative. There are no separate debit and credit columns to manage. Optional columns add usefulness: Payee, Description, Reference, and a cheque number where relevant.
Two details deserve attention. Dates follow your organisation’s region setting, so a US org reads MM/DD/YYYY while a UK org reads DD/MM/YYYY, and a file built for the wrong region posts to wrong dates without erroring. And the Payee column matches against your contacts exactly: an unmatched payee spelling creates a duplicate contact rather than linking the existing one.
Convert a statement now
From PDF to Xero, step by step
Convert first: drop the statement PDF into the converter on this page. It parses in your browser, verifies the rows against the statement’s printed balances, and exports a Xero-shaped CSV: Date, signed Amount, and the optional columns present so you can fill payees and references if you want them.
Then import: in Xero, open the bank account, choose Import a Statement, and upload the CSV. Confirm the column mapping and the date order, then complete the import. The transactions arrive as statement lines ready for Xero’s reconciliation screen, where your bank rules and matching take over.
Xero reconciliation and the converter’s gate are different checks
Xero’s reconciliation matches statement lines against invoices, bills, and transfers you have recorded: it verifies your books against the bank. The converter’s reconciliation gate runs one step earlier: it verifies the imported data against the statement itself, checking that every extracted row chains to the balances the bank printed. The two are complementary. The gate makes sure what enters Xero is what the statement said; Xero’s reconciliation makes sure your accounting agrees with it.
Skipping the first check is how a misread amount becomes an afternoon of hunting inside the second one. An import that arrives verified row-by-row turns Xero’s reconciliation into confirmation instead of detective work.
Common Xero import problems, decoded
Most Xero statement-import trouble is one of four things. Wrong dates without an error message: the file’s day and month order disagreed with the organisation region, so rows posted to mirrored dates. Amounts with reversed signs: the file used money-out positive, while Xero requires income positive, so spending imported as income. Duplicate contacts appearing after import: the Payee column did not exactly match existing contact names, and Xero created new ones rather than linking.
And duplicated statement lines: the same period imported twice, because CSV lines carry no IDs for Xero to deduplicate. Each of these is prevented at the file level, which is exactly where a converter should do its work. Exports from this page use the signed-amount convention Xero expects, normalize every date to one explicit order, and keep each export to its statement period so overlaps are visible before they happen.
Catch-up work, closed accounts, and history beyond the feed
Xero’s bank feeds handle current activity, but history has limits and closed accounts have no feed at all. For catch-up engagements the statement PDFs are the source of record, and the import path on this page is how they become statement lines. Convert month by month, oldest first, and check the closing balance of each statement against the account balance in Xero as you go: with verified imports, those should agree every time, and a disagreement points at missing periods rather than bad rows.
Everything happens in your browser: statements are never uploaded, which for UK and EU practices also means no data-transfer question to document. The free tier covers 20 pages a month with the full verification; unlimited is $19 a month.
Frequently asked questions
- What columns does a Xero bank statement CSV need?
- Date and Amount are required, with the amount as one signed number, income positive. Payee, Description, Reference, and cheque number are optional. This converter exports that exact shape.
- Why did my transactions import with wrong dates?
- Xero reads dates by your organisation’s region setting. A file with day and month in the other order posts silently to wrong dates. Check the region and the file’s date order before importing.
- Can the import pre-fill account codes and tax rates?
- Xero supports a precoded CSV with AccountCode, TaxType, and ContactName columns, but each value must exactly match your chart, tax rates, and contacts. This converter keeps to the standard statement shape today; precoded export is a roadmap item.
- Is there a row limit on Xero imports?
- Xero caps statement imports at 100,000 rows, far above a normal statement. For smooth imports, keep files to a statement period; the converter exports per statement by default.
- How is this different from Xero’s own reconciliation?
- Xero reconciles your books against statement lines. The converter verifies statement lines against the statement’s printed balances before they ever reach Xero, so what you reconcile against is checked data.
- Do I need a bank feed connected before I can import?
- No. Manual statement import works on any bank account in Xero, with or without a feed, and it is the only path for closed accounts. If a feed is active, keep import periods clear of the feed window so lines do not arrive twice.