Forum: Rails Germany Kontoauszüge automatisiert auslesen (HBCI, FinTS)

112c3dcf580abee701d2f5630e767ac2?d=identicon&s=25 Benjamin Meichsner (benni)
on 2009-01-30 19:53
Hey,

ich bin auf der Suche nach einer eleganten Möglichkeit automatisierte
Kontoauszüge (und vielleicht mehr ebanking) in eine Rails-Anwendung
einzubauen. Weil die Deutschen mit HBCI offensichtlich ein eigenes
Süppchen kochen http://www.hbci-zka.de/ gibt es dementsprechend auch
wenig open source bibliotheken.
Das einzige, was ich bisher gefunden habe ist aqbanking
http://www.aquamaniac.de/sites/aqbanking/. Allerdings gibt es damit nur
über den Umweg über die Konsole Zugriff auf das Konto.

Mit der aktuellen FinTS Spezifikation (Nachfolger von HBCI)
http://www.hbci-zka.de/spec/fints_v4_0.htm benutzt HBCI nun Standards
wie http/s als Ãœbertragungsprotokoll und XML als Dateiformat.
Eigentlich sollte sich damit doch relativ einfach eine ruby-bibliothek
basteln lassen, die dann nativ in Ruby-Anwendungen eingebaut werden
könnte, oder? ;-)

Ich freu mich über Anregungen und Tipps.
gruß,
benni
C91d05b02cc6a43fadcbe417b66bceb4?d=identicon&s=25 Roland Moriz (Guest)
on 2009-01-30 20:11
(Received via mailing list)
Hallo Benjamin,

Benjamin Meichsner schrieb:
> Weil die Deutschen mit HBCI offensichtlich ein eigenes
> Süppchen kochen http://www.hbci-zka.de/ gibt es dementsprechend auch
> wenig open source bibliotheken.

Immerhin ist HBCI ein Standard ;-)

> Das einzige, was ich bisher gefunden habe ist aqbanking
> http://www.aquamaniac.de/sites/aqbanking/. Allerdings gibt es damit nur
> über den Umweg über die Konsole Zugriff auf das Konto.
>
> Mit der aktuellen FinTS Spezifikation (Nachfolger von HBCI)
> http://www.hbci-zka.de/spec/fints_v4_0.htm benutzt HBCI nun Standards
> wie http/s als Übertragungsprotokoll und XML als Dateiformat.
> Eigentlich sollte sich damit doch relativ einfach eine ruby-bibliothek
> basteln lassen, die dann nativ in Ruby-Anwendungen eingebaut werden
> könnte, oder? ;-)

ich glaube FinTS/HBCI in allen Ausprägungen (Versionen, PIN/TAN, iTAN,
SmartCard, "Diskettenverfahren"/Keyfile) ist extrem komplex.

Ich würde das einsetzen was es bereits gibt:

Der Java HBCI/Homebanking Client Hibiscus hat eine XML-RPC
Schnittstelle: http://www.willuhn.de/projects/hibiscus/

Von den PHP Leuten gibt es einen Vortrag dazu:
http://phpugffm.de/wp-content/uploads/2007/03/onli...

Das Thema finde ich schon seit einigen Jahren spannend - halte uns auf
dem Laufenden!

Viele
Grüße,Roland


--
Moriz GmbH
Theresienstraße 66
80333 München

Tel: 089/216 685 91
Fax: 089/216 685 92

Vertretungsberechtigter
Geschäftsführer:
Roland Moriz

Registergericht: Amtsgericht München
Registernummer: HRB 174 294
USt-ID: DE260422784
112c3dcf580abee701d2f5630e767ac2?d=identicon&s=25 Benjamin Meichsner (benni)
on 2009-01-30 21:12
> ich glaube FinTS/HBCI in allen Auspr�gungen (Versionen, PIN/TAN, iTAN,
> SmartCard, "Diskettenverfahren"/Keyfile) ist extrem komplex.

