nemiah / phpFinTS

PHP library to communicate with FinTS/HBCI servers
MIT License
131 stars 40 forks source link

Commerzbank, Grenke #376

Closed djm03 closed 2 months ago

djm03 commented 2 years ago

Hallo zusammen,

nutzt jemand das Script in Verbindung mit der Commerzbank oder Grenke? Dort soll der HBCI Abruf nur mit zusätzlicher HBCI Schlüsseldatei funktionieren, als Alternative zum Chipkartenleser.

kosmonowt commented 1 year ago

@djm03 würde mich auch interessieren. hast du eine lösung gefunden?

roben commented 1 year ago

Hi zusammen, die Frage möchte ich auch noch einmal wieder beleben. Ich scheitere aber schon der fehlenden URL zum Abruf.

Die Infos, die ich finden konnte, sind hbci.commerzbank.de und Port 3000. aber keine https-URL für FinTS.

Die Bank unterstützt definitiv HBCI, aber eventuell nicht per https? Weiß jemand mehr?

nemiah commented 1 year ago

Ich habe vor einer Weile geschaut und leider auch nix zur Commerzbank gefunden.

chrisribal commented 1 year ago

Ich versuche aktuell auch, die Commerzbank anzubinden. Was ich auf jeden Fall schon festgestellt habe ist, dass man zunächst im Online-Banking das HBCI "beantragen" muss (unter "Service → Digitale Banking Einstellungen → HBCI einrichten"). Dann erhält man einen Begrüßungsbrief per Post (Willkommen im Zeitalter der Digitalisierung :smile: ).

Danach habe ich eine Schlüsseldatei mittels Hibiscus unter Linux angelegt. Darüber konnte ich dann auch den INI-Brief mit entsprechendem Freischalt-Hash generieren. Wichtig hierbei: als Benutzerkennung nicht den Benutzernamen zum Online-Banking nutzen, sondern die Teilnehmernummer. Den generierten Hash auf dem INI-Brief kann man im Online-Banking unter "Service → Digitale Banking Einstellungen → HBCI aktivieren" eingeben und somit den HBCI-Zugang freischalten. Über Hibiscus und der Schlüsseldatei habe ich mir auch ein aktuelles BPD abgerufen.

In der BPD war eine weitere FinTS URL genannt: https://fints.commerzbank.de/fints

Mit dieser URL komme ich in phpFinTS zu einer Kommunikation, allerdings schlägt der Login fehl:

...
PHP Fatal error:  Uncaught Fhp\Protocol\ServerException: FinTS errors:
9050 (global): Die Nachricht enthält Fehler.
9800 (global): Dialog abgebrochen
9340 (global): Unbekannte oder unzulässige Signatur.
FinTS warnings:
3920 (wrt seg 4): Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer. [999, 900] in /home/chris/Dokumente/hbci-commerzbank/vendor/nemiah/php-fints/lib/Fhp/Protocol/ServerException.php:170
Stack trace:
#0 /home/chris/Dokumente/hbci-commerzbank/vendor/nemiah/php-fints/lib/Fhp/FinTs.php(963): Fhp\Protocol\ServerException::detectAndThrowErrors()
#1 /home/chris/Dokumente/hbci-commerzbank/vendor/nemiah/php-fints/lib/Fhp/FinTs.php(307): Fhp\FinTs->sendMessage()
#2 /home/chris/Dokumente/hbci-commerzbank/vendor/nemiah/php-fints/lib/Fhp/FinTs.php(263): Fhp\FinTs->execute()
#3 /home/chris/Dokumente/hbci-commerzbank/index.php(191): Fhp\FinTs->login()
#4 {main}
  thrown in /home/chris/Dokumente/hbci-commerzbank/vendor/nemiah/php-fints/lib/Fhp/Protocol/ServerException.php on line 170

Wenn ich mir die TAN-Modi abrufe, meldet die Commerzbank nur photoTAN (900) zurück. Genau das übermittle ich also auch. Allerdings gibt es dann den Fehler "9340 (global): Unbekannte oder unzulässige Signatur.". Woran könnte denn das liegen?

roben commented 1 year ago

Oh sehr cool, danke für die Recherche! 9340 (global): Unbekannte oder unzulässige Signatur. könnte auf eine Schlüsseldatei hindeuten, anscheinend ist das ein Ding bei der CoBa: https://www.buhl.de/wiso-software/forum/index.php?thread/103536-commerzbank-fehler-bei-der-entschl%C3%BCsselung-der-nachricht/

