VouchRow

Guide

How to import bank and credit card statements into QuickBooks Online: every method compared

11 min read

There are six ways to import bank statements into QuickBooks Online, and they differ in the things that cause trouble later: how far back they reach, where the transactions land, and whether QuickBooks can tell when it has seen a transaction before. A bank feed is the default for recent activity. Older months come in by uploading a file or a PDF statement, through an app, or by hand. This guide explains each method as of October 2026, compares them in one table, and shows how to combine them without importing the same month twice.

The short answer: six ways to import bank statements into QuickBooks Online

Connect the account to a bank feed for current transactions. For anything the feed cannot reach, go to Bank transactions → Link account → Upload from file and upload a PDF or image of the statement, a 3- or 4-column CSV, or a Web Connect (.qbo) file. All three land in For review, where you add or match them. Apps connected to your company create transactions through Intuit’s API, which posts them straight to the register. And for a few lines, typing them in is still fine.

  • Bank feed: QuickBooks downloads new transactions from the bank automatically.
  • PDF or image statement upload: Intuit’s AI reads an English-language statement.
  • CSV upload: a spreadsheet saved as CSV, mapped to QuickBooks’ columns.
  • Web Connect (.qbo, also QFX and OFX): a bank file with transaction IDs, no mapping.
  • Apps that create transactions through Intuit’s API: posted, not reviewed in QuickBooks.
  • Manual entry: expenses, checks and deposits typed in one at a time.

If your statements arrive as PDFs and you would rather not build an import file, VouchRow can send reviewed statement rows straight to QuickBooks Online on a paid plan. Like every app, it posts them to the account register rather than to For review, so the review happens before you send.

Before you import anything: the account and its opening balance

Every method imports into an account in the Chart of accounts, so set that up first. Use the Bank type for checking and savings, and the Credit card type for cards. A card statement imported into a bank account reads every number the wrong way round.

Then decide the opening balance date. The opening balance stands in for every transaction before it, so pick the day before the first statement you will import and take the balance from that statement. Importing transactions from before the opening balance date counts them twice: once inside the opening balance and once as rows.

Method 1: connect a bank feed

A bank feed is the right method for anything current. You connect the account from Bank transactions → Link account, sign in to the bank, and QuickBooks downloads transactions into For review, where you categorize, match or exclude them. Bank rules work here, because Intuit applies rules to transactions in For review.

  • History: Intuit’s connection page says download timespans vary by bank, from 90 days up to 24 months. You choose the start date in the date range dropdown when you connect.
  • Start date: if the account already has transactions, Intuit recommends a date immediately after the most recent one.
  • Duplicates: the feed has no way to recognise copies of the same transactions that arrived by another route, such as an uploaded CSV or an app.
  • Effort: low once it works, although connections do drop from time to time and need reconnecting.

Method 2: upload a PDF or image statement

In the US version, Upload from file also accepts the statement itself: a PDF, or a JPG, PNG or HEIC image, from any bank, as long as it is in English. QuickBooks extracts the transactions, may pass the statement to Intuit’s reviewers if items need review, and shows the statement and the extracted rows side by side for you to correct before saving. The rows then wait on the Bank transactions page with your feed.

Intuit does not publish size, page or month limits for statements, and its Canadian and UK help pages still say to convert PDFs first. There is no documented check against the statement’s balances, so test the totals yourself. We cover this feature in depth, including its gaps, in our separate guide to the PDF upload.

Method 3: upload a CSV file (from Excel or your bank)

CSV is the route most banks support and the one that fails most often, because the rules are strict. Intuit’s US help page, updated August 2026, sets them out. If your data is in Excel, save it as CSV; the upload steps list .csv, .txt, .qbo and .ofx, not .xlsx.

