OpenHBCI skripten
Automatische Kontoabfrage mit Linux
Kontenabfrage
Die Kontenabfrage (Balance) kann mit Hilfe eines kleinen Shell-Skripts erfolgen. Geben Sie keine Kontonummer an, zeigt das Programm alle Kontostände; ansonsten ist mit --account="12345" die Kontonummer mitzugeben. Listing 5 zeigt ein solches Programm.
Listing 5
#!/bin/sh
# Kontenabfrage
PATH=$PATH:/usr/local/aqmoney/bin
TMP=/tmp/aqmoney$$
echo Kontostand
aqmoney --configfile=$HOME/finanz/aqmoney.conf --command="balance" 2> $TMP
grep "(Saldenrückmeldung)" $TMP | sed 's/,/./g' | awk -F"[:+-]" '
{ if($11 == "C") betr = $12
else betr = $12 @L: * (-1)
printf("BLZ: %9d Konto: %12d am: %2d.%02d.%4d Stand: %10.2f %3s\n", $7, $5,
substr($14,7,2), substr($14,5,2), substr($14,1,4), betr, $13) }
'
rm -f $TMP
Nach der Eingabe der PIN (Passwort aus dem Initialschritt) sieht die Ausgabe so aus, wie in Abbildung 1.
Übrigens ist die PIN-Abfrage automatisierbar, da sie von der Standardeingabe erfolgt:
echo 454545454 | aqmoney
Das verschlechtert natürlich die Sicherheit, da die PIN irgendwo als Text unverschlüsselt gespeichert wird. Auf der anderen Seite sind nun automatische Kontoabfragen mit Cron möglich. Mit dem folgenden Crontab-Eintrag stehen in der ersten Mail des Tages die Kontoübersichten:
0 5 * * * echo 454545454 | $HOME/finanz/kontostand
Kontoauszüge und Überweisungen
Bei den Kontoauszügen (Turnover und Dump) hilft ein Skript, das mit Kontonummer und Startzeit aufgerufen wird. Die Auszüge werden gleichzeitig gespeichert und ausgedruckt. Für die Überweisungen ist eine kleine Datei notwendig, die alle Transaktionsdaten enthält und gleichzeitig als Beleg dienen kann. Beide Skripte finden Sie auf der Heft-CD.
Natürlich sind nun weitere Features leicht einbaubar, zum Beispiel eine Offline-Auswertung der Kontoauszüge und Belege, die Anbindung an ein Buchhaltungsprogramm oder eine grafische Oberfläche. Interessant ist aber, dass mit diesen wenigen Komandos und Shell-Zeilen sehr rasch eine funktionierende Bankverbindung realisierbar ist.
Glossar
HBCI
Home Banking Computer Interface ist eine normierte Schnittstelle, um von außen auf die Kontendaten der Bank zugreifen zu können. Sie basiert auf einer verschlüsselten Übertragung, PIN- und TAN-Nummern sind nach der Authentifizierung zu Beginn nicht mehr erforderlich.
INI-Brief
Zunächst gibt die Bank Daten zur Verschlüsselung an den Kunden weiter. Wenn dieser seine Bankübertragung aufbaut, bekommt er diese Daten angezeigt und kann sie vergleichen und somit verifizieren. Er erzeugt seinerseits Verschlüsselungsdaten, die er in Form des INI-Briefs an seine Bank zurück gibt. Somit ist sichergestellt, daß keine Hacker sich Zugang verschafft haben.
Disketten-Version
Man erhält alle erforderlichen Daten im Klartext von der Bank. Ursprünglich gedacht, sie auf einer Diskette zu speichern und sich dann damit zu Authentifizieren.
HBCI-ID
Eindeutige Nummer der Bank für diese Kommunikation, die für mehrere Konten gelten kann.
$$
Shell-Variable, die die aktuelle Prozeßnummer enthält.
Cron
UNIX-Daemon zur Ausführung zyklischer Kommandos (Datensicherung oä). Mit dem Befehl crontab werden die Zeiten und Befehle angegeben.
Infos
[1] http://www.hbci.de HBCI-Infos
[2] http://www.openhbci.de HBCI-Bibliothek und Verweise
[3] http://aqmoney.sourceforge.net Aqmoney-Kommandozeilen-Programme
[4] http://www.gnucash.org GNU-Cash-Version mit HBCI-Anbindung
[5] http://www.matrica.de Kommerzielles HBCI-Programm



