Die open-banking.io CLI: ein vollständiger Leitfaden
Die openbanking CLI ist der schnellste Weg, um von einem Terminal aus mit Ihren Bankdaten zu arbeiten — Konten auflisten, Kontoauszüge lesen, frische Transaktionen synchronisieren und nach CSV oder JSON exportieren. Alles ist Zero-Knowledge: Der Dienst speichert stets nur Chiffretext, den er nicht lesen kann, und Ihr Verschlüsselungsschlüssel entschlüsselt jede Antwort lokal auf Ihrem Rechner. Der Schlüssel gelangt niemals auf einen Server, nicht einmal verschlüsselt.
Dieser Leitfaden führt Sie durch die Installation der CLI, die Authentifizierung und jeden einzelnen Befehl, jeweils mit echter Ausgabe.
Installation
Homebrew (macOS / Linux)
brew install open-banking-io/tap/openbanking
Vorkompilierte Binaries (Windows / macOS / Linux)
Laden Sie das Archiv für Ihre Plattform aus dem neuesten Release herunter, entpacken Sie es und legen Sie openbanking in Ihren PATH. Windows wird als .zip ausgeliefert; macOS/Linux als .tar.gz, jeweils mit einer checksums.txt.
Aus dem Quellcode (Go 1.21+)
go install github.com/open-banking-io/clients/cli@latest
Prüfen Sie, ob es funktioniert:
$ openbanking version
openbanking 1.0.0
Authentifizierung
Sie benötigen ein Credentials-Bundle — eine kleine credentials.json, die Sie einmalig aus der open-banking.io Web-App exportieren. Sie enthält die API-Basis-URL, einen API key (ebk_…) und Ihren privaten Verschlüsselungsschlüssel (PKCS#8). Behandeln Sie sie wie ein Passwort: Sie wird mit 0600 auf die Festplatte geschrieben und verlässt Ihren Rechner niemals.
Der einfache Weg: login
Auf einem Rechner mit Browser richtet ein einziger Befehl alles ein:
openbanking login
Dies startet einen localhost-Loopback- + PKCE-Flow. Im Browser melden Sie sich an und geben Ihre Passphrase ein; die Web-App entsperrt Ihren P-256-Schlüssel und übergibt die vollständigen Credentials direkt zurück an den Loopback der CLI. Flags:
$ openbanking login --help
Usage of login:
-api string
API base URL to log in to (default "https://open-banking.io")
-timeout duration
how long to wait for the browser login (default 3m0s)
Headless / Server: das Bundle direkt ablegen
Auf einem Rechner ohne Browser (CI, ein Server) exportieren Sie credentials.json aus der Web-App und speichern es im Konfigurationspfad der CLI — das Format auf der Festplatte ist das exportierte Bundle:
mkdir -p ~/.config/open-banking
cp credentials.json ~/.config/open-banking/credentials.json
chmod 600 ~/.config/open-banking/credentials.json
Oder verweisen Sie mit einer Umgebungsvariable auf einen beliebigen Speicherort:
export OPENBANKING_CONFIG=/secrets/openbanking.json
Es gibt außerdem openbanking key import ./credentials.json, das nur den privaten Verschlüsselungsschlüssel (validiert als P-256) auf einen Rechner importiert, der bereits über einen API key aus login verfügt.
Umgebungen wechseln
Richten Sie jeden Befehl auf eine andere Umgebung (Staging, eine selbst gehostete Instanz) aus, ohne sich erneut authentifizieren zu müssen:
export OPENBANKING_API_BASE_URL=https://staging.open-banking.io
Wenn gesetzt, überschreibt dies die in Ihrem Bundle gespeicherte API-Basis-URL.
Ihre Konten auflisten
$ openbanking accounts
NAME IBAN TYPE BALANCE CUR BANK ID
USD — CACC — USD Mock ASPSP 4506789c…
Grundkonto DK•• •••• •••• 1555 CACC 111.50 DKK Nordea d60d3fff…
Grundkonto DK•• •••• •••• 7544 CACC -23576.90 DKK Nordea f8d9a25d…
Private Banking konto DK•• •••• •••• 8028 CACC -43218.85 DKK Nordea f1345859…
Onni Hämäläinen — CARD 98.00 EUR Mock ASPSP 2383f8d0…
Oliver Hämäläinen — CACC 17.33 EUR Mock ASPSP cd7cc500…
Aliase: acc, ls. Geldbeträge werden als exakte Dezimalzeichenketten gehalten — niemals als Floats — und Belastungen werden negativ dargestellt.
Leiten Sie es mit JSON oder CSV beliebig weiter (JSON ist der Standard, wenn die Ausgabe per Pipe weitergegeben wird):
$ openbanking accounts -o json | jq '.[] | {name, balance, currency}'
{
"name": "Grundkonto",
"balance": "111.50",
"currency": "DKK"
}
…
$ openbanking accounts -o csv > accounts.csv
Ein aktuelles Konto auswählen
use merkt sich ein Standardkonto, sodass transactions und sync keine ID benötigen. Wählen Sie eines interaktiv mit den Pfeiltasten aus oder setzen Sie es direkt:
$ openbanking use cd7cc500-c9bc-456e-8d8d-f1616d98557c
Current account set to Oliver Hämäläinen (cd7cc500…)
Die Auswahl wird in state.json neben Ihren Credentials gespeichert — sie ist CLI-lokal und wird niemals irgendwohin gesendet. Eine explizit angegebene ID in einem Befehl setzt sie stets außer Kraft.
Einen Kontoauszug lesen
Mit einem gesetzten aktuellen Konto genügt:
$ openbanking transactions
DATE AMOUNT CUR COUNTERPARTY INFO STATUS
2026-06-15 -9.73 EUR Ella Virtanen Ella Virtanen-DBIT-9.73-r4i1r BOOK
2026-06-15 -3.40 EUR Ella Korhonen Ella Korhonen-DBIT-3.40-m3172 BOOK
2026-06-15 0.13 EUR Aino Nieminen Aino Nieminen-CRDT-0.13-hxqjw BOOK
2026-06-15 0.57 EUR Aino Mäkinen Aino Mäkinen-CRDT-0.57-y7z4v BOOK
2026-06-15 3.79 EUR Onni Korhonen Onni Korhonen-CRDT-3.79-pfl06 BOOK
8 shown, 8 total
Alias: tx. Geben Sie eine ID für ein beliebiges Konto an und filtern Sie nach Datum oder blättern Sie durch die Ergebnisse:
$ openbanking transactions --help
Usage of transactions:
-from string earliest booking date (YYYY-MM-DD)
-to string latest booking date (YYYY-MM-DD)
-limit int max rows to return (0 = server default)
-offset int rows to skip
$ openbanking transactions cd7cc500… --from 2025-01-01 --limit 3 -o csv
DATE,AMOUNT,CUR,COUNTERPARTY,INFO,STATUS
2026-06-15,-9.73,EUR,Ella Virtanen,Ella Virtanen-DBIT-9.73-r4i1r,BOOK
2026-06-15,-3.40,EUR,Ella Korhonen,Ella Korhonen-DBIT-3.40-m3172,BOOK
2026-06-15,0.13,EUR,Aino Nieminen,Aino Nieminen-CRDT-0.13-hxqjw,BOOK
Die JSON-Struktur führt neben jeder Zeile eine stabile Transaktions-id mit, bereit für eine Datenbank oder ein Abgleichsskript:
$ openbanking transactions cd7cc500… --limit 1 -o json
{
"items": [
{
"id": "c1cb427d-3e2c-4c81-993e-21ef179a7c9d",
"date": "2026-06-15",
"amount": "-9.73",
"currency": "EUR",
"counterparty": "Ella Virtanen",
"info": "Ella Virtanen-DBIT-9.73-r4i1r",
"status": "BOOK"
}
],
"shown": 1,
"total": 8
}
Frische Transaktionen abrufen
sync holt die neuesten Transaktionen von der Bank für ein Konto (das aktuelle oder eine von Ihnen angegebene ID):
$ openbanking sync
Synced: 0 new transaction(s) (3 fetched)
Sync ist inkrementell und idempotent — es fügt nur Zeilen ein, die Sie noch nicht haben, sodass ein erneuter Durchlauf stets sicher ist. Erledigen Sie alle verbundenen Konten auf einmal:
$ openbanking sync --all
Synced 3 account(s): 0 new transaction(s)
Ihre Bankverbindungen
$ openbanking connections
BANK COUNTRY STATUS ACCOUNTS PSU VALID UNTIL LAST SYNCED SESSION
Mock ASPSP DK Active 1 personal 2026-10-01T18:41:33Z 2026-07-04T16:00:12Z c5cb2c9d…
Nordea DK RequiresReauth 3 personal 2026-09-15T12:22:22Z 2026-06-17T13:22:18Z 4327bcad…
Mock ASPSP DK Active 2 personal 2026-09-14T18:49:52Z 2026-07-03T18:45:19Z 701bcce3…
Alias: conn. Ein Status RequiresReauth bedeutet, dass die Zustimmung der Bank abgelaufen ist und Sie sie in der Web-App neu verbinden müssen, bevor sie wieder synchronisiert.
Welche Banken kann ich verbinden?
$ openbanking banks --country DK
NAME COUNTRY BIC PSU TYPES BETA
Nordea DK NDEADKKK personal
Nordea Corporate DK NDEADKKK business beta
Vestjysk Bank DK VEHODK22 business,personal
Mock ASPSP DK — business,personal
Saxo Bank DK SAXODKKKXXX business,personal beta
Nordea First Card DK NDEADKKK business
Das Verbinden einer neuen Bank erfolgt in der Web-App — es erfordert eine interaktive Zustimmungs-Weiterleitung — daher hat die CLI keinen
connect-Befehl. Sie liest und synchronisiert die Verbindungen, die Sie bereits haben.
Ausgabeformate, Farbe und Autovervollständigung
Jeder Auflistungsbefehl akzeptiert ein globales -o/--output:
openbanking accounts -o table # pretty table (default in a terminal)
openbanking accounts -o json # json (default when piped)
openbanking transactions -o csv # csv for spreadsheets
Farbe ist für Terminals aktiviert und deaktiviert, wenn per Pipe weitergegeben wird; erzwingen Sie die Deaktivierung mit --no-color oder der Umgebungsvariable NO_COLOR.
Die Shell-Autovervollständigung ist eine einzige Zeile in Ihrer rc-Datei (auch bash, fish):
source <(openbanking completion zsh)
Führen Sie openbanking ohne Argumente in einem Terminal aus, um ein interaktives Menü zu erhalten, das durch dieselben Befehle führt.
Wie das Zero-Knowledge-Modell funktioniert
login stellt das Vertrauen im Browser her und übergibt der CLI zwei Dinge: einen API key (bei jeder Anfrage als X-Api-Key gesendet) und Ihren privaten Verschlüsselungsschlüssel. Jede Antwort des Dienstes ist ein undurchsichtiger Chiffretext-Umschlag; die CLI entschlüsselt ihn prozessintern mit Ihrem Schlüssel über ECDH-P256 → HKDF-SHA256 → AES-256-GCM.
Der Server hält stets nur Ihren öffentlichen Schlüssel. Er kann Ihre Kontonamen, Salden oder Transaktionen nicht lesen — nur Sie können das, auf Ihrem Rechner. Deshalb erfolgen sowohl das Verbinden einer Bank als auch das Entsperren Ihres Schlüssels im Browser, und deshalb hält die CLI credentials.json auf 0600.
Fehlerbehebung
no credentials at … — run openbanking login first— die Konfigurationsdatei fehlt. Führen Sieopenbanking loginaus oder legen Sie Ihre exportiertecredentials.jsonunter~/.config/open-banking/credentials.json(oder$OPENBANKING_CONFIG) ab.- Eine Verbindung zeigt
RequiresReauth— die Zustimmung der Bank ist abgelaufen; verbinden Sie sie in der Web-App neu und führen Sie dann erneutsyncaus. syncgibt 0 neue zurück, obwohl Sie Daten erwartet haben — das Konto ist bereits auf dem neuesten Stand oder seine Verbindung ist nichtActive. Prüfen Sieopenbanking connections.- Falsche Umgebung — setzen Sie
OPENBANKING_API_BASE_URL, um ohne erneutes Ausführen vonloginauf Staging oder eine selbst gehostete Instanz zu verweisen.
Wie es weitergeht
Die CLI baut auf denselben quelloffenen SDKs auf, die für .NET, Node, Python, Rust, Go, Java, Ruby und PHP verfügbar sind — alles, was Sie hier tun können, lässt sich also in der Sprache Ihrer Wahl skripten. Holen Sie sich Ihr Credentials-Bundle unter open-banking.io und beginnen Sie in wenigen Minuten, Ihre Daten zu lesen.