Kontoauszüge automatisiert auslesen (HBCI, FinTS)


#1

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? :wink:

Ich freu mich über Anregungen und Tipps.
gruß,
benni


#2

Hallo Benjamin,

Benjamin M. 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 :wink:

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? :wink:

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/onlinebanking-mit-php.pdf

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

Registergericht: Amtsgericht München
Registernummer: HRB 174 294
USt-ID: DE260422784


#3

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 :wink:

Viele Grüße aus Berlin,
Benni


#4

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” :slight_smile:

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.


#5

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 :slight_smile:

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

Registergericht: Amtsgericht München
Registernummer: HRB 174 294
USt-ID: DE260422784


#6

Hi,

Benjamin M. schrieb:

Roland M. 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 :wink:

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

Grüße,Roland


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

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

Steuernummer: 145/334/35675
Finanzamt München III


#7

Roland M. 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 :slight_smile:

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 :wink:

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


#8

Hallo Benjamin,

ich hole das Thema noch mal aus der Versenkung :slight_smile:

Am 30. Januar 2009 22:12 schrieb Benjamin M.
removed_email_address@domain.invalid:

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

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


#9

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


#10

Roland M. 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


#11

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Beate P. 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-----


#12

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Roland M. schrieb:

Hallo Julian,

removed_email_address@domain.invalid 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-----


#13

Hallo Julian,

removed_email_address@domain.invalid 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 M.

Registergericht: Amtsgericht München
Registernummer: HRB 174 294
USt-ID: DE260422784


#14

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 M.:


#15

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 T., http://www.innoq.com/blog/st/