roben commented 1 year ago

Das Thema zu Schlüsseldateien scheint auch eher begraben zu sein: https://github.com/nemiah/phpFinTS/issues/8

Die CoBa ist wirklich angekommen im Zeitalter der Digitalisierung...

chrisribal commented 1 year ago

Nicht ganz. Habe vorhin in einem anderen Forum gelesen, dass jemand sich erfolgreich ohne Schlüsseldatei mittels der fints URL anmelden konnte: https://homebanking-hilfe.de/forum/topic.php?p=166283

Der Nachteil daran ist aber, dass er jede einzelne Nachricht, egal ob Statements, Accounts, etc. mit einer photoTAN bestätigen musste. Das macht automatisierte Banking-Scripts natürlich unmöglich. In dem Thread schreibt ein anderer von genau der gleichen Fehlermeldung und bekommt den Hinweis, nochmals das HBCI bei der CoBa freizuschalten. Das habe ich nun auch nochmal getan. Mal gucken, was sich in den kommenden Tagen tut.

Ansonsten wäre der Abruf mit Schlüsseldatei natürlich wirklich ne gute Sache.

chrisribal commented 1 year ago

Falls es für andere Interessant ist: ich habe soeben das Commerzbank Developer Center gefunden. Die CoBa bietet aktuelle REST-Schnittstellen als gute Alternative für die HBCI/FinTS Schnittstellen: https://developer.commerzbank.com/products/api-catalog

roben commented 1 year ago

Good news, everyone: Wir haben die CoBa jetzt auch per FinTS abrufen können. Nachdem uns ein freundlicher "Zahlungsverkehrsexperte" der Bank die nötigen Informationen geben konnte, war nur noch ein kleiner Fix (s. #409) notig, damit wir per PhotoTAN abrufen konnten.

Hallo [...],

wie besprochen hier die Antwort unseres Supports:

 Den Softwaresupport können wir nur für StarMoney leisten, daher können wir auch nur für diese eine Anleitung zur Verfügung stellen. Eine Anleitung für Fremdsoftware steht uns an dieser Stelle nicht zur Verfügung.

 Im Serviceportal finden Sie unter https://service.commerzbank.de/pin-tan-verfahren-was-muss-ich-beachten/ grundlegende Informationen zur Nutzung von HBCI mit PIN/TAN.

 Eine Anleitung zur Einrichtung in StarMoney finden Sie hier: https://service.commerzbank.de/wie-funktioniert-die-ersteinrichtung-von-starmoney-mit-pin-tan/ . Hier wird bei der Einrichtung grundsätzlich das PIN/TAN-Verfahren in der Software ausgewählt, die Zugangsdaten für das Online Banking eingegeben und  mit einer TAN freigegeben.

 Bitte beachten Sie, dass die Kommunikationsadresse für das PIN/TAN Verfahren eine andere ist, als die für das HBCI mit elektronischer Signatur.

 In der Regel werden die Kommunikationsadressen von der Software automatisch ermittelt und hinterlegt. Sollte dies in der vom Kunden genutzten Software nicht der Fall sein, können die untenstehenden Daten für die Einrichtung eines Bankkontaktes genutzt werden.

 Kommunikationsprotokoll: HTTPS  Kommunikationsadresse: https://fints.commerzbank.de/fints  Port: 443

Ich hoffe, dass ihnen das weiterhilft.

Mit freundlichen Grüßen

[...] Zahlungsverkehrsexperte

roben commented 1 year ago

Nachtrag: Überweisungen gehen leider noch nicht:

9050 (global): Die Nachricht enthält Fehler.
9010 (wrt seg 3): Der eingereichte Geschäftsvorfall wird nicht ausgeführt.

Der CoBa-Support sagt dazu: "[...] HBCI PIN/TAN Nutzer benötigen eine Software, die den Geschäftsvorfall HITAN/HKTAN in Segmentversion 6 unterstützt, um ihr Banking und Finanzmanagement weiter nutzen zu können. Hier besteht gegebenenfalls Updatebedarf."

Bin aber noch nicht dazu gekommen, tiefer zu graben. Es scheint aber grundsätzlich zu gehen, wenn die Bank so antwortet.