IIF File Format Explained: Headers, TRNS, SPL, and ENDTRNS

Jul 20, 2026

Convert your bank statement to Excel now

PDF, JPG, PNG, BMP, HEIC, TIFF, MT940

Upload your bank statement

Last updated July 2026.

An IIF file is a plain-text, tab-separated file that QuickBooks Desktop uses to move lists and transactions in and out of a company file. Every line starts with a keyword that tells QuickBooks what the row is: rows beginning with an exclamation point are headers that name the columns, and the data rows below them carry the actual values. For transactions, the three keywords that matter are TRNS, SPL, and ENDTRNS. Learn how those three fit together and an IIF file reads cleanly and maps straight into spreadsheet columns.

IIF stands for Intuit Interchange Format. It is one of the oldest import paths QuickBooks Desktop still accepts, and it is the format many bookkeepers reach for when a bank feed will not connect, an account is closed, or a full year of history has to land in one pass. If you are holding a PDF statement and need it as an importable file, the bank statement to IIF converter builds the TRNS and SPL rows for you. This guide explains the structure so you can read and check the file yourself.

The two kinds of rows: headers and data

An IIF file is a table saved as tab-separated text. It has two kinds of rows. Header rows begin with an exclamation point and list the field names in order, left to right. Data rows repeat the same leading keyword without the exclamation point and hold the values in those same column positions. QuickBooks reads a header row, then applies its column layout to every data row that follows until it hits a different header.

Because the columns are matched by position, the order of fields in the header has to match the order of values in each data row exactly. A missing tab shifts every value one column to the left, which is the single most common reason an IIF import lands amounts in the wrong field.

The transaction block: TRNS, SPL, ENDTRNS

A transaction import file usually opens with three header lines, one each for the transaction line, the split line, and the terminator. They look like this:

KeywordRoleWhat it holds
!TRNSHeader for the main transaction lineNames the fields for the transaction row (account, date, amount, name, memo)
!SPLHeader for the split line(s)Names the fields for each offsetting line (the category or account the money hit)
!ENDTRNSHeader for the terminatorMarks where one transaction ends; carries no data of its own

After those headers, each transaction is a small block: one TRNS line, one or more SPL lines, then an ENDTRNS line. The TRNS line is the entry against your bank account. Each SPL line is the other side of the entry, the expense or income category the money came from or went to. ENDTRNS on its own closes the block so the next TRNS starts a new transaction.

The required fields

QuickBooks will reject a transaction that is missing the essentials. On the TRNS line, three fields are effectively required.

FieldLineMeaningSpreadsheet column
TRNSTYPETRNSTransaction type, such as CHECK, DEPOSIT, or GENERAL JOURNALType
DATETRNS and SPLTransaction date, usually MM/DD/YYYYDate
ACCNTTRNS and SPLAccount name; on TRNS it is your bank account, on SPL it is the categoryAccount / Category
AMOUNTTRNS and SPLSigned number; TRNS and SPL amounts are opposite in signAmount
NAMETRNS or SPLPayee or customer/vendor nameDescription
MEMOTRNS or SPLFree-text noteMemo
DOCNUMTRNSCheck or reference numberReference

The account names in ACCNT have to match names that already exist in the QuickBooks chart of accounts, or QuickBooks creates new ones on import, which is how a file quietly produces a mess of duplicate accounts.

The sign rule: TRNS and SPL must net to zero

IIF follows double-entry bookkeeping, so within one transaction block the TRNS amount and the sum of the SPL amounts have to cancel out. If the bank line is a 120.00 payment written as -120.00 on TRNS, the split that records the expense is +120.00 on SPL. When a transaction splits across two categories, you get two SPL lines whose amounts add up to the opposite of the TRNS amount. A block that does not balance is the second most common IIF import failure after a shifted column.

A worked example mapped to Excel

Here is a single check for $85.40 to an internet provider, posted against the checking account and booked to Utilities. In the raw IIF file, tabs separate the fields:

LineTRNSTYPEDATEACCNTNAMEAMOUNT
TRNSCHECK03/14/2026CheckingComcast-85.40
SPLCHECK03/14/2026UtilitiesComcast85.40
ENDTRNS

To read it as a plain statement row, you keep the TRNS line: date 03/14/2026, payee Comcast, amount -85.40, and the category comes from the SPL line, Utilities. That is exactly the shape a spreadsheet wants, one row per transaction with Date, Description, Amount, and Category columns. Once the file is in QuickBooks, you can reconcile it and, if you track spending against receipts, match those imported transactions in an expense management tool so every line has a document behind it.

Reading or building an IIF file without hand-editing tabs

You can open an IIF file in Excel or a text editor to inspect it, but hand-editing tab-separated rows is error-prone because a single stray tab breaks the column alignment. Going the other direction, from a bank statement PDF to an import-ready IIF, is where a converter earns its keep: it reads the transactions, builds a balanced TRNS and SPL block for each one, and writes the tabs in the right places. The IIF converter for QuickBooks Desktop handles that, and if your workflow is CSV-first instead, the PDF bank statement to CSV converter produces a clean file you can map to any template. For a broader look at every QuickBooks import path and its limits, see the QuickBooks bank statement converter.

IIF is a QuickBooks Desktop format. If you are on QuickBooks Online, the import path is a mapped CSV or a QBO Web Connect file instead, which is a different structure covered in the QBO file format guide.

Ready to convert your bank statement?

Upload a PDF and get clean Excel or CSV in seconds. Works with statements from any bank.

Convert to Excel now

Free to try, no credit card required

From the same family of tools