RuleDetail
Columns3 (Date, Description, Amount) or 4 (Date, Description, Credit, Debit)
Size350 KB or less, in English
RowsUp to 1,000 lines per upload, one transaction per line
DatesOne format throughout; Intuit recommends dd/mm/yyyy, and the upload asks which format the file uses
Credit and Debit headersRemove the word “amount” from them
ZerosLeave the cell blank rather than writing 0
DescriptionRemove numbers from description cells; put day-of-week text in its own column
QuickBooks Online CSV rules (Intuit, as of October 2026)
  1. 1Delete everything above the header row and any totals below the transactions.
  2. 2Go to All apps → Accounting → Bank transactions, then Link account ▼ → Upload from file.
  3. 3Select the CSV, then the QuickBooks account, and select Continue.
  4. 4Tell QuickBooks whether the first row is a header and which date format the file uses, then map the columns.
  5. 5Check the preview. If every amount has the wrong sign, use the option to reverse the values.
  6. 6Select the transactions to import, then Continue, Yes and Done. They appear in For review.

A CSV has no transaction IDs

Upload the same CSV twice and you get every row twice. QuickBooks may suggest matches against transactions already in the register, but nothing in the file lets it recognise a repeat. Your date range is the only protection, so record which periods you have uploaded.

Method 4: upload a Web Connect (.qbo) file

A .qbo is an OFX file with an Intuit bank ID in it, and Intuit’s upload page suggests it first among transaction files. It goes through the same Upload from file screen as a CSV, minus the column mapping, because the file already says which number is the date, the amount and the payee. QFX and OFX files are accepted the same way.

  • Transaction IDs: every transaction carries a FITID, an identifier QuickBooks stores, so a file that overlaps one you already imported can be recognised rather than doubled.
  • Signs: amounts are already signed, deposits positive and withdrawals negative, and card files use the credit card structure.
  • Limits: the same 350 KB and 1,000 lines as a CSV. Split a long history into shorter date ranges.
  • Where it lands: For review, like a feed download.
  • Catch: the bank has to offer a QuickBooks download, and many offer it only for the last few months.

Method 5: apps that create transactions through the API

Converter apps, expense tools and sync services can connect to your company with Intuit’s sign-in and create transactions directly, using Intuit’s QuickBooks Online Accounting API. This is a different path from every method above, and the difference is not obvious from most apps’ marketing.

API-created transactions skip For review, for every app

The API creates accounting transactions, such as expenses, checks and deposits, and they post straight to the account register. No app can add items to the For review list; Intuit fills that list only from bank connections and files you upload yourself. Answers on Intuit’s developer forum say the same, and a QuickBooks Community thread from a developer reports API-created expenses and deposits appearing “without any review”.

  • Review before you send. Once a row is sent it is in your books, so the checking has to happen in the app.
  • Bank rules do not apply, because they run on For review.
  • Match the feed. If the account also has a bank feed for the same dates, the feed will download its own copies; match them to the posted transactions or send only periods the feed does not cover.
  • Duplicates depend on the app. A good one records what it sent and refuses to send a row twice. QuickBooks itself has no ID to catch a repeat.

An app is worth it when you post many statements, for many clients, and want each row to arrive categorized. For one account and a few months, the upload routes above are simpler and keep QuickBooks’ own review step.

Method 6: enter transactions by hand

For a dozen lines, manual entry is a perfectly good answer. Use + New to record an expense, check or bank deposit, or type straight into the account register. There is nothing to format and nothing to map, and you categorize as you go. Its weakness is volume: typing errors are likely past a few dozen rows, and there is no file to check against.

Every method compared

MethodHow far backWhere it landsDuplicate riskEffort
Bank feed90 days to 24 months, by bankFor reviewLow within the feed; high if files cover the same datesLow once connected
PDF or image statementAny period you have a statement forFor review, after a side-by-side checkNo IDs; date range is your protectionLow per statement, but checking is on you
CSV (3 or 4 columns)Whatever the bank or spreadsheet holdsFor reviewHigh: no IDs, re-uploads doubleMedium: formatting and mapping
Web Connect (.qbo, QFX, OFX)Whatever the bank’s download offers, often monthsFor reviewLow: FITIDs recognise repeatsLow
App via the APIWhatever the app readsPosted in the register, not For reviewDepends on the app; overlaps with a feed need matchingLow per statement once set up
Manual entryAnyPosted in the registerOnly human errorHigh beyond a few dozen rows
Six routes into QuickBooks Online, side by side (as of October 2026)

