open-banking-io (Python)
Server-to-server client for open-banking.io. It authenticates with your API key and decrypts the zero-knowledge data envelopes locally with your exported private key — the service only ever returns ciphertext it cannot read.
pip install open-banking-io
from open_banking_io import OpenBankingClient
# Load the credentials .json you exported from the app (API key + private key).
with OpenBankingClient.from_credentials("credentials.json") as client:
for account in client.get_accounts():
booked = next((b for b in account.balances if b.type == "ITBD"), None)
label = account.display_name or account.owner_name
print(f"{label} {account.iban}: {booked.amount if booked else None} {account.currency}")
page = client.get_transactions(account.id, limit=50)
for t in page.items:
print(
f" {t.booking_date} {t.creditor_name or t.debtor_name} {t.amount} {t.currency}"
)
# Trigger an online sync (decrypts the account uid locally and posts it):
client.sync(account.id)
Or construct it explicitly:
client = OpenBankingClient(api_base_url, api_key, private_key_pkcs8)
API
get_accounts() -> list[Account]— decrypts each account's envelope, display name and balances.get_transactions(account_id, *, date_from=None, date_to=None, limit=None, offset=None) -> TransactionPageget_connections() -> list[Connection]sync(account_id) -> SyncResult— decrypts the account uid locally and posts it.sync_all() -> SyncAllResult— syncs every account that has an active session.
Amounts are exposed as decimal.Decimal. Models are plain @dataclasses.
When the client constructs its own httpx.Client it applies a default 30s timeout and sends a User-Agent: open-banking-io/python/<version> header on every request (a caller-supplied client is left untouched).
Encryption
Envelopes use ECDH P-256 → HKDF-SHA256 → AES-256-GCM. Decryption requires the private key from
your credentials bundle and happens entirely in-process. Full wire format and the other language
clients: repo README ·
THREAT_MODEL.md.
Development
python -m venv .venv
.venv/bin/pip install -e .[dev]
.venv/bin/pytest -q
MIT licensed.
Metadata
Release files for open-banking-io 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| open_banking_io-1.1.0.tar.gz | 14.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| open_banking_io-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / open_banking_io-1.1.0.tar.gz
| Download URL | open_banking_io-1.1.0.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f291ca8486bd4f2e23ed881f9543d643d3c1484a9d5f48c8d299e6488e6c81f
|
|
BLAKE2b-256 checksum How to use checksums |
4fce761bb2ef64dc12873f81f5953e6c7ea2d4ebca40572df71ccb6d6bcc1c52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / open_banking_io-1.1.0-py3-none-any.whl
| Download URL | open_banking_io-1.1.0-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d71151dadca094f47351d232a75e8e10d0216cd55ed2e6cf749e25adebd82fba
|
|
BLAKE2b-256 checksum How to use checksums |
4e088d1d1468d0a8110b716aa86fef44bea2d469e76b74fcc0d3da3e8c72f473
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency log