De/Online-Banking

From GnuCash
Jump to: navigation, search
Sprachen Englisch
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:

Tip
Möglicherweise enthält die englische Seite Aktialisierungen, die hier noch nicht eingepflegt wurden. Falls jemand Zeit hat …

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

Bidirektionales Online-Banking

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

Anforderungen auf Europäischer Ebene

PSD2-Umstellung 2019

Seit Inkrafttreten der Umsetzung der PSD2-Richtlinie sind AqBanking-6-Bibliotheken und somit ein Gnucash neuer als 3.7 erforderlich.

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 Bankleitzahl (BLZ) und Kontonummer 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.

AqBanking kann seit Februar 2013 SEPA-Überweisungen ausführen, GnuCash selber seit 1. März 2013 [2] 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.

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.

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.

Zur Sicherheit der verschiedenen in Deutschland angebotenen Verfahren gibt es eine Einschätzung vom Bundesamt für Sicherheit in der Informationstechnik (BSI).

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 meisten 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 mailman.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.

EBICS

  • Electronic Banking Internet Communication Standard EBICS in AT, CH, DE und FR — aber gewöhnlich nur für Geschäftskunden.
    Daher haben derzeit weder AqBanking- noch GnuCash-Entwickler Zugang zu einem Testserver. Infolgedessen ist der Upload in AqBanking noch nicht implementiert. Ebenso suchen die GnuCash-Entwickler Benutzer, die bei der Download-Implementierung durch Testen helfen möchten.
  • 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. Man sollte aber zuvor De/Feedback gelesen haben. Wichtig ist bei Problemberichten vor allem

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[3] 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 # Gewöhnlich nur von Entwicklern verwendet
# 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.
Protokolle anonymisieren
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.
Im Prinzip kann man das auch mit
aqhbci-tool4 logfile -i $EINGABELOGDATEI -o $AUSGABELOGDATEI
Man sollte aber vorsichtshalber noch mal drüberschauen.

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

Bekannte Phänomene

Bei der Abfrage der Kontoumsätze dauert es sehr lange dauert, bis die Passwortabfrage erscheint
In Ordner /C:\Users\XY\aqbanking\settings6\aqbanking war eine alte Datei uniqueid.conf.lck.[4] Ein typisches Phänomen, wenn die AqBanking-Konfiguration nicht ordnungsgemäß beendet wurde: Stromausfall, Ausschalten des Computers bei laufendem Programm …

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 der letzten Umsatz-Abfrage für 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.

ING (DiBa) und AqBanking

Bekommt man bei der Registrierung eines Benutzers folgende Fehlermeldung:

HBCI: 9400 - Der anonyme Dialog wird nicht unterstützt. (M)

Sollte man bestimmte Schritte aus Bug 797690 - Cannot fetch accounts from ING (HBCI: 9400 - Der anonyme Dialog wird nicht unterstützt. (M)) ausführen:

Es scheint, daß einige Parameter, welche AqBanking braucht ("-t pintan --context=0") nicht über die graphische Oberfläche angepaßt werden können.

Basierend auf Informationen vom homebanking-hilfe Forum und dem verbundenen AqBanking Bug #134, konnte ich den Benutzer in AqBanking wie folgt einrichten:

Annahmen
  1. Betriebssystem Windows 10,
  2. Gnucash wurde im Standardverzeichnis C:\Program Files (x86)\gnucash installiert.
  1. In Windows 10 öffne powershell;
    $ 'C:\Program Files (x86)\gnucash\bin\aqhbci-tool4.exe' adduser -t pintan --context=0 -b 50010517 -u <10-digit-internetbanking-id> -N <10-digit-internetbanking-id> -s 'https://fints.ing.de/fints/' --hbciversion=300
    $ gnucash
    
    Auf einem Linux-Rechner mit nur einer installierten Version von GnuCash und AqBanking kann man den Befehlspfad verkürzen zu aqhbci-tool4 adduser ….
  2. In Gnucash
    1. Werkzeuge -> Onlinebanking Einrichtung >> Weiter >> Start AqBanking Setup
    2. In AqBanking Einrichtung wähle den frisch angelegten Benutzer und klick Benutzer bearbeiten.
    3. Unter "Special Actions" click "Get Accounts" and provide your **internet banking PIN**
    4. Make sure to Match Online accounts with GnuCash accounts correctly!


Error (11)

Bekommt man die Fehlermeldung 'Error (11)', heißt es manchmal, mann muss irgendein Prozess auf der Webseite abschließen, z.B. das hinterlegen einer Telefonnummer, das online Pflicht ist. In diesem Fall muss sich man einfach auf https://ing.de einloggen und die Aufgabe erledigen.


Zurück zum Datenaustausch Zurück zur Hauptseite
  1. Claudia Neumann: Kontenabfrage von Apo-Bank wieder möglich; Email 22.01.2021
  2. Christian Stimming: SEPA-Unterstützung in AqBanking und gnucash; Email 01.03.2013
  3. Dies wirkt nur auf die GnuCash-Dialoge, z.Zt. Salden- oder Umsatzabfrage. Die des Einrichtungsassistenten werden von Aqbankings Biliothek Gwenhywfar bereitgestellt.
  4. https://lists.gnucash.org/pipermail/gnucash-de/2021-November/012255.html