Old transactions and Xero
How to Import Historical Bank Transactions into Xero
Last checked against Xero's documentation: 12 September 2026
Short answer
Short answer
To add historical transactions that predate your Xero bank feed, collect the statements for the missing period, obtain a supported export or convert the PDFs to CSV, remove any overlap with transactions already in Xero, and manually import the file into the correct bank account. Import one account at a time and reconcile the period against the original statements.
Connecting a feed today does not guarantee that every earlier transaction will appear. Xero's own guidance identifies transactions dated before a feed started as a reason to use manual statement import.
Bank feeds solve the future; historical records solve the past
A feed is excellent for ongoing bookkeeping, but a catch-up period has a fixed beginning and end. Treat it as a data-reconstruction job: establish the first date already present in Xero, then build an import only for the gap before it.
The most expensive mistake is not conversion. It is importing an overlapping date range and creating duplicates. Keep the original statements beside the generated CSV, work account by account, and record the exact boundary between the manual import and the live feed.
The safe workflow
- 01
Find the feed boundary
In Xero, identify the earliest reliable statement line already imported by the bank feed.
- 02
Gather the missing period
Collect every statement from the desired start date up to the day before that boundary.
- 03
Create a supported file
Use your bank's OFX export where available, or convert PDF-only statements into CSV.
- 04
Remove overlap
Confirm that no CSV row duplicates a line already supplied by the feed or another import.
- 05
Import and reconcile
Upload to the matching Xero bank account and reconcile against each original statement.
The Xero actions above follow Xero's published CSV statement import instructions, including column mapping, date-format confirmation and transaction review.
Checks before you complete the import
- The manual-import end date stops before the first complete feed date.
- There are no missing statement months or unexplained gaps between files.
- Each account is imported separately into its matching Xero account.
- The final imported balance agrees with the statement at the handover to the live feed.
What Xero itself documents
Xero's manual-import guide says the standard workflow accepts OFX, QFX, QIF, CSV and QuickBooks formats, recommends OFX where available, and directs people with PDF-only statements towards a third-party conversion service.
Xero also documents manual imports for missing lines and transactions from before a feed starts. Its troubleshooting guide says CSV imports can fail because of invalid dates, spaces, blank lines, corrupt files or incorrectly prepared data. That is another reason to review the file before treating an import as finished.
Frequently asked questions
Will a new Xero bank feed import all my old transactions?
Not necessarily. The available history depends on the feed and bank. Xero explicitly documents manual import for transactions dated before an automatic feed started.
How do I avoid duplicate historical transactions in Xero?
Identify the earliest complete date already in Xero and end the manual file before that boundary. Review Xero's import preview before completing it.
Can I import several years of bank statements?
Yes, provided you prepare supported files, split the work into manageable imports if needed, and reconcile each period carefully. For many PDFs, a merged chronological CSV can reduce handling.
Is a bank feed still worth connecting afterwards?
Usually yes. Manual imports repair the historical gap; the bank feed remains the better tool for ongoing transaction delivery where an eligible feed is available.