De/Online-Banking
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:
- die neusten Dateiversionen inklusive Handbuch,
- die aktuellsten Informationen, Benutzertips … im AqBanking Wiki,
- die Mailingliste aqbanking-user, sowie
- pro Komponente einen Bugtracker — zuvor bitte AqBanking: Fehler oder Probleme melden lesen!
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.
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
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 [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.
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 Institutedes 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.
Zur Sicherheit der verschiedenen in Deutschland angebotenen Verfahren gibt es eine Einschätzung vom Bundesamt für Sicherheit in der Informationstechnik (BSI).
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 Direct Connect (english) kommt überwiegend in den USA zum Einsatz.
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
- die 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
- 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:
- "Fenster nach Verbindungsende schließen" deaktivieren und
- "Ausführliche Fehlermeldungen" aktivieren. (Hiermit wird der AQBANKING_LOGLEVEL erhöht.)
# 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 |
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.[3] 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.
<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.
Zurück zum Datenaustausch | Zurück zur Hauptseite |