De/HBCI

From GnuCash
Revision as of 21:53, 6 December 2015 by Fell (talk | contribs) (Präzisierung Beziehung HBCI - FinTS)
Jump to: navigation, search

Zurück zur Hauptseite

HBCI (Homebanking Computer Interface) oder FinTS, wie es seit Version 3.0 mit der Standardisierung von Pin/Tan, offiziell heißt, stellt eine vom Zentralen Kreditausschuß (ZKA) in Deutschland standardisierte Schnittstelle für das Homebanking / Online-Banking dar. Dieser Standard ist vor allem in Deutschland im Einsatz und wird in GnuCash neben anderen Methoden wie EBICS oder OFX Direct Connect mit dem Zusatz-Softwarepaket AqBanking realisiert. (Bis 2004 wurde dessen Vorgänger OpenHBCI verwendet.) Seit Version 3.0 heißt HBCI offiziell FinTS - Financial Transaction Services. [offizielle HBCI Seite des ZKA]

Wer mehr über das HBCI-Verfahren wissen möchte kann das in Wikipedia:HBCI nachlesen.

Einige Informationen zu AqBanking finden sich auch bei Martin Preuß ("aquamaniac"), wo auch eine eigene Mailingliste aqbanking-user zu AqBanking angeboten wird.

Hinweis zu dieser Seite: Der Inhalt dieser Seite stand früher auf http://linuxwiki.de/GnuCash#HBCI_Onlinebanking

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.
  • 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.
  • Eine weitere Anleitung zu AqBanking ist in Form des AqBanking-Handbuchs auf http://www2.aquamaniac.de/sites/download/packages.php herunterzuladen und/oder online zu lesen, da einige Details wie z.B. Benutzer-/Kunden-name/-kennung sonst etwas verwirrend sein können.

In der Windows-Version von GnuCash ist AqBanking bereits integriert und muss nicht extra installiert werden, allerdings ohne Chipkarten-Support. Die Einrichtung geschieht in GnuCash recht komfortabel mittels eines Assistenten. Viele Banken bieten HBCI mit PIN/TAN-Verfahren an, so dass auch hier nichts zusätzlich beauftragt werden muss.

Fragen+Antworten

Dazu siehe De/FAQ#OnlineBanking.2C_HBCI_und_AqBanking.

Getestete Banken und Einstellungen

SEPA-Umstellung Anfang 2014

SEPA bedeutet Single Euro Payments Area (Einheitlicher Euro-Zahlungsverkehrsraum). Anstelle der BLZ und Ktonr. tritt die International Bank Accounting Number (IBAN). Diese besteht aus dem ISO-Länderkürzel, 2 Prüfziffern, der BLZ und, durch Nullen links aufgefüllt, der Kontonummer. Bei Überweisungen in Drittländer ist zusätzlich noch der Business Identifier Code BIC anzugeben.

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.

OS/Distri-spezifisches

AqBanking und Gnucash unter Windows

Alle GnuCash 2.6.x Versionen und höher werden mit aqbanking-Unterstützung ausgeliefert.

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://bugzilla.gnome.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)

Fehlersuche

Falls etwas nicht auf Anhieb klappt, kann man gerne auf der Mailingliste nach Hilfe fragen, siehe De/Referenz#Wie man einen Fehler meldet oder einen Verbesserungsvorschlag einreicht vertraut machen. 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.

Beim Einrichten sind zusätzlich noch die Protokoll-Ausgaben in den Fenstern des Einrichtungsassistenten von Bedeutung. Daneben speichert Aqbanking Sitzungs-Protokolle unter

$HOMEDIR/.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.

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/aqbanking4-handbook-20091231.pdf mitgeliefert. Online findet man das auch hier: http://www.aquamaniac.de/sites/aqbanking/index.php

Einige Hinweise im Fehlerfall finden sich auch im Kapitel De/Referenz#Online-Banking 2.


Zurück zur Hauptseite