De/HBCI

From GnuCash
Revision as of 20:20, 24 January 2021 by CWehli (talk | contribs) (Navigation im Kopf- und Fußbereich)
Jump to: navigation, search
Zurück zu Online-Banking 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

  • Zur Nutzung von klassischen HBCI, 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ährend 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 Online-Banking mit GnuCash leider bisher nur mit DDV-Karten möglich, etwa der Sparkassen, da andere Anbieter ihre Spezifikationen nicht offengelegt haben.

Klassisches HBCI

Gemeinsame Nutzung der Konfiguration oder Sicherheitsmedien durch mehrere 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 zu Online-Banking Zurück zum Datenaustausch Zurück zur Hauptseite