Online Banking auf der Linux Kommandozeile mit aqbanking

In diesem Beitrag habe ich die notwendigen Schritte zum Abruf von Kontostand und Umsätzen per HBCI von einem Girokonto der DKB dokumentiert.

Installiert habe ich dazu aqbanking in der folgenden Version:

$ aqbanking-cli versions
Versions:
 AqBanking-CLI: 5.5.1
 Gwenhywfar   : 4.13.1.0
 AqBanking    : 5.5.1.0

Der Zugang wird wie folgt in aqbanking registriert:

$ aqhbci-tool4 adduser -s https://hbci-pintan-by.s-hbci.de/PinTanServlet \
                       -b BLZ -N LOGIN_ID -u LOGIN_ID  \
                       -t pintan

dabei gilt folgende Tabelle

Variable Wert Beispiel
LOGIN_ID Der Anmeldename, bei ChipTan und der z.B. Kontonummer_c 1532512_c
BLZ Bankleitzahl 12030000

Mit folgende Kommando kann geprüft werden, ob der Zugang angelegt wurde:

$ aqhbci-tool4 listusers
User 0: Bank: de/12030000 User Id: 1532512_c Customer Id: 1532512_c

Die notwendigen Bankparameterdaten werden dann so abgerufen. An zwei Stellen (fettgedruckt) ist eine interaktive Eingabe erforderlich:

$ aqhbci-tool4 getsysid -b 12030000
Exklusiver Zugriff auf Benutzer
Exklusiver Zugriff auf Benutzer 1532512_c
HBCI-Aufträge werden ausgeführt
AqHBCI gestartet
There are no tan method descriptions (yet), trying One-Step TAN.
Aufträge werden kodiert
4:2016/01/22 10-20-16:aqbanking(1828):de.c:  117: Bank data for KtoBlzCheck not found (-51), falling back to default
===== PIN-Eingabe =====
Bitte geben Sie die PIN für 
Benutzer 1532512_c bei Deutsche Kreditbank Berlin
ein.
Input: *****
Aufträge werden gesendet
Mit Server verbinden...
Hostname "hbci-pintan-by.s-hbci.de" wird aufgelöst...
IP-Adresse ist "195.140.107.125"
Verbindung zu "hbci-pintan-by.s-hbci.de" wird aufgebaut
Verbunden mit "hbci-pintan-by.s-hbci.de"
Using new SSL preparation code.
TLS: SSL-Cipher priority list: PFS:SECURE128
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-GCM:AEAD
===== Zertifikat empfangen =====
Das folgende Zertifikat wurde empfangen:
Name        : hbci-pintan-by.s-hbci.de
Organisation: Finanz Informatik GmbH & Co. KG
Abteilung   : Finanz Informatik GmbH & Co. KG
Staat       : DE
Stadt       : Frankfurt am Main
Bundesland  : Hessen
Gültig ab   : 06.02.2015 01:00:00
Gültig bis  : 02.05.2017 01:59:59
Hash        : 15:45:64:55:24:E1:E3:C6:3D:FA:4B:45:FA:44:2F:4E
Status      : Zertifikat ist gültig
Wollen Sie dieses Zertifikat akzeptieren? 
(1) Ja  (2) Nein
Please enter your choice: 1
Verbunden.
Nachricht senden...
Nachricht gesendet.
Warte auf Antwort
Antwort wird empfangen...
HTTP-Status: 200 (OK)
Antwort empfangen.
Beenden der Verbindung zum Server...
Verbindung beendet.
Antwort erhalten
HBCI: 3060 - Teilweise liegen Warnungen oder Hinweise vor (HBMSG=10336) (M)
HBCI: 3050 - BPD nicht mehr aktuell. Aktuelle Version folgt (HBMSG=10468) (S)
HBCI: 0020 - Der Auftrag wurde ausgeführt. (S)
HBCI: 3920 - Zugelassene Zwei-Schritt-Verfahren für den Benutzer. (S)
HBCI: 0020 - Ausgeführt (HBMSG=10452) (S)
Dialog wurde nicht abgebrochen, PIN scheint gültig zu sein
Aufträge werden kodiert
Aufträge werden gesendet
Mit Server verbinden...
Hostname "hbci-pintan-by.s-hbci.de" wird aufgelöst...
IP-Adresse ist "195.140.107.125"
Verbindung zu "hbci-pintan-by.s-hbci.de" wird aufgebaut
Verbunden mit "hbci-pintan-by.s-hbci.de"
Using new SSL preparation code.
TLS: SSL-Cipher priority list: PFS:SECURE128
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-GCM:AEAD
5:2016/01/22 10-20-31:aqbanking(1828):abgui.c:  165: Automatically accepting certificate [15:45:64:55:24:E1:E3:C6:3D:FA:4B:45:FA:44:2F:4E]
Verbunden.
Nachricht senden...
Nachricht gesendet.
Warte auf Antwort
Antwort wird empfangen...
HTTP-Status: 200 (OK)
Antwort empfangen.
Beenden der Verbindung zum Server...
Verbindung beendet.
Antwort erhalten
HBCI: 0100 - Dialog beendet (HBMSG=10346) (M)
Dialog wurde nicht abgebrochen, PIN scheint gültig zu sein
AqHBCI abgeschlossen.

Mit dem folgenden Befehl erzeugt man ein Template für eine PIN-Datei die dann mit einem Texteditor mit der PIN ergänzt werden kann:

