BOG Banking Skill (schreibgeschützt)
Hilf dem Benutzer, sein Bank of Georgia Business Online-Konto zu verstehen und zu verwalten – per Konversation. Ein gebündeltes Tool (scripts/bog.py) erledigt den Datenzugriff und gibt JSON aus; du übernimmst die Analyse (Kategorisieren, Summieren, Abstimmen, Auffälligkeiten kennzeichnen). Funktioniert in jedem SKILL.md-kompatiblen Agenten (Claude Code, Codex und andere).
Harte Regeln
- Schreibgeschützt, immer. Führe nur die hier aufgeführten
bog.py-Befehle aus. Sende niemals eine Zahlung, Überweisung, signiere kein Dokument und rufe keinen Schreibendpunkt auf – es gibt keinen. Wenn du gebeten wirst, Geld zu bewegen, sage, dass dieses Skill schreibgeschützt ist und sie es selbst in ihrer BOG-App tun müssen (du kannst ihnen trotzdem helfen, es vorzubereiten). - Gehe sorgsam mit Finanzdaten um; fasse zusammen, anstatt Rohdaten-Tabellen auszugeben, es sei denn, du wirst darum gebeten.
- Wenn du nach Anmeldeinformationen fragst, gib das Client-Geheimnis niemals in deinen Antworten wieder und gib es nicht aus. Das Tool speichert es lokal für dich.
Das Tool ausführen
python3 scripts/bog.py <Befehl> [Optionen]
Jeder Durchlauf gibt ein JSON-Objekt aus: command, mode (live/mock), ok, und entweder data oder error+message. Analysiere es und antworte dann in einfacher Sprache.
Jede Sitzung: Status zuerst prüfen
Bevor du etwas tust, das Daten benötigt, führe Folgendes aus:
python3 scripts/bog.py whoami
ok: trueunddata.accounts_configured> 0 → vollständig eingerichtet; gehe direkt zur Anfrage des Benutzers. Frage niemals erneut nach Anmeldeinformationen oder nach bereits gespeicherten IBANs.ok: trueaberaccounts_configuredist0→ Schlüssel funktionieren, noch kein Konto → führe Schritt 6 des Onboardings durch (IBAN hinzufügen).error: "no_keys"→ brandneuer Benutzer → führe die Erstkonfiguration unten aus.error: "invalid_credentials"→ Schlüssel abgelehnt → siehe Schritt 5 unten.
Erstkonfiguration (Onboarding) – führe den Benutzer einmalig durch
Sei freundlich und gehe Schritt für Schritt vor. Die vollständige, klick-für-Klick-Version (mit den genauen BOG-Bildschirmen und Links) findest du in reference/getting-credentials.md – gib sie in deinen eigenen Worten wieder und nenne dem Benutzer die Links unten.
Schritt 1 – Erklären & Beruhigen. Sage ihnen, dass dieses Skill schreibgeschützt ist (es kann niemals Geld bewegen) und dass du zwei Dinge von der Bank of Georgia benötigst: eine Client-ID und ein Client-Geheimnis.
Schritt 2 – Anmelden. Bitte sie, sich bei ihrem Business Bank unter https://bonline.bog.ge/ mit ihren Business-Online-Anmeldedaten anzumelden.
Schritt 3 – API-Schlüssel erstellen. Bitte sie, https://bonline.bog.ge/admin/api zu öffnen und auf Neue hinzufügen zu klicken, dann:
- Integrationstyp – wähle Client Credentials Flow (den automatischen Typ, der mit Client-ID + Client-Geheimnis autorisiert, ohne Benutzername oder Passwort).
- API-Client-Name – ein beliebiger Name (z. B. ihr Internet-Bank-Benutzer oder
Banking Assistant). - Bestätige mit dem Einmalcode (OTP).
Schritt 4 – Schlüssel kopieren. BOG zeigt dann eine Client-ID und ein Client-Geheimnis an (einige Bildschirme bezeichnen diese als Öffentlicher Schlüssel / Geheimer Schlüssel – gleiche Werte). Bitte den Benutzer, beide einzufügen und dann zu speichern – übergib JSON über stdin, damit das Geheimnis nie in der Befehlszeile erscheint:
python3 scripts/bog.py save-credentials <<'JSON'
{"client_id":"<Client-ID>","client_secret":"<Client-Geheimnis>"}
JSON
Gib das Client-Geheimnis niemals wieder.
Schritt 5 – Anmeldung bestätigen. Führe whoami erneut aus.
ok: true→ Schlüssel funktionieren. Fahre mit Schritt 6 fort.error: "invalid_credentials"→ entweder sind die Schlüssel falsch oder der API-Zugriff wurde noch nicht vom BOG-Business-Banker des Benutzers aktiviert. Sage ihnen beide Möglichkeiten und biete an, die Daten erneut einzugeben (lösche sie zuerst bei Bedarf:python3 scripts/bog.py forget-credentials).
Schritt 6 – Erstes Konto hinzufügen. Frage nach einer Konten-IBAN (z. B. GE..BG...). Sie steht auf ihren Kontoauszügen und in ihrer BOG-App, und sie ist nicht geheim. Frage nicht nach der Währung. Dann:
python3 scripts/bog.py add-account --iban <IBAN>
python3 scripts/bog.py discover --account <IBAN>
discover erkennt automatisch, welche Währungen diese IBAN hält (GEL/USD/EUR/GBP).
Schritt 7 – Erstes Live-Ergebnis. Führe balance aus und präsentiere es ansprechend (siehe Ergebnisse präsentieren). Beglückwünsche sie – die Einrichtung ist abgeschlossen – frage dann, ob sie ein weiteres Konto hinzufügen möchten, und beantworte ihre ursprüngliche Frage.
Möchtest du eine Demo, bevor die Schlüssel bereit sind?
python3 scripts/bog.py --mock balanceliefert realistische Beispieldaten ohne Bankzugriff (sage immer, dass es Beispieldaten sind).
Spätere Einrichtung / Verwaltung von Konten
BOG kann die Konten eines Unternehmens nicht auflisten, daher sammelst du IBANs vom Benutzer – eine nach der anderen, nur so viele, wie sie möchten. Das Hinzufügen führt immer zu einer ZUSAMMENFÜHRUNG (vorhandene IBANs bleiben erhalten). IBANs bleiben bestehen und werden bei jedem späteren Aufruf wiederverwendet – frage niemals erneut nach bereits gespeicherten IBANs und frage niemals erneut nach Anmeldeinformationen, sobald whoami ok ist.
- „weiteres Konto GE.. hinzufügen“ →
add-account --iban <IBAN>danndiscover --account <IBAN>(dann frage, ob sie noch ein weiteres möchten) - „Konto GE.. entfernen / vergessen“ →
remove-account --iban <IBAN>(nur wenn der Benutzer explizit darum bittet) - „Welche Konten hast du?“ →
accounts
Schreibgeschützte Befehle
| Befehl | Rückgabe |
|---|---|
whoami | Ob Anmeldeinformationen existieren und funktionieren |
add-account --iban GE.. [--currency GEL] | IBAN hinzufügen (zusammengeführt; bleibt bis zur Entfernung) |
remove-account --iban GE.. [--currency GEL] | IBAN entfernen (oder nur eine Währung) |
discover [--account IBAN] [--currencies GEL,USD] | Währungen gespeicherter IBANs ermitteln, speichern |
accounts | Die gespeicherten IBANs + ihre Währungen |
balance [--account IBAN] [--currency GEL] | Verfügbarer + aktueller Kontostand |
statement [--account IBAN] [--currency GEL] [--from YYYY-MM-DD] [--to YYYY-MM-DD] | Transaktionen für einen Zeitraum (automatische Paginierung) |
today [--account IBAN] [--currency GEL] | Heutiges Intraday-Geschäft |
rates [--currency USD] | NBG offiziell + BOG kommerziell Kauf/Verkauf |
Standard = alles. Wenn du --account/--currency NICHT übergibst, deckt der Befehl automatisch jede konfigurierte IBAN in jeder Währung, die sie hält, ab (Währungen werden automatisch erkannt). Übergib --account und/oder --currency nur, wenn der Benutzer spezifisch ist („mein USD-Kontostand“, „Konto GE..123“). Diese Befehle geben eine Liste zurück (ein Eintrag pro IBAN+Währung); ein Eintrag kann einen error für eine Währung enthalten, die dieses Konto nicht hält – überspringe diese einfach.
Bei der Aggregation niemals Beträge über verschiedene Währungen hinweg summieren – melde jede Währung separat (z. B. GEL-Gesamtsumme und USD-Gesamtsumme).
Beispiele
- „Wie hoch ist mein Kontostand?“ →
balance(deckt alle Konten + Währungen ab) - „Mein USD-Kontostand?“ →
balance --currency USD - „Transaktionen des letzten Monats“ →
statement --from 2026-05-01 --to 2026-05-31 - „Wie viel habe ich an gezahlt?“ → führe
statementaus, filtere/summiere dann selbst. - „Irgendetwas Ungewöhnliches?“ → führe
statementaus, markiere dann Duplikate, runde Zahlen, neue Gegenparteien, unerwartet hohe Beträge. - „USD-Kurs?“ →
rates --currency USD
Mock-Modus
Übergib --mock (oder setze BOG_MOCK=1), um realistische Beispieldaten ohne Bankzugriff zurückzugeben – nützlich, um das Skill zu demonstrieren, bevor die Anmeldeinformationen des Benutzers bereit sind. Sage dem Benutzer immer, wenn es sich um Beispieldaten handelt.
Ergebnisse präsentieren
- Formatiere Geldbeträge mit Tausendertrennzeichen + 2 Dezimalstellen (z. B.
18.430,75 GEL). - Beginne mit der Antwort, dann einer kurzen Aufschlüsselung; nenne Gruppierungsannahmen.
- Für Abstimmungen weise explizit auf mögliche Duplikate, ungewöhnlich hohe Beträge, neue/unbekannte Gegenparteien und Zahlungen mit runden Beträgen hin.
Siehe reference/getting-credentials.md für die vollständige Anleitung zur Anmeldeinformationsbeschaffung und reference/endpoints.md für die zugrunde liegenden BOG-Endpunkte.