AqBanking
dieses Tool basiert auf der Funktionalität der Biliothek "AqBanking" 3.2.2 von Martin Preuss http://www.aquamaniac.de/ die vor Verwendung installiert sein muss.
aqbc ist ein für Linux verfügbares Commando-Zeilen-Tool, das es ermöglicht ...
- Umsätze und Salden eines Kontos via HBCI auszulesen. Als Ausgabe erzeugt aqbc CSV-Dateien, die leicht weiterverarbeitet werden können.
- Laschriften, die als CSV-Datei vorliegen, via HBCI an die Bank zu übertragen und durchzuführen.
aqbc liegt im C-Quelltext [1] (GPL 3.0 Lizenz) vor.
Ziel
Linux-basierter REST-Server-Dienst. Wrapper für grundlegende "AqBanking Rev. 3.x" Funktionen.
- Umsätze abrufen (./UMSATZ)
- Sammel-Lastschriften durchführen (./LASTSCHRIFT)
- OPTIONAL: (Termin-)Überweisungen durchführen (./UEBERWEISUNG)
Die Buchführung des OrgaMon kann "externe" Konten via Webserices (vorzugsweise REST) integrieren. Dadurch werden Giro-Konto-Buchungen direkt im OrgaMon sichtbar. Systematischer Aufbau des Server-Dienstes.
notwendige Implementierungen
- aqbd - der aqbanking dämon. Muss notwendigerweise als Dämon programmiert werden da z.B. das Mehrstufige TAN Verfahren mehrere REST-Zyklen benötigt und die Verbindung zur Bank dazwischen nicht unterbrochen werden darf, insbesondere beim iTAN Verfahren. Die Kommunikation mit der Aussenwelt erledigt der Dämon über das dbus-Interface. Ein PHP-Script kann über den Befehl dbus-send Informationen mit dem Dämon austauschen.
mehr Infos zu DBUS
Meilensteine
Erreichte
- Linux-Anwendungsebene: QBankingManager installieren (Erfolg: 21.02.2008)
- ein Giro-Konto abfragen um zu sehen, ob das Teil funktioniert (Erfolg: 21.02.2008)
- Transaktion "Konto-Umsatz-Abfrage" ausprobieren! (Erfolg: 21.02.2008)
- Transaktion "Sammel-Lastschrift" (DTA) ausprobieren! (Geht nicht! Nur Einzeln)
- Linux-Programmierebene: "aqbanking 3" versuchen zu compilieren (Erfolg: 19.02.2008)
- Mini-Programm Konsolen-Programm erstellen das z.B. die Kontenliste auf den Schirm bringt (Erfolg: 22.02.2008)
- AH_Job_GetBalance ("~kto~.~blz~") : double (aufgegeben, wir können das ergebnis nicht parsen)
- AH_Job_GetTransactions ("~kto~.~blz~","20.02.2008") : (Erfolg: 28.02.2008)
- AH_Job_MultiDebitNode_new (Achtung schwierig: "Multi-Job" + "TAN" notwendig + DTAUS Importer verwenden!) (07.03.2008)
- Erfolgreiche erzeugung eines DebitNote-Auftrags aus Kommandozeilenparametern und csv-Datei (07.03.2008)
- Erfolgreiche auftragsübertragung bis zur TAN-Abfrage über den Passwort-Callback!!(05.03.2008)
- Erfolgreiche Lastschriften mit einer einzelnen, sowie mit 2 Lastschriften in einer Sammellastchrift. (07.03.2008)
Offen
- Umlaute eingangsseitig / Ausgangsseitig testen
- aqbd nun als richtiges / eigentständiges Linux Projekt beginnen und Know-How aus abtest übernehmen (Info: http://www.openismus.com/documents/linux/automake/automake.shtml)
- den d-bus Server-Code in aqbd übernehmen
- REST-Server in PHP verwirklichen, ruft das cmd-tool "dbus-send"
- REST - Mappings definieren auf ein nun fertiges "aqbc"-Programm das in C programmiert ist.
- Integration in den OrgaMon
- Grosse Kick-Off-Party für DDBAC
Projektstatus
Das Projekt befinder sich noch in der Entwicklungsphase
- Erfolgreches Abrufen der Kontostände und ablegen in eine csv-Datei
- Der Programmteil Umsatzabfrage ist im Beta-Stadium fertiggestellt!!
Bedienung: -U oder -u für umsatzabfrage Danach kommen die Parameter BLZ KTO PIN [Datum] ohne - oder / oder ähnliches, nur durch whitespace getrennt
- Erfolgreiche Lastschriften
- Lastschriftverfahren für ein- oder mehrere Datensätze erfolgreich getestet!
- Der Programmteil Lastschrift ist im Beta-Stadium fertiggestellt!!
Bedienung -L oder -l für Lastschrift Danach kommen die Paramter BLZ KTO PIN "Pfad der CSV-Datei" ebenfalls ohne sonderzeichen, nur durch whitespace getrennt
- Erfolgreches Abrufen der Salden und ablegen in eine csv-Datei
- Der Programmteil Saldo ist im Beta-Stadium fertiggestellt!!
Bedienung: -S oder -s für Saldo Danach kommen die Parameter BLZ KTO PIN ohne - oder / oder ähnliches, nur durch whitespace getrennt
- Programm Komplett im Alpha-Stadium
- "Verpacken" in ein eigenes Projekt und abschluss der Entwicklungsphase
- Ausgedehntere Tests
Verwendung von DDBAC, DataDesign
funktioniert seit 2002, wird aber wegen der Lizenzbestimmungen von DataDesign nur in der Entwicklerversion als Machbarkeitsdemonstration verwendet.
Verwendung von Aqbanking 3
- Homepage: http://www.aquamaniac.de/sites/aqbanking/index.php
- Developement-Snapshot-aqbanking: http://devel.aqbanking.de/viewsvn/aqbanking
- Mailing-List: http://sourceforge.net/mailarchive/forum.php?forum_name=aqbanking-devel
bisherige Implementierungen
leider basiert die Implementierung auf "aqbanking 2" das nicht weiterentwickelt wird. In "aqbanking 3" das wir verwenden wollen ist das Kommandozeilen-Tool "aqbanking-tool" nicht mehr vorhanden.
REST-Implementierung
Umsatz
Anfrage:
./UMSATZ/~BLZ~/~KONTO#~/2008-02-28?f=text
Antwort:
- Mapping csv<->Aqbanking
// Zuordnungen gefunden Buchungsdatum<->date Typ<->transactionKey (Beispiel: "NSTO","NMSC","NCHK") vonBLZ<->remoteBankCode vonKonto<->remoteAccountNumber vonName1..2<->remoteName ValutaDatum<->valutaDate Betrag<->value.value Waehrung<->value.currency VorgangID<->textKey VorgangText<->transactionText Primanota<->primanota Verwendungszweck1..7<->purpose
Sammellastschrift
Anfrage:
POST ./LASTSCHRIFT/~BLZ~/~Konto~
mit einem http-Upload der DTA-Datei!
Antwort:
- die Antwort ist aus Ablaufgründen ein html-Formular:
Nun bitte die 34. TAN [______]
(Ausführen)
- iTAN: Ist das iTAN Verfahren gewählt, so muss vom Server vor Anzeige der Antwort zunächst die Index-Nummer der iTAN abgefragt werden
- DTA: Dem Dienst muss die Sammel-Lastschrift Datei übertragen werden. Dabei wird auf das bewährte DTA-Format gesetzt
- "POST" (=Button "Ausführen") schickt die Daten nun zum Server, dann erst erfolgt die eigentliche Arbeit
Termin-Überweisung
-- noch kein Bedarf --
Nebenprojekt von Andreas
Versuch mit aqbanking 2.3
http://ftp.gwdg.de/pub/linux/packman/suse/10.3/i586/
Anleitung zum Nachvollziehen des Projektes
aqbanking compilieren
- gwen dingens ...
- aqbanking dingens ...
./configure --disable-chipcard-client --with-frontends=""
settings.conf anpassen
das Flag "PreferSingleDebiNotes" rausmachen
prefersingletransfer 0x00000001 : Einzelüberwisung bevorzugt, für uns unwichtig
prefersingledebitnote 0x00000002 : Ist default, wird einfach aus der settings.conf entfernt, SingleDebinote gibt es nicht bei VoBa!
Vermischtes
Kleine Anleitung für entwickler entdeckt, leider offensichtlich nicht ganz aktuell
http://www.aquamaniac.de/apidoc/aqbanking/G_APP_INTRO.html
Sieht fast so aus, ls sei die Funktion AB_Banking_EnqueueJob() in der neuen Version nichtmehr vorhanden!! Anscheinen wurde sie von der JobList2 Verdrängt (??) http://www.aquamaniac.de/apidoc/aqbanking/listdoc_8h.html#afb08a006da8e45b8aaec3d1b8379ca9