Historical data import: Backfill the years your bank feed never reached.
Bank feeds start the day you connect them and rarely reach back more than a few months. Bankflow reads the statements instead, as far back as you have them, and exports the history in the file your accounting software imports: OFX for Xero, Sage, and Wave, QBO for QuickBooks, or a spreadsheet.
50 free page credits · No card · Cancel anytime
- Any age of statement
- Balances tied per statement
- OFX, QBO, CSV & more
Export transactions
Choose the scope, format, fields, and column order.
Scope
Selected transactions (40)Exports only the currently selected rows.
Format
OFXA standard bank-data file.
Fixed field set
OFX/QuickBooks files always carry date, description, and signed amount.
Row order
Match current viewFields
Fixed by the OFX/QuickBooks format
Preview
1,284 matching transactions
| Date | Description | Amount |
|---|---|---|
| 2025-10-24 | STRIPE PAYOUT 4af2c9 | 4820.00 |
| 2025-10-23 | AWS EMEA SARL us-east-1 | -1204.00 |
| 2025-10-22 | WHOLE FOODS MKT #214 | -112.88 |
1,284 rows · 3 columns
Export OFXThe feed begins on day one. The books did not.
Moving to new accounting software, catching up a business that has not kept books, or bringing a closed account into the record all hit the same wall: the bank feed only covers from now, and the history sits in PDF statements. Most banks will not push old transactions into a new feed, and some accounts no longer exist to connect. The history is still there, printed month by month. What is missing is a way to turn years of it into a file the new ledger accepts, without anyone retyping it.
How it works
Bringing the past into the new ledger
- 01
Collect the statements, oldest first
Download the archive from the bank's portal, or dig out the PDFs you already have. Scanned, password-protected, CSV, and Excel statements are all read.
- 02
Upload a year or several at once
Drop in as many statements as you have. Each is read without a per-bank template, and the same file uploaded twice is recognised and skipped.

The import dialog accepting PDF, CSV, Excel, and JSON statements, several files at a time. - 03
Check each month ties
Every statement's rows are reconciled to its printed opening and closing balances. A statement that does not tie is flagged before it can become part of the imported history.

The status column flags a statement to look at before it is exported. - 04
Categorize before you import, if you want to
Rules and bulk edits categorize years of transactions in one pass. Or skip it and let the new ledger's own rules do the coding after import.
- 05
Export in the format the ledger takes
OFX for Xero's Import a Statement, Sage, Wave, GnuCash, and Moneydance; QBO for QuickBooks Online and Desktop; QFX or QIF for Quicken; or CSV layouts for Xero, Sage, MYOB, and NetSuite.

The export dialog with OFX selected, its fields, and a preview of the rows going out.
Built for more than one month at a time
No lookback limit
A statement is a statement whatever its date. The age limit is the one your bank puts on its archive, not one Bankflow adds.
Every month reconciled
Opening and closing balances are checked per statement, so a backfill built from dozens of files does not hide a missing page.
Duplicate files skipped
Statements are recognised by file hash, so re-uploading an overlapping archive does not double-count a month.
Scans and locked PDFs
Older statements that exist only as scans, and password-protected PDFs, are read like any other.
Folders per account
Group the backfill by account, entity, or client so each import file covers exactly one ledger account.
Closed accounts included
No bank connection is involved, so an account that no longer exists is imported from its statements the same way as a live one.
Which file for which destination
| Destination | Export |
|---|---|
| Xero | OFX (Import a Statement) or Xero CSV |
| QuickBooks Online & Desktop | QBO (Web Connect), or IIF for Desktop |
| Sage | OFX, one account per file, or Sage CSV |
| Wave, GnuCash, Moneydance | OFX |
| Quicken | QFX or QIF |
| MYOB, NetSuite | MYOB QIF or NetSuite CSV |
FAQ
Common questions
How far back can I import?
As far as you have statements for. Bankflow reads the document, so the limit is how long your bank keeps statements available, or how long you kept them.
Will the imported history duplicate what my bank feed already brought in?
It can if the two overlap. Export only the months before the feed starts: every export can be scoped to a date range, so the backfill ends where the feed begins.
Can I import a closed account?
Yes. There is no connection to the bank, only the statements, so a closed account is handled exactly like an open one.
Should I categorize before or after importing?
Either works. Categorizing in Bankflow first is faster for large histories because rules and bulk edits cover years at once; importing uncategorized lets the ledger's own bank rules do the work.
What if one of the old statements is a poor scan?
Scans are read, and every statement is reconciled to its printed balances. A statement the scan let down fails that check and is flagged for review rather than slipping into the import.
How many credits does a backfill take?
Roughly one credit per standard page. The free tier includes 50 page credits; larger backfills fit the monthly allowances on the paid plans.
Keep exploring
Bank Reconciliation
Balances checked against the statement before anything posts.
Tax Preparation
A year of statements, tagged and totalled for the return.
Cash Flow Forecasting
Runway, monthly P&L, and what-if scenarios from real history.
Accounts Payable
Invoices and receipts read into QuickBooks and Xero bills.
Bank Statement Converter
What a converter has to get right, and what the file looks like when it does.
Bring last year into the new ledger.
Upload a year of statements, check each month ties, and export the file your accounting software imports.