Das stimmt. Aber man kann sich ja beschränken. So würde ich behaupten,
dass das PIN/TAN Verfahren (ohne TAN), beschränkt auf die Möglichkeit
des Kontoauszugs, für die meisten Anwendungen völlig ausreichen würde.
Häufig geht es ja nur für eine automatisierte Erkennung oder einfachere
Zuordnung von Überweisungen und die anschließende Überführung in die
Webapplikation. Ob die Umsetzung dieser schmalspur Bibliothek trotzdem
kompliziert genug ist, kann ich aber nicht einschätzen.
Auf jeden Fall gibt es mit der neuesten aqbanking version ja schon den
Versuch eine solche Bibliothek kommerziell zu verwerten, das
aqbanking-konsolen-tool steht nicht mehr unter einer opensource-Lizenz!

> Der Java HBCI/Homebanking Client Hibiscus hat eine XML-RPC
> Schnittstelle: http://www.willuhn.de/projects/hibiscus/

Guter Tipp, das hatte ich auch schon ausprobiert. Allerdings sträube ich
mich sehr, für diese Aktivitäten einen Speicher fressenden Javaserver
laufen zu lassen. Meine Installation ließe ich sich sicherlich noch
optimieren, aber >50MB Ram ist für so ein Feature dann doch zu viel.

> Das Thema finde ich schon seit einigen Jahren spannend - halte uns auf
> dem Laufenden!

Ende März werde ich vor. so ein Funktion umgesetzt haben (oder es
komplett verwerfen). Mal gucken wie es dann aussieht ;-)

Viele Grüße aus Berlin,
Benni
0871a0fd6f3e1fd24538914ed4ecf332?d=identicon&s=25 Sebastian Korfmann (quexo)
on 2009-01-31 15:52
Hallo Benjamin,

ich beschäftige mich derzeit mit der gleichen Thematik. Allerdings ist
bei mir ein universellerer Ansatz geplant. Und zwar möchte ich
"on-the-fly" konten hinzufügen können. Es geht mir dabei (vorerst) nur
um die Umsatzabfrage der entsprechenden Konten.

Mein Ansatz war bislang HBCI4Java via Konsole anzusprechen und die
ausgegebenen Textfiles mit Ruby zu parsen. Allerdings klingt der Ansatz
mittels XML-RPC Hibiscus anzusprechen "runder" :)

Was mir noch durch den Kopf gegangen ist: Es solle doch möglich sein,
HBCI4Java mittels JRuby nativ anzusprechen, oder irre ich mich da? Hab
leider keinerlei Java-Kenntnisse und auch wenig Erfahrungen mit JRuby.
Aber vielleicht kann ja einer von euch mehr dazu sagen.
C91d05b02cc6a43fadcbe417b66bceb4?d=identicon&s=25 Roland Moriz (Guest)
on 2009-01-31 18:21
(Received via mailing list)
Hi,

Sebastian Korfmann schrieb:
> Was mir noch durch den Kopf gegangen ist: Es solle doch möglich sein,
> HBCI4Java mittels JRuby nativ anzusprechen, oder irre ich mich da? Hab
> leider keinerlei Java-Kenntnisse und auch wenig Erfahrungen mit JRuby.
> Aber vielleicht kann ja einer von euch mehr dazu sagen.

ja, das wird gehen. Viel Erfolg :)

Wenn Ihr nur lesend tätig sein wollt (Zahlungseingänge checken,
"kontoblick.de" clonen[1]) ist das mit Pin/Tan und auch dem
Diskettenverfahren (z.B. bei Volksbanken) 'relativ' einfach.

Mit Smartcards (z.B. bei Sparkassen) kannst Du das so gut wie vergessen
(Pin/Tan nehmen wenn das auch geht).

Für firmeninterne Abläufe reicht uU auch ein (CSV/XML/...) Export aus
einem Finanzprogramm aus (StarMoney, -Business, db-dialog usw. usf.),
geht manchmal auch automatisiert.

Viel Erfolg,
Roland

[1] Ich schätze (Spekulation), die machen die komplette HBCI
Kommunikation über ein Java Applet vom Userrechner aus, sodass keine
HBCI/Kontozugangsdaten auf einem Server gespeichert werden müssen. Das
eingesetze Applet schickt dann wohl nur die Kontobewegungen zum
Webserver/Javascript im Browser)

