CSV to IIF Converter — For QuickBooks Desktop

Turn a CSV into an Intuit Interchange Format file for QuickBooks Desktop. IIF is tab-delimited, which means a tab inside one of your descriptions silently shifts every field after it along by one — so those are stripped before they can do it.

Not the file you need?

QuickBooks Desktop has no CSV import for transactions. IIF is what it takes.

Columns defined by name, not position

An IIF names its own columns on a line beginning "!", and the order varies between files. Both sides of this read that line rather than counting across, which is why a file from one QuickBooks version does not scramble in another.

Tabs and line breaks taken out of your text

They are structural in IIF. A payee containing one corrupts the row, and the corruption is silent — the memo ends up imported as the amount.

The account is left for you to name

QuickBooks posts the other side of each transaction somewhere, and your CSV does not say where. The file marks it clearly unset instead of picking a plausible-looking expense account on your behalf.

What the IIF file contains

Field by field, where each part of the download comes from.

In your CSVIn the IIFHow
DateDATEWritten MM/DD/YYYY.
Withdrawal, DepositTRNSTYPE, AMOUNTCHECK with a negative amount for money out, DEPOSIT with a positive one for money in. The SPL line carries the opposite sign.
DescriptionNAME, MEMONAME holds the first 41 characters, the most a QuickBooks name holds; MEMO holds up to 96. Tabs and line breaks become spaces.
Check NumberDOCNUMUp to 11 characters, the Num field's limit. A longer reference goes into MEMO rather than being cut.
Not in a CSVACCNT on TRNS"*** SET BANK ACCOUNT ***", with the currency in brackets when the CSV names one, for you to replace with your bank account's name.
Not in a CSVACCNT on SPL"*** SET CATEGORY ACCOUNT ***", the account the other side posts to.
Not in a CSVTRNSID, SPLIDLeft empty, so QuickBooks numbers the transactions itself.

Sample output

Made by this converter's own code from the made-up file shown. The output is the file it writes, not retyped.

The input: CSV

A made-up CSV from a US checking account, with a Check Number column.

Date,Description,Check Number,Withdrawal,Deposit,Balance
03/02/2026,CHECK 1043,1043,300.00,,1450.00
03/05/2026,EXAMPLE CO PAYROLL,,,2500.00,3950.00
03/17/2026,SAMPLE OFFICE SUPPLY & PRINT,,89.99,,3860.01

The output: IIF

The whole file.

!TRNS	TRNSID	TRNSTYPE	DATE	ACCNT	NAME	CLASS	AMOUNT	DOCNUM	MEMO
!SPL	SPLID	TRNSTYPE	DATE	ACCNT	NAME	CLASS	AMOUNT	DOCNUM	MEMO
!ENDTRNS
TRNS		CHECK	03/02/2026	*** SET BANK ACCOUNT ***	CHECK 1043		-300.00	1043	CHECK 1043
SPL		CHECK	03/02/2026	*** SET CATEGORY ACCOUNT ***	CHECK 1043		300.00	1043	CHECK 1043
ENDTRNS
TRNS		DEPOSIT	03/05/2026	*** SET BANK ACCOUNT ***	EXAMPLE CO PAYROLL		2500.00		EXAMPLE CO PAYROLL
SPL		DEPOSIT	03/05/2026	*** SET CATEGORY ACCOUNT ***	EXAMPLE CO PAYROLL		-2500.00		EXAMPLE CO PAYROLL
ENDTRNS
TRNS		CHECK	03/17/2026	*** SET BANK ACCOUNT ***	SAMPLE OFFICE SUPPLY & PRINT		-89.99		SAMPLE OFFICE SUPPLY & PRINT
SPL		CHECK	03/17/2026	*** SET CATEGORY ACCOUNT ***	SAMPLE OFFICE SUPPLY & PRINT		89.99		SAMPLE OFFICE SUPPLY & PRINT
ENDTRNS

Questions about converting CSV to IIF

Which versions of QuickBooks import IIF?

QuickBooks Desktop - Pro, Premier, Enterprise and Accountant - under File, Utilities, Import, IIF Files. QuickBooks Online does not import IIF; use a QBO file there instead.

What do I replace the *** SET *** placeholders with?

Your bank account's name exactly as your chart of accounts spells it, and the account the other side of each transaction belongs in. Replace them in a text editor before importing: QuickBooks creates any account an IIF names, so leaving them in adds two accounts called that.

Does an IIF import check for duplicates?

No. IIF has no transaction id for QuickBooks to match, so importing the same file twice enters everything twice. Back up the company file first and import each file once.

Have an Excel file?

Use the Excel to IIF converter instead, which reads an .xlsx workbook itself, taking its dates and amounts from the cells. This page reads .csv, .tsv and .txt files, not a workbook.

Related guides