Accounting software
Import bank transactions into QuickBooks Desktop
QuickBooks Desktop takes .qbo Web Connect files, not CSV. Where the import lives, Express vs Classic mode, matching, OL errors, and getting a .qbo from a PDF.
7 min read · Last reviewed · by the stmtai team
QuickBooks Desktop (Pro, Premier, Accountant and Enterprise) imports bank and credit card transactions in exactly one convenient way: a Web Connect file with the .qbo extension, brought in through Bank Feeds. It does not import CSV bank transactions, and the other route it offers, an IIF file, writes straight into the register with no review step. This guide covers where the import lives, what happens to the transactions once they are in, the error messages that stop people, and what to do when your bank only offers a PDF or a CSV. It is written for the 2023 and later releases; the screens have been stable for years, though menu names vary slightly between editions.
What Desktop accepts, and what it does not
There are three ways transactions get into a QuickBooks Desktop bank register without being typed.
Direct Connect is the bank feed: QuickBooks logs in to the bank with your credentials and pulls transactions. Only banks that have an agreement with Intuit offer it, many charge for it, and it reaches back only as far as the bank chooses, typically 90 days at first connection.
Web Connect is the file route. You download a .qbo file from the bank (usually labelled QuickBooks or Web Connect on the download page), or produce one from a statement, and import it. The transactions arrive in the Bank Feeds Center for review, the same place Direct Connect puts them, with the same matching and rule tools. This is the route this guide is about.
IIF import (File, Utilities, Import, IIF Files) is the third. IIF is a tab-separated text format that describes complete transactions, including the accounts they post to. It skips the Bank Feeds Center and writes directly into registers. It is useful for migrating lists and opening balances; for bank transactions it is a liability, because a mistake is posted, not reviewed, and there is no duplicate detection. Intuit's own help page steers bank imports towards Web Connect for that reason.
What is missing from that list is CSV. QuickBooks Online has a CSV upload; Desktop does not. A bookkeeper with a CSV from the bank has to convert it to .qbo first. The free CSV to QBO tool does that in the browser, and the QuickBooks import guide compares all of the routes for both products.
Importing a Web Connect file
The menu path is Banking, Bank Feeds, Import Web Connect File. Some editions also show it under File, Utilities, Import, Web Connect Files. Both open the same file picker.
- Choose the .qbo file. QuickBooks reads the account block inside it (bank id, account id, account type) and asks which QuickBooks account it belongs to.
- The first time, pick Use an existing QuickBooks account and select the bank or credit card account from your chart of accounts, or Create a new QuickBooks account if this is a new one. QuickBooks remembers the link; later files for the same account id go straight in.
- Transactions load into the Bank Feeds Center (Banking, Bank Feeds, Bank Feeds Center). Nothing is posted yet.
If you double-click a .qbo file in Windows Explorer, QuickBooks opens and runs the same import, provided QuickBooks is the program registered for the .qbo extension and the right company file is open. Importing into the wrong company file is the most common way to end up with a duplicate account, so open the company first.
Express mode and Classic mode
The Bank Feeds Center has two looks, and which one you see changes how matching works. The setting is under Edit, Preferences, Checking, Company Preferences, Bank Feeds.
Express mode (the default since 2014) shows downloaded transactions in a list with a status for each: Auto (a rule matched it and it will be added as shown), Chg (a rule suggested something, review it), Rev (no match, needs your attention) or a matched existing transaction. You add transactions individually or in bulk with Add/Approve, and renaming rules are created and edited in the same window.
Classic mode, also called Register mode, is the older layout. Downloaded transactions appear below the register, you match each one to an existing entry or add it, and rules are called aliases. Accountants who learned QuickBooks before 2014 often switch back to it because it shows the register at the same time.
Either mode does the same three things with each downloaded transaction: match it to a transaction you already entered (a check you wrote, a bill payment), add it as a new transaction with the payee and account you choose, or ignore it. Rules turn a payee string like AMAZON MKTPLACE into a named vendor and a default expense account so the next one arrives pre-coded.
How QuickBooks avoids duplicates
Every transaction in a .qbo file carries a FITID, a unique id assigned by whoever made the file. QuickBooks keeps the FITIDs it has already imported for each account and silently skips any it has seen before. That is what makes it safe to import overlapping files: if January's file and February's file both contain the last three days of January, the repeats are dropped.
It also means the FITID must be stable. A bank that generates ids per download, or a converter that derives them from the row position, will produce duplicates on the second import. A converter should derive the id from the transaction itself (date, amount, description, position within the day) so the same statement converted twice yields the same ids. The OFX and QFX guide explains the field.
The flip side: if you delete an imported transaction and re-import the same file, QuickBooks will not bring it back, because the FITID is remembered. The remedy is to edit the file and change that id, or to enter the transaction by hand.
The errors that stop an import
QuickBooks Desktop reports Web Connect problems as OL codes.
OL-221 and OL-222 mean the file is malformed: a header line missing, a tag QuickBooks does not recognise, a date not in YYYYMMDD form, an amount with a currency symbol, or an ampersand written raw inside a description. QuickBooks does not say which line. The free QBO checker reads the file and lists each problem with its line number.
An error mentioning the bank or a message that QuickBooks "found an error in the file" is often the missing INTU.BID tag. Web Connect files must name the bank with an Intuit bank id in the sign-on block; a plain .ofx file renamed to .qbo does not have one and is refused. Converters add a generic id that QuickBooks accepts for manual uploads.
A file that imports but lands in the wrong account was linked to that account on a previous import. Go to Banking, Bank Feeds, Bank Feeds Center, select the account, and use Deactivate All under the account's settings (Edit Account, Bank Feed Settings) to break the link, then import again and choose the right account.
A file whose amounts come in backwards, deposits as payments, has the sign wrong on TRNAMT. QuickBooks uses the sign, not the TRNTYPE label: money out must be negative. For a credit card file the same rule holds, purchases negative, payments positive, and the file must use the credit card message set, not the bank one, or QuickBooks will insist on linking it to a bank account.
Getting a .qbo when the bank offers a PDF
Most US banks let you download recent activity as a .qbo file, usually from the account activity page rather than the statements page, and usually for the last 90 days to two years. Anything older, a closed account, or a bank with no QuickBooks download, exists only as a PDF statement.
The way through is to convert the statement. Bank statement to QuickBooks reads the PDF, checks that opening balance plus deposits minus withdrawals equals the printed closing balance, and writes a .qbo with stable FITIDs, the INTU.BID QuickBooks requires, and the right message set for a bank or a credit card account. The balance check matters here more than anywhere: a transaction missed in a manual retype does not show up until you reconcile in QuickBooks, weeks later, whereas a converter that reconciles first tells you before the file is made. Statements with several accounts, a checking and a savings section for example, come back as one file per account, and a year of statements can be converted together and downloaded as a zip of .qbo files, one per month, to import in date order.
For a CSV from the bank, the CSV to QBO tool makes the .qbo in your browser without uploading anything; you confirm the date and amount columns, the running balance is checked if the CSV has one, and QuickBooks Desktop imports the result like any Web Connect file.
Reconciling after the import
Importing is not reconciling. Once the transactions are added from the Bank Feeds Center, go to Banking, Reconcile, enter the statement ending date and ending balance from the PDF, and tick the transactions that appear on the statement. If the difference is zero, the month is done. If it is not, the usual causes are a transaction added twice (once by hand, once from the feed, because the match was missed), a transfer recorded on only one side, or a statement that was itself converted with a row wrong. When the source statement was checked against its own balances before the .qbo was made, the last cause is ruled out, and reconciling in QuickBooks becomes a formality.