skillfed

ofxtools

Library for working with Open Financial Exchange (OFX) data

ofxtools v1.1.1 99.1K downloads/30d#13,042 on PyPI344
Copyleft license GPL-3.0-only Active released

What it is and what it does

ofxtools is a Python library for reading, writing, and converting Open Financial Exchange (OFX) data—the standard format banks and brokerages use to deliver transaction and account information. It handles both OFX versions 1.6 (SGML markup) and 2.03 (XML), plus Quicken's QFX variant, converting serialized financial data into native Python objects while preserving structure. The library implements comprehensive coverage of the OFX specification including banking, bill pay, investments, and tax extensions (1099 forms), with particular strength in investment account support.

ofxtools requires only Python 3.10+ and the standard library, making it lightweight to install. It's built on a maintainable, standards-based data model that maps directly to OFX specification sections, and has been tested against over 10 years of real-world OFX feeds from various institutions. Use it to extract transaction data outside proprietary financial software, build Python applications that consume bank feeds, or generate OFX-formatted exports from your own systems.

Use it for:

  • Extract bank and investment transactions from OFX downloads to build custom financial dashboards or analysis tools.
  • Convert transaction data between OFX versions or from QFX (Quicken) format to standard OFX for interoperability.
  • Generate OFX-formatted feeds from a custom accounting system for import into GnuCash, Quicken, or other financial software.
  • Parse investment account statements (holdings, trades, dividends) from broker OFX feeds for portfolio tracking.
  • Automate reconciliation workflows by reading OFX bank statements into Python for matching against internal ledgers.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Parses, generates, and converts Open Financial Exchange (OFX) data in both OFXv1 (SGML) and OFXv2 (XML) formats, including Quicken's QFX variant, for importing and exporting financial transaction data.

Yes, with a license caveat. ofxtools is stable (Production/Stable status), actively maintained, has no known vulnerabilities, and installs with zero external dependencies. It's the most comprehensive OFX implementation in Python and covers the vast majority of real-world use cases. However, its GPL-3.0-only license is a hard blocker for proprietary or closed-source applications—only install if your project can adopt GPL-3.0 or you have an alternative licensing arrangement.

Install

ofxtools on PyPI

pip

pip install ofxtools

uv

uv add ofxtools

poetry

poetry add ofxtools

Installing ofxtools

Before you install

Low friction—pure Python with no external runtime dependencies and a wheel distribution. Last release 63 days ago; repository active with recent commits and 344 stars.

License in practice

GPL-3.0-only (copyleft): any application that links or distributes this library must also be released under GPL-3.0 or a compatible copyleft license. Proprietary or closed-source projects cannot use it without negotiating an alternative license.

Quickstart

pip install ofxtools

import ofxtools.Parser
parser = ofxtools.Parser.OFXTree()
parser.parse(ofx_file_path)
ofx_data = parser.convert()

Requires Python 3.10 or later.

Verify before relying

  • Whether the library handles all real-world OFX variants from major financial institutions without manual workarounds.
  • Performance characteristics when parsing large transaction histories or complex investment portfolios.
  • Whether Quicken QFX proprietary extensions are silently dropped or logged during conversion.

Package facts

License GPL-3.0-only (copyleft)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 63 days since the last release
Last repo commit
First released
Downloads 99,055/month — #13,042 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: ofxtools-1.1.1-py3-none-any.whl

Keywords: ofx, Open Financial Exchange

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Financial and Insurance IndustryNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Office/BusinessTopic :: Office/Business :: FinancialTopic :: Office/Business :: Financial :: AccountingTopic :: Office/Business :: Financial :: InvestmentTopic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities

Tags

ofx parser pythonfinancial data exchangebank transaction importofx to python objectsquicken qfx formatinvestment account datafinancial institution feeds
financedata-exchangebanking

More Python Modules packages