OFX Format

Bank Statement PDF to OFX Converter — GnuCash & Moneydance

This free PDF to OFX Converter turns any bank statement into a clean .ofx for GnuCash, Moneydance, HomeBank, Actual Budget, or Sage 50 — safe to re-import, no duplicate transactions. Chase and Bank of America killed OFX Direct Connect in 2024, so PDF is the only export left for many accounts.

Already have a different file format?

Why Use Our PDF to OFX Converter Tool?

Re-imports never duplicate transactions

OFX has transaction IDs that prevent duplicates on re-import. We keep them stable. CSV can't do this — Actual Budget, Moneydance, and HomeBank all prefer OFX for the same reason.

Bridges your bank's killed Direct Connect

Chase ended OFX Direct Connect in 2024; BofA and others followed. PDF is the only export left. Drop the PDF, get the same .ofx your app expects.

No plugin install, no Python, no subscription

ofxstatement needs a per-bank plugin and Python. SaaS converters gate free tiers behind signup. We give you 2 free pages per day, browser-only.

How to convert a bank statement PDF to OFX

1

Download your PDF statement

Pull the PDF from your bank. Usually the only export left after Direct Connect was killed. Password-protected and multi-page PDFs work.

2

Upload the PDF

Drop the PDF above, or click to browse. PDF, PNG, JPG up to 10MB.

3

Download .ofx, import into your app

GnuCash: File → Import → Import OFX/QFX transactions. Moneydance: File → Import. Actual Budget: Account → Import. HomeBank: File → Import → OFX/QFX. Sage 50 Premium: Tasks → Account Reconciliation → Import.

Why banks stopped offering direct OFX downloads

Major US banks killed OFX Direct Connect in 2024

Chase ended Direct Connect April 1, 2024; BofA, Capital One, and others followed. The auto-feed is gone. PDF is the only export left.

Historical statements (>6 months) only as PDF

OFX export windows are 90-180 days. For year-end, audit, restoring inactive accounts, or app migrations, PDF is the only route to older data.

CSV imports duplicate transactions on re-runs

CSV has no transaction ID. Re-importing the same month duplicates every row. OFX has IDs built in — apps skip rows already imported. Our IDs stay stable across re-imports.

Other PDF→OFX tools require plugin installs or paywalls

ofxstatement (the free open-source option) needs a per-bank Python plugin. DocuClipper and MoneyThumb gate free tiers behind signups. We work in the browser, 2 pages free daily, no install.

GnuCash, Moneydance, HomeBank, Actual Budget, Sage 50 users

GnuCash users with PDF-only banks

GnuCash imports OFX natively but won't touch PDF. No subscription, no per-bank plugin install.

Moneydance users after Direct Connect deprecation

When your bank kills Direct Connect, the auto-feed dies. PDF → OFX restores the same import workflow.

Actual Budget users importing historical data

Actual prefers OFX over CSV for the dedup property. Our transaction IDs stay stable across re-imports.

HomeBank users (EU and smaller banks)

EU banking still has many PDF-only institutions. HomeBank: File → Import → OFX/QFX takes our output directly.

Sage 50 US users (Premium reconciliation)

Sage 50 Premium imports OFX via Tasks → Account Reconciliation → Import. Bridges banks Sage's Bank Feeds plugin doesn't cover.

Bookkeepers with multi-client open-source workflows

Clients spread across GnuCash, Moneydance, Actual — all want OFX. One PDF → OFX flow per client.

Frequently Asked Questions — PDF to OFX Converter

QWhich apps does this OFX file work with?

GnuCash, Moneydance, HomeBank, Actual Budget, Sage 50 US (Premium), KMyMoney, Banktivity, Beancount, and most OFX-importing apps. Generic OFX — for QuickBooks use PDF→QBO, for Quicken use PDF→QFX.

QHow do I import into GnuCash?

File → Import → Import OFX/QFX transactions. GnuCash maps the bank account and skips any transactions already imported.

QHow do I import into Moneydance?

File → Import. Moneydance auto-detects the account and confirms before posting.

QHow do I import into Actual Budget?

Open the destination account → Import. Actual checks transaction IDs, so re-imports skip rows already there.

QWill re-importing the same statement create duplicates?

No. The .ofx has stable transaction IDs derived from date, amount, and description. Every major OFX app dedups by these IDs.

QWhat's the difference between OFX, QBO, and QFX?

Same format. OFX is open. QBO is OFX + Intuit bank identifier for QuickBooks Web Connect. QFX is the same for Quicken. This page emits generic OFX; sibling pages emit QBO and QFX.

QWhy pick OFX over CSV?

OFX has transaction IDs that prevent duplicates. OFX carries account metadata (bank, account number, period). OFX uses unambiguous date/amount formats. CSV requires the importer to guess.

QIs my statement data stored anywhere?

No. PDF processed in memory, deleted on response. No persistent storage.

Other Conversion Formats

Bank statement PDF to GnuCash, Moneydance, or Actual

Your bank killed OFX Direct Connect. We give back the same .ofx your app expects — with built-in transaction IDs so re-imports never duplicate. Free for 2 pages, no signup.