What Is a .QBO File? QBO vs QFX vs OFX, Explained
A .qbo file is a bank statement written in a 1990s banking format with one extra tag that tells QuickBooks it is allowed to open it. That tag is the whole story.
· 4 min read
Open a .qbo file in a text editor and you will not find a spreadsheet, a database or anything proprietary. You will find a short header, a block describing the account, and a list of transactions in tags — readable, if verbose. It is a bank statement in a format designed in the 1990s, and it has outlived nearly everything designed alongside it.
OFX is the underlying format
OFX — Open Financial Exchange — is the specification all of these files share. It defines the header, how an account is described, and how a transaction is written: a posted date, an amount, a type, a unique id, a name and a memo.
Version 1.x of OFX looks like SGML: angle-bracket tags, often without closing tags. Version 2.x is proper XML. Banks still hand out 1.x files, and QuickBooks still reads them, which is why the inside of a .qbo file looks a little archaic.
QBO and QFX are OFX with a badge
Here is the part that causes the confusion. A .qbo file and a .qfx file are both OFX documents. Same header, same account block, same transaction list. What differs is a small identifying tag:
- A .qbo file carries an
INTU.BID— an Intuit bank id. QuickBooks checks it. - A .qfx file is tagged for Quicken.
- A plain .ofx file has neither, which is why generic financial software accepts it and QuickBooks Online often does not.
So a QFX download from your bank contains exactly the transactions you want, and QuickBooks refuses it because of a label. Converting QFX to QBO is not a data conversion; it is relabelling — see the QFX to QBO page for that specific direction.
What is inside a .qbo file
A minimal one has four parts:
- The header. A handful of
KEY:VALUElines declaring the OFX version and the character set. - The sign-on block. The financial institution: an organisation name, an FID and the
INTU.BIDQuickBooks looks for. - The account block. Either a bank account — with a type such as
CHECKING— or a credit card account. These are different structures, not a field with two values, which is why choosing the wrong account type produces a file QuickBooks will not accept. - The transaction list. A start and end date, then one entry per transaction:
TRNTYPE,DTPOSTED,TRNAMT,FITID, an optionalCHECKNUM,NAMEandMEMO.
FITID is the anti-duplicate mechanism
Every transaction carries a FITID, a unique id within that account. It is how QuickBooks knows it has seen a transaction before: import the same statement twice and the second import matches rather than duplicates.
Files produced by a converter have to generate these ids, because a CSV has nothing like them. A good generator derives the id from the date, the amount and the description, so the same transaction always produces the same id — whether it arrives in this month's file or in an overlapping export next month.
Field limits worth knowing
NAME is capped at 32 characters in OFX 1.x, so long payee names are truncated. A well-behaved converter puts the full text in MEMO, which allows 255. If a payee arrives in QuickBooks cut off mid-word, that limit is why — not a bug in the import.
Which file should you ask your bank for?
If your bank offers QuickBooks Web Connect (.qbo), take it: no conversion needed. Failing that, a .qfx or .ofx contains the same data and needs relabelling. A CSV is the most universally available and the least structured — it carries no account type, no institution and no ids, so all three have to be supplied at conversion time. That is what the converter on this site does, and what the per-bank guides walk through one institution at a time.
Can you open a .qbo file yourself?
Yes. It is plain text: any editor will show you the header, the account block and the transactions. Reading one is the fastest way to diagnose a rejected import — you can see immediately whether the dates parsed, whether the account type is a bank or a card block, and whether the amounts carry the signs you expect.
What you should not do is edit one and save it. The format is picky about its header lines and its line endings, and a spreadsheet will happily destroy both. If something is wrong, fix it in the source CSV and convert again. If you want the transactions in a spreadsheet for review rather than for import, convert the file to CSV instead — that direction has its own page.
Why the format has not been replaced
OFX was designed for an era of dial-up banking, and it shows. But it does two things modern exports still do badly: it states what kind of account the data belongs to, and it gives every transaction a stable id. Those two properties are what make an import repeatable and duplicate-safe, and they are exactly what a CSV lacks. Until something better is widely supported by banks, Web Connect files remain the most reliable way to move a statement into QuickBooks.