fints
Pure-python FinTS 3.0 (formerly known as HBCI) implementation
Decision gist · record as of 2026-08-14
Yes, if you need to integrate German bank accounts into a Python application and are willing to work within FinTS 3.0 and PIN/TAN constraints. The package is actively maintained, has no known vulnerabilities, and low install friction. Be aware that support is capacity-limited and feature development depends on the maintainer's personal needs; test thoroughly with your specific bank before relying on it in production.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; PIN/TAN authentication only (no signature cards); only FinTS 3.0 supported; bank must support FinTS protocol.
- Low install friction with six runtime dependencies.
- Maintenance is active but capacity-limited; the maintainer fixes bugs only for banks where they have accounts and merges PRs with low breakage risk.
License · maintenance · safety
LGPL-3.0-or-later (copyleft) — LGPL-3.0-or-later is a copyleft license requiring derivative works to be licensed under compatible terms. Suitable for open-source projects; proprietary software must carefully evaluate redistribution obligations.
last release 2026-01-06 (220 days) · last repo commit 2026-06-02 · 415 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 117,126 downloads/mo, #12,178 on PyPI
Alternatives
Verify before relying
pip install fints
from fints.client import FinTS
client = FinTS(blz='...', user='...', pin='...', endpoint='...')
accounts = client.get_accounts()
statements = client.get_transactions(account, start_date, end_date)- Which specific German banks are known to work reliably with this implementation.
- Performance characteristics when handling large transaction histories or multiple accounts.
- Whether TAN methods beyond the maintainer's personal bank are actively tested.
What it is and what it does
PyFinTS is a pure-Python client library for FinTS 3.0, the online-banking protocol widely supported by German financial institutions. It lets you programmatically connect to bank accounts using PIN/TAN authentication to retrieve statements, check balances, view holdings, and initiate SEPA transfers or debits. The library wraps the FinTS protocol in a Python API, handling the low-level communication details so you can focus on banking operations.
The package depends on bleach, mt-940, requests, sepaxml, enum-tools, and lxml to handle HTML sanitization, MT940 statement parsing, HTTP communication, SEPA XML generation, and XML processing. Maintenance is active but capacity-constrained; bugs are fixed primarily for banks where the maintainer has accounts, and new features are added on an as-needed basis. The implementation supports Python 3.9 and later and is classified as Beta development status.
Use it for
- Automate monthly bank statement downloads and reconciliation for accounting or bookkeeping workflows.
- Build financial dashboards that pull real-time account balances and transaction data from multiple German bank accounts.
- Programmatically execute SEPA transfers or debits as part of payment automation or billing systems.
- Integrate German banking data into ERP or accounting software without manual data entry.
- Monitor account activity and generate alerts based on transaction patterns or balance thresholds.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to integrate German bank accounts into a Python application and are willing to work within FinTS 3.0 and PIN/TAN constraints.
The package is actively maintained, has no known vulnerabilities, and low install friction. Be aware that support is capacity-limited and feature development depends on the maintainer's personal needs; test thoroughly with your specific bank before relying on it in production.
Install
fints on PyPI
Before you install
Low install friction with six runtime dependencies. Maintenance is active but capacity-limited; the maintainer fixes bugs only for banks where they have accounts and merges PRs with low breakage risk. Expect slower response times on feature requests.
Requires Python 3.9 or later; PIN/TAN authentication only (no signature cards); only FinTS 3.0 supported; bank must support FinTS protocol.
License in practice
LGPL-3.0-or-later is a copyleft license requiring derivative works to be licensed under compatible terms. Suitable for open-source projects; proprietary software must carefully evaluate redistribution obligations.
Quickstart
pip install fints
from fints.client import FinTS
client = FinTS(blz='...', user='...', pin='...', endpoint='...')
accounts = client.get_accounts()
statements = client.get_transactions(account, start_date, end_date)
Verify before relying
- Which specific German banks are known to work reliably with this implementation.
- Performance characteristics when handling large transaction histories or multiple accounts.
- Whether TAN methods beyond the maintainer's personal bank are actively tested.
Package facts
| License | LGPL-3.0-or-later copyleft |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 6 packagesbleachmt-940requestssepaxmlenum-toolslxml |
| Maintenance | Actively maintained 220 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 117,126 / month, #12,178 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Other AudienceProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9 |
Evidence: fints-5.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “german bank api”
- fintsA pure-Python implementation of the FinTS 3.0 online-banking protocol…
- wbdataWbdata provides a Python interface to query and retrieve data from…
- wbgapiWBGAPI provides a Python interface to query World Bank data and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Internet packages
Botocore provides low-level, data-driven access to Amazon Web Services APIs, serving as the foundation for the AWS CLI and boto3 libraries.
Install it if you need programmatic access to AWS services.
Provides an async client for AWS services using botocore and aiohttp, allowing you to call AWS APIs asynchronously within asyncio-based applications.
Install it if you need to call AWS services from async Python code; it is the standard way to do so.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides a platform-independent file locking mechanism to coordinate access to files across processes and threads.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides common Protocol Buffer message definitions used across Google Cloud APIs, enabling Python clients to interact with Google services.
See also cybrid-api-bank-python · mt-940 · sepaxml · gocardless-pro · bai2 · finnhub-python · Adyen · vonage-subaccounts · ofxparse · clabe