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