QFX to OFX Converter — Plain OFX, without Intuit's tag

A QFX is an OFX with Intuit's <INTU.BID> tag in it, made for Quicken. This writes the same transactions as plain OFX 1.0.2 without the tag, for software whose import asks for an .ofx — and turns a QFX in the newer XML form into the older SGML form most bank downloads use.

Not the file you need?

Intuit's tag taken out, for software that asks for an .ofx rather than a .qfx.

The tag Quicken needs, taken out

<INTU.BID> is what makes a QFX a QFX, and it belongs in a QFX or a QBO and nowhere else. The OFX this writes leaves it out.

The transactions carried across

Each date, amount, payee, memo, FITID and cheque number comes over from your QFX, with its closing balance. Nothing is categorised or guessed on the way.

Both dialects read

Whether your QFX is the older SGML form or the newer XML one, both are read, and the OFX is written as 1.0.2 SGML. Most files in the wild are the older form, which no XML parser will open.

What the OFX file contains

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

In your QFXIn the OFXHow
<INTU.BID>Not writtenLeft out: it belongs in QFX and QBO files.
<FITID><FITID>Your bank's transaction id, kept. A FITID the file repeats gets a new one.
<DTPOSTED>, <TRNAMT><DTPOSTED>, <TRNAMT>The same date, YYYYMMDD, and the same signed amount.
<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; a transaction the bank typed CHECK stays a CHECK.
<TRNTYPE><TRNTYPE>CREDIT, DEBIT or CHECK. Finer types such as POS or ATM become CREDIT or DEBIT by the amount's sign.
<LEDGERBAL><LEDGERBAL>The closing balance and its date, as the QFX states them.
<CURDEF>, <ACCTID><CURDEF>, <ACCTID>Carried across unchanged.
<BANKID>, <ACCTTYPE><BANKID>, <ACCTTYPE>000000000 and CHECKING, whatever the QFX says. A credit card QFX is written as a checking-account statement.
The headerOFXHEADER:100, VERSION:102Always OFX 1.0.2 SGML, declared CHARSET:1252 and written in it, whichever form the QFX was in.

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 in the newer XML form of OFX (2.2), with a bank id (54321, invented) in <INTU.BID>.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?OFX OFXHEADER="200" VERSION="220" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
<SIGNONMSGSRSV1><SONRS><STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS><DTSERVER>20260420120000</DTSERVER><LANGUAGE>ENG</LANGUAGE><INTU.BID>54321</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>246813579</ACCTID><ACCTTYPE>CHECKING</ACCTTYPE></BANKACCTFROM>
<BANKTRANLIST><DTSTART>20260401</DTSTART><DTEND>20260420</DTEND>
<STMTTRN><TRNTYPE>CREDIT</TRNTYPE><DTPOSTED>20260401</DTPOSTED><TRNAMT>2400.00</TRNAMT><FITID>X0401-77</FITID><NAME>EXAMPLE CO PAYROLL</NAME></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260407</DTPOSTED><TRNAMT>-31.80</TRNAMT><FITID>X0407-78</FITID><NAME>SAMPLE BOOKSHOP &amp; CAFE</NAME><MEMO>CARD 0000</MEMO></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260420</DTPOSTED><TRNAMT>-95.00</TRNAMT><FITID>X0420-79</FITID><NAME>MADE-UP ELECTRIC COOPERATIVE</NAME></STMTTRN>
</BANKTRANLIST>
<LEDGERBAL><BALAMT>3518.40</BALAMT><DTASOF>20260420</DTASOF></LEDGERBAL>
</STMTRS></STMTTRNRS></BANKMSGSRSV1>
</OFX>

The output: OFX

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>20260420120000</DTSERVER><LANGUAGE>ENG</LANGUAGE></SONRS></SIGNONMSGSRSV1>
<BANKMSGSRSV1><STMTTRNRS><TRNUID>1</TRNUID><STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS>
<STMTRS><CURDEF>USD</CURDEF><BANKACCTFROM><BANKID>000000000</BANKID><ACCTID>246813579</ACCTID><ACCTTYPE>CHECKING</ACCTTYPE></BANKACCTFROM>
<BANKTRANLIST><DTSTART>20260401</DTSTART><DTEND>20260420</DTEND>
<STMTTRN><TRNTYPE>CREDIT</TRNTYPE><DTPOSTED>20260401</DTPOSTED><TRNAMT>2400.00</TRNAMT><FITID>X0401-77</FITID><NAME>EXAMPLE CO PAYROLL</NAME></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260407</DTPOSTED><TRNAMT>-31.80</TRNAMT><FITID>X0407-78</FITID><NAME>SAMPLE BOOKSHOP &amp; CAFE</NAME><MEMO>CARD 0000</MEMO></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260420</DTPOSTED><TRNAMT>-95.00</TRNAMT><FITID>X0420-79</FITID><NAME>MADE-UP ELECTRIC COOPERATIVE</NAME></STMTTRN>
</BANKTRANLIST><LEDGERBAL><BALAMT>3518.40</BALAMT><DTASOF>20260420</DTASOF></LEDGERBAL>
</STMTRS></STMTTRNRS></BANKMSGSRSV1></OFX>

Questions about converting QFX to OFX

What is the difference between a QFX and an OFX?

A QFX is an OFX with Intuit's <INTU.BID> tag in it, which Quicken requires, and a .qfx name. This writes the same transactions without the tag, as OFX 1.0.2, named .ofx.

Does GnuCash need a plain OFX?

No. GnuCash's import - File, Import, Import OFX/QFX - takes an .ofx or a .qfx, so try your QFX there first. Convert it when the software you are importing into asks for an .ofx, or when your QFX is in the XML form and the importer reads only the older one.

Are my bank's transaction ids kept?

Yes. Each transaction keeps the FITID in your QFX, which is what software that remembers its imports matches on. Converting the same QFX twice gives the same file, ids included.

Can I convert a credit card QFX?

Yes. It is read, and written as a checking-account statement, so choose the card account yourself when your software asks where the transactions go.

Related guides