QBO to OFX Converter — QuickBooks file to plain OFX

A QBO is OFX with Intuit's <INTU.BID> tag in it and a .qbo name, made for QuickBooks. When your bank's download menu offers QuickBooks and the software you use asks for OFX, this writes the same transactions as plain OFX 1.0.2: the tag left out, and the bank's own ids, cheque numbers and closing balance kept.

Not the file you need?

A QuickBooks Web Connect file as plain OFX, for software that does not take a .qbo.

Intuit's tag left out

<INTU.BID> belongs in a QBO or a QFX. The OFX this writes does not carry it, and it downloads with an .ofx name, which is what an import asking for OFX looks for.

The bank's ids kept

Each transaction keeps the FITID in your QBO, so software that remembers what it has imported can recognise a transaction it has seen. Only an id the file itself repeats is replaced.

The closing balance carried

The QBO's <LEDGERBAL>, its closing balance and the date of it, goes into the OFX as stated. Nothing is worked out from the transactions.

What the OFX file contains

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

In your QBOIn the OFXHow
<INTU.BID>Not writtenLeft out: it belongs in QBO and QFX files.
<FITID><FITID>Your bank's 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 QBO states them.
<CURDEF>, <ACCTID><CURDEF>, <ACCTID>Carried across unchanged.
<BANKID>, <ACCTTYPE><BANKID>, <ACCTTYPE>000000000 and CHECKING, whatever the QBO says. A credit card QBO 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: QBO

A made-up QBO Web Connect file carrying a bank id (12345, invented) in <INTU.BID>, with a cheque.

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>20260616120000<LANGUAGE>ENG<INTU.BID>12345</SONRS></SIGNONMSGSRSV1>
<BANKMSGSRSV1><STMTTRNRS><TRNUID>1<STATUS><CODE>0<SEVERITY>INFO</STATUS>
<STMTRS><CURDEF>USD
<BANKACCTFROM><BANKID>000000000<ACCTID>777000222<ACCTTYPE>CHECKING</BANKACCTFROM>
<BANKTRANLIST><DTSTART>20260601<DTEND>20260616
<STMTTRN><TRNTYPE>CREDIT<DTPOSTED>20260601<TRNAMT>3100.00<FITID>QB0601001<NAME>EXAMPLE CO PAYROLL</STMTTRN>
<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20260603<TRNAMT>-27.50<FITID>QB0603001<NAME>SAMPLE PARKING GARAGE<MEMO>CARD 0000</STMTTRN>
<STMTTRN><TRNTYPE>CHECK<DTPOSTED>20260609<TRNAMT>-1500.00<FITID>QB0609001<CHECKNUM>774<NAME>CHECK 774</STMTTRN>
<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20260616<TRNAMT>-64.20<FITID>QB0616001<NAME>MADE-UP PHONE & DATA CO</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL><BALAMT>4108.30<DTASOF>20260616</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>20260616120000</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>777000222</ACCTID><ACCTTYPE>CHECKING</ACCTTYPE></BANKACCTFROM>
<BANKTRANLIST><DTSTART>20260601</DTSTART><DTEND>20260616</DTEND>
<STMTTRN><TRNTYPE>CREDIT</TRNTYPE><DTPOSTED>20260601</DTPOSTED><TRNAMT>3100.00</TRNAMT><FITID>QB0601001</FITID><NAME>EXAMPLE CO PAYROLL</NAME></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260603</DTPOSTED><TRNAMT>-27.50</TRNAMT><FITID>QB0603001</FITID><NAME>SAMPLE PARKING GARAGE</NAME><MEMO>CARD 0000</MEMO></STMTTRN>
<STMTTRN><TRNTYPE>CHECK</TRNTYPE><DTPOSTED>20260609</DTPOSTED><TRNAMT>-1500.00</TRNAMT><FITID>QB0609001</FITID><CHECKNUM>774</CHECKNUM><NAME>CHECK 774</NAME></STMTTRN>
<STMTTRN><TRNTYPE>DEBIT</TRNTYPE><DTPOSTED>20260616</DTPOSTED><TRNAMT>-64.20</TRNAMT><FITID>QB0616001</FITID><NAME>MADE-UP PHONE &amp; DATA CO</NAME></STMTTRN>
</BANKTRANLIST><LEDGERBAL><BALAMT>4108.30</BALAMT><DTASOF>20260616</DTASOF></LEDGERBAL>
</STMTRS></STMTTRNRS></BANKMSGSRSV1></OFX>

Questions about converting QBO to OFX

Why convert a QBO to OFX?

When your bank offers a QuickBooks download and the software you use asks for OFX. GnuCash's import, for one, asks for a file ending .ofx or .qfx. The OFX holds the transactions in the QBO, without Intuit's tag.

Is anything in the QBO left out?

Intuit's <INTU.BID>, which plain OFX does not carry, and the <FI> block naming the bank. The routing number in <BANKID> becomes 000000000, types finer than credit, debit and cheque become credit or debit, and a transaction with no usable date or amount is left out and reported in the preview.

Can I convert a credit card QBO?

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.

Will QuickBooks still import the OFX?

Not through Web Connect, which looks for the <INTU.BID> this leaves out. Keep the QBO for QuickBooks and use the OFX for everything else.

Related guides