Skip to content
LegacyFile
← Learn

What Is an IIF File? QuickBooks Desktop Import/Export Explained

By LegacyFile ·

Someone handed you a file called transactions.iif and asked you to "just import it into QuickBooks" — or maybe you exported one yourself and now need to see what's actually in it. IIF looks like a spreadsheet gone wrong when you open it in a text editor: tab-separated columns, but with header rows that start with ! scattered throughout and repeated blocks that don't obviously line up. This article explains what an IIF file is and how to read one.

What an IIF file is

IIF stands for Intuit Interchange Format — a tab-delimited text format specific to QuickBooks Desktop (not QuickBooks Online, which doesn't use it). It's how Desktop imports and exports both list data (a chart of accounts, customers, vendors, items) and transaction data (checks, deposits, invoices, journal entries) without going through its proprietary .qbw database file directly.

The structure is simple once you see the pattern: a line starting with ! is a header that declares the column names for the rows that follow, and a line starting with the bare type name is a data row using those columns. Here's a minimal transaction:

!TRNS	TRNSID	TRNSTYPE	DATE	ACCNT	NAME	CLASS	AMOUNT	DOCNUM	MEMO
!SPL	SPLID	TRNSTYPE	DATE	ACCNT	NAME	CLASS	AMOUNT	DOCNUM	MEMO
!ENDTRNS
TRNS	1	CHECK	7/14/2026	Checking	Acme Supply Co		-500.00	1001	Office supplies
SPL	1	CHECK	7/14/2026	Office Expense	Acme Supply Co	Overhead	500.00	1001	Office supplies
ENDTRNS

TRNS, SPL, and ENDTRNS

Transactions are the trickiest part of the format because they span multiple lines that have to be read as a group:

  • TRNS opens a transaction — its type (CHECK, DEPOSIT, INVOICE, BILL, GENERAL JOURNAL, CREDIT CARD CHARGE, and more), date, the primary account it hits, amount, and a memo.
  • SPL (split) records the other side of the entry — double-entry accounting means every transaction moves money between at least two accounts, and each SPL line is one of those other legs. A transaction can have zero splits (rare, but valid — a single-account journal entry), one split (the common case), or many (a bill paid out of several expense accounts at once).
  • ENDTRNS closes the transaction. Everything between a TRNS line and the next ENDTRNS belongs to that one transaction.

Outside of transactions, IIF also carries plain list data the same way — !ACCNT / ACCNT for the chart of accounts, !CUST / CUST for customers, !VEND / VEND for vendors, !INVITEM for items, and more. A single IIF file can mix several of these list types together, each with its own header block.

Why field positions can differ between files

Unlike a fixed-width format, IIF's columns aren't in a hardcoded order — the !TRNS header line declares which columns come next and in what order, so a data row is only meaningful next to its most recent matching header. Two IIF files from different QuickBooks versions (or different export settings) can legitimately have their columns in different orders, or include a different subset of columns entirely. A parser has to build the column mapping from the header it just read, not assume a fixed layout.

Getting an IIF file into a spreadsheet

Renaming an .iif file to .csv doesn't work — the header rows and the TRNS/SPL/ENDTRNS grouping make it structurally different from a flat CSV, and Excel has no idea a transaction and its splits belong together. The free IIF to CSV converter here on LegacyFile understands the format: it groups every TRNS with its splits, handles transactions with no splits or several, and flattens everything into one row per split you can open directly in Excel — no QuickBooks installation needed. See How to convert QuickBooks IIF to CSV for the step-by-step version.