Blog
February 2, 2026

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.

14 mins read

QuickBooks CSV Import Format & Templates

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 TypeRequired ColumnsRow Limit
Bank TransactionsDate, Description, Amount (or Credit/Debit)1,000
Chart of AccountsAccount Name, Type, Detail Type1,000
CustomersName/Display Name1,000
VendorsName/Vendor1,000
Products/ServicesProduct/Service Name1,000
InvoicesInvoice Number, Customer, Invoice Date, Due Date, Item Amount100 invoices
Journal EntriesJournal No., Journal Date, Account Name, Description, Debits, Credits1,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:

ColumnDescriptionExample
DateTransaction date1/1/2018
DescriptionTransaction descriptionOffice supplies purchase
AmountNegative 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:

ColumnDescriptionExample
DateTransaction date1/1/2018
DescriptionTransaction descriptionOffice supplies purchase
CreditCredit amount (payments)100.00
DebitDebit 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.00 works, $100.00 doesn't.
  • Remove thousands separators too: 1234.56 not 1,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

ColumnRequiredDescription
Account NameYesName of the account (must be unique)
TypeYesAccount type: Bank, Expenses, Income, etc.
Detail TypeYesSpecific category: Checking, Utilities, etc.
Account NumberNoOptional 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:

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

FieldRequiredNotes
Name / Display NameYesPrimary identifier, must be unique
CompanyNoCompany name
EmailNoSingle email address only
PhoneNoPhone number
MobileNoMobile number
FaxNoFax number
WebsiteNoWebsite URL
StreetNoStreet address
CityNoCity
StateNoState/Province
ZIPNoPostal code
CountryNoCountry
CurrencyNoFor 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

FieldRequiredNotes
Name / VendorYesPrimary identifier, must be unique
CompanyNoCompany name
EmailNoEmail address
PhoneNoPhone number
MobileNoMobile number
FaxNoFax number
WebsiteNoWebsite URL
StreetNoStreet address
CityNoCity
StateNoState/Province
ZIPNoPostal code
CountryNoCountry
Account NumberNoVendor 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

FieldCharacter LimitNotes
Product/Service Name512 (new) / 100 (old)Avoid special characters
Category-Format: Category:Sub-category
Item Type-Inventory, Service, or Product
SKU100Stock keeping unit
Sales Description4000Description shown on invoices
Purchase Description4000Description 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

ColumnRequiredNotes
Invoice NumberYesUnique invoice identifier
CustomerYesMust match existing customer name exactly
Invoice DateYesFormat: MM/DD/YYYY or DD/MM/YYYY
Due DateYesFormat: MM/DD/YYYY or DD/MM/YYYY
Item AmountYesLine 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

ColumnRequiredNotes
Journal No.YesJournal entry number
Journal DateYesEntry date
Account NameYesMust match existing account exactly
Journal/DescriptionYesEntry description
DebitsYesDebit amount
CreditsYesCredit amount
NameConditionalRequired 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

FormatExampleRegion
MM/DD/YYYY01/15/2026US standard
DD/MM/YYYY15/01/2026UK/International

Unsupported Formats (Must Convert)

FormatExampleIssue
YYYY-MM-DD2026-01-15ISO format not supported
DD-MMM-YYYY15-Jan-2026Text month not supported
With day of weekTUE 01/15/2026Day names not supported

Converting YYYY-MM-DD to MM/DD/YYYY in Excel:

  1. Select the date column
  2. Use the formula: =TEXT(A2,"MM/DD/YYYY")
  3. 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

RequirementCorrectIncorrect
Decimal point (not comma)1234.561234,56
No currency symbols100.00$100.00
No thousands separators1234.561,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

SettingRequirement
EncodingUTF-8 (NOT UTF-16)
Line endingsWindows (CRLF) recommended
BOMWithout BOM preferred

Characters to Avoid in Data

CharacterIssue
Quotation marks (", ')Can break CSV parsing
Colons (:)Reserved for subaccount notation
Ampersands (&)May cause parsing issues
Forward slashes (/)May interfere with dates
Trademark symbolsNot supported
Non-ASCII charactersMay display as ? or garbled text

Fixing encoding issues:

  1. Open your CSV in Notepad (not Excel)
  2. Go to File > Save As
  3. Click the "Encoding" dropdown
  4. Select "UTF-8"
  5. Save with the .csv extension

Common Import Errors and Solutions

These are the errors I see most often, along with what actually fixes them:

Error MessageCauseSolution
"Required columns missing"Wrong or misspelled column headersUse exact names: Date, Description, Amount
"Date format not recognized"Wrong date formatConvert to MM/DD/YYYY or DD/MM/YYYY
"File cannot be imported"Encoding problemSave as UTF-8 in Notepad
Garbled charactersEncoding mismatchConvert file to UTF-8
"Account not found"Account doesn't exist in QBOAdd accounts before importing transactions
"Duplicate entry"Name already existsRename the entry or delete existing
"Line Account Invalid"Wrong subaccount formatUse Parent: Subaccount with colon
Import shows 1/1/1970Date parsing failedVerify 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.

First, import your lists:

  1. Chart of Accounts
  2. Customers
  3. Vendors
  4. Employees
  5. Classes and Locations (if you use them)
  6. 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 .