A sheet of paper feeding into an application window where the top row has just arrived

· 6 min read

Import a statement into QuickBooks Online

QBO file or CSV, the Upload from file path, what to check first, and fixes for rejected QBO files, bad dates, flipped signs and duplicates.

When the bank feed is missing, broken, or does not go back far enough, the statement PDF is what you have. This article covers getting a converted statement into QuickBooks Online: which file to ask for, where the upload lives, what to check before you press Import, and what the common error messages actually mean.

QBO or CSV

QuickBooks Online accepts two kinds of file for bank transactions. Which one you want depends on what you plan to do with the rows.

QBO is Intuit's own import format, a variant of OFX. Each transaction carries a unique ID (FITID), so QuickBooks can recognize a row it has already imported and skip it. There is no column mapping, the date format is fixed, and the sign convention is fixed. Use it when the rows are going straight into the review queue and you do not need to edit them first.

CSV is a plain table. You can open it, delete rows, fix a description, and then upload it. The price is that QuickBooks has to be told which column is which, read the dates in the format you choose, and match duplicates on date and amount rather than on an ID. It also has a file-size ceiling small enough that a very long statement may need splitting.

A reasonable rule: QBO by default, CSV when you want to touch the data on the way in. The formats page lists what every other program wants.

Before you import

Three things to check while the file is still on your desk.

  1. The balance check. A converted statement either reconciled against the printed balances, had its closing total checked when that is all the statement prints, or reported that there was nothing to check against. Anything flagged should be fixed before it becomes a transaction in the books, because fixing it afterwards means finding it again in the register. What the check catches explains how to read a flagged row.
  2. The date range. If the account already has transactions from a feed or an earlier import, note where they end. A statement that overlaps by a few days is normal; a statement that overlaps by a whole month will produce a wave of duplicates on a CSV import.
  3. The account type. A current, transaction, checking or savings account statement goes into a Bank-type account. A card statement goes into a Credit Card-type account, otherwise every purchase lands with the wrong sign. Card statements have their own quirks.

The upload path

Menu names move between QuickBooks layouts, so this is the generic route.

  1. Open Transactions, then Bank transactions.
  2. Next to the Link account button, open the drop-down and choose Upload from file.
  3. Drag the QBO or CSV file in, or browse to it.
  4. Pick the QuickBooks account the transactions belong to. If the account is not in the list, create it here and set the type (Bank or Credit Card) carefully.
  5. For CSV only: tell QuickBooks which column holds the date, the description and the amount, choose the date format that matches the file, and say whether the amount is in one column (negative for money out) or two.
  6. Confirm the list of transactions and import.

The rows appear under For review in the bank transactions screen. Nothing has reached the books. From there you categorize, match to existing invoices and bills, or exclude.

Common errors and what they mean

"The file could not be read" on a QBO file

QBO files carry a bank identifier, INTU.BID, that QuickBooks checks against Intuit's list of participating institutions. When the identifier is missing or not on the list, the import fails with a message that suggests the file is corrupt. It usually is not. Converters deal with this by writing a valid identifier into the file, and a side effect is that QuickBooks may display a different institution name than the one printed on the statement. That is cosmetic: the transactions are yours, the label comes from Intuit's list, and you can rename the account afterwards. If a QBO file is still rejected, try the CSV from the same conversion; the transactions are the same. QBO vs OFX vs QFX vs QIF has the longer version.

Dates land in the wrong month, or the import stops on a date

This is a CSV date-format mismatch. A statement from Australia or the UK writes 03/09/2026 for September 3; QuickBooks reading it as MM/DD/YYYY puts it in March. Re-upload and choose the format that matches the file. If some dates import and others fail, the file probably mixes formats, which happens when a spreadsheet has reformatted the dates it could parse and left the rest alone. Open the CSV in a text editor rather than a spreadsheet to see what is really there.

Every amount has the wrong sign

Either a single-column CSV was mapped with the sign convention backwards, or a card statement went into a Bank-type account. For the first, re-import and flip the choice. For the second, undo the import (select the rows under For review and exclude them) and create the right account type. On a QBO file the sign is fixed by the format, so if a QBO import looks reversed, the account type is nearly always the cause.

Rows that are not transactions

"Opening balance", "Total deposits", section subtotals and page footers should never reach QuickBooks. A converter that understands statement structure excludes them; if you see one in For review, exclude it there and check the rest of the file for others. A subtotal that slips through is worth catching early, because it is exactly the size of several real transactions and will match against them in reconciliation.

Duplicates

With QBO, QuickBooks skips any transaction whose FITID it has already seen, so importing the same file twice is harmless, and re-importing a corrected file only adds the rows that changed. With CSV there is no ID. QuickBooks compares date and amount with what is already in the account and warns about likely repeats, but two genuine 50.00 payments on the same day look identical to it, and a transaction it already has from a feed under a slightly different date will not be caught. If duplicates get through, they can be excluded from For review, or, once categorized, undone from the Categorized tab and then excluded.

The register balance does not match the statement

After importing, run Reconcile for the account with the statement's closing balance and closing date. If the difference is zero, the import is complete. If not, the difference tells you what is missing or doubled: a difference equal to one transaction is a missing or duplicated row; a difference of twice an amount is a flipped sign; the same rules that apply to the converter's own check apply here. A difference that matches the statement's opening balance usually means the account's opening balance entry in QuickBooks is missing or dated after the first imported transaction.

A short workflow that avoids most of this

Convert, read the check result, fix any flagged rows, pick QBO, upload, categorize, reconcile to the printed closing balance. Six steps, and the two that people skip, reading the check and reconciling at the end, are the two that catch errors while they are still cheap.

Convert one and see

Three pages a day are free, and you don't need an account to run your own statement through it.