De/HBCI

From GnuCash
Revision as of 09:54, 18 September 2020 by Fell (talk | contribs) (Paypal)
Jump to: navigation, search
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

ü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.

Voraussetzungen

Allgemein

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 AqFinance und der Bank her.
Anmerkung
Die GnuCash-Bündel für MacOS/Quartz und Windows enthalten seit Version 2.6.x 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. Heutzutage sind die erforderlichen Chips bereits in die normalen Bankkarten integriert. Als diese nur einen Magnetstreifen enthielten, bekam man 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 AqBanking-Paket libchipcard installiert sein. Siehe dort, welche Chipkarten im Einzelnen unterstützt werden.
    • Für die Bank macht es keinen Unterschied, ob die Schlüssel in einer Datei oder auf einer Karte gespeichert sind.
Ist das Folgende so noch gültig?
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!
Hinweis
Der Build-Server code.gnucash.org läuft mit US-Ostküsten-Zeit. Also sind, um seine Angaben in mitteleuropäische Zeit umzurechen, meist[1] 6 Stunden zu addieren.
Linux
Fast alle
Anleitung, um von einem Distributions-Paket auf ein Flatpak umzustellen.
Ubuntu
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. Die neueste Version ist die erste Datei in dieser Liste.
MacOS
Leider nicht als Bündel verfügbar. Wer selber bauen möchte, sei auf die englischsprachigen Seiten zu MacOS verwiesen.

Getestete Banken und Einstellungen

  • Welche Einstellungen erforderlich sind wie die Server-URL, Sicherheitsverfahren etc. haben andere Benutzer in der AqBanking6_Bankentabelle hinterlegt.
Allgemein läßt sich sagen, daß sowohl die öffentlich-rechtlichen Sparkassen als auch die genossenschaftlich orientierten Volks-, Raiffeisen-, ... Banken das Online-Banking inzwischen jeweils bei einem Anbieter zusammengefaßt haben und recht problemlos funtionieren. Bei den restlichen kocht aber jeder sein konzerneigenes Süppchen.
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.
  • Früher war die FinTS Bankenliste auf FinTS-fähige Institute des 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.
    Ihre Daten fließen aber in den Einrichtungs-Assistenten ein. Daher ist es wichtig, daß man eine möglichst aktuelle AqBanking-Version verwendet.

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.

Onlinebanking per PIN/TAN

Beispiel für die Konfiguration der Dortmunder Volksbank 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.

Klassisches HBCI

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?

Erweiterte Einstellungen

Hier verbergen sich einige Optionen zum Feintuning. Normalerweise werden diese Einstellungen von AqBanking bei der Einrichtung mit brauchbaren Werten belegt. Falls die Bank Einstellungen ändert, kann man sie anpassen.

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

Die eigentliche Konfiguration wird vom AqBanking-Teil des Einrichtungs-Assistenten unter folgendem versteckten Ordner gespeichert:

  • ab AqBanking 6: ~/.aqbanking/settings6/,
  • bis AqBanking 5: ~/.aqbanking/settings/.
Beim ersten Aufruf von Aqbanking 6 wird settings6 automatisch aus settings erzeugt.
GnuCash selbst speichert lediglich die Zuordnung, z.B. in einer unkomprimierten xml-Datei innerhalb des jeweiligen Kontos als:
    <slot>
      <slot:key>hbci</slot:key>
      <slot:value type="frame">
         <slot>
           <slot:key>account-id</slot:key>
           <slot:value type="string">1234567890</slot:value>
         </slot>
         <slot>
           <slot:key>account-uid</slot:key>
           <slot:value type="integer">9</slot:value>
         </slot>
        <slot>
          <slot:key>bank-code</slot:key>
          <slot:value type="string">121107882</slot:value>
        </slot>
        <slot>
          <slot:key>trans-retrieval</slot:key>
          <slot:value type="timespec">
            <ts:date>2017-08-27 09:33:08 -0700</ts:date>
          </slot:value>
        </slot>
      </slot:value>
    </slot>
account-id
die Kontonummer.
account-uid
muß derselbe Wert sein, wie in der Kontenliste des Aqbanking-Assistenten.
bank-code
Die Bank Id: In DE die Bankleitzahl (BLZ).
trans-retrieval
Zeitstempel des letzten Zugriff-Versuchs auf dieses Konto.

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.

Ein alter Kommentar

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.

Einrichtung des HBCI-Zugangs

Frage
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?
Antwort
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.
Frage
Wie kann man den Port angeben (bei Commerzbank Port 3000)? Gebe ich hbci.commerzbank.de:3000 ein wird der Host nicht gefunden. -- GuidoThulke
Antwort
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.
Frage
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?!
Antwort
Also eine Schlüsseldatei eines fremden Programms in GnuCash/AqBanking verwenden? Das geht nicht, siehe oben.
Frage
Beim Absenden von Überweisungs- oder Lastschriftaufträgen kommt die Fehlermeldung {{{HBCI: 9210 - DTA-Berechtigung fehlt (S)}}}. Was tun?
Antwort
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.

Ausführen von SEPA-Lastschriften

Siehe De/SEPA-Lastschrift


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

  • Verwendete Versionen von Gnucash und Aqbanking, sowie
  • 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
  1. In GnuCash Bearbeiten->Einstellungen->Onlinebanking:
    1. deaktiviere Fenster nach Verbindungsende schließen,
    2. aktiviere Ausführliche Fehlermeldungen. Seit 2.3.x kann AQBANKING_LOGLEVEL irgendwwie hierüber gesetzt werden.
  2. Um ausführlichere Fehlermeldungen zu sehen, können diverse Umgebungsvariablen vor dem Start von Gnucash gesetzt werden. Öffne ein Terminal-Fenster, dann
    # Allgemein:
    export AQBANKING_LOGLEVEL=info
    export GWEN_LOGLEVEL=info
    # Für FinTS/HBCI:
    export AQHBCI_LOGLEVEL=info # Warnung: Offenbart Paßwörter!
    # Für OFX:
    export AQOFX_LOG_COMM=1 # Warnung: Offenbart Paßwörter!
    export AQOFXCONNECT_LOGLEVEL=info
    gnucash
    
Andere mögliche Werte für LOGLEVEL sind
debug (noch ausführlicher)
warn (weniger ausführlich)
error (am knappsten, Vorgabe)
Tip
Für wiederholte Aufrufe speichert man obige Befehle 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.

AqBanking Website
Website
Wiki.
Genossenschaftlich orientierte Banken
vrkennung.de: nützliche Details zum Zugang über die fusionierten Betreiber Fiducia-GAD.

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
  1. Zwischen den jeweiligen Zeitumstellungen git es eine weitere Stunde Abweichung in die eine oder andere Richtung.