De/Online-Banking

From GnuCash
Revision as of 16:35, 19 February 2021 by CWehli (talk | contribs) (new chapter "Fehlersuche")
Jump to: navigation, search
Zurück zum Datenaustausch Zurück zur Hauptseite

Online-Banking wird in GnuCash mithilfe des Pakets AqBanking von Martin Preuß realisiert.

Auf aquamaniac.de gibt es:

Bidirektionales Online-Banking

Hier ist auch die Auftragserteilung an die Bank möglich.

Voraussetzungen

Damit GnuCash die Funktion des Online-Banking unterstützt, gibt es einige Voraussetzungen:

  • 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.
  • GnuCash muss mit der Option '--enable-aqbanking' kompiliert sein. Bei den meisten Distributionen ist dieses Flag gesetzt. Man kann es erkennen, wenn es im Menüpunkt Aktionen ein Untermenü Online Aktionen gibt.
  • 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.

Die Installation einer aktuellen Version unter den gängigen Betriebssystemen ist auf Installation und Update beschrieben.

Sonderfälle
Apo-Bank
hatte kombiniert mit einem Provider-Wechsel Probleme, soll aber seit Januar 2021 mit der TAN-Methode Cronto wieder funktionieren.[1]
ING-DiBa
hat die Umstellung nicht mitgemacht, betreibt aber weiter den alten Server im Nur-Lesen-Modus.

SEPA-Umstellung 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 unter #Erweiterte Einstellungen noch mal die Einstellungen mit den Angaben der Bank abgleichen.

Getestete Banken und Einstellungen

  • Welche Einstellungen erforderlich sind wie die Server-URL, Sicherheitsverfahren etc. haben andere Benutzer in der AqBanking6_Bankentabelle hinterlegt.
Allgemein lässt sich sagen, dass sowohl die öffentlich-rechtlichen Sparkassen als auch die genossenschaftlich orientierten Volks-, Raiffeisen-, ... Banken das Online-Banking inzwischen jeweils bei einem Anbieter zusammengefasst haben und recht problemlos funktionieren. 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 " muss 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 E-Mail-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, dass man eine möglichst aktuelle AqBanking-Version verwendet.

FinTS

Der FinTS- Standard (Financial Transaction Services) beschreibt das vom damaligen Zentralen Kreditausschuß (ZKA) in Deutschland standardisierte Verfahren für das Homebanking / Online-Banking. Dabei kommen wahlweise zwei unterschiedliche Sicherheitsmodule zum Einsatz:

HBCI

Als klassisches HBCI wird das Online-Banking mit elektronischer Signatur z.B. per Chipkarte oder Schlüsseldatei bezeichnet.

PIN/TAN

Für die Kommunikation mit der Bank wird eine TAN angefordert, die mit Hilfe des chipTAN-Mechanismus generiert und validiert wird. Die Vielzahl der von GnuCash unterstützen Varianten werden auf PIN/TAN beschrieben.

EBICS

  • Electronic Banking Internet Communication Standard EBICS in AT, CH, DE und FR,
  • Standards, Spezifikationen usw. können auf ebics.de und ebics.org (en) eingesehen werden.

Uni-direktional

Das ermöglicht im Wesentlichn den Abruf von Salden und Umsätzen..

PayPal

OFX

OFX DirectConnect

OFX WebConnect

  • OFX WebConnect ist kein Online-Banking-Verfahren im engeren Sinne, sondern man benutzt den Browser zum Einloggen

Fehlersuche

Falls etwas nicht auf Anhieb klappt, kann man gerne auf der Mailingliste nach Hilfe fragen, siehe De/Feedback. Wichtig ist, bei Problemberichten

Anmerkung
Der folgende Teil beschreibt das Vorgehen unter Linux. Wer es weiß, möge bitte die entsprechenden Schritte für MacOS und Windows ergänzen.

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

Debuglevel einschalten

Generell ist es sinnvoll, das Log-Fenster nach Beendigung der Online-Transaktion offen zu lassen. So kann z.B. beim PIN/TAN- Verfahren schnell nachgelesen werden, ob die eingegebene TAN von der Bank akzeptiert wurde.

Hierzu bitte in GnuCash unter Bearbeiten -> Einstellungen -> Onlinebanking:

  1. "Fenster nach Verbindungsende schließen" deaktivieren und
  2. "Ausführliche Fehlermeldungen" aktivieren. (Hiermit wird der AQBANKING_LOGLEVEL erhöht.)
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 können die obigen Befehle in einer Shell- oder Cmd-Datei gespeichert werden um diese beliebig oft aufzurufen.
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.

Bedeutung von Meldungen

In der Log-Ausgabe (Verlaufsfenster) wird während der Online-Transaktion viel Text über die Kommunikation mit der Bank geschrieben. Hierbei tauchen auch vom Zentralen Kredit-Ausschuss der deutschen Banken spezifizierte FinTS Rückmeldungscodes auf.

In der Tabelle werden nur die am häufigsten vorkommenden Rückmeldungscodes mit einer Erklärung aufgelistet.

Code Text Erklärung
0010 Nachricht/Auftrag angenommen auch "Nachricht entgegengenommen"
0020 Ausgeführt auch "Information fehlerfrei entgegengenommen"
0100 Dialog korrekt beendet Nachricht/ Auftrag angenommen
3010 Nicht verfügbar Benachrichtigung über die Aktualisierung interner Daten
3050 Die BPD wird aktualisiert
3060 Teilweise liegen Warnungen oder Hinweise vor
3900 Kein Umsatz gem. Suchbegriff vorh.
3920 Nur Zwei-Schritt-TAN-Verfahren zulaessig
9010 Geschäftvorfall nicht bearbeitet
9050 Teilweise fehlerhaft
9230 Auftrag nicht ausgeführt, da Limit überschritten.
9380 Signaturberechtigung für diesen Kunden unzulässig auch "Benutzer hat keine Auftragsberechtigung"
9800 Abgebrochen
9955 Ein-Schritt-TAN-Verfahren nicht zugelassen

Technische Hinweise

Falls mal was schiefgegangen ist, kann man einige Dinge mit einfachen Mitteln überprüfen und möglicherweise beheben.

Benutzer und Konten verbinden

Zum Abschluss des Onlinebanking-Einrichtungsassistenten wird die eigentliche AqBanking-Konfiguration für das Konto 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>

Hierbei haben die einzelnen keys diese Bedeutung:

account-id
die Kontonummer.
account-uid
muss 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 änderte 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.



Zurück zum Datenaustausch Zurück zur Hauptseite