--
Moriz GmbH
Theresienstraße 66
80333 München

Tel: 089/216 685 91
Fax: 089/216 685 92

Vertretungsberechtigter
Geschäftsführer:
Roland Moriz

Registergericht: Amtsgericht München
Registernummer: HRB 174 294
USt-ID: DE260422784
112c3dcf580abee701d2f5630e767ac2?d=identicon&s=25 Benjamin Meichsner (benni)
on 2009-02-02 13:57
Roland Moriz wrote:
> Sebastian Korfmann schrieb:
>> Was mir noch durch den Kopf gegangen ist: Es solle doch m�glich sein,
>> HBCI4Java mittels JRuby nativ anzusprechen, oder irre ich mich da? Hab
>> leider keinerlei Java-Kenntnisse und auch wenig Erfahrungen mit JRuby.
>> Aber vielleicht kann ja einer von euch mehr dazu sagen.
>
> ja, das wird gehen. Viel Erfolg :)

Hallo, ich habe mal den Entwickler von HBCI4Java kontaktiert. Offenbar
existiert nämlich schon ein Wrapper in Delphi. Vielleicht kann man so
einen Wrapper auch in Ruby umsetzten. Ich bin aber immer noch scharf auf
eine richtige Portierung (Pin/Tan-Kontoauszüge) nach Ruby - HBCI4Ruby
oder so ;-)

> F�r firmeninterne Abl�ufe reicht uU auch ein (CSV/XML/...) Export aus
> einem Finanzprogramm aus (StarMoney, -Business, db-dialog usw. usf.),
> geht manchmal auch automatisiert.

Ja, mit fastercsv als Parser geht das wahrscheinlich am einfachsten.
Komfortabel (für die Benutzerinn) ist das aber nicht.

Viele Grüße,
Benni
C91d05b02cc6a43fadcbe417b66bceb4?d=identicon&s=25 Roland Moriz (Guest)
on 2009-02-02 14:12
(Received via mailing list)
Hi,

Benjamin Meichsner schrieb:
> Roland Moriz wrote:
>> Sebastian Korfmann schrieb:
> Hallo, ich habe mal den Entwickler von HBCI4Java kontaktiert. Offenbar
> existiert nämlich schon ein Wrapper in Delphi. Vielleicht kann man so
> einen Wrapper auch in Ruby umsetzten. Ich bin aber immer noch scharf auf
> eine richtige Portierung (Pin/Tan-Kontoauszüge) nach Ruby - HBCI4Ruby
> oder so ;-)

gab es nicht sogar Python bindings für HBCI4Java oder Aqbanking?

Grüße,Roland

--
Moriz Softwareentwicklung
Roland Moriz
Theresienstraße 66
80333 München

Tel:  089 - 216 685 91
Fax:  089 - 216 685 92

Steuernummer: 145/334/35675
Finanzamt München III
112c3dcf580abee701d2f5630e767ac2?d=identicon&s=25 Benjamin Meichsner (benni)
on 2009-02-02 17:45
Roland Moriz wrote:
> gab es nicht sogar Python bindings f�r HBCI4Java oder Aqbanking?

Stimmt, für aqbanking gibt es die offenbar:
http://www.pilotennetz.de/computing/linux/rpms.shtml

Ich habe auf die schnelle aber keine Quellen gefunden. Vielleicht sollte
man nochmal den Martin Preuß (aqbanking-author) nochmal angehen...

bis demnächst,
benni
Ad91bce9c9a8c68b6942607e4721f74e?d=identicon&s=25 Beate Paland (Guest)
on 2009-06-03 15:56
(Received via mailing list)
Hallo Benjamin,

ich hole das Thema noch mal aus der Versenkung :)

Am 30. Januar 2009 22:12 schrieb Benjamin Meichsner
<lists@ruby-forum.com>:

> Ende März werde ich vor. so ein Funktion umgesetzt haben (oder es
> komplett verwerfen). Mal gucken wie es dann aussieht ;-)

