Automatischer Kontodownload

Eine wichtige Grundvoraussetzung bei der Verwendung von OwnYourData ist die Einfachheit der Bedienung. Deshalb haben wir uns Gedanken gemacht, wie wir vorhandene Apps weiter verbessern und vor allem vereinfachen können. Die Kontoentwicklungs App wird oft installiert und wir haben das Feedback bekommen, dass besonders der monatliche Upload der Kontoauszüge als mühsam empfunden wird. In diesem Blogpost stellen wir daher den automatisierten Kontodownload vor.

Die hier vorgestellte Funktion zum automatischen Kontodownload ist noch ein Prototyp und verlangt einige technische Grundkenntnisse für die Verwendung: die Ausführung eines Docker Containers und das Einrichten eines Cron-Jobs. In der endgültigen Form, wird die Einrichtung aber natürlich in der Kontoentwicklungs-App als optionale Datenquelle möglich sein.

Die Konfiguration für den automatisierten Kontodownload wird als JSON bereitgestellt und umfasst folgende 3 Bereiche:

  • Zugangsdaten zum Bankkontocredentials.json
    {
        "bank":     "easybank",
        "username": "123456",
        "password": "12345geheim",
        "account":  "AT121420020010123456"
    }

Warnung: Speichere diese Daten 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.

  • Schreiben des Referenzwertesbalance.json
    {
        "url":     "http://1.2.3.4:8080/",
        "key":     "eu.ownyourdata.bank",
        "secret":  "1234567890AaBbCcDdEe",
        "repo":    "eu.ownyourdata.bank.reference",
        "partial": "balance",
        "delete":  "all",
        "map":[
            { "date":  "date" },
            { "value": "balance" }
        ]
    }
  • Schreiben der Umsätzebookings.json
    {
        "url":     "http://1.2.3.4:8080/",
        "key":     "eu.ownyourdata.bank",
        "secret":  "1234567890AaBbCcDdEe",
        "repo":    "eu.ownyourdata.bank",
        "partial": "bookings",
        "merge":[
            "date",
            "value",
            "descriptionOrig"
        ],
        "map":[
            { "date":            "date" },
            { "description":     "description" },
            { "descriptionOrig": "other|original" },
            { "value":           "amount" }
        ]
    }

Mit Hilfe dieser Konfiguration können nun Referenzwert und Umsätze mit folgendem Skript (z.B. import.sh) importiert werden:

#!/bin/bash

# read Easybank balance
cat /path/to/credentials.json | \
    docker run -i --rm oydeu/srv-bank /bin/run.sh | \
	docker run -i --rm oydeu/srv-pia_write /bin/run.sh \
	    "$(cat /path/to/balance.json | tr -d '\040\011\012')"

# Import Easybank
cat /path/to/credentials.json | \
	docker run -i --rm oydeu/srv-bank /bin/run.sh | \
	docker run -i --rm oydeu/srv-pia_write /bin/run.sh \
	"$(cat /path/to/bookings.json | tr -d '\040\011\012')"

Damit dieses Skript täglich ausgeführt wird, muss noch ein Cron-Job definiert werden:

0   2  *   *   *   root    /path/to/import.sh

Die notwendigen Docker-Images sind auf dockerhub.com und die Sourcen auf github.com verfügbar:

Derzeit können Daten von Easybank und ING-DiBa automatisiert heruntergealden werden. Kontaktiere uns, wenn du ein Konto bei einer anderen Bank hast und ebenfalls deine Umsätze automatisiert sammeln möchtest.