← All articles
QuickBooks Desktop

CSV to IIF: Import Transactions to QuickBooks Desktop

February 28, 2026

Most IIF imports fail for a boring reason: an account name in the file doesn't exist in the company file. QuickBooks Desktop doesn't stop and ask — it invents a new account, throws a vague "error when saving", or imports half the batch and abandons the rest. The conversion takes thirty seconds; the preparation around it is where the work is.

Get the CSV into shape first

A bank CSV is nearly always usable as-is, but three things are worth fixing before conversion rather than after:

Problem in the CSVWhy it mattersFix before converting
Split Debit and Credit columnsIIF needs one signed amount per transactionCombine into a single column, expenses negative
Currency symbols and thousands separators$1,250.00 may parse as 1.00Strip $ and , with Find & Replace
Dates as DD/MM/YYYYReads as an American date and silently lands in the wrong monthReformat to MM/DD/YYYY

Also trim the date range. Re-importing a period you've already done is the most common cause of duplicated registers, because IIF carries no unique transaction ID for QuickBooks to match against. Once the file is clean, run it through the CSV to IIF converter and map Date, Description, and Amount.

Why account names have to match exactly

An IIF transaction references accounts by name, not by ID. There is no lookup table, no fuzzy matching, and no confirmation dialog. If the file says Checking and your chart of accounts calls it Business Checking - 4471, QuickBooks doesn't map them — depending on version and preferences it either errors or quietly creates a brand-new account called Checking sitting next to your real one.

So before importing, open Lists > Chart of Accounts and copy the account names character for character. Watch for:

  • Trailing spaces (invisible, and they do count)
  • Colons, which denote subaccounts: Expenses:Office Supplies is a different account from Office Supplies
  • Case — treat matching as case-sensitive even where a version tolerates it

The converter defaults to Checking for the bank side and Income / Expense for the offsetting side. If those aren't your real account names, either set the account name in the converter or open the downloaded .iif in a text editor and do a find-and-replace before importing. It's plain tab-delimited text, so this is safe and quick.

The double-entry structure IIF requires

Every IIF transaction is a block, not a line. A TRNS row opens it, one or more SPL rows carry the offsetting side, and ENDTRNS closes it. The amounts inside a block must sum to zero:

!TRNS	TRNSID	TRNSTYPE	DATE	ACCNT	AMOUNT	MEMO
!SPL	SPLID	TRNSTYPE	DATE	ACCNT	AMOUNT	MEMO
!ENDTRNS
TRNS	1	CHECK	01/15/2026	Checking	-250.00	Office supplies
SPL	1	CHECK	01/15/2026	Expense	250.00	Office supplies
ENDTRNS
TRNS	2	DEPOSIT	01/17/2026	Checking	1400.00	Client payment
SPL	2	DEPOSIT	01/17/2026	Income	-1400.00	Client payment
ENDTRNS

The lines beginning with ! are header definitions — they name the columns for every following row of that record type, and must appear before any data rows. Fields are separated by real tab characters, not spaces: edit an IIF in an editor that converts tabs to spaces and the import fails on every row.

Sign convention: money leaving the bank account is negative on the TRNS line, and the matching SPL line carries the same figure with the opposite sign. Deposits are the reverse. Get this backwards and everything imports cleanly but your P&L is inside out — see the amount-reversal fix in Fix QuickBooks Import Errors.

Back up the company file before you import

IIF imports are not undoable. There is no "reverse last import" command, and if the file creates 400 transactions against the wrong account, your only clean recovery is a restore. Go to File > Back Up Company > Create Local Backup, choose Local backup, pick a folder outside your working directory, and let it finish before you import anything.

Then test small: copy the first five rows of your CSV into a separate file, convert that, and import it. Five bad transactions are a two-minute cleanup; four hundred are an afternoon.

Running the import

Close any open windows in QuickBooks, switch to single-user mode, then go to File > Utilities > Import > IIF Files and select your .iif file. Depending on your version, QuickBooks either imports directly or shows a review screen listing what will be created and what it couldn't read. Read that screen rather than clicking through it — it's the only place errors are itemised.

Verifying the import actually landed

Don't trust the success message. Check three things:

  • The register. Open the bank account from the chart of accounts and confirm the transaction count and ending balance against your bank statement.
  • New accounts. Reopen Lists > Chart of Accounts. Any account you didn't create yourself is a name mismatch that succeeded in the worst way.
  • The offsetting side. Run a Profit & Loss for the period. A pile of activity in a generic Expense account means the transactions landed but were never categorised.

When the import half-succeeds

What you seeWhat went wrongFix
Some transactions imported, some didn'tA malformed row aborted mid-fileOpen the IIF, look for rows with a different field count than the !TRNS header
A duplicate-looking account appearedAccount name didn't match the chart of accountsDelete or merge the new account, correct the name in the IIF, restore and re-import
"There was an error when saving"Almost always an unknown account or list nameVerify every ACCNT value against the chart of accounts
"Unexpected end of file"A TRNS block with no closing ENDTRNSCheck the last block in the file; truncation usually happens at the end
Amounts are correct but reversedThe CSV uses positive numbers for expensesInvert the sign in the CSV, reconvert

To review the file before committing it, run it through the IIF to CSV converter — 400 tab-delimited rows are far easier to read in Excel than in Notepad.

Which format you actually need

IIF is QuickBooks Desktop only — Pro, Premier, and Enterprise. QuickBooks Online doesn't accept it at all; that platform wants QBO files, which you can build with the CSV to QBO converter. If the destination is Quicken, the format is QIF: use CSV to QIF instead.

Ready to convert your files?

Free, unlimited, no signup. Your data never leaves your browser.