Schlagwort-Archive: PSD2

Postbank mit PHP über HBCI-Schnittstelle (wieder) abfragen

Seit dem 14.09.2019 ist es komplizierter geworden per HBCI auf das eigene Konto zuzugreifen. Geschuldet ist das der EU-Richtlinie PSD2.

Wer bis dahin das beliebte Paket fints-hbci-php genutzt hatte, hat jetzt Probleme, denn dieses Paket wird nicht mehr gepflegt; es kommt mit den Anforderungen von PSD2 nicht klar.

Da ich selbst für meinen Shop auf Null Papier einmal am Tag per HBCI automatisch die Zahlungseingänge abfrage und verarbeite, musste schnell eine neue Lösung, ein neues Paket gefunden werden.

Schnell fiel die Wahl auf nemiah/phpFinTS. Nach kurzem Austausch mit der Entwicklerin, lief es dann auch (wieder) für meine Postbank-Konten.

Anleitung

composer require nemiah/php-fints
nano vendor/nemiah/php-fints/Samples/statement_of_account.php # Anpassen

Neu ist hier die sogenannte FinTS-Registrierungsnummer. Jeder, der jetzt mit HBCI/FinTS arbeiten will, muss seine Software, egal ob App, Server-Script oder Desktop-Anwendung, registrieren lassen. Das klingt komplizierter, als es ist. Ich selbst erhielt meine Registrierungsnummer nach wenigen Minuten, daher denke ich, dass es sich hier um einen automatisierten Vergabeprozess handelt.

Die Registrierungsnummer erhält man unter: https://www.hbci-zka.de/register/prod_register.htm.

Die einzelnen Settings

FHP_BANK_URL: https://hbci.postbank.de/banking/hbci.do

FHP_BANK_PORT: 443

FHP_BANK_CODE: die Bankleitzahl

FHP_ONLINE_BANKING_USERNAME: die eigene Postbank-ID

FHP_ONLINE_BANKING_PIN: das Online-Passwort

FHP_REGISTRATION_NO: die oben erhaltene Registrierungsnummer

FHP_SOFTWARE_VERSION: die Versionsnummer der eigenen Software, bspw. 0.1b

Jetzt muss man nur noch folgende Zeile anpassen:

45: $fints->setTANMechanism(901);

mit

$fints->getVariables();

liefert die Postbank folgende, verfügbaren TAN-Mechnismen:

stdClass Object
(
    [tanModes] => Array
        (
            [912] => chipTAN optisch HHD1.4
            [913] => chipTAN manuell HHD1.4
            [920] => BestSign
            [930] => mobileTAN
        )

)

 

Ich selbst nutze die BestSign-App. WICHTIG: Die selbst erstellte Bezeichnung für das gewählte BestSign-Verfahren muss auch noch angegeben werden.

Also erhalten wir folgende Zeile

45: $fints->setTANMechanism(920, 'EigeneBezeichnung');

Jetzt sollte es eigentlich schon funktionieren. Bei mir hat es das jedenfalls.

Fragen stellt man am besten bei https://github.com/nemiah/phpFinTS/issues, damit alle etwas davon haben.