VouchRow

Guide

IIF vs QBO for QuickBooks Desktop

Updated 10 min read

QuickBooks Desktop accepts both, and they do not do the same thing. One goes through the banking feed and waits for you; the other writes straight into the register, with only a format check standing between the file and your books.

The fundamental difference

A .qbo file is a Web Connect download: OFX with Intuit’s bank ID in it. It enters through Bank Feeds, where QuickBooks matches incoming transactions against ones it already holds, recognises repeats by their transaction IDs, and lets you review and categorise before anything reaches the register.

An .iif file is Intuit Interchange Format: a tab-delimited text file that describes complete transactions, both sides of each, and writes them directly into the register. There is no feed, no matching against existing entries, and no step where you accept or exclude individual rows. What is in the file becomes what is in the books.

QBO (Web Connect)IIF
MenuFile → Utilities → Import → Web Connect FilesFile → Utilities → Import → IIF Files
Needs a bank IDYes, INTU.BIDNo
Goes through Bank Feeds for reviewYesNo, straight to the register
Duplicate detectionYes, by FITIDNone
Who decides the categoryYou, in Bank FeedsThe file
Splits, classes, non-bank transactionsNoYes
Undoing a bad importExclude or delete from the feedDelete transaction by transaction, or restore a backup
QuickBooks OnlineAcceptedNot accepted
QBO and IIF in QuickBooks Desktop

What that means for a mistake

A bad QBO import is excluded from the feed in a couple of clicks. A bad IIF import is already in the register, possibly categorised, possibly reconciled, and has to be deleted transaction by transaction or rolled back from a backup. Intuit’s own instructions say to back up the company file before importing an IIF, and that advice is not a formality.

Because what QuickBooks does with an IIF transaction that does not balance depends on the version and the import option chosen, a converter that writes both sides of every entry so the file balances is doing work you would otherwise have to check by hand.

What an IIF file looks like

IIF is a family of record types, each introduced by a header row that starts with an exclamation mark and names the columns for the rows that follow. For bank transactions three matter: TRNS carries the bank side, SPL carries the other side, and ENDTRNS closes the transaction. The amounts on the TRNS line and its SPL lines must sum to zero.

!TRNS  TRNSID  TRNSTYPE  DATE        ACCNT                  NAME   AMOUNT  MEMO        CLEAR
!SPL   SPLID   TRNSTYPE  DATE        ACCNT                  NAME   AMOUNT  MEMO        CLEAR
!ENDTRNS
TRNS           CHECK     03/15/2026  Checking               Shell  -45.20  Fuel        N
SPL            CHECK     03/15/2026  Uncategorized Expense  Shell   45.20  Fuel        N
ENDTRNS
A card purchase as IIF (columns are separated by tabs)
ColumnWhat goes in it
TRNSTYPECHECK for money out, DEPOSIT for money in; CREDIT CARD for a card charge and CCARD REFUND for a card credit; GENERAL JOURNAL for journals
DATEMM/DD/YYYY. IIF has no locale setting, so day-first dates are misread
ACCNTAccount name exactly as in the chart of accounts: the bank on TRNS, the other side on SPL
NAMEPayee, matched against the customer, vendor and other-name lists
AMOUNTSigned. The SPL amounts are the negation of the TRNS amount
DOCNUMCheque or reference number
MEMOFree description
CLEARY or N. Leave it N
CLASSOptional, where the company file uses classes
The columns that matter for bank transactions

Balance is the file’s job

Every IIF transaction is a small double entry, and the TRNS and SPL amounts have to net to exactly zero. What happens when they do not is less predictable than it should be. Integrators who generate IIF report QuickBooks refusing such transactions with a “transaction not in balance” message, rounding differences included. QuickBooks 2019 and later scan the file before importing and set failed transactions aside in a new IIF file marked with the errors, while the “Import it for me. I’ll fix it later” option skips that review, which Intuit itself does not recommend.

The awkward outcome is not a clean rejection, which you notice. It is a partial import: the good transactions go in, the bad ones are set aside or reported in a window that is easy to close, and the register is now out by whatever was left behind. So treat balancing as something the file must get right before QuickBooks sees it, and compare the register against the statement after every import. Tally, by comparison, is strict and simply refuses an unbalanced voucher.

Names decide where everything lands

IIF refers to accounts, payees and classes by name rather than by any internal ID. When a name in the file does not match one in the company file, QuickBooks generally adds it to the list rather than stopping. A bank account spelled slightly differently from yours becomes a second bank account, and every transaction posts there while your real account does not move.

Copy names from the Chart of Accounts exactly, including any account numbers prefixed to them, and check the Chart of Accounts after the first import for anything new.

No escaping, either

