oydeu/srv-bank

Sponsored OSS

By oydeu

Updated over 8 years ago

Service zum automatisierten Download von Kontodaten.

Image
Security
Integration & delivery
API management
0

1.9K

oydeu/srv-bank repository overview

Diese Service bietet den automatisierten Download aller Umsätze (= Kontobewegungen) eines Bankkontos. Folgende Banken werden derzeit unterstützt:

Kontaktiere uns (Email: support[at]ownyourdata.eu), wenn du ein Konto bei einer anderen Bank hast und ebenfalls deine Umsätze automatisiert sammeln möchtest.

Verwendung

Führe folgenden Befehl aus, und übergib Bank, Zugangsdaten und IBAN als JSON:

docker run --rm oydeu/srv-bank /bin/run.sh \
    '{"bank":"easybank","username":"123456","password":"12345geheim","iban":"AT121420020010123456"}'

Wichtig dabei: es darf kein Leerzeichen in dem JSON vorkommen, da sonst Docker die übergebene Zeichenfolge als mehrere Argumente interpretiert und ein Fehler auftritt.

Warnhinweis

Starte dieses Docker Image nur auf deinem eigenen (vetrauenswürdigen) Computer und stelle sicher, dass die Zugangsdaten zu deinem Bankkonto niemals öffentlich werden! Wir haben bei der Entwicklung größtmögliche Sorgfalt angewendet, und durch die Verwendung von Docker, werden deine Zugangsdaten auch nur temporär verwendet, bevor sie mit dem Container nach der Ausführung wieder entfernt werden.

Um die Zugangsdaten nicht in der Commandline-History zu speichern, können sie auch in einer Datei als JSON formatiert mit folgenden Attributen abgelegt werden:

{
    "bank": "ingdiba",
	"username": "123456",
	"password": "12345geheim"
}

So erfolgt der Aufruf mit Dateien als Input (im Beispiel: credentials.json, formatiert wie oben beschrieben) und Output (hier: result.json):

cat credentials.json | docker run -i --rm oydeu/srv-bank /bin/run.sh > result.json

Verarbeiten von Konto-Downloads

Ebenfalls hast du die Möglichkeit deine Kontodaten selbst herunterzuladen und sie mit diesem Docker-Container einheitlich aufzubereiten. So kannst du zB alle Kontoauszüge einlesen, automatisch kategorisieren und in den OwnYourData Datentresor importieren. Verwende folgenden Befehl zum Einlesen eines vorhandenen Konto-Downloads:

cat AT521234567890_2015-10-26-2017-10-26.csv | docker run -i --rm oydeu/srv-bank /bin/run.sh --bank=erste

Um das Import-Format festzulegen, muss --bank als Parameter übergeben werden. Folgende Werte können dafür angegeben werden:

  • easybank
  • erste
  • ingdiba

Ausgabe

Die Struktur des Outputs ist ein JSON Array mit folgenden Attributen:

  • balance: Liste mit 1 Element das den aktuellen Kontostand enthält:
    • balance: aktueller Kontostand
    • date: Datum an dem der Kontostand erhoben wurde
    • currency: Währung des Kontostands
  • bookings: Liste der Kontobuchungen mit folgenden Attributen:
    • date: Valuta-Datum, Datum an dem die Buchung von der Bank durchgeführt wurde
    • description: Beschreibung der Buchung
    • amount: Betrag der Buchung
    • other: abhängig von der jeweiligen Bank sind weitere Informationen vorhanden
      • original: ursprünglicher Buchungstext (vor etwaigem Parsen)
      • currency: verwendete Währung
      • account (nur easybank): alte 11-stellige KontoNr
      • bookingDate (nur easybank): Datum an dem die Buchung in Auftrag gegeben wurde
      • id (nur easybank): von der easybank vergebene ID für die Buchung
      • type und typeShort (nur easybank): folgende Werte sind möglich:
        • transfer - BG
        • transfer - FE
        • withdraw or payment - MC
        • bankfee - RI
        • transfer or payment - VD
        • unknown
      • payee (nur easybank): Name der Person / Organisation die einem Geld überwiesen hat
      • desc2 (nur easybank): 2. Zeile der Beschreibung (die 1. Zeile wird im Feld description angegeben)
      • memo (nur easybank): Zusammenfassung der Buchung

