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?
- Have an Excel workbook rather than a CSV: Excel to IIF Converter
- Have a QBO rather than a CSV: QBO to IIF Converter
- QuickBooks Online does not import IIF: CSV to QBO Converter
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 CSV | In the IIF | How |
|---|---|---|
| Date | DATE | Written MM/DD/YYYY. |
| Withdrawal, Deposit | TRNSTYPE, AMOUNT | CHECK with a negative amount for money out, DEPOSIT with a positive one for money in. The SPL line carries the opposite sign. |
| Description | NAME, MEMO | NAME holds the first 41 characters, the most a QuickBooks name holds; MEMO holds up to 96. Tabs and line breaks become spaces. |
| Check Number | DOCNUM | Up to 11 characters, the Num field's limit. A longer reference goes into MEMO rather than being cut. |
| Not in a CSV | ACCNT 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 CSV | ACCNT on SPL | "*** SET CATEGORY ACCOUNT ***", the account the other side posts to. |
| Not in a CSV | TRNSID, SPLID | Left 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.01The 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
ENDTRNSQuestions 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.