OFX, QFX, QBO and QIF: Which Format Does Your Software Want?

Four formats, three nearly identical, and the wrong one is rejected with no useful error. Which software takes which, and the one tag that decides it.

Your bank offers a download. The menu says OFX, or QFX, or QBO, or QIF, and your accounting software wants one specific one of those. Pick wrong and you get an error that does not tell you what is wrong.

Here is the part nobody explains: three of these four are the same format. OFX, QFX and QBO are one specification with different labels, and the entire difference between them is a handful of characters near the top of the file.

The short answer

Your softwareAsk forIf it is not offered
QuickBooks OnlineQBO, QFX or CSVUpload from file also reads a PDF statement; a CSV has to have its columns mapped
QuickBooks DesktopQBO, or IIFIt has no bank CSV import: QBO for bank feeds, IIF to post directly
QuickenQFXConvert from OFX — Quicken refuses plain OFX
XeroCSV or OFXEither is well supported
GnuCashOFX (plain)It may refuse a QFX carrying Intuit tags
MYOBQIFConvert from anything
SageCSV or OFXCheck which your version takes
TallyPrimeXMLNothing else imports as vouchers
A spreadsheetCSV or ExcelNever a ledger format

OFX is the actual format

Open Financial Exchange is an open specification from the late 1990s. It describes a statement: an account, a date range, a list of transactions, a closing balance. Everything else on this page is OFX wearing a hat.

There are two versions in the wild and they look nothing alike. OFX 1.x is SGML — a format where tags open and never close:

`<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20240301<TRNAMT>-42.50<NAME>TESCO</STMTTRN>`

OFX 2.x is proper XML and closes everything. This matters more than it sounds: most QFX and QBO files banks hand out today are still the 1.x SGML form, and an XML parser refuses them outright. If you have ever fed a QFX to a tool that said it was malformed, this is usually why — the file is fine, the tool was reading it as XML.

QFX is OFX plus one tag, for Quicken

Intuit added their own extensions. The one that matters is `<INTU.BID>` — a bank identifier that names the institution the file came from.

Quicken checks for it before it looks at a single transaction. Without it you get the file is not a valid Web Connect file, whatever was actually wrong. This is why you cannot simply rename an .ofx to .qfx and have it work.

QBO is the same again, for QuickBooks

QBO — QuickBooks Web Connect — is OFX 1.0.2 with the same Intuit extensions. A QBO and a QFX are close to byte-identical. What differs is which product is expected to open it and, in practice, which bank id is inside.

That bank id is worth taking seriously. It identifies the issuing institution, and a file carrying a real one from your actual bank behaves differently in QuickBooks from one carrying a generic placeholder. If you convert a file that already has a real `<INTU.BID>`, that id should survive the conversion. Overwriting it with a generic value is a common way for a converter to turn a file QuickBooks would have accepted into one it refuses — which is why our OFX to QBO and QFX to QBO converters carry the source file's own id across rather than stamping ours over it.

QIF is the odd one out, and much older

Quicken Interchange Format predates the others and shares nothing with them. It is line-based plain text: one letter per field, a caret to end each record.

It is simultaneously the least capable and the most widely accepted format here. When a package documents no import format at all, QIF is usually the one it turns out to read — MYOB takes it, older Quicken takes it, and a long tail of software takes nothing else.

Getting to a QIF depends on what you start from: CSV to QIF for a bank's CSV export, QFX to QIF for a Quicken download, and Bank Statement PDF to QIF when the statement PDF is all you have. Going the other way, QuickBooks no longer imports QIF, so an archive of them needs QIF to QBO — which settles the date order below before it writes anything.

What about IIF?

IIF is Intuit's other format, for QuickBooks Desktop, and it does a different job. A QBO arrives through the bank feed and waits for you to approve each transaction. An IIF posts directly into the ledger.

It is tab-delimited, and the tabs are structural — a tab inside a payee name silently shifts every field after it along by one, so your memo gets imported as the amount. It also names its own columns inline on lines beginning with `!`, and the order varies between files, so anything reading one has to map by name rather than counting across.

To make one: CSV to IIF from a bank CSV, QBO to IIF from a Web Connect file you already have, and QFX to IIF or OFX to IIF from a Quicken or plain OFX download. Each writes a TRNS and SPL pair per transaction and leaves both account names as placeholders, because only you know which accounts in your company file they belong to.

Picking one, in order

  1. Ask your software, not your bank Whatever your accounting package's import screen lists is the answer. The bank's download menu is a list of what it can produce, not what you need.
  2. If your bank offers it, take it directly A file straight from the bank needs no conversion and carries its own real bank id.
  3. If not, convert from the closest thing OFX to QBO and QFX to QBO are near-identical files, so nothing is interpreted. CSV to anything involves more work and more places to be wrong.
  4. Check the first import before doing twelve months Import one month, open the register, and compare a handful of transactions against the statement. Then do the rest.

Frequently asked questions

Can I just rename a .ofx file to .qfx?

No. Quicken checks for the <INTU.BID> tag inside the file, not the extension. A renamed OFX has no such tag and is refused. Use OFX to QFX instead, which adds what Quicken needs.

Is QBO the same as a QuickBooks company file?

No, and the name collision causes real confusion. A .qbo is a Web Connect statement file. A .qbw is your company file. They are unrelated.

Which format keeps the most detail?

The OFX family. It carries payee, memo, cheque number, transaction type and a unique id per transaction. QIF carries less; CSV carries whatever columns the exporter chose.

My bank only offers CSV. What now?

Convert it. CSV to QBO, CSV to QFX, CSV to QIF and CSV to OFX all start from the file you have.

Related posts

Convert a statement now

OFX to QFX Converter, or see every format. More in the guides.