How to Import Historical (Prior-Year) Bank Transactions into QuickBooks
QuickBooks Online's bank feed only pulls the last 90 days, so for cleanup or catch-up work you backfill older months by hand. Download each prior period from your bank as CSV or Excel, convert it to a .QBO file, and upload it under Transactions > Bank transactions > Upload from file. This page walks through doing that cleanly without creating duplicates.
Why the bank feed stops at 90 days
When you connect a bank account to QuickBooks Online, the feed downloads roughly the last 90 days of activity. A few banks send up to a year, but most stop at 90 days, and the feed will never reach back to a prior tax year on its own. That is a problem for the most common reason people need history: cleanup.
Cleanup work (also called catch-up bookkeeping) means a business comes to you with a QuickBooks file that was never reconciled, or never set up, and you have to rebuild the books for the last one, two, or three years. The bank feed cannot give you that. You have to feed the old transactions in manually, one statement period at a time.
Step 1: Download the history from your bank
Log in to the business bank or credit card account and find the transaction export (often under Statements, Activity, or Download). Set the date range to cover the period you are rebuilding. Most banks let you export much further back than 90 days, often the full account history.
Export the data as CSV or Excel. That is the format almost every bank offers for older periods. Do not bother looking for a .QBO or Web Connect download for old dates; many banks only offer those for recent activity, and the file QuickBooks actually wants is easy to build from the CSV anyway.
A useful habit during cleanup: download one calendar year per file (or one quarter if the year is large), and name each file with the account and the period, for example checking-2023.csv. Clear file names save you when you are juggling several accounts.
Step 2: Convert the CSV or Excel to a QBO file
QuickBooks Online accepts CSV directly, but for backfilling history a .QBO file is the better choice. A QBO file carries a stable transaction ID for every line (the FITID), which is what lets QuickBooks recognize a transaction it has already seen and skip it. A plain CSV upload has no such ID, so it is far easier to double-post old months that way.
Open your bank file in the QBO Maker tool, map the Date, Amount, and Description columns, and download a .QBO file. The conversion runs entirely in your browser; the file never leaves your computer, which matters when you are handling a client's full account history. For the format mechanics, see CSV to QFX (Quicken) and CSV to OFX (other apps); QuickBooks uses the .QBO variant of the same family.
Step 3: Upload the QBO file into QuickBooks Online
In QuickBooks Online, go to Transactions > Bank transactions (older menus show Banking). Select the Link account dropdown, then Upload from file. Choose your .QBO file, pick the QuickBooks account it belongs to, and continue. The transactions land in the For review tab exactly like a bank feed would deliver them, ready for you to categorize and match.
For the full click path and the difference between uploading and live feeds, see Import CSV into QuickBooks Online.
Watch the file size and line limits
QuickBooks Online caps uploads at about 350 KB per file, which works out to roughly 1,000 transactions. A busy checking account can blow past that in a single year. If your file is rejected or truncated, split it into smaller date ranges (by quarter, or even by month for high-volume accounts) and upload each piece in order.
Splitting by period also keeps the work reviewable. It is much easier to confirm that Q1 imported correctly before moving to Q2 than to untangle a whole year at once.
Avoiding duplicates when an account is already connected
This is the trap that costs the most cleanup time. If the account is already connected to a live bank feed, do not upload a file that overlaps the dates the feed already pulled. You will get duplicate transactions that you then have to find and delete by hand.
- Find the date of the oldest transaction the feed brought in.
- Only backfill dates before that date.
- If you must overlap, upload first, then exclude the duplicates in the For review tab before you accept anything.
The FITID in a converted .QBO file helps here, because QuickBooks can recognize and skip a line it has already accepted. It is still safer to keep your uploaded date ranges and your feed date ranges from touching.
Reconcile each period before moving on
Importing transactions is only half of cleanup. After each period loads, categorize the activity, then reconcile that period against the bank statement so the QuickBooks balance matches the real ending balance. Work oldest to newest. If January does not reconcile, do not start February, because the error only compounds.
For prior-year cleanup, also confirm the opening balance for the account is correct as of the first day you are rebuilding. An import full of accurate transactions still produces wrong reports if the starting balance is off.
Frequently asked questions
Why can't I just sync more than 90 days from my bank?
The QuickBooks Online bank feed is built around recent activity and most banks only hand it about 90 days. There is no setting to make the live feed reach back further. For older periods you download the history from your bank yourself and upload it as a file, which is exactly the workflow on this page.
Should I upload CSV or convert to QBO for historical data?
Convert to .QBO. A QBO file gives every transaction a stable ID (the FITID) that QuickBooks uses to recognize and skip lines it has already imported, which protects you against duplicates during a multi-file backfill. Plain CSV uploads carry no such ID and are easier to double-post. You can convert your bank's CSV or Excel export in the tool.
How far back can I import transactions into QuickBooks Online?
There is no hard date limit on uploaded files, so you can backfill prior years as far back as your bank lets you export. The practical limits are file size (about 350 KB, roughly 1,000 lines per upload) and your own duplicate checking. Split large histories into quarterly or monthly files and upload them in order.
Will uploading old transactions create duplicates?
Only if your dates overlap activity that is already in QuickBooks (usually from a live feed). Find the oldest date the feed already pulled and backfill only dates before it. A converted .QBO file with FITIDs reduces the risk further, but keeping the date ranges separate is the reliable fix.
Can I import several years for a cleanup project at once?
Not in one file. Stay under the size limit by splitting into yearly, quarterly, or monthly files, then upload oldest first and reconcile each period before moving on. Working in order is what keeps a multi-year cleanup from turning into a mess.