Intuit deprecated its own IIF documentation years ago, but QuickBooks Desktop still imports the format — and sometimes it's the only door in. This is the reference we wish had existed when we built our CSV to IIF converter: what the format actually requires, verified against real imports.
The basics
IIF is plain text, tab-delimited (never commas), one record per line. Lines starting with ! are header declarations that define the columns for the record type that follows. A transaction is a block: one TRNS line, one or more SPL (split) lines, and an ENDTRNS terminator.
Minimal working structure
!TRNS TRNSTYPE DATE ACCNT NAME AMOUNT MEMO !SPL TRNSTYPE DATE ACCNT NAME AMOUNT MEMO !ENDTRNS TRNS CHECK 07/15/2026 Checking Office Lease LLC -1200.00 July rent SPL CHECK 07/15/2026 Rent Expense Office Lease LLC 1200.00 July rent ENDTRNS
Every amount on the TRNS line must be balanced by the sum of its SPL lines with the opposite sign — that's double-entry, enforced at import. Money out of the bank account is negative on TRNS, positive on the expense split.
The columns that matter
TRNSTYPE — common values: CHECK, DEPOSIT, CREDIT CARD, PAYMENT, GENERAL JOURNAL, TRANSFER, BILL, INVOICE. For bank-statement imports, CHECK and DEPOSIT (or CREDIT CARD for card accounts) cover nearly everything. DATE — US order, MM/DD/YYYY. ACCNT — must match an account name in the company file's chart of accounts exactly; QuickBooks creates missing accounts on some versions and errors on others, so create them first. AMOUNT — plain decimal, no currency symbols or thousands separators.
The gotchas that break imports
Tabs inside data. A payee name containing a tab shifts every subsequent column — strip tabs and newlines from all text fields. Unbalanced blocks — if TRNS + SPL amounts don't sum to zero, the import fails or posts garbage. No undo. IIF posts directly to the register with no review step on older versions — always back up the company file first (newer Desktop releases run an import review, but don't rely on it). Encoding — plain ASCII is safest; smart quotes from spreadsheet exports are a classic silent killer.
When to use IIF vs QBO
For routine bank imports, prefer QBO/Web Connect — it goes through the Bank Feeds review flow and dedupes on transaction IDs. Use IIF when you need direct register entries, list imports, or a path that works when Web Connect misbehaves. Our converter produces balanced IIF from any bank CSV, with each transaction offset against an Uncategorized account you reclass inside QuickBooks.