OFX vs QFX vs QBO — what's the difference?

All three formats — OFX, QFX and QBO — are variants of the same underlying standard. OFX (Open Financial Exchange) is the open standard created by a consortium of financial institutions. QFX and QBO are Intuit's proprietary extensions of OFX for Quicken and QuickBooks respectively.

The technical differences are minimal. In OFX 1.x SGML format (the most common), all three share the same transaction block structure. The differences are in the SONRS header: QFX adds INTU.BID and INTU.USERID; QBO adds INTU.BID without INTU.USERID; plain OFX has neither.

Practical guidance: if you need to import into QuickBooks Desktop, you need QBO with a valid INTU.BID. If you need Quicken, use QFX. For any other OFX-compatible software (GnuCash, Moneydance), use plain OFX. QBOConvert handles all six conversion directions between these three formats.

Convert a file now — free, no upload

Which format do you need?

  1. QuickBooks Desktop Web Connect: use .qbo with a valid INTU.BID.
  2. QuickBooks Online (web): use .ofx or .csv uploaded via Banking → Upload transactions.
  3. Quicken: use .qfx.
  4. GnuCash, Moneydance, other OFX-compatible apps: use .ofx.
  5. Not sure: try QBO first. If it fails, check the INTU.BID and override if needed.

Questions

Is OFX 2.x different from OFX 1.x?

Yes. OFX 2.x uses proper XML instead of SGML. The data model is largely the same but the syntax differs significantly. Banks that provide OFX 2.x downloads often also offer OFX 1.x for legacy compatibility. QBOConvert supports both.

Can I use a QBO file in Quicken?

Quicken can often read .qbo files but may not recognize the INTU.BID (which is calibrated for QuickBooks, not Quicken). Converting to .qfx with the Quicken-targeted INTU.BID is more reliable.

Why are there three formats instead of one?

OFX was designed as an open standard but Intuit added proprietary elements to drive use of their own products. The result is a fragmented ecosystem where the same transaction data requires different file wrappers depending on the application.

Try the converter