Back To All Blogs
Import CSV into QuickBooks Online: Bank Transactions, Invoices, Customers and More
You can import CSV into QuickBooks Online for six kinds of data: bank and credit card transactions, customers, vendors, products and services, invoices, and bills. There is also a journal entry import for accountants. Each one lives in a different place in QuickBooks, accepts different columns and has its own limits, which is why so many imports fail on the first try.
Most guides on this topic cover only bank transactions, or they are written by a third-party app that wants you to install it before you do anything. This guide covers every CSV import QuickBooks Online supports natively, in one place, with the exact column layouts, the file size and row limits Intuit enforces, the errors you will hit, and the fixes. It ends with the point most businesses reach eventually: when monthly CSV uploads stop being worth the time, and what multi-location operators do instead.
If you are working in QuickBooks Desktop, most of this does not apply. Desktop uses a different import path (IIF files, Web Connect files and the Excel import wizard) and does not accept CSV bank transactions natively.

QuickBooks Online accepts CSV imports for bank transactions, customers, vendors, products and services, invoices, bills and journal entries, but each one uses a different path, different columns and different limits. This guide covers all of them in one place: the strict 3-column and 4-column bank format and 350 KB cap, the list imports and how to use the overwrite option, the 100-invoice limit and the sales tax restriction that blocks invoice import for most US businesses, and the fact that sales receipts and POS data have no native CSV import at all. It walks through the errors that stop uploads and how to fix each one, then explains why multi-location and franchise businesses move from recurring CSV uploads to an automated POS-to-QuickBooks integration, which is what Autymate builds.
The rules every CSV import into QuickBooks Online shares
QuickBooks Online has two separate import systems, and knowing which one you are using saves most of the trouble.
Bank transactions go through Transactions, then Bank transactions, then Upload from file. This path accepts CSV, QBO, QFX and OFX files and is strict about layout: only a 3-column or 4-column CSV will work.
Everything else (customers, vendors, products and services, invoices, bills, journal entries) goes through Settings, then Import data. This path accepts CSV, XLS, XLSX and Google Sheets, and uses the first row of your file as the column headers for mapping.
A few rules apply to both:
- Save as a true CSV. If you are on a Mac, choose CSV UTF-8 or Windows Comma Separated in Excel, not the default Mac format. Mac-saved CSVs are the most common cause of silent upload failures.
- One header row, no blank rows above it, no merged cells, no totals row at the bottom.
- Set every column to the General format in Excel before saving. Date columns formatted as text or custom dates import wrong.
- Remove currency symbols, thousands separators and leading apostrophes from number columns. 1,250.00 should be 1250.00.
- Delete zeros in empty cells so they are blank, not 0.
- Keep names consistent with what is already in QuickBooks. A customer named ABC Corp in QuickBooks and ABC Corp. in your file is treated as two different customers.
- Back up first. QuickBooks Online has no undo button for a bad import. For list imports, export the current list before you start. For bank transactions, the For Review tab is your safety net: nothing hits the ledger until you add or match it.
One more thing competitors rarely mention: QuickBooks Online does not change your spreadsheet. If an import fails partway, your file is intact. Fix the rows that errored and import again, but only the rows that failed, or you will create duplicates.
How to import bank and credit card transactions from CSV into QuickBooks Online
This is the most searched CSV import and the one with the strictest format. QuickBooks Online accepts exactly two layouts for bank CSVs and nothing else.
The 3-column format: Date, Description, Amount. Money out is a negative number, money in is positive.
The 4-column format: Date, Description, Credit, Debit. Money in goes in the Credit column, money out in the Debit column, and the other cell stays blank. Do not fill both.
Most bank exports have more columns than this (balance, check number, category, reference). Delete every column that is not one of the above before you upload.
Step by step
- Log in to your bank and export the date range you need as CSV. If your bank offers QBO or QFX, download that instead; those files import without any formatting work.
- Open the CSV in Excel. Remove extra columns, remove day-of-week text from dates (01/15/2026) WED must become 01/15/2026, fix any description that is only a number, and clear zeros from blank cells.
- Check the file size. The limit is 350 KB; if your file is bigger, split it by date range and upload in batches. That is roughly 1,500 to 2,500 transactions depending on description length.
- Save as CSV (Windows or UTF-8 format).
- In QuickBooks Online go to Transactions, then Bank transactions. Open the dropdown next to Link account and choose Upload from file.
- Drag in the file. Select the QuickBooks account these transactions belong to. For a credit card export, select the credit card account, not a bank account, or every amount will import reversed.
- On the mapping screen, confirm which column is the date, which is the description, and which holds the amount (or credit and debit). Pick the date format that matches your file (MM/DD/YYYY or DD/MM/YYYY).
- Review the preview, select the transactions to import and select Continue.
The transactions land in the For Review tab. Nothing is on your books yet. You now categorize each one, match it to an existing entry, or exclude it. That review and matching step takes far longer than the upload itself, which matters once you are doing this for more than one account.
How to import customers, vendors, and products and services from CSV
These three are list imports. They all go through Settings, then Import data, and they are more forgiving than bank transactions because you map your columns to QuickBooks fields on screen. The file does not have to match a fixed layout.
Customers and vendors
- Go to Settings (the gear icon), then Import data, then Customers (or Vendors).
- Select Download a sample file. Use it as your template; it shows every field QuickBooks can accept, including Name, Company, Email, Phone, Billing and Shipping address lines, Opening balance, Opening balance date, and Tax resale number.
- Paste your data in, or keep your own spreadsheet and map it in the next step. Only the Name column is required. Everything else is optional.
- Upload the file, map each of your column headers to a QuickBooks field, and select Not applicable for anything you do not have.
- Review the preview and select Import.
Two things to know. You cannot import a contact that already exists, and QuickBooks does not import currency from a contact list; every imported customer and vendor is assigned your home currency. If you use multicurrency, set the currency on each contact after import. Also, QuickBooks checks for duplicates by display name, so clean your list first: trailing spaces and inconsistent punctuation create duplicates.
Products and services
The path is the same: Settings, Import data, Products and Services. The sample file includes Product/Service name, Type (Service, Non-inventory or Inventory), SKU, Sales description, Sales price, Income account, Purchase cost, Expense account and, for inventory items, Quantity on hand, Reorder point, Inventory asset account and As of date.
The required fields are the product name, the type and the income account. The income account must already exist in your chart of accounts with the exact same name, or the row fails.
This is the one list import you can run twice on purpose. If you select the overwrite option during import, QuickBooks updates existing items that match by name instead of rejecting them. That makes products and services the right place to bulk-update prices or accounts across hundreds of items.
Inventory items are stricter: the As of date for quantity on hand must be earlier than any transaction that uses the item, or the import fails for that row.
How to import invoices, bills and sales data from CSV
Invoices are where CSV import into QuickBooks Online gets restrictive, and where most businesses first discover the limits.
Invoices
You can import a maximum of 100 invoices at a time, with a 1,000 row limit per spreadsheet. Each line item is its own row, so an invoice with five products uses five rows, and every row must repeat the invoice number, customer and invoice date.
The bigger restriction is this: if you have set up sales tax in your QuickBooks Online account, you cannot import invoices by CSV at all in the US version. That rules out most product-based businesses. UK and other regions can map VAT codes during import, but US sales tax blocks the feature entirely.
If you can use it, here is the process:
- Add any new customers and products to QuickBooks first. The import matches on exact name. For a product it cannot find, QuickBooks substitutes a generic item called "sales", which quietly breaks your revenue reporting.
- Go to Settings, Import data, Invoices and download the sample CSV. Required columns are Invoice number, Customer, Invoice date, Due date, Item (product/service), Item quantity, Item rate and Item amount.
- Build your file with one row per line item.
- Upload, map the columns, mark anything you do not have as Not applicable, and start the import.
- Check the summary. Failed invoices are listed with a reason. Fix only those rows and re-import them.
Imported invoices do not carry a class or location. If you track by location in QuickBooks Online Plus or Advanced, you edit each invoice after import to add it.
Bills
Bills follow the same path (Settings, Import data, Bills) and the same one-row-per-line-item structure, with Vendor, Bill number, Bill date, Due date, Expense account or Item, and Amount. The same 100-per-batch logic applies.
Sales receipts, payments and POS data
This is the gap. QuickBooks Online does not have a native CSV import for sales receipts, customer payments, deposits, credit memos or estimates. If your sales come from a POS system, there is no built-in way to upload a day's sales as a CSV. Your options are:
- Enter a daily sales summary by hand as a sales receipt or journal entry.
- Use the journal entry CSV import (Settings, Import data, Journal entries) to post a daily sales summary as debits and credits. This works but requires you to build the journal lines yourself, every day, for every location.
- Use a third-party import app (SaasAnt, Transaction Pro) that adds sales receipt import on top of QuickBooks. Still file based.
- Connect the POS to QuickBooks through an integration so the sales post automatically with no file at all.
For a single store the journal entry route is manageable. For a franchise with multiple locations, it is the reason CSV import stops making sense, which the next section covers.
Common errors when you import CSV into QuickBooks Online (and how to fix them)
Some info may be missing from your file: The bank CSV has extra columns, a second header row, or zeros in blank cells. Trim to the 3-column or 4-column layout and clear the zeros.
File too large: Bank CSVs are capped at 350 KB. Split by date range and upload in batches.
The file you uploaded is not in the correct format: Usually a Mac-saved CSV or a file with a .csv extension that is actually XLSX. Re-save as CSV UTF-8 or Windows CSV.
Dates rejected or shifted: Day-of-week text in the date cell, or a MM/DD file mapped as DD/MM. Strip the text and pick the right date format on the mapping screen.
Amounts reversed: A credit card file uploaded to a bank account, or Credit and Debit columns swapped. Re-upload to the right account type; check which column is money out.
Customer already exists or duplicate contacts: The name matches an existing record, or your file has the same name twice with different spacing. Remove existing contacts from the file; QuickBooks will not update them through a customer import.
Account not found on a product import: The income or expense account name in your file does not exactly match the chart of accounts. Copy the account names from QuickBooks rather than typing them.
Invoice import option missing or greyed out: Sales tax is turned on in a US account. There is no workaround inside QuickBooks; use a journal entry import, a third-party app, or an integration.
Invoices import with an item called sales: The product name in your file did not match an existing product. Add the products first, then re-import only the failed invoices.
Import appears to succeed but only part of the file lands: Rows after a blank row, a totals row or a row with a stray comma get dropped. Check the import summary count against your row count every time.
Duplicate bank transactions after upload: The file overlaps with what a connected bank feed already pulled. Exclude the duplicates in For Review and narrow the date range next time.
The pattern across all of these is the same: QuickBooks Online does not clean your data, it rejects it. Every minute spent formatting before upload saves ten minutes untangling afterward.
When CSV import stops making sense: multi-location and franchise businesses
CSV import is built for one-time jobs: migrating a customer list, loading a product catalog, catching up on a bank account that fell behind. It is not built for the same upload every day or every month across many accounts.
Consider a franchisee with eight locations. Each location has a POS system, a merchant account and a bank account. To keep QuickBooks current by CSV, someone has to export daily sales from the POS, reshape them into journal entry rows, upload them, then export each bank account, format it, upload it, and match the deposits back to the sales. That is three exports, three formatting passes and three uploads per location, before any review. Across eight locations it is a part-time job, and the moment a store opens or a bank changes its export format, the process has to be rebuilt.
The limits covered above make it worse at scale. The 350 KB cap means busy accounts need several uploads a month. The sales tax restriction means invoice import is off the table for most retail and food businesses. And nothing in the native import path tags a transaction to a location, so consolidated reporting by store has to be added by hand afterward.
The automated alternative
Franchise networks that have moved past CSV do not import files at all. The POS, the payment processor and the bank are connected to QuickBooks through an integration, and the data posts on a schedule, already structured:
- Daily sales for each location post as a summary entry tagged with that location's class or location in QuickBooks, with sales, tax, tips, discounts and tender types broken out.
- Processor fees are booked separately so the expected net deposit already exists in QuickBooks before the bank line arrives, and the two match on sight.
- Vendors, customers and items are created or matched automatically rather than failing on a name mismatch.
- New locations are added by mapping them once, not by teaching someone another set of exports.
Autymate builds these integrations for franchise brands and multi-unit operators. Each one is built around the brand's actual POS, processor and chart of accounts, so the entries in QuickBooks look the way the franchisor and the franchisee's accountant expect them to. The bookkeeper's job becomes reviewing exceptions rather than formatting CSVs.
If your business is at the point where CSV import into QuickBooks Online is a recurring monthly task rather than a one-time cleanup, that is the signal. You can see how Autymate handles POS-to-QuickBooks for multi-location businesses at autymate.com.
Frequently asked questions
What can I import into QuickBooks Online with a CSV? Bank and credit card transactions, customers, vendors, products and services, invoices, bills and journal entries. Sales receipts, payments, deposits, estimates and credit memos have no native CSV import.
Can I import an Excel file instead of a CSV? For lists, invoices and bills, yes: the Import data screen accepts XLS, XLSX and Google Sheets. For bank transactions, no: you must save the sheet as CSV first.
Why can't I import invoices into QuickBooks Online? If sales tax is set up in a US QuickBooks Online account, the invoice import is disabled. Use the journal entry import, a third-party app, or an integration instead.
How many rows can I import at once? Bank CSVs are limited by file size (350 KB). Invoices are capped at 100 invoices and 1,000 rows per file. Customer, vendor and product imports have no published row cap but very large files should be split to keep errors manageable.
Does importing a CSV overwrite my existing data? Customers and vendors: no, duplicates are rejected. Products and services: only if you choose the overwrite option. Bank transactions: no, they go to For Review until you act on them.
Can I undo a CSV import in QuickBooks Online? There is no single undo. Bank transactions can be excluded or deleted from the For Review tab before they are added. Imported lists and invoices have to be deleted record by record, or in bulk through a third-party app.
Can I import POS sales into QuickBooks Online by CSV? Only indirectly, by converting them into journal entries. There is no sales receipt CSV import. Multi-location businesses usually connect the POS directly through an integration instead.
The bottom line
CSV import into QuickBooks Online works well for what it was designed for: loading lists, migrating from another system, and catching up a bank account. Get the format right, respect the limits, and keep a clean copy of your file, and most imports go through first time.
Where it falls down is repetition. If you are formatting and uploading the same kind of file every week for several accounts or several locations, the time is going into a process that was never meant to be recurring. That is the point to move the data flow upstream so sales, fees and bank activity arrive in QuickBooks already matched.
Autymate builds that connection for franchise networks and multi-unit operators, around your POS and your chart of accounts. If you want to see what your month looks like without a single CSV, talk to the Autymate team.
Stop Moving Data Between Systems by Hand autymate that
Connect your POS, CRM, ERP, QuickBooks, databases and any other system with an API, through custom integrations designed around your workflow.
Talk to Us