Which method fits your situation

  • New company, bank connects: feed for the recent window, then upload older statements for anything before it.
  • Bank will not connect: Web Connect files if the bank offers them, otherwise CSV, or the PDF upload in the US.
  • Only PDFs, a few months: try Intuit’s PDF upload first and check the totals.
  • Only PDFs, a year or several accounts: convert the statements and upload .qbo files, so overlapping periods are recognised, or use an app that posts and reports every row.
  • Cleanup for a client: whichever method you choose, reconcile each month to the statement as you go, not at the end.
  • QuickBooks Desktop: none of the Online upload routes apply. Desktop imports Web Connect and IIF files, covered in our Desktop guide.

Combining methods without importing a month twice

Duplicates almost never come from one method on its own. They come from two methods covering the same days, because a feed, a CSV and an app each bring their own copy and none of them shares IDs with the others. Plan the dates before you import anything.

PeriodMethodWhy
Opening balance as of December 31, 2024Chart of accountsTaken from the December 2024 statement: $12,480.00
January 2025 to April 2026Statement uploads, oldest firstBefore the feed’s reach
May 1, 2026 onwardBank feed, start date May 1The day after the last uploaded statement closes
A made-up plan for one checking account, cleanup in October 2026
  • Find the last transaction already in the account before every upload, and start the next file the day after.
  • Upload whole statements end to end, so a gap or overlap is visible as a mismatch between one closing balance and the next opening balance.
  • If duplicates are still in For review, exclude them. If they were added, delete one copy and reconcile again.
  • Transfers between your own accounts appear in both accounts’ data. Record each once as a transfer and match the other side to it.

Finish by reconciling to the statement

Whichever method you use, the work is done when the account reconciles. Go to All apps → Accounting → Reconcile, choose the account, enter the statement’s ending balance and ending date, and tick the transactions on the statement until the Difference is $0.00. A difference equal to one transaction usually means it is missing or doubled; twice one transaction means a wrong sign.

On QuickBooks Online Plus, Advanced and Intuit Enterprise Suite, Intuit also offers AI-powered reconciliation, which reads an uploaded statement, fills in the ending balance and date, and lists transactions it could not pair. It compares; it does not import. Either way, reconcile each month as you bring it in, while the statement is in front of you.

FAQ

Related questions

Can QuickBooks Online import bank statements?

Yes. Under Bank transactions → Link account → Upload from file you can upload a 3- or 4-column CSV, a .qbo, QFX or OFX file, or, in the US, a PDF or image of an English-language statement.

How do I import older bank transactions into QuickBooks Online?

Bank feeds reach back 90 days to 24 months depending on the bank. For anything older, upload the statements or the bank’s files, oldest first, and make sure the account’s opening balance date is before the first one.

Can I import bank transactions into QuickBooks Online from Excel?

Save the sheet as CSV first. QuickBooks Online wants 3 columns (Date, Description, Amount) or 4 (Date, Description, Credit, Debit), up to 350 KB and 1,000 lines per upload.

Why don’t transactions from an app appear in For review?

Apps create transactions through Intuit’s API, and those post straight to the register. QuickBooks does not let any app add to For review, which is reserved for bank connections and files you upload yourself.

How do I avoid duplicates when I import statements and also have a bank feed?

Upload only periods the feed does not cover, starting the day after the last transaction already in the account. Exclude any duplicates still in For review, and match feed items to transactions an app has posted.

What is the best file format to upload bank transactions to QuickBooks Online?

A Web Connect (.qbo) file, when the bank offers one: it needs no column mapping and carries transaction IDs that let QuickBooks recognise repeats. CSV works when it does not.

Can I import bank statements into QuickBooks Online automatically?

A bank feed downloads new transactions automatically once the account is connected. Statement and file uploads are manual, one file at a time.

Skip the import errors next time

Convert statements into files your software accepts, with every row checked against the running balance.