IIF is tab-delimited with no quoting or escape mechanism of any kind. A tab inside a description shifts every column after it by one, and the result is not a malformed file that fails to import; it is a well-formed file whose columns are wrong, which imports cleanly. Line breaks inside a value do the same to rows. Values have to be stripped rather than escaped, because there is nothing to escape with.

Editing an IIF in Excel brings its own hazards. Excel reformats dates to the computer’s locale and can save with the wrong delimiter or encoding. If you must edit one by hand, use a plain text editor, and if Excel is unavoidable, save as tab-delimited text and check the dates afterwards.

What IIF can express that QBO cannot

For all its hazards, IIF is the more expressive format. A QBO transaction is a bank movement and nothing more: QuickBooks decides where the other side goes when you categorise it in the feed. An IIF transaction states both sides itself.

  • Splits across several accounts. One TRNS with several SPL lines posts a single payment across multiple expense accounts.
  • The category, decided in the file rather than in the feed.
  • Classes, where the company file uses them.
  • Non-bank transaction types, such as bills, invoices and journal entries, which the banking feed has no concept of at all.

That expressiveness is exactly why it bypasses the feed. There is nothing for the feed to do: the file has already made every decision the review step exists to let you make. A converter that cannot know your chart of accounts should therefore not pretend to, and should post the other side to a holding account, such as Uncategorized Income or Uncategorized Expense, that you clear afterwards.

The CLEAR column, and why it should stay N

Both record types carry a CLEAR field marking a transaction as cleared. It is tempting to set it: the transactions came from a bank statement, so they have obviously cleared the bank.

Do not. Cleared in QuickBooks means reconciled within QuickBooks, by you, against a statement. Importing rows pre-marked as cleared removes them from the next reconciliation, which is the one control that would have caught a bad import in the first place. Leave it N and reconcile normally.

When a QBO stops being an option

Two situations push Desktop users to IIF even when they would rather use QBO. The first is a bank with no Intuit bank ID, for which no valid QBO can exist. The second is a QuickBooks Desktop version past its support date. Intuit retires online banking services for each Desktop release on a fixed schedule, roughly three years after release, and from that date Web Connect files stop importing even though the software itself keeps running.

IIF import is a local utility rather than an online banking service, which is why it is the usual route for those files. It is a workaround with the trade-offs above, not a like-for-like replacement, so the date-range check matters more, not less.

Which to use

  • QBO, whenever your bank has an Intuit ID and your Desktop version is supported. The feed and its duplicate detection are worth the effort of finding the number once.
  • IIF when the bank is not in Web Connect, when your Desktop version can no longer import Web Connect files, or when you genuinely need splits, classes or non-bank transactions.
  • Never IIF for QuickBooks Online. It has no IIF import at all; use QBO, OFX or a three-column CSV there.
  1. 1Back up the company file and switch to single-user mode, as Intuit asks.
  2. 2Check the file’s date range against what is already in the register for that account.
  3. 3Import through File → Utilities → Import → IIF Files and take the review option rather than the bypass.
  4. 4Read the result window before closing it. If anything was set aside, fix it in the error file QuickBooks writes and import that, not the original.
  5. 5Reconcile the account against the statement before doing anything else with the period.

FAQ

Related questions

What is an IIF file?

Intuit Interchange Format: a tab-delimited text file QuickBooks Desktop uses to import lists and transactions. Each transaction is a TRNS line, one or more SPL lines and an ENDTRNS line, with header rows starting “!” declaring the columns.

Can QuickBooks Online import IIF files?

No. IIF is a QuickBooks Desktop format. QuickBooks Online imports bank activity from QBO, QFX, OFX or CSV files, and now from PDF or image statements through Upload from file.

How do I import an IIF file into QuickBooks Desktop?

Back up the company file, switch to single-user mode, then go to File → Utilities → Import → IIF Files and choose the file. In QuickBooks 2019 and later, prefer the option that reviews the file over the “Import it for me” bypass.

Is IIF or QBO better for bank transactions?

QBO, when you can use it. It goes through Bank Feeds for review and recognises repeats. IIF writes straight into the register with no duplicate detection, so it is best kept for banks without an Intuit ID or Desktop versions that no longer import Web Connect files.

Why can’t my QuickBooks Desktop import QBO files any more?

If the file is fine, the usual cause is that your Desktop version has passed its support date, after which Intuit turns off online banking services, including Web Connect imports. Upgrading restores them; IIF is the fallback for the version you have.

Does an IIF file need a bank ID?

No. IIF names the account by its name in your chart of accounts and has no concept of an institution, which is why it works for banks that are not enrolled in Web Connect.

Skip the import errors next time

Convert statements into files your software accepts, with every row checked against the running balance.