ofxparse
Tools for working with the OFX (Open Financial Exchange) file format
What it is and what it does
ofxparse reads Open Financial Exchange (.ofx and .qfx) files—the standard format banks, credit card companies, and investment brokers use to export account statements—and converts them into Python objects you can query for accounts, transactions, positions, and balances. It handles three account types: bank accounts, credit card accounts, and investment accounts, each with different statement structures and transaction types.
The package is designed for one-way parsing: reading OFX files you've downloaded from your financial institution and extracting their data into your application. It has no runtime dependencies (only build-time ones), making it lightweight once installed. However, the project has been abandoned for over five years with no active maintenance, so it may not handle newer OFX variants or edge cases from current financial software.
Use it for:
- Extract transaction history from downloaded bank statements to build personal finance dashboards or ledgers.
- Aggregate account balances and positions from multiple financial institutions into a single Python data structure.
- Parse investment account statements to extract holdings, trades, and performance data for portfolio analysis.
- Migrate financial data from OFX exports into custom accounting or bookkeeping applications.
- Automate reconciliation workflows by reading OFX files and matching transactions to internal records.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses Open Financial Exchange (.ofx) format files from banks, credit card companies, and investment brokers into structured Python objects for account and transaction data.
No, unless you are maintaining legacy code that already depends on it. The package is abandoned (last release 2021-05-31, no commits or updates since), installs only from source, and has no active maintenance. For new projects, use a maintained OFX parser or consider whether your financial institution offers a modern API instead. If you must parse OFX files, verify first that the package handles your institution's current format.
Install
ofxparse on PyPI
pip
pip install ofxparseuv
uv add ofxparsepoetry
poetry add ofxparseInstalling ofxparse
Before you install
High install friction due to source distribution only. Package is abandoned as of 1901 days since last release; no maintenance or updates are expected. Suitable only for legacy systems or read-only parsing of existing OFX files.
License in practice
MIT license permits commercial and private use with minimal restrictions. You may use, modify, and distribute the package freely provided you include the license notice.
Quickstart
pip install ofxparse
from ofxparse import OfxParser
import codecs
with codecs.open('file.ofx') as fileobj:
ofx = OfxParser.parse(fileobj)
account = ofx.account
print(account.account_id, account.statement.balance)
Requires BeautifulSoup4, six, and lxml as build/runtime dependencies; no prebuilt wheels available (source distribution only).
Verify before relying
- Whether the package still works reliably with modern OFX file formats from current banking systems.
- Compatibility with Python versions beyond 3.6 (classifiers list only up to 3.6).
- Whether BeautifulSoup4, six, and lxml are reliably installable in current environments.
Package facts
| License | MIT License (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | abandoned — 1,901 days since the last release |
| First released | |
| Downloads | 197,568/month — #9,756 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ofxparse-0.21.tar.gz
Keywords: ofx, Open Financial Exchange, file formats
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
ofxtoolsParses, generates, and converts Open Financial…
copyleft · top 15,000 on PyPI
simplefixSimplefix provides a lightweight FIX (Financial…
permissive · top 15,000 on PyPI
mt-940Parses MT940 bank statement files into fully…
permissive · top 15,000 on PyPI
beancountBeancount is a double-entry accounting system…
copyleft · top 15,000 on PyPI
edgartoolsEdgarTools parses SEC EDGAR filings into typed…
permissive · top 5,000 on PyPI
bai2Parses and writes BAI2 files, a standard format…
permissive · top 15,000 on PyPI
finance-datareaderFetches historical and current financial…
permissive · top 15,000 on PyPI
alpha-vantageFetches real-time and historical stock,…
permissive · top 15,000 on PyPI
finvizfinanceScrapes financial data from FinViz website,…
permissive · top 15,000 on PyPI