QBO vs OFX vs QIF vs CSV: which bank statement format should you use?
Your bank gives you a CSV or a PDF. Your accounting software offers a list of formats it will accept. The short answer: pick the format that carries transaction ids, and that your software actually lists. Everything below is the reasoning, with each vendor's own documentation linked so you can check it.
🔒 Convert your statement now — QBO, OFX, QIF or a clean CSV, free, in your browser, nothing uploaded.
The 30-second answer
| Your software | Best format | Why |
|---|---|---|
| QuickBooks Online | .QBO | Intuit suggests it first, ahead of QFX and CSV, and it carries transaction ids. |
| QuickBooks Desktop | .QBO | The Web Connect format. It is the native route. |
| Xero | .OFX | Xero lists OFX import and OFX needs no Intuit-specific tags. |
| GnuCash | .OFX | The GnuCash manual lists OFX/QFX import, and OFX keeps the ids. |
| Older desktop finance software | .QIF | Often the only format it will read. No ids, so watch for duplicates. |
| Anything else, or nothing works | Clean CSV | Universally accepted, no ids, you map the columns yourself. |
The real difference is the transaction id
Three of these formats look like alternative spellings of the same list of transactions. The thing that actually separates them is whether each transaction carries a unique id, called a FITID.
OFX and QBO have one. QIF and CSV do not. That single field decides how your software behaves the second and third time you import.
With ids: your accounting software can recognise a transaction it has already seen and skip it, so overlapping imports do not double your books. Without ids: nothing in the file says "you have had this one before". Import January to March, then February to April, and February and March land twice.
The ids cut the other way too, and this surprises people. An Intuit support agent puts it plainly in their own forum: "Every account and transaction inside of a WebConnect file has a unique identifier which is why QuickBooks won't allow you to re-import the same .qbo file more than once to prevent duplicate entries." (source thread.) So if you delete a bad import and try again, the second attempt can silently do nothing. That problem, and the one-click fix for it, has its own guide.
What each format actually is
OFX — the standard underneath
Open Financial Exchange is the interchange format most accounting packages build their import on. One file holds the account details, a date range and a list of transactions, each with a date, an amount, a description and a FITID. It is plain text you can open in any editor. Nothing in an OFX file is tied to one vendor, which is exactly why it travels well.
QBO — OFX plus two Intuit tags
A .QBO file (Web Connect) is an OFX file with extra header tags that identify the financial institution to Intuit, chiefly FID and INTU.BID. QuickBooks checks those values against its own list of institutions. That is the whole reason a QBO file can be refused where the same transactions in an OFX file sail into Xero: the transactions are fine, the institution id is what QuickBooks does not like.
If QuickBooks rejects a QBO file, that is usually the culprit, and our Web Connect import errors guide covers what to try.
QIF — the oldest and simplest
Quicken Interchange Format is a plain list of transactions with a single letter marking each field: D date, T amount, P payee, ^ to end a record. No ids, and no agreed date convention, so different programs read the same dates differently. It stays useful because software that refuses everything else will often still read a QIF. More on QIF and its traps.
CSV — accepted everywhere, understood nowhere
Every package takes a CSV, and none of them agree on what the columns should be called or how a date should be written. There are no ids, so duplicate protection is on you. It is the right answer when the other formats fail, and the wrong answer when they work.
What the vendors themselves say
QuickBooks Online
Intuit's own article on uploading transactions states: "Your upload file must be in English and 350 KB or less. We suggest a QuickBooks Online data (QBO) file. You can also upload (Quicken) QFX, or Comma-separated values (CSV) files." It also sets a limit of "up to 1,000 lines per upload" (Intuit help article).
Two things follow. QBO is not a Desktop-only format — the Web Connect menu route is Desktop, but QuickBooks Online takes a .QBO upload and Intuit puts it ahead of the alternatives. And if your statement is long, split it: 350 KB and 1,000 transactions are hard limits, not guidance.
Xero
Xero Central publishes separate articles for OFX, QFX and QuickBooks statements, QIF statements and CSV statements, with an overview of manually importing bank statements. So OFX, QFX, QBO, QIF and CSV all have a documented route in. We read Xero's rules from their articles rather than repeating them here — follow the links for the current detail.
GnuCash
The GnuCash manual lists OFX/QFX, QIF and CSV import, and warns that files using these formats do not necessarily arrive with the file extension you expect. Our GnuCash guide has the exact menu paths.
What about QFX?
QFX is the Quicken flavour of the same OFX family, the way QBO is the QuickBooks flavour. QBOKit does not produce QFX, so if your software will only take QFX, we are not your tool and we would rather say so than waste your time. For Quicken specifically, QIF is sometimes accepted, depending on the edition — check your own program's import screen before assuming.
So which one, in practice
- Open your software's import screen and read the list of formats it offers. That list beats any advice on this page, including ours.
- Of the formats it offers, pick QBO or OFX — they carry transaction ids, which is what protects you on the second import.
- Use QIF only when it is the only option, and import one short date range at a time so an overlap is easy to spot.
- Fall back to a clean CSV when a file is rejected and you cannot work out why. It is the least picky route in.
- Test with a short date range first. One week of transactions tells you whether the dates, signs and account type came through correctly, and it is trivial to undo.
Or see it work on a sample statement — no file of your own needed. CSV, Excel and text-layer PDF go in; QBO, OFX, QIF or a clean CSV come out, all converted on your own machine.
Sources
- Manually upload transactions into QuickBooks Online — Intuit, for the 350 KB and 1,000-line limits and the suggested formats.
- Re-import Web Connect file issue — Intuit community, for the quoted explanation of transaction ids.
- About manually importing bank statements — Xero Central, plus the per-format articles linked above.