OFX to QFX Converter — For Quicken

Quicken reads QFX. It will not read the OFX most banks hand out, even though the two are nearly the same file — the difference is Intuit's <INTU.BID> tag, which Quicken checks for before anything else. This adds it and writes your OFX's transactions under it, with their ids, cheque numbers and the closing balance.

Not the file you need?

For Quicken, which refuses a plain OFX.

The one difference that matters

The two formats share their structure. This adds the tag Quicken requires and writes the same transactions under it.

The transactions carried across whole

Each transaction's date, amount, payee, memo, FITID and cheque number comes over from the OFX, each in its own tag, and so does the closing balance. Types finer than credit, debit and cheque become credit or debit, and the file is written as a checking account. Nothing is categorised or guessed.

Credit card files too

A card export uses a different wrapper element from a current account. Both are read; a converter that knows only the bank one finds nothing in a card file. The QFX this writes is a bank-account file, so pick the register you import it into.

What the QFX file contains

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

In your OFXIn the QFXHow
Nothing<INTU.BID>3000, the id Intuit registered for Wells Fargo - a common stand-in when a file names no bank - so the import may be labelled with that bank's name. An <INTU.BID> already in your OFX is kept instead.
<FITID><FITID>Your bank's id, kept. A FITID the file repeats gets a new one, so no transaction is dropped as a duplicate.
<DTPOSTED>, <TRNAMT><DTPOSTED>, <TRNAMT>The same date, YYYYMMDD, and the same signed amount. Where a transaction has no <DTPOSTED>, its <DTUSER> is used.
<NAME>, <MEMO><NAME>, <MEMO>Kept apart as the bank split them. A name longer than 32 characters, the most <NAME> holds, is cut there and written whole at the start of <MEMO>.
<CHECKNUM><CHECKNUM>Kept, up to 12 characters; a transaction the bank typed CHECK stays a CHECK.
<TRNTYPE><TRNTYPE>CREDIT, DEBIT or CHECK. DIRECTDEP, ATM, XFER, INT and the other finer types become CREDIT or DEBIT by the amount's sign.
<LEDGERBAL><LEDGERBAL>The closing balance and its date, as the OFX states them.
<CURDEF>, <ACCTID><CURDEF>, <ACCTID>Carried across unchanged.
<BANKID>, <ACCTTYPE><BANKID>, <ACCTTYPE>000000000 and CHECKING, whatever the OFX says. A savings or credit card OFX is written as a checking-account statement.

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: OFX

A made-up OFX from a credit union, with no Intuit bank id in it and the finer transaction types banks use: DIRECTDEP, ATM, CHECK, XFER and INT.

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>20260430120000<LANGUAGE>ENG</SONRS></SIGNONMSGSRSV1>
<BANKMSGSRSV1><STMTTRNRS><TRNUID>1<STATUS><CODE>0<SEVERITY>INFO</STATUS>
<STMTRS><CURDEF>USD
<BANKACCTFROM><BANKID>000000000<ACCTID>40017733<ACCTTYPE>CHECKING</BANKACCTFROM>
<BANKTRANLIST><DTSTART>20260401<DTEND>20260430
<STMTTRN><TRNTYPE>DIRECTDEP<DTPOSTED>20260401<TRNAMT>1820.00<FITID>CU20260401A<NAME>EXAMPLE CO PAYROLL</STMTTRN>
<STMTTRN><TRNTYPE>ATM<DTPOSTED>20260404<TRNAMT>-60.00<FITID>CU20260404A<NAME>SAMPLE BANK ATM 0000<MEMO>ATM WITHDRAWAL</STMTTRN>
<STMTTRN><TRNTYPE>CHECK<DTPOSTED>20260409<TRNAMT>-185.00<FITID>CU20260409A<CHECKNUM>3117<NAME>CHECK 3117</STMTTRN>
<STMTTRN><TRNTYPE>XFER<DTPOSTED>20260415<TRNAMT>-250.00<FITID>CU20260415A<NAME>TRANSFER TO SAVINGS 0000</STMTTRN>
<STMTTRN><TRNTYPE>INT<DTPOSTED>20260430<TRNAMT>0.42<FITID>CU20260430A<NAME>INTEREST PAID</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL><BALAMT>2086.77<DTASOF>20260430</LEDGERBAL>
</STMTRS></STMTTRNRS></BANKMSGSRSV1>
</OFX>

