How to convert a bank CSV to an IIF file for QuickBooks Desktop
IIF (Intuit Interchange Format) is QuickBooks Desktop's own import format. Intuit describes these files as ASCII text, TSV (Tab-Separated Value) files that QuickBooks Desktop uses to import or export lists or transactions
. It is the format to reach for when Web Connect is refused — in particular on a Desktop version past its end of service, which is what Intuit's own support agents point people at.
🔒 Convert your CSV to IIF now — free, runs in your browser, nothing uploaded.
The steps
- Export a CSV from your bank. Any layout. Comma, semicolon or tab separated, and junk rows above the header are fine.
- Drop it into the converter. QBOKit works out the delimiter, finds the header row and guesses the date, description and amount columns.
- Check the columns — in particular whether the dates are day-first or month-first.
- Pick .IIF as the output.
- Type both account names exactly as they appear in QuickBooks. The bank account the transactions belong to, and a second account for the other side of each entry. There is no default and the file will not be written without them — the next section explains why that is deliberate.
- Import it in QuickBooks Desktop:
File → Utilities → Import → IIF Files.
The account-name trap, and why we make you type both names
A wrong account name is not refused. It silently adds an account to your books. Intuit's own IIF overview states it plainly: If you import a transaction with an account that is not already created in the QuickBooks data file, that account will be created as a new bank account.
That is worse than an error message, because nothing tells you it happened. A single typo — Business Checking against Business Chequing — leaves you with two bank accounts, one of them holding every transaction you just imported, and a reconciliation that will not balance until you find it.
So the converter has no default account name and will not guess one. Open QuickBooks, look at your chart of accounts, and copy both names across character for character. The second account is where the other half of each double entry lands; Uncategorized Expense is the usual choice, and you re-categorise from there.
Why the statement text goes in MEMO and never in NAME
The same rule that creates accounts applies to the payee list. NAME in an IIF transaction is a QuickBooks name-list entry, so an unrecognised NAME gets created too. Raw bank descriptions are nearly all distinct — CARD PURCHASE 04/01 SHELL 1423, CARD PURCHASE 04/07 SHELL 2210 — so writing them into NAME would add one new payee per transaction, hundreds of them, to a list you then have to clean by hand.
QBOKit therefore writes the description into MEMO and leaves NAME empty. You still see the description on every transaction; your name list is untouched. Check this before using any other converter: it is an easy thing to get wrong and a tedious thing to undo.
What an IIF file actually looks like
Three header lines beginning with !, then one balanced double entry per transaction. The separator is a real tab character, not spaces:
!TRNS TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO
!SPL TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO
!ENDTRNS
TRNS CHECK 04/01/2026 Business Checking -82.40 DIRECT DEBIT ACME LTD
SPL CHECK 04/01/2026 Uncategorized Expense 82.40 DIRECT DEBIT ACME LTD
ENDTRNS
TRNS DEPOSIT 04/02/2026 Business Checking 2000.00 SALARY PAYMENT APRIL
SPL DEPOSIT 04/02/2026 Uncategorized Expense -2000.00 SALARY PAYMENT APRIL
ENDTRNS
Money out of the bank is written as a CHECK, money in as a DEPOSIT. The TRNS line carries the amount on your bank account and the SPL line carries the opposite amount on the second account, so every entry balances to zero.
Because the tab is the delimiter, a tab or a line break inside a bank description would shift every later column on that row and quietly corrupt the import. QBOKit strips those characters out of each field rather than trying to escape them.
IIF has no transaction ids
Nothing in an IIF file tells QuickBooks it has seen a transaction before. A .QBO Web Connect file gives every transaction a FITID, and QuickBooks uses it to skip duplicates. IIF has no equivalent field, so if you import January to March and then February to April, February and March will land twice and nothing will warn you.
Import one statement period at a time, and check the last date you imported before you import the next file. If your Desktop version still accepts Web Connect, convert to QBO instead and keep the duplicate protection. The same mechanism works against you in the other direction too, which is its own problem: see QuickBooks will not re-import a Web Connect file.
IIF, QBO or QIF for QuickBooks Desktop?
| Format | Desktop takes it? | Transaction ids | Use it when |
|---|---|---|---|
| .QBO | Yes, via Web Connect | Yes | Your version still accepts Web Connect. This is the first thing to try. |
| .IIF | Yes, via File → Utilities → Import | No | Web Connect is refused, or your version is past its end of service. |
| .QIF | No | No | Never for Desktop. QIF is for Quicken, Xero and GnuCash. |
QuickBooks Online does not import IIF at all. If you are on QBO rather than Desktop, upload a .QBO file or a cleaned-up CSV instead.
What we fix in your CSV on the way
- Day-first versus month-first decided across the whole date column, not per row, so a UK or European export is not half-read as American.
1,234.56and1.234,56both read correctly, plus(12.34),12.34-andCR/DRsuffixes.- Separate debit and credit columns merged into one signed amount, which is what decides
CHECKversusDEPOSIT. - Preamble rows above the real header skipped, byte-order marks and currency symbols stripped.
- Converting a
.QBOor.OFXfile to IIF instead of a CSV? The cheque number is carried intoDOCNUMand the bank's own memo is appended to the description.
What we cannot claim
We have not been able to test these files against a QuickBooks Desktop install past its end-of-service date, because we do not have one. The output follows the headers Intuit documents and every file is checked by our own test suite for structure and for a balanced double entry, but follows Intuit's documented format
is a smaller claim than QuickBooks accepted it
, and we would rather say so than imply the larger one. If yours is refused, tell us what QuickBooks said — the error text is the single most useful thing anyone could send us.
Or see it work on a sample statement — no file of your own needed.
Sources
- IIF Overview: import kit, sample files, and headers — Intuit. The definition of an IIF file, the header rows, and the account-creation warning quoted above.