IIF to CSV Converter

Convert QuickBooks Desktop IIF export files to CSV for analysis in Excel, Google Sheets, or any data tool.

100% freeNo signup neededData never leaves your browser
1
2
Upload file

Drop your IIF file here

or click to browse

How to convert IIF to CSV

1

Locate your IIF file

Use an IIF exported from QuickBooks Desktop, or one produced for QuickBooks by another system.

2

Upload the IIF

Drop it in above — the !TRNS header is read for column names and every TRNS row is extracted.

3

Open in Excel

Download the CSV and open it in Excel, Google Sheets, or any tool that reads spreadsheets.

About IIF to CSV conversion

IIF (Intuit Interchange Format) is tab-delimited text, which makes it look like a spreadsheet that took a wrong turn. It is not one. An IIF file is a stack of small tables sharing a single document: each section opens with a header line beginning with an exclamation mark — !ACCNT, !CUST, !TRNS — that names the columns for the rows underneath it, and the rows themselves are tagged with the same keyword minus the mark. One file can therefore hold a chart of accounts, a vendor list, and a batch of transactions, all with different column meanings, stacked one after another.

Transactions add a second layer on top of that. QuickBooks is a double-entry system, so a single transaction occupies at least three lines: a TRNS line for the transaction as a whole and the account the money moved through, one or more SPL lines for the offsetting side, and an ENDTRNS line to close the group. The two sides carry opposite signs and must net to zero. A $340 vendor bill posted to two expense accounts is one TRNS line and two SPL lines, and reading only one of those lines out of context tells you something misleading.

This converter takes the TRNS lines and nothing else. It reads the !TRNS header to learn what the columns in this particular file are called, then writes one CSV row per transaction using those names — so the output carries the transaction type, date, account, name, class, total amount, document number, and memo, in whatever order the source file declared them. The result is the cash-side ledger view: every transaction once, at its full value, on a single row that Excel can sort, filter, and pivot without any further reshaping.

IIF record types and standard TRNS columns

IIF keywordWhat it isExported
!TRNSColumn names for transaction rowsBecomes the CSV header
TRNSOne transaction, cash sideOne CSV row each
SPLOffsetting split linesskipped
ENDTRNSCloses a transaction groupskipped
ACCNTChart of accounts entryskipped
CUST / VEND / EMPCustomer, vendor, employee recordsskipped
INVITEMItem list entryskipped

A standard !TRNS header declares TRNSID, TRNSTYPE, DATE, ACCNT, NAME, CLASS, AMOUNT, DOCNUM, MEMO, and CLEAR. Files that add or omit columns still convert — the header in your file decides the CSV columns.

Troubleshooting IIF to CSV

No TRNS rows were found. The file is almost certainly a list export rather than a transaction export. QuickBooks Desktop's own IIF export produces chart-of-accounts, customer, vendor, and item files, none of which contain a single TRNS line. Open it in a text editor: if the header lines read !ACCNT or !CUST and there is no !TRNS anywhere, there are no transactions in it to extract.

The amounts look like they are only half the transaction. They are the cash side of it. A TRNS line for a check shows the amount leaving the bank account as a negative, while the expense categories it was split across live on the SPL lines that were skipped. Sum the AMOUNT column and you get net cash movement, not total expenses by category — those are different questions and the CSV only answers the first.

Some rows are shorter than the header, leaving trailing columns empty. IIF rows are allowed to stop early when their remaining fields are blank, so a transaction with no class and no memo may simply end after AMOUNT. The CSV keeps the row as-is rather than padding it, which occasionally leaves ragged right-hand columns. Spreadsheets handle this without complaint.

A memo field broke the row into extra columns. IIF has no escaping mechanism — a literal tab inside a memo is indistinguishable from a field separator, so anything pasted into QuickBooks from another application can carry an invisible tab that splits the row. If one row has more columns than its neighbours, find it in the original file and remove the stray tab before converting.

Frequently asked questions

What does the converter pull out of my IIF file?

It reads the !TRNS header line to learn the column names, then exports every TRNS row beneath it. The CSV columns are whatever that header declared — for a standard transaction file that means TRNSID, TRNSTYPE, DATE, ACCNT, NAME, CLASS, AMOUNT, DOCNUM, MEMO, and CLEAR, in the file's own order.

Why is my transaction total on one row instead of split across categories?

IIF stores transactions in double-entry form: a TRNS line for the transaction as a whole, one or more SPL lines for the offsetting splits, and an ENDTRNS line to close it. Only the TRNS lines are exported, so each transaction becomes one row carrying its total and its bank or A/P account.

Why are the SPL amounts the opposite sign from the TRNS amount?

That is double-entry bookkeeping, not a quirk of the file. The TRNS and SPL lines of a transaction must sum to zero, so a $100 check appears as -100.00 on the TRNS line against the bank account and +100.00 on the SPL line against the expense account. Exporting only TRNS gives you the cash-side view.

How do I get a transaction-level IIF out of QuickBooks Desktop?

QuickBooks Desktop's built-in IIF export under File > Utilities > Export covers lists — chart of accounts, customers, vendors, items, employees. Transaction IIF files most often come from older QuickBooks versions, third-party utilities, or another system exporting for QuickBooks import. Any of them convert here as long as they contain TRNS rows.

What are the TRNSTYPE values I'll see in the output?

The type names match what QuickBooks calls the transaction: CHECK, DEPOSIT, BILL, INVOICE, PAYMENT, CREDIT CARD, TRANSFER, and GENERAL JOURNAL are the common ones. Filtering the CSV on this column is the quickest way to separate, say, every check written in a period from everything else.

Can't I just rename the .iif file to .csv?

No — IIF is tab-delimited and CSV is comma-delimited, so a rename gives you a spreadsheet with everything crammed into column A. Worse, the row types are interleaved, so even after splitting on tabs you would have header lines, transaction lines, and split lines stacked in one sheet with different meanings per row.

My file has ACCNT and CUST records — what happens to those?

They are ignored. An IIF file can carry chart-of-accounts rows, customer and vendor records, item lists, and transactions all in one document, each with its own header line. This converter extracts the transaction section only; a file with no TRNS rows produces no output.

Can I open the CSV in Excel or Google Sheets?

Yes. Double-clicking opens it in Excel, and Google Sheets takes it via File > Import > Upload. Watch the DATE column on the way in — Excel reads the MM/DD/YYYY dates QuickBooks writes according to your regional settings, so a non-US locale can misread the first twelve days of each month.

Why would I convert IIF back to CSV at all?

Usually to get at data that QuickBooks Desktop reports won't cut the way you need: pivoting spend by class across several years, handing a bookkeeper transactions without handing over the company file, reconciling against a system that speaks CSV, or auditing an IIF before importing it into a live company.