Resources

Importing invoices into QuickBooks Online from a CSV file

July 22, 2026

QuickBooks Online imports invoices from a CSV file natively: open Settings, choose Import data, then Invoices, and upload a file with one row per invoice line item, the invoice number repeated on each of its rows. Rows that share an invoice number become one invoice with its line items, dates, and totals. On the upload step, allow QuickBooks to add new customers and new products, pick the MM/DD/YYYY date format, and turn on custom transaction numbers so your invoice numbers survive. That is the whole mechanism. The catches are in the details, and this piece walks through every one we know about, because we hit most of them so you don't have to.

What layout does the invoice import expect?

The import wants a flat file where each row is one line item carrying its invoice's identity with it:

  • InvoiceNo repeated per row. A three-line invoice is three rows with the same invoice number. QuickBooks groups them back into one invoice on import, and the invoice's total is the sum of its line amounts, so those lines must add up exactly. A rounding difference of one cent becomes a wrong invoice.
  • Customer matched by name. QuickBooks finds or creates the customer from the name column, so the name must be spelled identically on every file you ever import. "Blue Heron Cafe" and "Blue Heron Café" become two customers, and your receivables split between them.
  • Per row: dates, item, quantity, rate, amount. Issue date, due date, the item name, an optional description, the quantity, the unit rate, and the line amount. If your headers match Intuit's sample file, the column mapping screen fills itself in.

One scoping note before you build anything: this is QuickBooks Online's import. QuickBooks Desktop uses a different format (IIF) that Intuit no longer sells to new customers, and nothing here applies to it.

The import settings that trip people up

The upload screen looks like a formality. It isn't. These are the settings and behaviors that produce a rejected file or, worse, a quietly wrong one:

  • Let the import create items, and leave them uncategorized. If you later move an item into a QuickBooks category, its full name becomes Category:Item (for example Fruit:Apples), and next month's file no longer matches it. QuickBooks creates a duplicate item, and your sales history splits across the two.
  • Tax-enabled companies need two extra columns. If sales tax is turned on in your QuickBooks company, the import requires Taxable and ItemTaxCode columns to be mapped, even for lines with no tax. Files without them are rejected with a message that doesn't say why.
  • Dates are ambiguous until you say otherwise. Pick MM/DD/YYYY (or whatever your file actually uses) on the upload step. A 03/04 that imports as April 3rd instead of March 4th ages your receivables by a month.
  • Custom transaction numbers, on. Without it, QuickBooks assigns its own invoice numbers and the file's numbers are discarded, which breaks the link between your order system and your books.
  • Size caps are real. QuickBooks Online accepts up to 100 invoices and 1,000 rows per imported file. Past that, import one month at a time.

Invoices alone leave your books wrong

An invoice import moves your sales into QuickBooks, but every one of those invoices lands as open receivables. Until you also record which of them were paid, your books say customers owe you money they already handed over. Closing the loop takes two more pieces:

  • Payments received. Each payment with its date, customer, invoice number, and amount, recorded with Receive payment or uploaded as a bank CSV. Only settled money belongs here: a bank debit still in flight isn't a payment yet, and it books in the month it settles.
  • Sales that never had an invoice. Prepaid wholesale and retail orders skip invoicing entirely, so they are invisible to an invoice import. Record them as sales receipts, or they simply never reach your books.

Refunds go the other direction and deserve their own rule: never import negative rows. Record credit memos directly in QuickBooks, where your accountant can see them, instead of encoding corrections into a file.

How each of those lands in QuickBooks, and the double-count traps between Receive payment, sales receipts, and the bank feed, gets its own walkthrough in recording customer payments in QuickBooks Online.

Can you build the CSV by hand?

You can, and plenty of bookkeepers do, once a month, in a spreadsheet, from whatever the order system will give them. The repeating-invoice-number layout is fiddly to produce by hand, line amounts have to sum to invoice totals exactly, customer names must match last month's spelling, and the whole exercise repeats every month forever. It's the same archaeology problem that shows up everywhere in a spreadsheet-run operation: the numbers already exist in your order system, and a person is retyping them into another shape.

What this looks like when your order system does it

The file layout above isn't a puzzle a bookkeeper should solve; it's a specification software should meet. In Minori Midori, the accounting export produces all three files from the admin: pick a period, resolved in your store's timezone, and download invoices in exactly the layout described here, payments received for the reconciliation loop, and orders for the sales that never saw an invoice. Columns map automatically from the sample headers, totals match the admin screens to the cent, names stay consistent file after file, and the tax columns are already there. It ships on every plan, next to the sales reports the same order data feeds. If month-end at your operation still starts with retyping invoices, book a demo and watch a month close from three downloads.

See it in your own storefront.

Create your store, pick a subdomain and add a product, or have us walk you through it first.

See how sales reports works in the product