QuickBooks CSV Import Format & Templates
Complete guide to QuickBooks Online CSV import formats. Download official templates for bank transactions, customers, vendors, invoices. Includes column specs and date formats.

QuickBooks Online is picky about CSV formats. Bank transactions need Date, Description, and Amount columns. Customers require a unique Name field. Chart of accounts must include Account Name, Type, and Detail Type. Get any of these wrong and you're looking at import failures, garbled data, or (worst case) hours reformatting spreadsheets you thought were ready.
I've put together the exact format specs for every QBO import type, along with downloadable templates and fixes for the errors that trip people up most often. Whether you're migrating from another accounting system or just importing this month's transactions, here's what QuickBooks actually expects.
Quick Reference: QuickBooks CSV Import Formats
Here's a reference table with required columns for each import type:
| Import Type | Required Columns | Row Limit |
|---|---|---|
| Bank Transactions | Date, Description, Amount (or Credit/Debit) | 1,000 |
| Chart of Accounts | Account Name, Type, Detail Type | 1,000 |
| Customers | Name/Display Name | 1,000 |
| Vendors | Name/Vendor | 1,000 |
| Products/Services | Product/Service Name | 1,000 |
| Invoices | Invoice Number, Customer, Invoice Date, Due Date, Item Amount | 100 invoices |
| Journal Entries | Journal No., Journal Date, Account Name, Description, Debits, Credits | 1,000 |
All QuickBooks Online imports have a maximum file size of 2MB. For larger datasets, split your file into multiple imports.
Bank Transaction CSV Format
Bank transactions are the most common QuickBooks import. QBO accepts two formats: a 3-column format with a single Amount column, or a 4-column format with separate Credit and Debit columns.
3-Column Format
The simplest format uses negative numbers for payments and positive numbers for deposits:
| Column | Description | Example |
|---|---|---|
| Date | Transaction date | 1/1/2018 |
| Description | Transaction description | Office supplies purchase |
| Amount | Negative for payments, positive for deposits | -100.00 or 200.00 |
Example CSV:
Date,Description,Amount
1/1/2018,Office supplies purchase,-100.00
1/1/2018,Client payment received,200.00
1/2/2018,Monthly rent payment,-1500.00
1/3/2018,Invoice #1234 deposit,3500.00
4-Column Format
This alternative format uses separate columns for credits and debits:
| Column | Description | Example |
|---|---|---|
| Date | Transaction date | 1/1/2018 |
| Description | Transaction description | Office supplies purchase |
| Credit | Credit amount (payments) | 100.00 |
| Debit | Debit amount (deposits) | 200.00 |
Example CSV:
Date,Description,Credit,Debit
1/1/2018,Office supplies purchase,100.00,
1/1/2018,Client payment received,,200.00
1/2/2018,Monthly rent payment,1500.00,
1/3/2018,Invoice #1234 deposit,,3500.00
Watch out for these formatting gotchas:
- Leave Credit or Debit cells blank when not applicable. Don't use zeros - QuickBooks treats that differently.
- Column headers must be exactly: "Date", "Description", "Credit", "Debit". Anything else (like "Credit Amount") fails silently.
- Credit card transactions sometimes display in reverse order in QuickBooks. It's annoying, but not a bug.
- Strip out currency symbols:
100.00works,$100.00doesn't. - Remove thousands separators too:
1234.56not1,234.56.
Chart of Accounts CSV Format
The chart of accounts import requires three specific columns that tell QuickBooks how to categorize each account.
Required Columns
| Column | Required | Description |
|---|---|---|
| Account Name | Yes | Name of the account (must be unique) |
| Type | Yes | Account type: Bank, Expenses, Income, etc. |
| Detail Type | Yes | Specific category: Checking, Utilities, etc. |
| Account Number | No | Optional account number |
Example CSV:
Account Number,Account Name,Type,Detail Type
112720,Checking Account - Bank of America,Bank,Checking
,Money Market - First National Bank,Bank,Money Market
63200,Utilities: Gas,Expenses,Utilities
68100,Utilities: Telephone,Expenses,Utilities
,Consulting Revenue,Income,Service/Fee Income
,Office Supplies,Expenses,Office/General Administrative Expenses
Creating Subaccounts
QuickBooks uses a colon separator (:) to create subaccounts. The main account must be listed before its subaccounts:
Account Name,Type,Detail Type
Utilities,Expenses,Utilities
Utilities: Gas,Expenses,Utilities
Utilities: Electric,Expenses,Utilities
Utilities: Telephone,Expenses,Utilities
This creates a "Utilities" parent account with Gas, Electric, and Telephone nested underneath.
Official Templates
Intuit provides templates you can download - I'd recommend starting with these rather than building from scratch:
- QuickBooks Online COA Sample File - General template
- Industry-specific templates - Templates for various industries
Customer CSV Format
Customer imports only technically require one field: a unique name. Everything else is optional, though you'll probably want at least email and phone to have useful records.
Supported Fields
| Field | Required | Notes |
|---|---|---|
| Name / Display Name | Yes | Primary identifier, must be unique |
| Company | No | Company name |
| No | Single email address only | |
| Phone | No | Phone number |
| Mobile | No | Mobile number |
| Fax | No | Fax number |
| Website | No | Website URL |
| Street | No | Street address |
| City | No | City |
| State | No | State/Province |
| ZIP | No | Postal code |
| Country | No | Country |
| Currency | No | For multicurrency accounts |
Example CSV:
Name,Company,Email,Phone,Street,City,State,ZIP
John Smith,Acme Corp,john@acme.com,555-123-4567,123 Main St,San Francisco,CA,94102
Jane Doe,Tech Solutions,jane@techsolutions.com,555-987-6543,456 Oak Ave,Seattle,WA,98101
Bob Johnson,Johnson LLC,bob@johnsonllc.com,555-456-7890,789 Pine Blvd,Austin,TX,78701
Limitations you should know about:
- Only one email per customer. If you have multiple contacts at a company, you'll need to pick one or add the others manually after import.
- 1,000 rows max, or 2MB file size - whichever you hit first.
- Names must be unique across customers, vendors, AND employees. This catches a lot of people off guard.
- No sub-customer imports via CSV. You'll have to set up those relationships manually.
Download the official template: Customer Contact List Sample
Vendor CSV Format
Vendors use almost the same format as customers. The main difference is just the header name for the identifier field.
Supported Fields
| Field | Required | Notes |
|---|---|---|
| Name / Vendor | Yes | Primary identifier, must be unique |
| Company | No | Company name |
| No | Email address | |
| Phone | No | Phone number |
| Mobile | No | Mobile number |
| Fax | No | Fax number |
| Website | No | Website URL |
| Street | No | Street address |
| City | No | City |
| State | No | State/Province |
| ZIP | No | Postal code |
| Country | No | Country |
| Account Number | No | Vendor account number |
Example CSV:
Vendor,Company,Email,Phone,Street,City,State,ZIP,Account Number
Office Depot,Office Depot Inc,orders@officedepot.com,800-463-3768,123 Supply Way,Boca Raton,FL,33431,ACC-001
Amazon Business,Amazon.com,business@amazon.com,888-280-4331,410 Terry Ave N,Seattle,WA,98109,ACC-002
Staples,Staples Inc,service@staples.com,800-378-2753,500 Staples Dr,Framingham,MA,01702,ACC-003
Download the official template: Vendor Contact List Sample
Products and Services CSV Format
This one gets more complex. You can import inventory items, non-inventory items, and services. The format handles pricing, descriptions, and account mappings all in one file.
Supported Fields
| Field | Character Limit | Notes |
|---|---|---|
| Product/Service Name | 512 (new) / 100 (old) | Avoid special characters |
| Category | - | Format: Category:Sub-category |
| Item Type | - | Inventory, Service, or Product |
| SKU | 100 | Stock keeping unit |
| Sales Description | 4000 | Description shown on invoices |
| Purchase Description | 4000 | Description for purchased items |
| Sales Price/Rate | - | Selling price |
| Purchase Cost | - | Cost price for inventory |
| Income Account | - | Cannot use subaccounts |
| Expense Account | - | Cannot use subaccounts |
| Inventory Asset Account | - | Required for inventory items |
| Quantity on Hand | - | Current stock level |
| Quantity as-of Date | - | Format: MM/DD/YYYY |
| Reorder Point | - | Low stock alert threshold |
Example CSV for services:
Product/Service Name,Item Type,Sales Description,Sales Price/Rate,Income Account
Consulting - Hourly,Service,Professional consulting services per hour,150.00,Consulting Revenue
Website Design,Service,Complete website design package,2500.00,Service Revenue
Monthly Maintenance,Service,Monthly website maintenance retainer,500.00,Service Revenue
Example CSV for inventory items:
Product/Service Name,Item Type,SKU,Sales Description,Sales Price/Rate,Purchase Cost,Income Account,Expense Account,Inventory Asset Account,Quantity on Hand,Quantity as-of Date
Widget A,Inventory,WGT-001,Standard widget,29.99,12.50,Sales of Product Income,Cost of Goods Sold,Inventory Asset,100,01/15/2026
Widget B,Inventory,WGT-002,Premium widget,49.99,22.00,Sales of Product Income,Cost of Goods Sold,Inventory Asset,50,01/15/2026
Category Hierarchy
Categories use colon separators for nesting (up to 4 levels):
- Single category:
Clothing - Two levels:
Clothing: T-shirts - Three levels:
Clothing: T-shirts: Large - Four levels:
Clothing: T-shirts: Large: Red
Download the official template: Products and Services Sample (Taxable)
Invoice CSV Format
Invoice imports require that customers and products already exist in QuickBooks before importing. Each line item needs its own row in the CSV.
Required Columns
| Column | Required | Notes |
|---|---|---|
| Invoice Number | Yes | Unique invoice identifier |
| Customer | Yes | Must match existing customer name exactly |
| Invoice Date | Yes | Format: MM/DD/YYYY or DD/MM/YYYY |
| Due Date | Yes | Format: MM/DD/YYYY or DD/MM/YYYY |
| Item Amount | Yes | Line item amount |
Example CSV:
Invoice Number,Customer,Invoice Date,Due Date,Item(Product/Service),Item Description,Item Quantity,Item Rate,Item Amount
INV-001,John Smith,01/15/2026,02/14/2026,Consulting - Hourly,January consulting work,10,150.00,1500.00
INV-001,John Smith,01/15/2026,02/14/2026,Website Design,Homepage redesign,1,2500.00,2500.00
INV-002,Jane Doe,01/16/2026,02/15/2026,Monthly Maintenance,January maintenance,1,500.00,500.00
Notice INV-001 takes two rows because it has two line items. Both rows need the invoice number, customer, and dates repeated. It's redundant, but that's how QuickBooks wants it.
Limitations that will probably frustrate you:
- Can't import invoices if you have sales tax enabled. Seriously. You have to turn it off, import, then turn it back on - or just enter invoices manually.
- 1,000 rows max, but also only 100 invoices per import. The row limit usually isn't what stops you.
- No discounts or credit memos allowed. Negative line items get rejected.
- Products and customers must already exist in QuickBooks. Import those lists first.
To download the invoice template, go to QuickBooks Online: Settings > Import Data > Invoices > Download sample csv
Journal Entry CSV Format
Journal entries need balanced debits and credits (obviously). There's also some special handling for AP and AR entries that trips people up.
Required Columns
| Column | Required | Notes |
|---|---|---|
| Journal No. | Yes | Journal entry number |
| Journal Date | Yes | Entry date |
| Account Name | Yes | Must match existing account exactly |
| Journal/Description | Yes | Entry description |
| Debits | Yes | Debit amount |
| Credits | Yes | Credit amount |
| Name | Conditional | Required for AP/AR accounts |
Example CSV:
Journal No.,Journal Date,Account Name,Journal/Description,Debits,Credits,Name
JE-001,01/31/2026,Rent Expense,January rent accrual,1500.00,,
JE-001,01/31/2026,Accrued Expenses,January rent accrual,,1500.00,
JE-002,01/31/2026,Accounts Receivable,Revenue recognition,5000.00,,John Smith
JE-002,01/31/2026,Deferred Revenue,Revenue recognition,,5000.00,
Things that will bite you:
- You need to turn off account numbers before importing (Settings > Advanced > Chart of accounts). I know, it's weird. Turn them back on after.
- Subaccounts need the colon format:
Parent Account: Sub Account - Add any new accounts to your chart of accounts first. The import won't create them for you.
- If you use class or location tracking, those columns are supported too.
To download the journal entry template, go to QuickBooks Online: Settings > Import Data > Journal Entries > Download a sample file
Date Format Requirements
QuickBooks Online only accepts two date formats. Anything else fails. This is probably the #1 cause of import errors I see.
Supported Date Formats
| Format | Example | Region |
|---|---|---|
| MM/DD/YYYY | 01/15/2026 | US standard |
| DD/MM/YYYY | 15/01/2026 | UK/International |
Unsupported Formats (Must Convert)
| Format | Example | Issue |
|---|---|---|
| YYYY-MM-DD | 2026-01-15 | ISO format not supported |
| DD-MMM-YYYY | 15-Jan-2026 | Text month not supported |
| With day of week | TUE 01/15/2026 | Day names not supported |
Converting YYYY-MM-DD to MM/DD/YYYY in Excel:
- Select the date column
- Use the formula:
=TEXT(A2,"MM/DD/YYYY") - Copy and paste values to replace the original dates
If your import shows dates as 1/1/1970, that's QuickBooks' way of telling you it couldn't parse your dates. Go back and double-check the format.
Number and Currency Formatting
QuickBooks is surprisingly fussy about number formatting.
Number Format Requirements
| Requirement | Correct | Incorrect |
|---|---|---|
| Decimal point (not comma) | 1234.56 | 1234,56 |
| No currency symbols | 100.00 | $100.00 |
| No thousands separators | 1234.56 | 1,234.56 |
| Empty cells for blank values | (blank) | 0 |
Excel tip: Format number columns as "General" not "Currency" before saving as CSV. Excel's Currency format adds $ symbols that QuickBooks can't handle.
Character Encoding Requirements
Encoding problems show up as garbled characters, random question marks, or just straight-up import failures. QuickBooks needs UTF-8 encoding.
Encoding Specification
| Setting | Requirement |
|---|---|
| Encoding | UTF-8 (NOT UTF-16) |
| Line endings | Windows (CRLF) recommended |
| BOM | Without BOM preferred |
Characters to Avoid in Data
| Character | Issue |
|---|---|
Quotation marks (", ') | Can break CSV parsing |
Colons (:) | Reserved for subaccount notation |
Ampersands (&) | May cause parsing issues |
Forward slashes (/) | May interfere with dates |
| Trademark symbols | Not supported |
| Non-ASCII characters | May display as ? or garbled text |
Fixing encoding issues:
- Open your CSV in Notepad (not Excel)
- Go to File > Save As
- Click the "Encoding" dropdown
- Select "UTF-8"
- Save with the
.csvextension
Common Import Errors and Solutions
These are the errors I see most often, along with what actually fixes them:
| Error Message | Cause | Solution |
|---|---|---|
| "Required columns missing" | Wrong or misspelled column headers | Use exact names: Date, Description, Amount |
| "Date format not recognized" | Wrong date format | Convert to MM/DD/YYYY or DD/MM/YYYY |
| "File cannot be imported" | Encoding problem | Save as UTF-8 in Notepad |
| Garbled characters | Encoding mismatch | Convert file to UTF-8 |
| "Account not found" | Account doesn't exist in QBO | Add accounts before importing transactions |
| "Duplicate entry" | Name already exists | Rename the entry or delete existing |
| "Line Account Invalid" | Wrong subaccount format | Use Parent: Subaccount with colon |
| Import shows 1/1/1970 | Date parsing failed | Verify date format matches selection during import |
If you're still stuck, open the CSV in a plain text editor (not Excel) and look for hidden characters. Spreadsheet apps hide all kinds of formatting garbage that breaks imports.
Import Order: What to Load First
QuickBooks imports have dependencies. Get this wrong and you'll see a lot of "not found" errors.
Recommended Import Sequence
First, import your lists:
- Chart of Accounts
- Customers
- Vendors
- Employees
- Classes and Locations (if you use them)
- Products and Services
Then import transactions (order doesn't matter as much here): Bank Data, Bills, Checks, Deposits, Invoices, Journal Entries, and so on.
The reason for this order: when you import an invoice, QuickBooks looks up the customer and products. They have to exist already or the import fails.
Skip the Manual Formatting
Look, I get it. Formatting CSVs for QuickBooks is tedious. Converting dates, stripping currency symbols, fixing encoding, making sure your column headers match exactly. Every import type wants something slightly different, and one typo means starting over.
ImportCSV handles the column mapping for you. Upload your file, map columns visually, and it handles the format conversions. You don't have to remember whether QuickBooks wants "Amount" or "Transaction Amount" or convert your ISO dates by hand.
It validates everything before import and catches encoding issues early. Fewer failed imports, less time debugging - that's the pitch.
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 .