The output: QFX

The whole file. The writer puts everything after the header on one line; line breaks are added here before each transaction so it can be read.

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

<OFX><SIGNONMSGSRSV1><SONRS><STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS><DTSERVER>20260430120000</DTSERVER><LANGUAGE>ENG</LANGUAGE><INTU.BID>3000</INTU.BID></SONRS></SIGNONMSGSRSV1>
<BANKMSGSRSV1><STMTTRNRS><TRNUID>1</TRNUID><STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS>
<STMTRS><CURDEF>USD</CURDEF><BANKACCTFROM><BANKID>000000000</BANKID><ACCTID>40017733</ACCTID><ACCTTYPE>CHECKING</ACCTTYPE></BANKACCTFROM>
<BANKTRANLIST><DTSTART>20260401</DTSTART><DTEND>20260430</DTEND>
<STMTTRN><TRNTYPE>CREDIT</TRNTYPE><DTPOSTED>20260401</DTPOSTED><TRNAMT>1820.00</TRNAMT><FITID>CU20260401A</FITID><NAME>EXAMPLE CO PAYROLL</NAME></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260404</DTPOSTED><TRNAMT>-60.00</TRNAMT><FITID>CU20260404A</FITID><NAME>SAMPLE BANK ATM 0000</NAME><MEMO>ATM WITHDRAWAL</MEMO></STMTTRN>
<STMTTRN><TRNTYPE>CHECK</TRNTYPE><DTPOSTED>20260409</DTPOSTED><TRNAMT>-185.00</TRNAMT><FITID>CU20260409A</FITID><CHECKNUM>3117</CHECKNUM><NAME>CHECK 3117</NAME></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260415</DTPOSTED><TRNAMT>-250.00</TRNAMT><FITID>CU20260415A</FITID><NAME>TRANSFER TO SAVINGS 0000</NAME></STMTTRN>
<STMTTRN><TRNTYPE>CREDIT</TRNTYPE><DTPOSTED>20260430</DTPOSTED><TRNAMT>0.42</TRNAMT><FITID>CU20260430A</FITID><NAME>INTEREST PAID</NAME></STMTTRN>
</BANKTRANLIST><LEDGERBAL><BALAMT>2086.77</BALAMT><DTASOF>20260430</DTASOF></LEDGERBAL>
</STMTRS></STMTTRNRS></BANKMSGSRSV1></OFX>

Questions about converting OFX to QFX

Why will Quicken not import my bank's OFX?

Quicken's Web Connect import checks for Intuit's <INTU.BID> tag, which names the bank, and the OFX most banks hand out does not carry one. This QFX does: the id your OFX states, or 3000 when it states none. The transactions under it are the ones in your OFX.

Will Quicken add transactions it has already downloaded?

Not ones with the same id. Each transaction keeps the FITID your bank gave it, and Quicken does not add a transaction whose FITID it has already downloaded to that account. Converting the same OFX twice gives the same file both times.

Can I convert a savings or credit card OFX?

Yes. It is read, but the QFX is always written as a checking-account statement. When Quicken asks where the transactions go, link them to the account you mean rather than letting it create a new checking account.

Why might Quicken still refuse the QFX?

Quicken checks every Web Connect file online before importing it: it needs an active Quicken subscription, and the bank id in <INTU.BID> must belong to a bank that offers Quicken downloads - your bank's own id where the OFX states one, otherwise 3000, Wells Fargo's.

Related guides