aqhbci-tool4 mkpinlist > pinfile

Das folgende Kommando ruft den aktuellen Kontostand ab und speichert ihn in der Kontextdatei test.ctx:

$ aqbanking-cli -n -P pinfile  request \
                -b 12030000 -a 1532512 -c test.ctx --balance

Angezeigt werden kann der Kontostand dann mit:

$ aqbanking-cli listbal -b 12030000 -a 1532512 -c test.ctx 
Account	12030000	1532512	DKB Berlin		22.01.2016	10:23	43.44	EUR	22.01.2016	10:23	0.00EUR	

Das folgende Kommando ruft alle vorliegenden Umsätze ab und speichert sie in der Kontextdatei test.ctx.

$ aqbanking-cli -n -P pinfile  request \
                -b 12030000 -a 1532512 -c test.ctx --transactions
===== Aufträge werden ausgeführt =====
4:2016/01/22 10-25-32:aqbanking(1873):de.c:  117: Bank data for KtoBlzCheck not found (-51), falling back to default
5:2016/01/22 10-25-32:aqbanking(1873):abgui.c:  165: Automatically accepting certificate [15:45:64:55:24:E1:E3:C6:3D:FA:4B:45:FA:44:2F:4E]
[...]

Diese können wie folgt angezeigt werden:

$ aqbanking-cli listtrans -b 12030000 -a 1532512 -c test.ctx 
"transactionId";"localBankCode";"localAccountNumber";"remoteBankCode";"remoteAccountNumber";"date";"valutadate";"value_value";"value_currency";"localName";"remoteName";"remoteName1";"purpose";"purpose1";"purpose2";"purpose3";"purpose4";"purpose5";"purpose6";"purpose7";"purpose8";"purpose9";"purpose10";"purpose11";"category";"category1";"category2";"category3";"category4";"category5";"category6";"category7"
"";"12030000";"1532512";"12030000";"1999333";"2014/08/18";"2014/08/18";"1111.17";"EUR";"DR. JOACHIM WILKE";"KREDITKARTEN GELDANLAGE";"";"4748 4300 xxxx xxxx VISA-RUECKUEBERWEISUNG UEBER INTERNETBANKING VOM 18.08.2014 0902";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";""
[...]

Update

Alternativ zu HBCI 2.2, kann auch HBCI 3.0 (FinTS) verwendet werden. Dafür den Zugang wie folgt anlegen:

$ aqhbci-tool4 adduser  \
       -s https://banking-dkb.s-fints-pt-dkb.de/fints30 \
       -b 12030000 -u 1532512_c -N 1532512_c -c 1532512_c \
       --hbciversion=300 -t pintan

Danach wie oben die Bankparameterdaten abrufen. Die Ausgabe weicht dabei vom obigen Beispiel deutlich ab.

Update 2017-01-03

Hier das notwendige Kommando um ein Comdirect-Konto mit dem Benutzernamen 46331112 zu verwenden:

$ aqhbci-tool4 adduser -s https://fints.comdirect.de/fints \
          -u 46331112 -N 46331112  --hbciversion=300 -t pintan -b 20041144

Update 2018-05-10

Wenn sich das Zertifikat auf der Serverseite ändern, kann folgende Fehlermeldung erscheinen:

Automatically accepting certificate [4B:56:75:AC:90:71:13:A7:C9:3F:AA:9D:F1:CE:EB:E9]

Um das neue Zertifikat zu prüfen und zu akzeptieren wird folgender Befehl ausgeführt (hier am Beispiel der Comdirect-BLZ 20041144):

aqhbci-tool4 getsysid -b 20041144

und der folgende Dialog bestätigt werden:

===== Abruf des Zertifikats =====
Verbindung vorbereiten
Mit Server verbinden...
Hostname "fints.comdirect.de" wird aufgelöst...
IP-Adresse ist "193.41.133.14"
Verbindung zu "fints.comdirect.de" wird aufgebaut
Verbunden mit "fints.comdirect.de"
Using GnuTLS default ciphers.
TLS: SSL-Ciphers negotiated: TLS1.2:ECDHE-RSA-AES-256-GCM:AEAD
===== Zertifikat empfangen =====
The following certificate has been received:
Name         : fints.comdirect.de
Organisation : comdirect bank AG
Department   : unbekannt
Country      : DE
City         : Quickborn
State        : Schleswig-Holstein
Valid after  : 17.04.2018 13:07:01
Valid until  : 16.05.2019 13:36:59
Hash (MD5)   : 4B:56:75:AC:90:71:13:A7:C9:3F:AA:9D:F1:CE:EB:E9
Hash (SHA1)  : 6A:F5:46:AC:48:63:B3:F6:3D:F3:B6:C6:CA:55:D2:AA:10:6C:33:9A
Hash (SHA512): E4:0F:27:F1:5C:9B:13:C4:31:C0:B9:26:FB:E7:A9:27:C3:ED:6C:11:48:4D:DD:FF:00:E0:5E:A7:08:B7:FA:E1:A2:16:CA:EC:F5:E3:0C:D8:3B:6D:3B:2E:09:5A:CB:54:FB:F6:C2:88:3B:BF:AA:9D:71:80:2A:BB:8B:DF:E5:D8
Status       : Zertifikat ist gültig
Do you wish to accept this certificate?
(1) Ja  (2) Nein
Please enter your choice: 1