Does GnuCash Import QFX? What Works and What Fails
Jul 23, 2026
Convert your bank statement to OFX now
PDF, JPG, PNG, BMP, HEIC, TIFF
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF
Uploading...
All data: Extracts every table and text field from each page.
TL;DR: Yes, GnuCash can usually import a QFX file, because QFX is the OFX format with a small block of Intuit branding tags added. Use File then Import then Import OFX/QFX, and select the file. Imports fail when the QFX carries an Intuit institution ID or Web Connect block GnuCash cannot parse, or when the file was produced by a converter that wrote invalid tags. The reliable fix is to import a plain OFX instead, which carries the same transactions without the Quicken specific wrapper.
Does GnuCash import QFX files?
It does, most of the time. GnuCash ships with an OFX import module built on the LibOFX library, and because a QFX file is structurally an OFX file, that same importer reads it. The menu even names both: File, then Import, then Import OFX/QFX. Point it at your .qfx and in the ordinary case the transactions load into the account you pick.
The reason this is not a flat yes is what Intuit added on top. QFX stands for Quicken Financial Exchange, and it is OFX with a handful of extra tags that identify the file as having come through Quicken's Web Connect service, including an Intuit institution identifier. Those tags exist so Quicken can tell a bank sourced file from a hand made one. GnuCash has no use for them, and depending on the file and the GnuCash build, it either ignores them or chokes on them.
How do you import a QFX file into GnuCash?
The process is short. Open your GnuCash book first, because the importer needs somewhere to put the transactions.
- Go to File, then Import, then Import OFX/QFX.
- Select the .qfx file. If the file chooser hides it, switch the filter to all files, since some builds only list .ofx by default.
- GnuCash asks which account the transactions belong to. Pick the register that matches the statement.
- The Generic Import Matcher opens showing every transaction, with a suggested action per row: add, update, or match to an existing entry.
- Review the matches, especially anything GnuCash flagged as a possible duplicate, then click OK.
That matcher screen is the part worth slowing down on. GnuCash guesses which imported transactions already exist in your register based on date, amount, and description similarity. Its guesses are decent and not perfect, so a quick scan before you confirm saves you from either duplicating a month or silently skipping real transactions.
Why does my QFX file fail to import into GnuCash?
When an import fails, it is nearly always one of five causes. Work down this list in order.
| Symptom | Likely cause | Fix |
|---|---|---|
| Nothing happens, no error | GnuCash built without OFX support | Install the LibOFX enabled package for your platform |
| Parse or unknown tag error | Intuit Web Connect block confusing LibOFX | Import the same data as plain OFX instead |
| Imports zero transactions | Statement date range outside the file, or an empty STMTTRN block | Open the file in a text editor and confirm transactions exist |
| All amounts have the wrong sign | Converter wrote unsigned TRNAMT values | Regenerate the file from a converter that signs debits negative |
| Dates land in the wrong year | Malformed DTPOSTED timestamps | Check the file uses YYYYMMDD format in DTPOSTED |
The first row catches more people than you would expect. GnuCash's OFX import is a compile time option, and some distribution packages ship without it. If the Import menu has no OFX/QFX entry at all, that is your answer, and no amount of editing the file will help.
Is QFX the same as OFX?
Nearly. QFX is OFX with additions rather than a different format. Open both in a text editor and the transaction blocks look identical: a STMTTRN element per transaction with TRNTYPE, DTPOSTED, TRNAMT, FITID, and NAME inside it. The difference sits in the header area, where a QFX carries Intuit specific tags such as an INTU.BID institution identifier.
Those tags are why Quicken accepts a QFX and treats an arbitrary OFX with more suspicion, and they are also why a QFX occasionally trips up software that was written against the plain OFX specification. For GnuCash the practical consequence is simple: if a QFX will not import, the same transactions in a plain OFX almost certainly will.
The workaround that always works: import OFX instead
If you are fighting a QFX file, stop fighting it. GnuCash's importer was built for OFX, GnuCash has no interest in the Quicken branding, and nothing in that wrapper carries data you need. Getting a plain OFX gets you a file the importer handles on its own terms.
Where the OFX comes from depends on what you have. Many US banks offer an OFX or Microsoft Money download alongside the Quicken one, often labeled for other personal finance software, so check the download options in your online banking before anything else. If the only thing you have is the PDF statement, converting it directly is faster than hunting: the bank statement to OFX converter reads the PDF and writes an OFX with correctly signed amounts and proper DTPOSTED dates. And if you already have the QFX and just want it stripped down, the QFX to CSV converter gets the transactions out into a spreadsheet you can inspect or reshape.
There is also a plain CSV route. GnuCash has its own CSV transaction importer with a column mapping step, and it works fine, though you configure the mapping yourself each time rather than having the format tell GnuCash what is what. OFX is less work per import.
Can GnuCash import QIF as well?
Yes, and it is worth knowing because QIF is sometimes the only format an older tool will export. GnuCash has a dedicated QIF importer under File, then Import, then Import QIF, with its own multi step wizard for mapping QIF account names onto your GnuCash account tree.
Prefer OFX when you have the choice. QIF has no unique transaction ID, which means GnuCash cannot reliably tell whether it has already imported a given transaction. OFX carries a FITID per transaction, and that identifier is what lets the duplicate matcher do its job properly. Importing the same QIF twice tends to produce a duplicated register; importing the same OFX twice usually does not.
How do you avoid duplicate transactions on import?
GnuCash's Generic Import Matcher is doing the work here, and helping it costs nothing. A few habits keep the register clean.
Import in date order and do not overlap ranges more than you have to. If your last import ended 30 June, start the next one 1 July rather than 15 June, even though the matcher would probably handle the overlap.
Look at every row the matcher marks yellow or flags as uncertain. Those are the ones where its confidence was low, and they are where duplicates actually come from.
Use OFX or QFX rather than CSV or QIF when you can, because the FITID gives the matcher something exact to compare rather than fuzzy text similarity.
If a batch goes badly wrong, close the book without saving. GnuCash does not commit imported transactions to the file until you save, so that is a genuine undo.
Does this work on Mac and Linux too?
The import path is the same on all three platforms, since it is the same LibOFX code underneath. The difference is packaging. Official GnuCash builds for Windows and macOS include OFX support. On Linux it depends on your distribution's package, and a minimal build occasionally omits it, in which case installing the libofx development package and using the distribution's full GnuCash package restores the menu entry.
Check quickly: open the File, Import submenu. If Import OFX/QFX is listed, you have support. If it is missing, that is a packaging problem rather than a file problem.
Where GnuCash fits for small business books
GnuCash handles double entry properly, costs nothing, and keeps your data in a file you control, which is why plenty of small US businesses and sole proprietors run their books on it rather than a subscription product. The tradeoff is that everything around the ledger is manual. There is no bank feed in the sense a commercial product means it, so importing statements is the routine, not the exception, and the same is true on the payables side where teams often end up wanting software to process supplier invoices before they hit the ledger rather than keying each one in.
That manual reality is exactly why the import path is worth getting right once. If you are importing a statement every month for the next several years, ten minutes spent finding the format your bank exports cleanly pays for itself many times over.
The short answer
GnuCash imports QFX through File, Import, Import OFX/QFX, and it usually just works because QFX is OFX with Intuit tags on top. When it does not, the cause is the Quicken wrapper, a build without OFX support, or a badly written file. In every one of those cases the fix is the same: get the transactions as a plain OFX and import that instead. If your starting point is a PDF statement, converting the statement to the format your software wants is a single step, and it removes the guesswork for good.