De/HBCI
Zurück zum Datenaustausch | Zurück zur Hauptseite |
HBCI (Homebanking Computer Interface) oder FinTS (Financial Transaction Services), wie es seit Version 3.0 mit der Standardisierung von Pin/Tan, offiziell heißt, stellt eine vom damaligen Zentralen Kreditausschuß (ZKA) in Deutschland standardisierte Schnittstelle für das Homebanking / Online-Banking dar.
Dieser Standard wird in GnuCash neben anderen Methoden wie EBICS oder OFX Direct Connect über die Biblothek AqBanking realisiert. Die aktuellsten Informationen zu AqBanking finden sich im AqBanking Wiki. Auf aquamaniac von Martin Preuß gibt es weiterhin pro Komponente einen Bugtracker und die Mailingliste aqbanking-user, sowie die neuesten Dateienversionen incl. Handbuch.
Contents
- 1 Voraussetzungen
- 2 Getestete Banken und Einstellungen
- 3 Gemeinsame Nutzung der Konfiguration oder Sicherheitsmedien durch mehere Programme
- 4 Onlinebanking per Schlüsseldiskette
- 5 Onlinebanking per PIN/TAN
- 6 Erweiterte Einstellungen
- 7 Benutzer und Konten verbinden
- 8 Einrichtung des HBCI-Zugangs
- 9 Fragen+Antworten
- 10 Fehlersuche
- 11 Weiterführende Literatur
Voraussetzungen
Damit GnuCash OnlineBanking-fähig ist, gibt es einige Voraussetzungen:
- Die Bank muss HBCI/FinTS anbieten.
- GnuCash muss mit der Option '--enable-aqbanking' kompiliert sein. Bei den meisten Distributionen ist dieses Flag gesetzt. Man kann es erkennen, wenn es im Menupunkt Aktionen ein Untermenü Online Aktionen gibt.
- Das Software-Paket AqBanking ist installiert. Es besteht aus Programmen, die man von einem Terminal aus aufrufen kann, und aus Funktionsbibliotheken (libraries), die von GnuCash benutzt werden. Wichtig: AqBanking ist kein eigenständiges Finanzverwaltungsprogramm, sondern es stellt lediglich die Verbindung zwischen einer Anwendung wie GnuCash, KMyMoney oder QBankManager und der Bank her.
- Anmerkung
- Die GnuCash-Pakete für MacOS/Quartz und Windows seit Version 2.6.x enthalten AqBanking.
- Sofern man nicht eine Variante des PIN/TAN-Verfahrens verwendet, braucht man ein Medium zum Ablegen der Schlüssel.
- Am einfachsten ist es, eine Schlüsseldatei zu benutzten. Nachteil: Wenn jemand die Datei zusammen mit dem Öffnungs-PIN in seine Hände bekommt, hat er auch Zugriff hat auf die entsprechenden Konten.
- Am sichersten ist es, einen (USB-)Kartenleser zu benutzen. Man bekommt eine separate Chipkarte von der Bank. Auf dieser wird wärend der Konfiguration ein Schlüssel gespeichert, der wiederum nur mit einer entsprechenden PIN am Kartenleser geöffnet werden kann. Somit bleibt der eigentliche Schlüssel immer auf der Karte, und niemand kann die Karte auslesen. Dafür muss das Software-Paket "libchipcard" installiert sein und nicht alle Sorten Chipkarten werden unterstützt.
- Für die Bank macht es keinen Unterschied, ob die Schlüssel in einer Datei oder auf einer Karte gespeichert sind. Außer, wenn die Bank die Benutzerschlüssel bereits auf der Karte erzeugt hat, denn an diese Schlüssel kann man von außen nicht mehr gelangen. In diesem Fall ist OnlineBanking mit GnuCash leider bisher nur mit DDV-Karten möglich, etwa der Sparkassen, da andere Anbieter ihre Spezifikationen nicht offengelegt haben.
- Die offizielle Anleitung zu AqBanking ist das AqBanking-Handbuch, siehe AqBanking Dateien. Es ist lesenswert, da einige Details wie z.B. Benutzer-/Kunden-name/-kennung sonst etwas verwirrend sein können. Manche Distributionen enthalten es bereits, z.B. als aqbanking-doc.
PSD2-Umstellung 2019
PSD2 erfordert die Aqbanking 6 Bibliotheken und somit ein Gnucash neuer als 3.7.
- Achtung!
- Dies sind Testversionen. Unbedingt Sicherheitsmaßnahmen wie Datensicherung durchführen!
- Linux
- Anleitung, um von einem Distributions-Paket auf ein Flatpak umzustellen. Alternativ können die benötigten Pakete auch aus einem PPA installiert werden: https://launchpad.net/~ingo/+archive/ubuntu/gnucash
- Windows
- https://code.gnucash.org/builds/win32/maint/gnucash-3.7-2019-09-23-git-3.7-60-gee260d8e3+.setup.exe oder neuer verwenden.
- MacOS
- Leider nicht als Paket verfügbar. Wer selber bauen möchte, sei auf die englischen Seiten zu MacOS verwiesen.
Getestete Banken und Einstellungen
- Früher war die FinTS Bankenliste auf
FinTS-fähige Institutedes ZKA einsehbar. Jetzt ist die Liste nicht mehr öffentlich einsehbar und wir dürfen sie ebenfalls nicht zur Verfügung stellen. Die Vorgaben sind hier genannt: https://www.hbci-zka.de/register/bedingungen_bankenliste.htm:Die FinTS Bankenliste wird ausschließlich Herstellern von registrierten FinTS-Produkten als Excel-Datei (.xls und .csv) zur Verfügung gestellt. Damit verbunden ist auch der optionale Eintrag in einen eMail-Verteiler, der zum Erhalt von Updates berechtigt. Ohne eine FinTS-Produktregistrierung ist die Bankenliste nicht erhältlich und wir bitten von diesbezüglichen Anfragen abzusehen. (...) Die Weitergabe der FinTS-Bankenliste im Rahmen eines Softwareproduktes ist jedoch untersagt.
- Welche Einstellungen erforderlich sind wie die Server-URL, Sicherheitsverfahren etc. haben andere Benutzer in der AqBanking6_Bankentabelle hinterlegt.
- Wichtig
- Wer also herausfindet, wie es bei seiner Bank funktioniert, sollte die Angaben dort ergänzen oder zumindest eine entsprechende Mail an aqbanking-user bei lists.aquamaniac.de schicken. " bei " muß natürlich durch "@" ersetzt werden.
SEPA-Umstellung Anfang 2014
SEPA bedeutet Single Euro Payments Area (Einheitlicher Euro-Zahlungsverkehrsraum).
Anstelle von BLZ und Ktonr. tritt die Internationale Bankkontonummer (International Bank Accounting Number oder kurz IBAN). Diese besteht grundsätzlich aus dem ISO-Länderkürzel und 2 Prüfziffern am Anfang. Der Rest variiert von Land zu Land. In Deutschland folgt die BLZ und, durch Nullen links auf 10 Stellen aufgefüllt, die Kontonummer.
Inzwischen führen auch viele Drittländer die IBAN ein. Bei Überweisungen dorthin ist zusätzlich noch der Business Identifier Code (BIC nach ISO 9362) anzugeben, sofern das Mapping zwischen IBAN und BIC noch nicht bei der SWIFT hinterlegt ist. Seit Feb. 2014 ist die BIC innerhalb Deutschlands und seit Feb. 2016 innerhalb des SEPA-Raumes nicht mehr erforderlich.
Aqbanking kann seit Februar 2013 SEPA-Überweisungen ausführen, GnuCash selber seit 1. März 2013 [1] und in allen Versionen 2.6.0 oder höher.
Allerdings verwenden einige Banken für SEPA eine andere Server-URL, eine höhere HBCI-Version oder ähnliches. Falls man also Probleme hat, bitte die #Erweiterte Einstellungen noch mal mit den Angaben der Bank abgleichen.
Gemeinsame Nutzung der Konfiguration oder Sicherheitsmedien durch mehere Programme
Gemeinsame Konfiguration mehrerer Linux HBCI-Programme
Es ist möglich, mit mehreren Linux Programmen die gleiche HBCI-Konfiguration zu benutzen, solange die Programme den HBCI-Zugang über die Bibliothek AqBanking realisieren. Dies ist z.B. der Fall bei der Kombination GnuCash und QBankManager, aqbanking-tool oder KMyMoney. Die Einrichtung des HBCI-Zugangs braucht dann nur einmal mit dem Einrichtungs-Assistent erfolgen.
Wenn ein Onlinebanking-Programm eine andere (eigene) HBCI-Bibliothek verwendet, wie z.B. "moneyplex", greift dieses nicht auf die gemeinsame AqBanking-Zugangskonfiguration zu. Stattdessen muss der HBCI-Zugang dort komplett separat eingerichtet werden.
Schlüsseldateien und Sicherheitsmedien fremder HBCI-Programme
Die Schlüsseldateien und -disketten aus anderen Onlinebanking-Programmen (z.B. Quicken, Star``Money, "moneyplex") können nicht in GnuCash/AqBanking weiterverwendet werden. Soll das alte Programm weiterhin benutzbar bleiben, muss eine weitere HBCI-Benutzerkennung für AqBanking bei der Bank angefordert werden. Dann benutzt jedes Bankingprogramm seinen jeweils eigenen Schlüssel. Wenn man die neue Benutzerkennung bekommen hat, können für diese neue Benutzerkennung ganz regulär mit GnuCash für AqBanking/AqHBCI neue Schlüssel erzeugt und mit Ini-Brief bestätigt werden.
Bei Chipkarten dagegen treten keine größeren Probleme auf, wenn sie einfach mit mehreren HBCI-Programmen und -Bibliotheken verwendet werden.
Onlinebanking per Schlüsseldiskette
Einrichtung am Beispiel Commerzbank
- Ich habe den ersten Brief von der Bank bekommen. Wie geht es weiter? Wie erstellt man den Schlüssel für die Signatur und erzeugt einen INI-Brief?
- In GnuCash den Menüpunkt Werkzeuge -> Onlinebanking-Einrichtung... aufrufen (siehe oben, Abschnitt HBCI Homebanking). Schlüsseldatei wird dort erstellt, ebenso INI-Brief erzeugt und ausgedruckt, und auch die HBCI-Version kann man dann auswählen.
Einrichtung am Beispiel Deutsche Bank
- Ich habe den ersten Brief von der Bank bekommen. Wie geht es weiter? Wie erstellt man den Schlüssel für die Signatur auf der HBCI-Karte und erzeugt dann einen INI-Brief?
- Achtung: Chipkarten mit dem Namen "WebSign" sind kein HBCI und werden von AqBanking nicht unterstützt. Welche HBCI-Karten sind hier gemeint?
Einrichtung für SEPA-Lastschriften
Siehe de/HBCI/SEPA-Lastschrift
Onlinebanking per PIN/TAN
Beispiel für die Konfiguration der Netbank mit dem Werkzeuge -> Onlinebanking-Einrichtungsassistenten.
PIN/TAN-Unterstützung
Frage: Ist es möglich, mit GNUCash über das PIN/TAN-Verfahren Onlinebanking zu betreiben?
Antwort: Ja, wenn die Bank das Verfahren PIN/TAN über HBCI/FinTS anbietet.
Das PIN/TAN-Verfahren ist im HBCI-Standard und FinTS-Standard seit einiger Zeit vorhanden (FinTS 3.0 - inoffiziell seit HBCI 2.2 alias HBCI+). Dieses Verfahren wird in GnuCash seit Version 1.8.10 erfolgreich unterstützt.
Fehlende Rückmeldung nach falscher TAN
Frage: Was passiert, wenn ich über das PIN/TAN-Verfahren eine Überweisung tätige und eine falsche TAN eingebe?
Antwort: Wenn Sie im OnlineBanking Verbindungsfenster das Häkchen Fenster nach Verbindungsende schließen gesetzt haben, merken Sie davon leider nichts, da der komplette Dialog mit dem Bankserver nach der Transaktion sofort ausgeblendet wird, und GnuCash diesen Transaktionsfehler unglücklicherweise ignoriert. Man wundert sich dann nur später, dass diese Überweisung nicht durchgeführt wurde. Man kann das Fenster wieder öffnen durch den Menüpunkt "Online Aktionen" -> "Verbindungsfenster öffnen".
Im Meldungstext kann man für den Fehlerfall dieses lesen:
HBCI: 9310 - TAN zum 1. oder 2. Mal falsch. (S) Die TAN "623536" wurde benutzt, Sie können sie streichen.
Dass die TAN "benutzt" wurde heisst leider nicht, dass diese korrekt war.
Wenn Sie in den letzten Meldungen des Bank-Server-Dialoges etwas von
HBCI: 0010 - Nachricht entgegengenommen. (M) ... Dialog wurde nicht abgebrochen, PIN scheint gültig zu sein
lesen, heisst dies lediglich, dass die PIN ok war. Was mit der TAN war, steht eben weiter oben im Dialog.
Nur wenn man so etwas im Protokollfenster lesen kann, ist der Auftrag mit der geforderten TAN erfolgreich angenommen worden:
HBCI: 0090 - TAN gültig (S) Die TAN "803728" wurde benutzt, Sie können sie streichen.
Erweiterte Einstellungen
Hier verbergen sich einige Optionen zum Feintuning, was bedeutet, daß AqBanking versucht, die erforderlichen Werte vom Server zu erfahren, was aber leider nicht immer vom Erfolg gekrönt ist, da einige Server recht wortkarg sind.
HBCI Version
Mit einigen Banken funktionieren nur bestimmte Versionen der HBCI Spezifikation. Die von AqBanking verwendete HBCI-Version kann mit dem Knopf "HBCI-Version" im AqHBCI-Einrichtungs-Assistent (in GnuCash "Werkzeuge"->"HBCI Einrichtung" und dann "AqHBCI-Einrichtung starten") geändert werden.
Manche Banken unterstützen nur HBCI Version 2.2, andere wiederum nur Version 3.0.
HTTP-Protokoll-Version
Manche Banken arbeiten nicht mit dem HTTP-Protokoll in der Version 1.1. In diesen Fällen sollten Sie einmal Version 1.0 probieren.
SSL v3 erzwingen
Banken, die den Server www.bankingonline.de verwenden, verlangen meistens, daß Sie SSL v3 erzwingen einschalten.
Base64-Kodierung abschalten
Um mit der Ärzte- und Apothekerbank arbeiten zu können, müssen Sie Base64-Kodierung abschalten anwählen.
Benutzer und Konten verbinden
Wer unter GnuCash HBCI-Benutzer nachträglich einem Konto zuweisen möchte (FIXME: Was bedeutet hier "nachträglich"?), muss ein paar zusätzliche Schritte ausführen.
Zumindest bei Ubuntu 12.04, GnuCash 2.4.10 und AqBanking 5.0.22-1 ändert der AqBanking-Assistent, der aus GnuCash heraus gestartet wird, lediglich die Variable
int selectedUser="XXX"
in der Datei
$HOME/.aqbanking/settings/accounts/uid%234a%234a00000001.conf
Wenn der Account aber wirklich einen anderen HBCI Benutzer verwenden soll, muss die Variable
int user="XXX"
angepasst werden.
Unterkonten
Wenn eine Bank mit einer Kontonummer mehrere Unterkonten anbietet (z.B. bei der Comdirect ein "Girokonto" und ein "Tagesgeld Plus" unter der gleichen Nummer 123400), gibt es anscheinend gelegentlich Schwierigkeiten bei der richtigen Zuordnung. Siehe https://bugs.gnucash.org/show_bug.cgi?id=737933
Damit ist aber nicht der Fall gemeint, wenn man als Kunde mehrere Kontonummern mit unterschiedlichen Endungen hat, z.B. 123400 und 123401 - dies sind im HBCI-Sinne keine "Unterkonten", sondern ganz normal zwei verschiedene Konten mit jeweils eigener Kontonummer.
Einrichtung des HBCI-Zugangs
F: Ich habe den ersten Brief von der Bank bekommen. Wie geht es weiter? Wie erstellt man den Schlüssel für die Signatur und erzeugt einen INI-Brief? Ich habe keinen Chipkartenleser, wie geht das mit Diskette, oder Datei, oder USB-Stick? Wie stelle ich die Version von HBCI ein?
A: In GnuCash den Menüpunkt "Werkzeuge -> Onlinebanking-Einrichtung..." aufrufen (siehe oben Abschnitt HBCI Homebanking). Schlüsseldatei/-diskette wird dort erstellt, ebenso INI-Brief erzeugt, und auch die HBCI-Version kann man dann auswählen.
F: Wie kann man den Port angeben (bei Commerzbank Port 3000)? Gebe ich hbci.commerzbank.de:3000 ein wird der Host nicht gefunden. -- GuidoThulke
A: Portnummer 3000 wird für HBCI sowieso benutzt. Der Rechnername muss ohne Portnummer angegeben werden, also einfach {{{hbci.commerzbank.de}}}. Bei HBCI-PIN/TAN kann man eine normale Adresse (URL) angeben, also http://rechner:1234/foo/bar.
F: Nachtrag: Ich habe die Initialisierung unter Windows mit Hilfe der freundlichen Commerzbankhotline und Starmoney 3.0 durchgeführt. Das hat auch gut funktioniert und ich bin endlich zu meinem Schlüssel (Keyfile) auf der Diskette gekommen. Leider funktioniert GnuCash nicht mit diesem Schlüssel. Ist ein ungültiges/nicht bekanntes Keyformat. Ist das also nicht genormt?!
A: Also eine Schlüsseldatei eines fremden Programms in GnuCash/AqBanking verwenden? Das geht nicht, siehe oben.
F: Beim Absenden von Überweisungs- oder Lastschriftaufträgen kommt die Fehlermeldung {{{HBCI: 9210 - DTA-Berechtigung fehlt (S)}}}. Was tun?
A: AqBanking bietet die Wahlmöglichkeit, ob Aufträge entweder als Einzelaufträge (teurer) oder als Sammelaufträge (billiger, aber weniger Details im Kontoauszug) eingereicht werden. Diese Fehlermeldung besagt, dass man Sammelaufträge eingereicht hat, aber die Bank nur Einzelaufträge akzeptiert. Abhilfe: 1. In der Datei ~/.banking/backends/aqhbci/settings.conf im Abschnitt für die entsprechende Bank und den entspr. Benutzer: {{{customer { [...]}}} den Wert {{{int preferSingleTransfer="0"}}} auf {{{int preferSingleTransfer="1"}}} ändern. 2. Alternativ im Konfigurationsassistenten durchklicken zu "Users"/"Benutzer" -> <user wählen> -> "Expert Actions"/"Experten-Aktionen" -> "Edit"/"Bearbeiten" -> <Customer/Kunde wählen> -> | "Edit"/"Bearbeiten" -> "Prefer single Transactions over multi transfers"/"Einzelüberweisung anstelle Sammelüberweisung bevorzugen" aktivieren. -- ChristianStimming DateTime(2005-10-11T08:09:42Z)
Fragen+Antworten
Dazu siehe De/FAQ#OnlineBanking.2C_HBCI_und_AqBanking.
Fehlersuche
Falls etwas nicht auf Anhieb klappt, kann man gerne auf der Mailingliste nach Hilfe fragen, siehe De/Feedback. Wichtig ist daneben noch, bei Problemberichten
- die Aqbanking-Version und
- die URL des Bankservers anzugeben, etwa
https://hbci.meine-bank.de
, und zusätzlich auch gerne die Bankleitzahl.
- Anmerkung
- Leider beschreibt der folgende Teil nur das Vorgehen unter Linux. Wer es weiß, möge bitte die entsprechenden Schritte für MacOs und Windows ergänzen. Vielen Dank!
Beim Einrichten sind zusätzlich noch die Protokoll-Ausgaben in den Fenstern des Einrichtungsassistenten von Bedeutung. Daneben speichert Aqbanking Sitzungs-Protokolle unter
$HOME/.aqbanking/backends/aqhbci/data/banks/de/<BLZ oder Bankname>/logs
Weiterhin kann man mit verschiedenen Variablen die Tiefe der Meldungen erhöhen:
export GWEN_LOGLEVEL=info export AQBANKING_LOGLEVEL=info export AQOFXCONNECT_LOGLEVEL=info export AQHBCI_LOGLEVEL=info
Andere mögliche Werte sind:
- debug (noch ausführlicher)
- warn (weniger ausführlich)
- error (am knappsten, Vorgabe)
Diese Zuweisungen sind vor dem Start von GnuCash auszuführen. Für wiederholte Aufrufe speichert man sie zusammen mit dem GnuCash-Aufruf in einer Shell- oder Cmd-Datei, welche man dann beliebig oft aufrufen kann.
- Warnung!
- Um Mißbrauch vorzubeugen, sollte man, bevor man seine Protokolle irgendjemand anderem zugänglich macht, Paßwörter, PINs etc. darin aus'X'en. Bevor man sie öffentlich macht, z.B. an Mailinglisten schickt, sollten weitere Zugangsdaten, also mindestens die Kontonummer, ausge'X't werden.
Weiterführende Literatur
Für AqBanking gibt es eine Benutzerdokumentation als AqBanking Handbuch. Eventuell wird dies auf Linux gleich mitinstalliert unter z.B. /usr/share/doc/packages/aqbanking/aqbanking-handbook.pdf.
Einige Hinweise im Fehlerfall finden sich auch im Kapitel De/Referenz#Online-Banking 2 und einige technische Details im enlischen AqBanking.
- Hinweis
- Diese Seite basierte 2009 auf https://linuxwiki.de/GnuCash#HBCI_Onlinebanking.
Zurück zum Datenaustausch | Zurück zur Hauptseite |