Wie siehts denn aus? Alles verworfen? Ich bin auch gerade
überHibiscus gestolpert,
das sah wirklich recht interessant aus. Oder hast du das jetzt anders
gelöst?

Viele
GrüßeBeate
112c3dcf580abee701d2f5630e767ac2?d=identicon&s=25 Benjamin Meichsner (benni)
on 2009-06-03 20:10
Attachment: hbci4java4delphi.zip (80 KB)
Hallo Beate,

tja, die Prioritäten haben sich ein wenig verschoben und die HBCI
Bibliothek wurde erstmal nach hinten verschoben. Ich habe also noch
keine Lösung dafür. Allerdings hat mir der Autor von HBCI4Java einen
Wrapper in Delphi geschickt. Den könnte mensch vielleicht nach Ruby
portieren ... (Achtung, der Wrapper soll veraltet sein und funktioniert
u.U. nicht mehr mit der aktuellen Java-Bibliothek. Aber Abgucken müsste
ja gehen.)

Falls ich aber mal ne Lösung zusammen stecke, sage ich Bescheid. Ich
hoffe, alle anderen verfahren ähnlich ...

Gruß,
benni
5d1dd4333c03609a2f5a8887c926abb1?d=identicon&s=25 unknown (Guest)
on 2009-06-03 21:43
(Received via mailing list)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Beate Paland schrieb:

> das sah wirklich recht interessant aus. Oder hast du das jetzt anders gelöst?
Ich habe das mit Hibiscus für einen Kunden umgesetzt. Für diesen Zweck
hab ich das Hibiscus XML/RPC-Modul um eine recht mächtige
Abfrage-Funktion erweitert. Die ist bisher aber nur im Quellcode
dokumentiert.

Unser Kunde ist bei der entgültigen Installation auf das Problem
gestoßen, dass er eine RSA-Karte verwendet. RSA-Karten werden von
HBCI4Java (und damit von Hibiscus) NICHT unterstützt. Man kann hier nur
DDV-Karten verwenden. Der Kunde musste dann auf TAN-Listen umsteigen.

GrüßeJulian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkom0kgACgkQ0aFuSjNzs5K89gCghoDMWDaQ7gVOMQpfZ+lpbfXY
eV8AoI9gIbVOHq6o5UlWIjLU2NhizSzN
=O/xr
-----END PGP SIGNATURE-----
C91d05b02cc6a43fadcbe417b66bceb4?d=identicon&s=25 Roland Moriz (Guest)
on 2009-06-03 22:18
(Received via mailing list)
Hallo Julian,

juliank2@gmx.de schrieb:
> Unser Kunde ist bei der entgültigen Installation auf das Problem
> gestoßen, dass er eine RSA-Karte verwendet. RSA-Karten werden von
> HBCI4Java (und damit von Hibiscus) NICHT unterstützt. Man kann hier nur
> DDV-Karten verwenden. Der Kunde musste dann auf TAN-Listen umsteigen.

kannst Du mir sagen, welches Institut dies betrifft? Gerne auch
off-list.

Grüße,Roland


--
Moriz GmbH
Hedwig-Dransfeld-Allee 14
80637 München

Tel: 089/78795079 (AB)

Vertretungsberechtigter
Geschäftsführer:
Roland Moriz

Registergericht: Amtsgericht München
Registernummer: HRB 174 294
USt-ID: DE260422784
5d1dd4333c03609a2f5a8887c926abb1?d=identicon&s=25 unknown (Guest)
on 2009-06-04 02:08
(Received via mailing list)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Roland Moriz schrieb:

> Hallo Julian,
>
> juliank2@gmx.de schrieb:
>> Unser Kunde ist bei der entgültigen Installation auf das Problem
>> gestoßen, dass er eine RSA-Karte verwendet. RSA-Karten werden von
>> HBCI4Java (und damit von Hibiscus) NICHT unterstützt. Man kann hier nur
>> DDV-Karten verwenden. Der Kunde musste dann auf TAN-Listen umsteigen.
>
> kannst Du mir sagen, welches Institut dies betrifft? Gerne auch off-list.

