StatementDecoder

How to import bank statements into GnuCash (CSV, QIF and OFX)

2026-07-21 · 7 min read

GnuCash is the desktop, open-source choice — no bank feed doing the work for you, so importing statements is a routine part of using it rather than a fallback. The good news is it reads three formats; the trick is picking the right one and letting its import matcher do the deduplication.

Three formats, and which to pick

  • OFX / QFX — the smoothest import. Dates, amounts and signs are unambiguous, and GnuCash maps them without you configuring anything. Use this if you can get it.
  • QIF — the old Quicken format GnuCash has read for years. Reliable; you confirm the date format and target account on import.
  • CSV — the most flexible and the most manual: you map each column (date, description, amount / deposit / withdrawal) yourself. GnuCash remembers the mapping as a named preset, so the second import is quick.

Import from File → Import → Import Transactions from CSV (or the OFX/QIF options in the same menu).

Converting a PDF statement first

GnuCash won't read a PDF, so convert it to OFX, QIF or CSV with a tool that re-checks dates and amounts instead of trusting raw OCR, then reconcile the totals against the statement's printed opening and closing balances. Our converter exports OFX, QIF and CSV from the same upload with merchants identified, and the format comparison explains what each one preserves.

Let the matcher handle duplicates

GnuCash's strongest feature here is the import matcher: on each import it tries to match new rows against existing transactions and flags likely duplicates before you commit, so re-importing an overlapping month is far less dangerous than in tools that only catch exact matches. Still, review the matcher's guesses — it colour-codes new vs matched vs uncertain — rather than clicking through. Merging months into one deduplicated file first (how to) keeps even that step light.