A technical reference for the Quicken QFX format: what separates it from OFX, the Intuit tags Quicken validates, an annotated sample file, and why renaming an .ofx file does not work. Need a QFX file your bank will not provide? Upload a PDF statement and download one.
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF
Uploading...
QFX is Intuit's proprietary version of the OFX file format, used by Quicken for what Intuit calls Web Connect. A QFX file is a plain text OFX document with extra Intuit elements added, the most important being INTU.BID, a bank identifier Quicken checks before it will accept the import. Institutions pay Intuit a licensing fee to have their files recognized, which is why Quicken accepts a QFX file from a participating bank but rejects a structurally identical plain OFX file. Quicken imports .QFX, .QIF, .CSV and .QXF files, and Quicken's own documentation states it cannot import OFX files at all.
QFX looks like an open format and behaves like a closed one. The structure is public, the identifiers that make it work are not, and Quicken's error messages rarely say which of the two is at fault.
The extension is not what Quicken validates. It reads the Intuit elements inside the file, and a plain OFX file does not contain them, so the import fails no matter what the file is called.
Quicken's own import documentation lists OFX alongside Excel, QuickBooks and PDF as formats it cannot import. Plenty of finance software accepts OFX happily, which makes this an easy assumption to get wrong.
Quicken only accepts QFX files from institutions that participate in the Intuit program. If your bank is not on the list, there is no file it can hand you that Quicken will take.
Download windows are commonly limited to somewhere between 90 days and 18 months depending on the institution, while PDF statements go back years. The history you actually need is often past the edge of the QFX download.
QuickBooks Desktop uses its own Web Connect flavor with a .qbo extension. A QFX file is the Quicken variant, so pointing QuickBooks at one does not work.
The format is plain text, so editing it looks tempting, but transaction IDs, signed amounts and the closing balance all have to line up. For a few hundred rows that stops being realistic.
When the bank download stops short of the period you need, or the account was closed, or the statement only exists as a PDF, the practical route is to build the QFX from the statement itself.
The export writes valid OFX with a FITID on every transaction and a LEDGERBAL closing balance, which is what software outside the Intuit ecosystem reads. The INTU.BID identifier Quicken validates can only be issued by a participating institution.
A PDF statement from four years ago converts exactly like last month's, which is the gap a bank download window cannot cover.
Every transaction gets a distinct financial institution transaction ID, so Quicken matches rows cleanly instead of importing duplicates.
The closing balance block is written every time. Omitting it is a well known trigger for parse errors in the OL-220 to OL-226 family.
Posting dates are written as YYYYMMDD rather than a locale format, which removes the most common validation failure.
The same extraction exports plain OFX or legacy QIF when the destination is something other than Quicken.
The route to take when Quicken needs a Web Connect file and all you have is the statement.
Add the PDF or a scan of the bank or credit card statement covering the period Quicken is missing.
Tip: Scanned and photographed statements work too, since the text is read with OCR.
Review the extracted table against the printed statement, confirming dates, descriptions and signed amounts before exporting.
Tip: Check the closing balance first. If it ties to the statement, the rows above it are almost always right.
Download the QFX file, then in Quicken use File, File Import, Web Connect File and point it at the download.
Tip: Choose QFX rather than OFX whenever the destination is Quicken, since Quicken does not read plain OFX.
QFX sits between US banks and Quicken, so it turns up wherever statement history has to move into a register.
Backfilling history a bank download will not reach, or replacing a file the bank hands over in the wrong format.
Rebuilding a client's register from PDF statements when the live connection was never set up or has stopped working.
Writing or debugging a parser and needing the Intuit specific header elements documented in one place.
Moving statement data into desktop finance software on a repeatable monthly cycle.
A QFX file is a bank statement download formatted for Quicken. Intuit calls the feature Web Connect: you sign in to your bank, click a download link, and get a .qfx file you import into Quicken through the File menu. Underneath, the file is an OFX document. Open it in any text editor and you will see the same signon block, account block and transaction list that a plain OFX file carries.
What makes it a QFX rather than an OFX is a small set of Intuit specific elements added to the header, chiefly INTU.BID, a bank identifier, and INTU.USERID. Quicken reads those before it reads anything else. Financial institutions pay Intuit a licensing fee to participate, and in some cases pass quality checks, and only then will Quicken accept files identified as coming from them. The structure is open. The permission to import is not.
This is the question that sends most people to this page, and the honest answer is that the difference is small in bytes and total in effect. A QFX file is an OFX file plus identifiers. Strip those identifiers out and Quicken stops accepting it.
| OFX | QFX | |
|---|---|---|
| Who defines it | Open specification, maintained through the OFX work group | Intuit, as a proprietary variant of OFX |
| Extension | .ofx | .qfx |
| Extra elements | None beyond the specification | INTU.BID and INTU.USERID in the header |
| Cost to the bank | Free and open to implement | Licensing fee paid to Intuit |
| Imports into Quicken | No. Quicken documents OFX as a format it cannot import | Yes, via File, File Import, Web Connect File |
| Imports elsewhere | Widely accepted, including Xero and Banktivity | Often accepted, since the body is still OFX |
| Transaction structure | STMTTRN with TRNTYPE, DTPOSTED, TRNAMT, FITID | Identical |
The practical takeaway: if the destination is Quicken, you need QFX specifically. If the destination is almost anything else, plain OFX is the safer choice because it carries no identifiers that a parser might trip over.
Quicken's own import documentation is unusually blunt about this, and it contradicts what most people assume. Quicken for Windows can import the formats below, and it explicitly states that it cannot import Excel, QuickBooks, PDF or OFX files.
| Format | Accepted | Menu path or note |
|---|---|---|
| .QFX | Yes | File, File Import, Web Connect File |
| .QIF | Yes, with limits | File, File Import, QIF file. Asset, liability and cash accounts |
| .CSV | Yes | Transactions and security prices, with a fixed column order |
| .QXF | Yes | Quicken Transfer Format, for merging data between versions |
| .OFX | No | Listed by Quicken as a format it cannot import |
| No | Convert the statement to QFX first | |
| .XLS | No | Export to CSV, or convert the source statement |
That single row about OFX explains a large share of the confusion around this format. People convert a statement to OFX because OFX is the format they have heard of, then find Quicken will not touch it, then assume the file is broken. It usually is not. It is the wrong flavor.
Most QFX files in circulation use the OFX 1.x SGML syntax, which means colon delimited header lines, a blank line, then tags whose closing counterparts are optional. The Intuit elements sit in the header block near the top. A trimmed example looks like this:
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>20260731120000</DTSERVER>
<LANGUAGE>ENG</LANGUAGE>
<INTU.BID>1234</INTU.BID>
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1><STMTTRNRS><STMTRS>
<CURDEF>USD</CURDEF>
<BANKACCTFROM>
<BANKID>121000248</BANKID>
<ACCTID>000123456789</ACCTID>
<ACCTTYPE>CHECKING</ACCTTYPE>
</BANKACCTFROM>
<BANKTRANLIST>
<STMTTRN>
<TRNTYPE>DEBIT</TRNTYPE>
<DTPOSTED>20260715</DTPOSTED>
<TRNAMT>-42.18</TRNAMT>
<FITID>20260715000142180001</FITID>
<NAME>SHELL OIL 5741</NAME>
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>3184.92</BALAMT>
<DTASOF>20260731</DTASOF>
</LEDGERBAL>
</STMTRS></STMTTRNRS></BANKMSGSRSV1>
</OFX>The INTU.BID line is the whole difference. Remove it and you have an OFX file that Quicken will refuse. The BANKID value is the bank's routing number, ACCTID is the account number, and everything from BANKTRANLIST down is ordinary OFX that any parser can read.
Because the body is OFX, the transaction rules are the OFX rules. Four fields carry the weight, and a fifth block outside the transaction list causes more failures than any of them.
| Field | Format | What goes wrong |
|---|---|---|
| TRNTYPE | DEBIT, CREDIT, CHECK, XFER and similar | An unrecognized value makes the row category ambiguous |
| DTPOSTED | YYYYMMDD, optional time and timezone | Writing 2026-07-15 instead of 20260715 invalidates the field |
| TRNAMT | Signed decimal, no currency symbol | Unsigned amounts make every debit look like a deposit |
| FITID | Unique within the account | Reused IDs cause silent drops or double imports |
| LEDGERBAL | BALAMT and DTASOF, outside the transaction list | Omitting it is a frequently reported trigger for OL-221 style parse errors |
FITID deserves a note of its own, because it is the reason QFX beats CSV for statement history. Quicken uses it to recognize a transaction it has already seen. Import the same QFX twice and the second pass is matched and ignored. Import the same CSV twice and you get every row again.
Save the file somewhere you can find it, then in Quicken for Windows go to File, then File Import, then Web Connect File, and select the .qfx. Quicken will ask whether the transactions belong to an existing account or a new one. Choose the existing account if you have one, otherwise the register you already reconciled will end up split across two accounts.
On the bank's website the download link is usually labeled Download to Quicken, or marked with a Quicken logo, and often sits behind a menu named something like Download Transactions or Statements and Activity. Pick the Quicken option rather than the generic one. The generic option normally produces CSV, which imports without transaction IDs and without duplicate matching.
Work through these in order. The first two account for most cases.
If the file imports but the connection itself keeps breaking, that is a different problem with a different fix. See Quicken not downloading transactions for the connection side, and Quicken connection errors for the numbered codes.
All three descend from the same lineage and none of them are interchangeable. Picking the wrong one is the single most common reason an import fails on the first try.
| Format | Built for | Underlying structure | Duplicate matching |
|---|---|---|---|
| QFX | Quicken | OFX plus Intuit identifiers | Yes, via FITID |
| QBO | QuickBooks Desktop | OFX plus Intuit identifiers | Yes, via FITID |
| OFX | Open standard, broad support | SGML in 1.x, XML in 2.x | Yes, via FITID |
| QIF | Legacy Quicken and many others | Line oriented plain text, no IDs | No |
| CSV | Spreadsheets, some importers | Delimited rows, no structure | No |
QFX and QBO are close relatives, which is why people try to swap them, and why swapping them fails. Both are OFX with Intuit identifiers, but the identifiers differ and each product validates its own. If your destination is QuickBooks rather than Quicken, you want a QBO file, not a QFX.
Any text editor will open it. Notepad on Windows, TextEdit on Mac, or anything a developer would reach for. The file is plain text, so you can read the transactions directly, which is genuinely useful when you are trying to work out why an import failed.
Reading it and using it are different problems. If you need the transactions as rows you can sort, total and hand to someone else, converting is the practical answer. A QFX to Excel conversion gives you a worksheet, and a QFX to CSV conversion gives you something almost any accounting package will read. Renaming the file to .csv does not work, because the contents are tagged, not delimited.
This is the situation that sends most people looking for the format in the first place. The account is closed, or the download only reaches back 90 days, or the bank never joined the Intuit program, or you are rebuilding a client's books from a folder of PDFs. In every one of those cases the statement exists and the QFX does not.
Converting the statement solves it. Upload the PDF, check the extracted transactions against the printed page, and export QFX. The output carries the header elements Quicken checks, a unique FITID per row, dates as YYYYMMDD and the closing balance block, which are precisely the parts a hand assembled file gets wrong. If your destination is not Quicken, the same statement exports as plain OFX instead.
For the full technical reference on the format underneath all of this, see the OFX file format specification.
A QFX file is a bank statement download formatted for Quicken, which Intuit calls a Web Connect file. It is a plain text OFX document with Intuit specific elements added, chiefly INTU.BID, a bank identifier Quicken checks during import. Banks pay Intuit a licensing fee for their files to be recognized.
A QFX file is an OFX file plus Intuit identifiers such as INTU.BID and INTU.USERID. The transaction structure is identical. The difference matters because Quicken validates those identifiers, so it accepts QFX and, by its own documentation, cannot import plain OFX files at all.
It is a Quicken Web Connect statement file. To read it, open it in any text editor, since the contents are plain text. To use it, import it into Quicken through File, File Import, Web Connect File, or convert it to CSV or Excel if you need the transactions as spreadsheet rows.
No. Quicken does not decide by extension, it reads the Intuit elements inside the file. A plain OFX file does not contain INTU.BID, so renaming it produces a file with the right name and the wrong contents, and the import still fails.
In Quicken for Windows, go to File, then File Import, then Web Connect File, and select the .qfx file. Quicken asks whether the transactions belong to an existing account or a new one. Choose the existing account, otherwise the history is split across two registers.
Most often the file is actually a plain OFX without the INTU.BID identifier, or the institution does not participate in the Intuit program. Other causes are a missing LEDGERBAL closing balance, which triggers OL-220 to OL-226 parse errors, or transactions matched into a new account rather than the existing one.
Most QFX files use OFX 1.x SGML syntax: colon delimited header lines such as OFXHEADER:100 and DATA:OFXSGML, a blank line, then an OFX element containing a signon block with INTU.BID, a BANKACCTFROM account block, a BANKTRANLIST of STMTTRN transactions, and a LEDGERBAL closing balance.
Not directly. QuickBooks Desktop uses its own Web Connect flavor with a .qbo extension, while QFX is the Quicken flavor. Both are OFX with Intuit identifiers, but each product validates its own, so a QFX has to be converted to QBO before QuickBooks will accept it.
QFX is OFX based and carries a unique FITID on every transaction, so Quicken can recognize rows it has already imported. QIF is an older line oriented text format with no transaction IDs, so reimporting the same QIF creates duplicates. Quicken also limits QIF import to asset, liability and cash accounts.
The INTU.BID identifier that makes a file a true QFX can only be issued by an institution in the Intuit program, so it cannot be generated from a statement. The working route is to convert the PDF to CSV and use File, then File Import, then Banking Transactions, then From CSV File in Quicken for Windows, or the Mint style CSV import in Quicken for Mac.
The older Quicken format QFX replaced, explained.
The open specification the QFX format is built on.
The full route from statement to Quicken register.
Read a QFX file as a spreadsheet you can sort and total.
QBO versus QFX, and the import path for each.
Diagnose the numbered CC and OL error codes.
Turn an OFX or QFX file into a readable PDF report.
Get started converting bank statements to OFX.
USD
per month
per month
$288 charged today
Choose speed vs accuracy when extracting
| Base AI Faster | 2,500 pages |
| Pro AI Best accuracy | 500 pages |
Scale statement conversion across your team with automation.
USD
per month
per month
$888 charged today
Choose speed vs accuracy when extracting
| Base AI Faster | 10,000 pages |
| Pro AI Best accuracy | 2,000 pages |
Enterprise-grade bank statement conversion and controls.
USD
per month
per month
$ charged today
Choose speed vs accuracy when extracting
| Base AI Faster | pages |
| Pro AI Best accuracy | pages |