Am besten Fragst du direkt bei der Bank des Kunden an. Ich bin bei der
Bremer Sparkasse und hab eine DDV-Karte. Möglicherweise haben alle
Sparkasse DDV-Karten. Unser Kunde ist bei der Deutschen Bank Berlin und
die bieten ihm nur RSA-Karten an.

GrüßeJulian

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkonEDUACgkQ0aFuSjNzs5LydQCdGW8ZRYrWYkb7kYTv3f3Wqi5p
igoAoLWUGFbWIsIqwYNBQXnBkMf3VXWL
=5Mja
-----END PGP SIGNATURE-----
6aba6866f04fd4a0658b32de7b0053f0?d=identicon&s=25 Martin Honermeyer (Guest)
on 2009-06-08 00:42
(Received via mailing list)
Hi,

da ich diese Liste nur ab und zu überfliege, habe ich diesen Thread
leider erst
heute gesehen. Möchte jetzt gerne meinen Senf dazu geben.

Generell scheint die Zahl an HBCI-Bibliotheken im Open-Source-Bereich
sehr
niedrig zu sein. Ursprünglich hatte ich auch mit aqbanking herum
experimentiert. Da ich jedoch kaum Entwickler-Dokumentation dazu finden
konnte
und das Ganze auch nicht weiter entwickelt zu werden scheint (?), habe
ich das
fallen gelassen.

Ich habe mich dann mit dem hier bereits angesprochenen HBCI4Java
auseinander
gesetzt. Ich kann die Bibliothek sehr empfehlen, da sie aktiv weiter
entwickelt wird und mit den aktuellen HBCI-Standards stabil
funktioniert.
Sowohl Pin/TAN- als auch RDH-Zugänge funktionieren bei mir problemlos.
Es gibt
auch ein Forum, in dem man Probleme mit einer aktiven Community
austauschen
kann.

Kurz zu meiner Umsetzung: Ich habe eine Rails-Anwendung auf JRuby
laufen, die
HBCI4Java als JAR einbindet und direkt aus Rails heraus aufruft. Ich
nutze
eine Schlüsseldatei, die ich mit einem Kommandozeilentool von HBCI4Java
initialisiert habe und die direkt auf dem Server liegt. Die Anwendung
kann
(aus HBCI-Sicht) Kontoauszüge abrufen und Lastschriften rausschicken.
Dies
geschieht im Vordergrund, d.h. während des jeweiligen Seitenaufrufs,
also ohne
Hintergrundprozesse.

Da eine HBCI-Transaktion, wie z.B. eine Umsatzabfrage, den Ruby-Prozess
für
weitere Requests sperrt, sollte man unbedingt auf einen "richtigen"
Applikationsserver wie z.B. Glassfish deployen und die Multithreading-
Fähigkeiten nutzen. (Es sei denn, das Ganze soll eine 1-User-Anwendung
sein -
dann kann man bei Mongrel/Webrick bleiben!) Um HBCI4Java in diesem
Multithread-Szenario nutzen zu können, muss man ein paar Hürden
bewältigen.
Das habe ich inzwischen aber geschafft.

Wenn man keine Bedenken (oder Probleme) hat, die Rails-Anwendung auf
JRuby
umzustellen, kann ich das nur wärmstens empfehlen. Falls jemand
Interesse hat,
kann ich gerne weitere Details zu meiner Umsetzung abgeben. Oder meine
Erfahrungen direkt bloggen, damit noch mehr Leute was davon haben.


Schöne Grüße
Martin


Am Montag, 2. Februar 2009 17:45:29 schrieb Benjamin Meichsner:
Afd6dc452bc20f8f06612d4792bb8be3?d=identicon&s=25 Stefan Tilkov (Guest)
on 2009-06-08 07:42
(Received via mailing list)
On 08.06.2009, at 00:42, Martin Honermeyer wrote:

> Oder meine Erfahrungen direkt bloggen, damit noch mehr Leute was
> davon haben.

Das fände ich prima.

Stefan
--
Stefan Tilkov, http://www.innoq.com/blog/st/
This topic is locked and can not be replied to.