Klassifizieren von Kontobuchungen

Die so aufbereiteten Daten können mit einem weiteren Service automatisiert klassifiziert werden - weitere Infos hier: https://hub.docker.com/r/oydeu/srv-bank_classify/
Zum Klassifizieren wird Supervised Learning eingesetzt und dafür ist es notwendig bereits zuvor klassifizierte Kontobuchungen bereitzustellen. Im folgenden Beispiel enthält die Datei tagged.json solche klassifizierten Buchungen:

{ cat credentials.json | \                                  # Zugangsdaten zum Konto
	docker run -i --rm oydeu/srv-bank /bin/run.sh &          # neue Kontodaten lesen
	cat tagged.json; } | \                                   # bereits klassifizierte Kontodaten
	jq -s ".[0] * .[1] | {bookings,groups}" | \              # zusammenfassen der Daten
	docker run -i --rm oydeu/srv-bank_classify /bin/run.sh   # Klassifizierung der neuen Kontodaten

OwnYourData Datentresor

Um die Ausgabe direkt in einen OwnYourData Datentresor zu schreiben, kann der Output an das Service zum Schreiben in den Datentresor übergeben werden - weitere Infos hier: https://hub.docker.com/r/oydeu/srv-pia_write/
Im Folgenden ist ein Beispiel angegeben, wie Kontostand und Umsätze (automatisiert) in den Datentresor geschrieben werden können.
Für eine bessere Übersicht werden die Konfigurationsdaten in JSON Dateien ausgelagert.

Zugangsdaten für Easybank - credentials.json

{
    "bank":     "easybank",
    "username": "123456",
    "password": "12345geheim",
    "account":  "AT121420020010123456"
}

Konfiguration zum Schreiben des Kontostands - balance.json

{
    "url":     "http://1.2.3.4:8080/",
    "key":     "eu.ownyourdata.bank",
    "secret":  "1234567890AaBbCcDdEe",
    "repo":    "eu.ownyourdata.bank.easybank.reference",
    "partial": "balance",
    "delete":  "all",
    "map":[
        { "date":  "date" },
        { "value": "balance" }
    ]
}

Konfiguration zum Schreiben der Umsätze - bookings.json

{
    "url":     "http://1.2.3.4:8080/",
    "key":     "eu.ownyourdata.bank",
    "secret":  "1234567890AaBbCcDdEe",
    "repo":    "eu.ownyourdata.bank.easybank",
    "partial": "bookings",
    "merge":[
        "date",
        "value",
        "descriptionOrig"
    ],
    "map":[
        { "date":            "date" },
        { "description":     "description" },
        { "descriptionOrig": "other|original" },
        { "value":           "amount" }
    ]
}

Befehl zum Lesen der Kontodaten und Schreiben in den Datentresor:

cat credentials.json | \
docker run -i --rm oydeu/srv-bank /bin/run.sh > result.json
cat result.json | docker run -i --rm oydeu/srv-pia_write /bin/run.sh \
    "$(cat balance.json | tr -d '\040\011\012')"
cat result.json | docker run -i --rm oydeu/srv-pia_write /bin/run.sh \
    "$(cat bookings.json | tr -d '\040\011\012')"
_

Mehr Infos, Screenshots und Demo: https://www.ownyourdata.eu/apps/bank/ Github Repository: https://github.com/OwnYourData/service-bank/ Dockerfile: https://github.com/OwnYourData/service-bank/blob/master/docker/srv-bank/Dockerfile

Tag summary

Content type

Image

Digest

Size

505.2 MB

Last updated

over 8 years ago

docker pull oydeu/srv-bank

This week's pulls

Pulls:

97

Last week