Import CSV to QuickBooks Online: What Actually Works (2026)
How to import CSV files into QuickBooks Online without hitting the dreaded 'File upload failed' error. Format requirements, step-by-step instructions, and when you need third-party tools.

How to Import CSV to QuickBooks Online
To import a CSV to QuickBooks Online, go to Settings (gear icon) > Import Data, select your data type (customers, vendors, products, or chart of accounts), then upload your CSV file and map the columns. For bank transactions, navigate to Banking > Upload from file instead. QuickBooks accepts CSV files up to 350 KB for transactions or 2 MB for lists, with a maximum of 1,000 rows per import.
That's the quick answer. But if you've ever stared at the "File upload failed" error wondering what went wrong, you know there's more to it. QuickBooks Online is picky about CSV formatting (honestly, frustratingly picky), and the error messages rarely tell you what's actually broken. I'll cover the exact format requirements, walk through each data type, show you how to fix common errors, and tell you when you actually need third-party tools.
What You Can (and Cannot) Import Natively
Before you spend time formatting your CSV, you need to know what QuickBooks Online actually supports. The native import capabilities are more limited than most people expect.
Supported Native Imports
| Data Type | Native Support | Import Location |
|---|---|---|
| Bank Transactions | Yes | Banking > Upload from file |
| Customers | Yes | Settings > Import Data > Customers |
| Vendors | Yes | Settings > Import Data > Vendors |
| Chart of Accounts | Yes | Settings > Import Data > Chart of Accounts |
| Products/Services | Yes | Settings > Import Data > Products and Services |
| Invoices | Limited | QBO Accountant only, max 100 invoices |
| Bills | No | Third-party tools required |
| Journal Entries | Limited | UK/Canada versions only; unreliable in US |
| Checks | No | Third-party tools required |
| Purchase Orders | No | Not supported |
| Time Sheets | No | Not supported |
The most common frustration: you cannot import bills, checks, or purchase orders natively. If you need to import these transaction types, skip ahead to the third-party tools section.
There's also a weird limitation with subaccounts. QuickBooks Online won't let you import transactions directly to subaccounts. You have to either connect to a bank feed or enter those transactions by hand.
CSV Format Requirements for QuickBooks Online
QuickBooks Online is extremely particular about CSV formatting. Getting this right upfront saves hours of hair-pulling.
Bank Transaction Format Options
QuickBooks accepts two formats for bank transactions: 3-column and 4-column.
3-Column Format (simpler option)
| Date | Description | Amount |
|---|---|---|
| 1/15/2026 | Office Depot supplies | -245.67 |
| 1/16/2026 | Client payment - Invoice 1042 | 1500.00 |
| 1/17/2026 | Monthly rent | -2000.00 |
Negative amounts = money going out. Positive amounts = money coming in.
4-Column Format (separate Credit/Debit columns)
| Date | Description | Credit | Debit |
|---|---|---|---|
| 1/15/2026 | Office Depot supplies | 245.67 | |
| 1/16/2026 | Client payment - Invoice 1042 | 1500.00 | |
| 1/17/2026 | Monthly rent | 2000.00 |
One thing that trips people up: don't include the word "amount" in your Credit or Debit column headers. QuickBooks will reject files with headers like "Credit Amount" or "Debit Amount." Just use "Credit" and "Debit."
Critical Formatting Rules
These rules apply to all QuickBooks Online CSV imports:
| Requirement | Correct Format | Common Mistake |
|---|---|---|
| Date Format | MM/DD/YYYY or DD/MM/YYYY | Including day names (TUE 1/15/2026) |
| Amounts | 1234.56 | $1,234.56 (no currency symbols or commas) |
| Empty Cells | Leave blank | Entering 0 for zero values |
| Special Characters | Remove from descriptions | Using &, #, @, <, > |
| Mac Users | Save as Windows CSV | Saving as regular CSV |
| File Encoding | UTF-8 or Windows-1252 | Other encodings |
File Size and Row Limits
| Limit Type | Maximum Value |
|---|---|
| Bank transaction file size | 350 KB |
| List file size (customers, vendors) | 2 MB |
| Rows per import | 1,000 |
| Invoices per import (Accountant only) | 100 |
| Customer resale number length | 16 characters |
| Vendor tax ID length | 20 characters |
If you have more than 1,000 rows, you'll need to split your CSV into multiple files and import them separately. No way around this.
Customer Import Fields
When importing customers, QuickBooks Online supports about 15 fields via CSV import, compared to roughly 30 fields available through manual entry. The supported fields include:
- Name (required)
- Company
- Phone
- Mobile
- Fax
- Website
- Street Address, City, State, ZIP, Country
- Notes
- Tax Resale Number (max 16 characters)
Vendor Import Fields
Vendor imports support similar fields:
- Name (required)
- Company
- Phone
- Mobile
- Fax
- Website
- Street Address, City, State, ZIP, Country
- Notes
- Tax ID (max 20 characters)
- Account Number
Step-by-Step Import Guide
Here's how to import each data type.
Importing Bank Transactions
Bank transaction imports are the most common use case. You'll typically use this when your bank doesn't offer a direct connection to QuickBooks or when you need to import historical data.
Step 1: Prepare Your CSV
Format your file according to the 3-column or 4-column format described above. Check these items:
- Dates are in MM/DD/YYYY format
- Amounts have no currency symbols or commas
- No special characters in descriptions
- No empty rows at the end of the file
- File is under 350 KB
Step 2: Navigate to Upload
- Log into QuickBooks Online
- Click Banking in the left navigation
- Click the dropdown arrow next to Link account
- Select Upload from file
Step 3: Upload and Select Account
- Drag and drop your CSV file or click to browse
- Select the QuickBooks account where transactions should be imported
- If the account doesn't exist, you can create it during this step
Step 4: Map Your Columns
This is where most imports fail. QuickBooks will show you a preview of your data and ask you to map each column:
-
For each column, select what it represents from the dropdown:
- Column 1: Select "Date"
- Column 2: Select "Description"
- Column 3: Select "Amount" (3-column) or "Credit" (4-column)
- Column 4: Select "Debit" (4-column only)
-
Indicate whether your file has a header row
-
Specify the date format your file uses
Step 5: Review and Import
QuickBooks will show you a preview of how transactions will appear. Check for:
- Correct date parsing
- Accurate amount values
- Proper description text
Click Let's go to complete the import.
A note on credit card transactions
When importing credit card transactions, amounts may appear reversed from what you expect. Purchases show as positive (increasing your liability), and payments show as negative. This is accounting-correct but can be confusing if you're not expecting it.
Importing Customers
Step 1: Prepare Your CSV
Create a CSV with headers matching QuickBooks field names. At minimum, you need a "Name" column.
Example customer CSV:
Name,Company,Email,Phone,Street,City,State,ZIP
John Smith,Smith Consulting,john@smithconsulting.com,555-123-4567,123 Main St,Austin,TX,78701
Jane Doe,Doe Industries,jane@doeindustries.com,555-987-6543,456 Oak Ave,Houston,TX,77001
Step 2: Navigate to Import
- Click the Settings gear icon (top right)
- Select Import Data
- Click Customers
Step 3: Upload and Map
- Click Browse and select your CSV file
- QuickBooks will attempt to auto-map columns
- Review each mapping and correct any errors
- Fields that can't be mapped will be skipped
Step 4: Review and Import
- Review the preview of imported data
- Fix any flagged errors
- Click Import
QuickBooks will show you a summary of how many records were imported successfully and any that failed.
Importing Vendors
The vendor import process is basically the same as customer import.
Step 1: Prepare Your CSV
Example vendor CSV:
Name,Company,Email,Phone,Street,City,State,ZIP,Tax ID
Office Supply Co,Office Supply Co,billing@officesupply.com,555-111-2222,789 Commerce Blvd,Dallas,TX,75201,12-3456789
Tech Services LLC,Tech Services LLC,ap@techservices.com,555-333-4444,321 Tech Way,Austin,TX,78702,98-7654321
Step 2: Navigate to Import
- Click the Settings gear icon
- Select Import Data
- Click Vendors
Step 3: Upload, Map, and Import
Follow the same process as customer imports: upload your file, verify column mappings, review the preview, and complete the import.
Importing Products and Services
Step 1: Prepare Your CSV
Product/service imports require specific fields:
Name,Type,Description,Price,Cost,Income Account,Expense Account
Widget A,Inventory,Standard widget,29.99,12.50,Sales of Product Income,Cost of Goods Sold
Consulting Hour,Service,Hourly consulting rate,150.00,,Consulting Income,
Office Supplies,Non-inventory,Various office supplies,0,0,Sales of Product Income,Cost of Goods Sold
Step 2: Navigate to Import
- Click the Settings gear icon
- Select Import Data
- Click Products and Services
Step 3: Upload and Map
The mapping step for products requires extra attention:
- Map the Type column carefully (Inventory, Non-inventory, Service)
- Make sure income and expense accounts match existing accounts in your Chart of Accounts
- For inventory items, provide opening quantity and as-of date if applicable
Importing Chart of Accounts
Step 1: Prepare Your CSV
Account Name,Type,Detail Type,Description
Checking,Bank,Checking,Primary business checking
Savings,Bank,Savings,Business savings account
Accounts Receivable,Accounts Receivable,Accounts Receivable,Customer receivables
Office Supplies,Expenses,Office/General Administrative Expenses,General office supplies
Step 2: Navigate to Import
- Click the Settings gear icon
- Select Import Data
- Click Chart of Accounts
Step 3: Map and Import
Account Type and Detail Type must match QuickBooks' predefined types exactly. Review the preview carefully because incorrect account types can cause headaches later.
Common Errors and How to Fix Them
The "File upload failed" error is everywhere in QuickBooks support forums. Here's what causes it and how to fix it.
Error: "File upload failed"
This generic error can mean several different things:
Cause 1: Incorrect Column Mapping
The file structure doesn't match what QuickBooks expects.
Solution: Make sure your columns are named exactly: Date, Description, Amount (for 3-column) or Date, Description, Credit, Debit (for 4-column). Remove any extra columns before importing.
Cause 2: Date Formatting Issues
Dates aren't in a recognized format.
Solution:
- Open your file in Excel
- Select the date column
- Right-click and select "Format Cells"
- Choose "Date" and select "MM/DD/YYYY" format
- Remove any day-of-week text (like "TUE" or "Monday")
Cause 3: Currency Symbols in Amounts
QuickBooks can't parse amounts with currency formatting.
Solution:
- Select the amount column(s) in Excel
- Right-click and select "Format Cells"
- Choose "General" or "Number" (not Currency)
- Use Find & Replace (Ctrl+H) to remove any remaining $ or , characters
Cause 4: Special Characters in Descriptions
Characters like &, #, @, <, > can break the import.
Solution: Use Find & Replace to remove or replace these characters. Common substitutions:
- & becomes "and"
-
becomes "No."
- Remove <, >, @ entirely
Cause 5: Header Row Problems
Sometimes QuickBooks rejects files with certain header formats.
Solution: Try removing the header row entirely. QuickBooks will ask you to identify columns during the mapping step.
Cause 6: Hidden Empty Rows
Empty rows at the end of your file or missing data in the middle can cause failures.
Solution:
- Press Ctrl+End in Excel to find the true last cell of data
- Delete any rows below your actual data
- Check for blank cells in required columns (Date, Amount)
Cause 7: Browser Cache Issues
Sometimes the issue is with your browser, not your file.
Solution:
- Try opening QuickBooks in an incognito/private browser window
- Clear your browser cache and cookies
- Try a different browser entirely
Error: "Some transactions could not be imported"
This error means part of your file succeeded but some rows failed.
Common causes:
- Duplicate transactions (same date, description, and amount)
- Invalid dates (like 2/30/2026)
- Amounts that are too large
Solution: Review the error details QuickBooks provides. It usually indicates which rows failed and why.
Error: "Invalid file format"
QuickBooks doesn't recognize your file as a valid CSV.
Solutions:
- Mac users: Save as "Windows Comma Separated (.csv)" not regular CSV
- Check that file extension is .csv (not .xlsx or .txt)
- Open in a text editor to verify comma-separated format
- Re-save from Excel using "Save As" and selecting CSV format
Mapping Errors
If columns are mapping incorrectly:
- Make sure column headers don't contain extra spaces
- Check for invisible characters (common when copying from web pages)
- Try renaming headers to exact QuickBooks field names
- Remove any blank columns between data columns
Import Limits and Their Workarounds
Understanding QuickBooks' limits helps you plan your import strategy.
The 1,000 Row Limit
QuickBooks Online limits each import to 1,000 rows. For larger datasets:
- Split your CSV into multiple files of 1,000 rows or less
- Import each file sequentially
- Wait for each import to complete before starting the next
Tip: Number your files (import-1.csv, import-2.csv, etc.) and track which files you've imported.
The 350 KB File Size Limit
For bank transactions, your file can't exceed 350 KB. If your file is larger:
- Remove any unnecessary columns
- Shorten descriptions (keep them meaningful but concise)
- Split into smaller files by date range
The 100 Invoice Limit
If you have QBO Accountant access and need to import invoices, you're limited to 100 invoices per import. For larger invoice migrations:
- Batch your invoices into groups of 100
- Import chronologically (oldest first)
- Consider using a third-party tool for large-scale migrations
Field Limitations
Customer imports support about 15 fields via CSV, while manual entry offers around 30 fields. If you need to import data for unsupported fields:
- Import the basic data via CSV
- Use the QuickBooks API (requires development) for additional fields
- Update records manually after import
- Use a third-party tool with fuller field support
When You Need Third-Party Tools
Native QuickBooks imports have hard limitations. Here's when third-party tools become necessary.
You Need a Third-Party Tool If You Must Import:
- Bills - No native CSV import option
- Checks - No native import option
- Purchase Orders - Not supported
- Journal Entries (US version) - Limited and unreliable natively
- More than 1,000 rows without splitting files
- Complex transaction types with custom fields
Transaction Pro by Rightworks
Transaction Pro is one of the most established QuickBooks import tools.
Supported Transaction Types:
- Bills, Bill Payments, Checks
- Credit Card Charges, Credit Card Credits, Credit Memos
- Estimates, Invoices, Journal Entries
- Purchase Orders, Receive Payments, Sales Receipts
- Time Activities, Customers, Vendors, Items
QuickBooks Desktop Pricing:
| Plan | Price | Details |
|---|---|---|
| Importer Only | $199 one-time | Import only, unlimited files, 1-year email support |
| Full Suite (Import/Export/Delete) | $299 one-time | Complete functionality, 1-year email support |
Note: Email support costs $99/year after the first year.
QuickBooks Online Pricing (Monthly):
| Plan | Monthly Price | Companies | Row Limit |
|---|---|---|---|
| Essentials | $13/month | 1 | 200 rows/month |
| Growth | $39/month | 3 | Unlimited |
| Premium | $61/month | 5 | Unlimited |
QuickBooks Online Pricing (Annual):
| Plan | Annual Price | Companies | Savings |
|---|---|---|---|
| Essentials | $120/year | 1 | ~23% |
| Growth | $350/year | 3 | ~25% |
| Premium | $570/year | 5 | ~22% |
Best for: Users who need unlimited imports across multiple companies or require support for transaction types like bills and checks. The Essentials plan is limited to 200 rows per month, so most active users will need Growth or higher.
SaasAnt Transactions
SaasAnt offers a credit-based system with different capabilities than Transaction Pro.
Supported File Types:
- XLS, XLSX, XLSM, CSV, TXT, Google Sheets, IIF
- PDF, PNG, JPEG (for receipt and invoice scanning)
Single-Company Annual Pricing:
| Plan | Annual Price | Monthly Credits | Max Rows per Upload | Users |
|---|---|---|---|---|
| Trial | Free (30 days) | 100 | 50 | 1 |
| Growth | $250/year | 25,000 | 4,000 | 3 |
| Scale | $500/year | 50,000 | 5,000 | 10 |
| Automate | $1,000/year | 100,000 | 10,000 | 15 |
Features by Plan:
| Feature | Trial | Growth | Scale | Automate |
|---|---|---|---|---|
| Bulk Import | Yes | Yes | Yes | Yes |
| Bulk Export | Yes | Yes | Yes | Yes |
| Bulk Delete | Yes | Yes | Yes | Yes |
| Live Edit | No | Yes | Yes | Yes |
| Customization Rules | No | 3 rules | 5 rules | 10 rules |
| Zapier Integration | No | 1 automation | 5 automations | 10 automations |
| Email/FTP/SFTP Import | No | Yes | Yes | Yes |
| Phone Support | No | No | Yes | Yes |
Best for: Users who need automated imports via email, FTP, or Zapier integrations. The credit-based system works well for consistent, predictable import volumes. Higher tiers provide better per-transaction value.
Choosing Between Transaction Pro and SaasAnt
| Use Case | Recommended Tool |
|---|---|
| One-time large migration | Transaction Pro (predictable cost) |
| Multiple QBO companies | Transaction Pro (multi-company plans) |
| Automated recurring imports | SaasAnt (email/FTP/Zapier support) |
| Need bulk delete capability | Either (both support this) |
| Budget-conscious, low volume | Transaction Pro Essentials ($13/mo) |
| High volume, single company | SaasAnt Growth ($250/year = ~$21/mo) |
Tips for Successful Imports
I've seen these issues come up repeatedly in QuickBooks support forums, so here's what actually helps:
Before You Import
- Back up your QuickBooks data - Run a backup before any major import
- Test with a small file first - Import 10-20 rows to verify formatting works
- Use a template - Create a working template from a successful small import
- Check for duplicates - QuickBooks doesn't always catch duplicate transactions
During Import
- Don't navigate away - Stay on the import page until it completes
- Use Chrome or Edge - Safari and Firefox occasionally have issues
- Import during off-peak hours - QuickBooks can be slow during business hours
After Import
- Verify totals - Compare imported totals to your source data
- Check random samples - Spot-check a few transactions for accuracy
- Run reports - Generate a report to confirm data appears correctly
- Document what you imported - Note dates, row counts, and any issues
Wrapping Up
Importing CSV files to QuickBooks Online works well when you understand the format requirements and limitations. For bank transactions, customers, vendors, products, and chart of accounts, the native import does the job if you follow the formatting rules. Keep your files under 1,000 rows and 350 KB (or 2 MB for lists), use the correct date and number formats, and avoid special characters.
When you need to import bills, checks, purchase orders, or journal entries in the US version, third-party tools like Transaction Pro (starting at $13/month for QBO) or SaasAnt (starting at $250/year) fill the gaps.
The most common import failure is the "File upload failed" error, which almost always comes down to formatting. Double-check your dates, remove currency symbols, and strip out special characters before you upload.
If you're building a SaaS application that needs to export data to QuickBooks or other accounting systems, you may first need to let users import their data via CSV. That's exactly what ImportCSV helps with, providing embeddable CSV import for SaaS developers so your users can get their data into your app cleanly.
Wrap-up
CSV imports shouldn't slow you down. ImportCSV aims to expand into your workflow — whether you're building data import flows, handling customer uploads, or processing large datasets.
If that sounds like the kind of tooling you want to use, try ImportCSV .