QFX to IIF Converter — Quicken file to QuickBooks Desktop

Your bank offers a Quicken (QFX) download and your books are in QuickBooks Desktop? This turns the QFX into an IIF file, which QuickBooks Desktop imports under File, Utilities, Import, IIF Files, posting each transaction straight into the register rather than through Bank Feeds.

Not the file you need?

A Quicken download posted straight into a QuickBooks Desktop register.

A balanced pair per transaction

Each becomes a TRNS line for the bank side and an SPL line carrying the same amount with the opposite sign, which is how an IIF records a transaction.

The cheque number in the Num field

A QFX's <CHECKNUM> goes into DOCNUM, the field QuickBooks shows as Num. Without one the bank's FITID goes there instead, or onto the end of the memo when it is longer than the 11 characters Num holds.

The accounts left for you to name

A QFX names a bank and an account number, not the QuickBooks accounts the two sides belong in. Both are written as plainly unset placeholders, because QuickBooks creates any account an IIF names.

What the IIF file contains

Field by field, where each part of the download comes from.

In your QFXIn the IIFHow
<DTPOSTED>DATEWritten MM/DD/YYYY.
<TRNAMT>TRNSTYPE, AMOUNTMoney out is CHECK, negative on the bank line, card payments and transfers included; money in is DEPOSIT, positive. The SPL line carries the opposite sign.
<NAME>, <MEMO>NAME, MEMOThe two joined. NAME holds the first 41 characters, the most a QuickBooks name holds, even where that cuts a word; MEMO holds the whole description, up to 96 characters.
<CHECKNUM>, else <FITID>DOCNUMUp to 11 characters. A longer id goes at the end of MEMO, after "Ref", rather than being cut.
<CURDEF>ACCNT on TRNSIn the placeholder, "*** SET BANK ACCOUNT (USD) ***", since IIF has no currency field. Replace it with your bank account's name.
NothingACCNT on SPL"*** SET CATEGORY ACCOUNT ***", for the account the other side belongs in.
<INTU.BID>, <ACCTID>Not writtenIIF has no place for the bank's Intuit id or the account number: the account is the one you name in ACCNT.
<LEDGERBAL>No balanceIIF carries no balance. The preview states the QFX's closing balance, to check the register against after importing.
NothingTRNSID, SPLIDLeft empty, so QuickBooks numbers the transactions itself.

Sample output

Made by this converter's own code from the made-up file shown. The output is the file it writes, not retyped.

The input: QFX

A made-up QFX whose transaction ids are twelve characters long, with a cheque and a payee split across NAME and MEMO.

OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

<OFX>
<SIGNONMSGSRSV1><SONRS><STATUS><CODE>0<SEVERITY>INFO</STATUS><DTSERVER>20260317120000<LANGUAGE>ENG<INTU.BID>12345</SONRS></SIGNONMSGSRSV1>
<BANKMSGSRSV1><STMTTRNRS><TRNUID>1<STATUS><CODE>0<SEVERITY>INFO</STATUS>
<STMTRS><CURDEF>USD
<BANKACCTFROM><BANKID>000000000<ACCTID>864209753<ACCTTYPE>CHECKING</BANKACCTFROM>
<BANKTRANLIST><DTSTART>20260302<DTEND>20260317
<STMTTRN><TRNTYPE>CREDIT<DTPOSTED>20260302<TRNAMT>2200.00<FITID>202603020001<NAME>EXAMPLE CO PAYROLL</STMTTRN>
<STMTTRN><TRNTYPE>CHECK<DTPOSTED>20260305<TRNAMT>-640.00<FITID>202603050001<CHECKNUM>1046<NAME>CHECK 1046</STMTTRN>
<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20260310<TRNAMT>-112.47<FITID>202603100001<NAME>SAMPLE OFFICE SUPPLY<MEMO>DEBIT CARD PURCHASE 0000</STMTTRN>
<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20260317<TRNAMT>-89.99<FITID>202603170001<NAME>FICTIONAL INTERNET SERVICE</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL><BALAMT>1980.64<DTASOF>20260317</LEDGERBAL>
</STMTRS></STMTTRNRS></BANKMSGSRSV1>
</OFX>

The output: IIF

The whole file.

!TRNS	TRNSID	TRNSTYPE	DATE	ACCNT	NAME	CLASS	AMOUNT	DOCNUM	MEMO
!SPL	SPLID	TRNSTYPE	DATE	ACCNT	NAME	CLASS	AMOUNT	DOCNUM	MEMO
!ENDTRNS
TRNS		DEPOSIT	03/02/2026	*** SET BANK ACCOUNT (USD) ***	EXAMPLE CO PAYROLL		2200.00		EXAMPLE CO PAYROLL Ref 202603020001
SPL		DEPOSIT	03/02/2026	*** SET CATEGORY ACCOUNT ***	EXAMPLE CO PAYROLL		-2200.00		EXAMPLE CO PAYROLL Ref 202603020001
ENDTRNS
TRNS		CHECK	03/05/2026	*** SET BANK ACCOUNT (USD) ***	CHECK 1046		-640.00	1046	CHECK 1046
SPL		CHECK	03/05/2026	*** SET CATEGORY ACCOUNT ***	CHECK 1046		640.00	1046	CHECK 1046
ENDTRNS
TRNS		CHECK	03/10/2026	*** SET BANK ACCOUNT (USD) ***	SAMPLE OFFICE SUPPLY - DEBIT CARD PURCHAS		-112.47		SAMPLE OFFICE SUPPLY - DEBIT CARD PURCHASE 0000 Ref 202603100001
SPL		CHECK	03/10/2026	*** SET CATEGORY ACCOUNT ***	SAMPLE OFFICE SUPPLY - DEBIT CARD PURCHAS		112.47		SAMPLE OFFICE SUPPLY - DEBIT CARD PURCHASE 0000 Ref 202603100001
ENDTRNS
TRNS		CHECK	03/17/2026	*** SET BANK ACCOUNT (USD) ***	FICTIONAL INTERNET SERVICE		-89.99		FICTIONAL INTERNET SERVICE Ref 202603170001
SPL		CHECK	03/17/2026	*** SET CATEGORY ACCOUNT ***	FICTIONAL INTERNET SERVICE		89.99		FICTIONAL INTERNET SERVICE Ref 202603170001
ENDTRNS

Questions about converting QFX to IIF

Why convert a QFX to IIF rather than to QBO?

A QBO goes through Bank Feeds, where each transaction waits to be matched or added and QuickBooks recognises a FITID it has seen. An IIF posts straight into the register with no matching at all, which suits a batch of history or a company file that does not use Bank Feeds.

Is my bank's transaction id kept?

In the Num field when it is 11 characters or fewer, otherwise at the end of the memo after "Ref". QuickBooks matches on neither, so importing the file twice enters everything twice: back up the company file and import it once.

Do my Quicken categories come across?

No. A QFX has no category field, so every SPL line posts to *** SET CATEGORY ACCOUNT ***. Replace that with one account for the whole file before importing, or with a holding account you recategorise from in QuickBooks.

What do I replace the placeholders with?

Your bank account's name exactly as your chart of accounts spells it, in place of *** SET BANK ACCOUNT (USD) ***, and the account the other side belongs in. Do it in a text editor before importing: QuickBooks creates any account an IIF names, so leaving them in adds two accounts called that.

Related guides