How to Import Transactions into QuickBooks (Online and Desktop)
Import bank and credit card transactions into QuickBooks Online and Desktop: bank feeds, CSV/QBO/QFX upload, date-format fixes, then categorizing and tracking the imported expenses.

To import bank or credit card transactions into QuickBooks Online, you have two routes: connect a live bank feed (Transactions, then Bank transactions, then Link account), which pulls transactions automatically with no file, or upload a file manually (Transactions, then Bank transactions, then the dropdown by Link account, then Upload from file) when your bank is not supported or you only want a date range. QuickBooks Online accepts CSV, QBO, and QFX for manual upload. QuickBooks Desktop uses Web Connect (.qbo) files imported under File, then Utilities, then Import, then Web Connect Files. The hard parts are not the menus. They are the CSV column layout, the date format, the .qfx-to-.qbo friction on Desktop, and the fact that imported transactions arrive with no source document attached, which is a real problem at tax time.
This guide covers all three: importing into QuickBooks Online, importing credit card transactions into QuickBooks Desktop, and what to do with the transactions once they land. It is the end-user import workflow. If you are a developer pushing transactions through the QBO API, that is a different job covered in our QuickBooks Online developer guide.
Part 1: Import transactions into QuickBooks Online
QuickBooks Online gives you two ways to get bank and credit card transactions in. Pick based on whether your bank connects directly and how much of the history you actually want.
Option A: connect a bank feed (the default)
A bank feed is a live connection between QuickBooks and your financial institution. Once connected, QuickBooks pulls new transactions on its own, usually daily, and you no longer download files by hand.
Following Intuit's guidance (connect bank and credit card accounts to QuickBooks Online):
- Go to Transactions, then Bank transactions.
- Select Link account (it says Connect account on a brand-new company).
- Search for your bank, select it, and enter your online banking credentials when prompted.
- Choose which accounts to connect and which QuickBooks account each maps to.
- Pick how far back to pull. QuickBooks typically offers the last 90 days; some banks allow up to 24 months. Anything older than the feed reaches has to come in as a file (Option B).
The feed lands transactions in the For review tab, not straight into your books. Nothing affects your balances until you accept each one, which is the categorization step in Part 3.
When a feed works, it is the right default: less manual work, fewer typos, and a unique bank-side ID on each transaction that helps QuickBooks avoid duplicates. The catch is coverage. Not every bank, and especially not every small regional bank or newer card issuer, supports a QuickBooks feed. That is what file upload is for.
Option B: upload a file (CSV, QBO, QFX)
When your bank is not supported, when a feed breaks, or when you need a specific historical range a feed will not reach, you upload a file. Download the transactions from your bank's website first, then bring the file into QuickBooks.
Per Intuit (manually upload transactions into QuickBooks Online):
- Go to Transactions, then Bank transactions.
- Select the dropdown arrow next to Link account, then Upload from file.
- Select the file from your computer and choose the QuickBooks account to import into.
- Map the columns (for CSV) so QuickBooks knows which is the date, the description, and the amount.
- Select the transactions to import and confirm.
QuickBooks Online accepts CSV, QBO (Web Connect), and QFX (Quicken) here. If your bank offers a QBO/Web Connect download, prefer it over CSV: it carries transaction type and a unique ID per line, so matching and deduplication are far more reliable. CSV is the universal fallback, and also the format most likely to fail, because it has the least built-in structure and depends entirely on you formatting it correctly.
The QBO CSV format, exactly
QuickBooks Online accepts two CSV layouts. Get one of them exactly right and the import is uneventful.
3-column format
| Date | Description | Amount |
|---|---|---|
| 01/15/2026 | ACME SUPPLY CO | -240.00 |
| 01/16/2026 | CLIENT DEPOSIT | 1800.00 |
One signed Amount column: deposits positive, withdrawals negative.
4-column format
| Date | Description | Credit | Debit |
|---|---|---|---|
| 01/15/2026 | ACME SUPPLY CO | 240.00 | |
| 01/16/2026 | CLIENT DEPOSIT | 1800.00 |
Money in goes in Credit, money out goes in Debit, and you leave the unused cell blank on each row.
Before you upload, fix the file:
- Strip the bank's header block. Many bank CSVs start with account name, address, and a balance summary above the actual transaction rows. Delete everything above the column headers.
- Delete blank rows anywhere in the data, including a trailing blank line at the end.
- Every row needs a date. A row with an amount but no date will reject the file.
- Clean the amount column. No currency symbols (
$), no thousands separators (1,800becomes1800), no text like "pending." - One amount convention only. Either the single signed column or the split Credit/Debit pair. Mixing them confuses the mapping.
- Keep the file under 350 KB and in English. QuickBooks Online rejects an upload file larger than 350 KB or in another language, so a long history often has to be split into several smaller files before it will import.
The date format is the single most common import failure. A US bank exports 01/02/2026 meaning
January 2; a file formatted DD/MM/YYYY reads the same string as February 1. QuickBooks asks you to
pick the date format during upload, so set it to match what is actually in your file. Get it wrong
and transactions post to the wrong day, or the file rejects outright. When in doubt, reformat the
date column to a single unambiguous standard before you upload.
The CSV route shares a problem with every spreadsheet conversion: the moment you are hand-editing a bank file to satisfy a column layout, small errors creep in (a stray character, a misread date, a row that silently dropped). If your statements arrive as PDFs rather than downloadable CSVs, the conversion is even more error-prone. We cover why that conversion corrupts data more often than people expect, and how to verify it, in bank statement to CSV.
Part 2: Import credit card transactions into QuickBooks Desktop
QuickBooks Desktop handles imports differently from Online. The primary mechanism is Web Connect, and credit card transactions follow the same path as bank transactions.
Web Connect (.qbo) is the main route
Web Connect is Intuit's name for a file your bank generates specifically for QuickBooks, with a .qbo extension. The workflow:
- Log in to your credit card account on the bank's website.
- Find the download option labeled for QuickBooks (often "Download to QuickBooks," "QuickBooks Web Connect," or a format dropdown that includes QBO).
- Download the
.qbofile. - In QuickBooks Desktop, go to File, then Utilities, then Import, then Web Connect Files.
- Select the downloaded
.qbofile. - When prompted, choose to associate it with the existing credit card account in your chart of accounts (or create the account).
- QuickBooks loads the transactions into the Bank Feeds Center for review.
Intuit's help documentation (download bank feed transactions in QuickBooks Desktop) carries the exact menu path, which shifts slightly between Desktop years and editions (Pro, Premier, Enterprise). The shape is consistent: download from the bank, import the .qbo, associate the account, review in Bank Feeds.
The .qfx-to-.qbo friction
Here is where Desktop imports get annoying. Some banks only publish a Quicken (.qfx) download, not a QuickBooks (.qbo) one. The two files are close relatives, both built on the OFX standard, and inside they look almost identical. The difference is an application identifier that flags the file as Quicken's or QuickBooks'. QuickBooks Desktop checks for its own and refuses a .qfx file.
You have three ways out, in order of preference:
- Look for a QuickBooks/Web Connect download on the bank's site. Many banks offer both Quicken and QuickBooks formats; the QuickBooks one is sometimes one menu deeper. This is the clean fix and costs nothing.
- Switch to CSV if Desktop's version supports it. Newer QuickBooks Desktop versions can import CSV bank transactions; older ones cannot. If yours can, a CSV download sidesteps the format-identifier problem entirely.
- Convert the .qfx to .qbo. A third-party converter rewrites the application identifier so QuickBooks accepts the file. It works, but it adds a manual step every single month and a tool you have to trust with your raw transaction data. Treat it as the last resort, not the routine.
Before committing to a converter subscription, click through every download option your bank offers for the card account. The QuickBooks-format download is frequently hidden behind a "more formats" or "accounting software" sub-menu. Finding it once removes the conversion step permanently.
The friction is structural, not a bug in your setup. It is the cost of Desktop relying on a bank-generated file format that two different applications both claim. Online sidesteps most of it by accepting QFX directly and leaning on live feeds.
Part 3: Categorize and track the imported expenses
Getting transactions into QuickBooks is the easy half. The transactions arrive uncategorized, with terse bank descriptions, and with no document behind them. Turning that raw list into a usable expense record is the work that actually matters.
Review and categorize
Imported transactions land in For review (Online) or the Bank Feeds Center (Desktop). Nothing hits your books until you accept each one. For every transaction you confirm or adjust:
- The account (category). Which expense account from your chart of accounts it belongs to. Software, travel, office supplies, and so on.
- The payee/vendor. Who the money went to, normalized so "AMZN Mktp US" and "Amazon.com" are the same vendor rather than two.
- Any class, location, or tag your books use for management reporting.
QuickBooks suggests a category based on the description and your history, and the suggestion improves as it sees more transactions from the same vendor. Confirm the suggestion or override it; do not accept blindly, because a wrong suggestion applied repeatedly miscodes a vendor for months.
Bank rules: automate the repetitive coding
When the same vendor recurs (a monthly software subscription, a recurring supplier), a bank rule auto-assigns the category and payee on import. In QuickBooks Online, rules live under Transactions, then Rules. You define a condition (description contains "AWS") and an action (categorize as "Software and Subscriptions," set payee to "Amazon Web Services"). Rules turn the recurring 80% of a register into one-click confirmation and leave you to think only about the genuinely new items.
Rules are powerful and easy to over-trust. A rule that matches too broadly silently miscodes. Review what your rules are doing periodically, the same way you spot-check category coding in a monthly expense review.
The audit-trail gap raw import leaves
Here is the part most import guides skip, and it is the one that costs you. A bank or card feed carries date, amount, and a short description. It does not carry the source document: the actual receipt or vendor invoice that proves what the charge was for.
So a freshly imported, fully categorized register is still a list of amounts with no evidence behind them. "Office supplies, $240, ACME SUPPLY CO" is an assertion that money moved, not proof of what it bought. The IRS requires substantiation for a deduction, and the bank line is not substantiation. At audit, the question is "show me the receipt," and the imported transaction cannot answer it.
This is the structural limit of import-driven bookkeeping. It is excellent at the ledger-entry layer (getting structured transactions into your books) and silent on the source-document layer (the evidence each transaction needs). The two layers, and why the source document is the one that actually matters, are the whole subject of how to track business expenses.
Importing is not reconciling. Getting transactions into QuickBooks does not confirm your books are complete. Feeds drop transactions, import duplicates, and lag around month-end. You still run a bank reconciliation against the statement to prove the QuickBooks balance equals the bank's closing balance. Import is data entry; reconciliation is the control.
Closing the document gap
The cleanest fix for the audit-trail gap is to capture the source documents at the same time you capture the transactions, then match each receipt or invoice to its line. That is the order of operations Inbox Ledger is built around, and it sits upstream of the QuickBooks import rather than replacing it.
Invoices and receipts are captured from the inbox over a read-only Gmail, Outlook, or IMAP connection, or uploaded directly, and the data is extracted from each PDF rather than retyped. The extracted documents are then matched against your transactions, so each imported bank line gains the receipt or invoice that substantiates it instead of arriving as a bare amount. The structured result exports to QuickBooks (and Xero, Google Sheets, or Drive), so the import into QuickBooks carries the document, not just the number.
Inbox Ledger is not an accounting system; it does not replace QuickBooks' register, reconciliation screen, or reporting. It closes the one gap raw import leaves: the missing source document behind each transaction.
| Manual | Automated with Inbox Ledger |
|---|---|
| Download a file from each bank, reformat CSV columns and dates by hand | Documents captured from the inbox or uploaded once, no per-bank file dance |
| Convert .qfx to .qbo every month for unsupported Desktop banks | Statements and invoices parsed across PDF, CSV, XLSX, OFX, QFX layouts |
| Categorize each imported transaction from a terse bank description | Vendor names normalized so descriptions resolve to one payee |
| Imported lines arrive with no receipt or invoice attached | Each transaction carries the receipt or invoice that substantiates it |
| Hunt for the source document at audit time, often in old email | Source document already attached and matched before export to QuickBooks |
Start for free and extract your first 10 invoices without a credit card.
For the developer side of pushing transactions through the QBO API (OAuth, Bill vs Invoice entities, rate limits), see the QuickBooks Online integration guide. For the control that proves your imported register is actually complete, see bank reconciliation. And for the system that keeps a source document behind every transaction, see how to track business expenses.