nemiah / phpFinTS

PHP library to communicate with FinTS/HBCI servers
MIT License
130 stars 39 forks source link

SendSEPATransfer Response / Transfer-Limit #408

Closed wienen-it-dev closed 1 year ago

wienen-it-dev commented 1 year ago

Hallo zusammen,

drei Fragen:

1) Wie bekommt man Zugriff auf die Response-Daten beim SEPA-Transfer und welche Informationen sind dort enthalten? Etwa nach dieser Stelle aus dem Sample transfer.php: ...

$sendSEPATransfer = \Fhp\Action\SendSEPATransfer::create($oneAccount, $sepaDD->toXML());
$fints->execute($sendSEPATransfer);

2) Gibt es bei den Banken ein Limit für Auftragserteilungen (z.B. pro Stunde 1000 Überweisungen) und falls ja, kann man dieses Limit über die FinTS Schnittstelle abfragen?

3) Wenn sonstige Beschränkungen bestehen (z.B. tägliches Überweisungslimit in EUR für Bankkonto / Dispo erreicht etc.): Wird diese Information bei fehlgeschlagenen Überweisungen über FinTS übermittelt?

ampaze commented 1 year ago
  1. Wie bekommt man Zugriff auf die Response-Daten beim SEPA-Transfer und welche Informationen sind dort enthalten? Etwa nach dieser Stelle aus dem Sample transfer.php:

Dort sind keine weiteren Informationen enthalten, nur die Rückmeldung dass der Auftrag angenommen wurde oder eben nicht.

  1. Gibt es bei den Banken ein Limit für Auftragserteilungen (z.B. pro Stunde 1000 Überweisungen) und falls ja, kann man dieses Limit über die FinTS Schnittstelle abfragen?

Weiß ich nicht, die Antwort findest du aber in der Spezifikation

  1. Wenn sonstige Beschränkungen bestehen (z.B. tägliches Überweisungslimit in EUR für Bankkonto / Dispo erreicht etc.): Wird diese Information bei fehlgeschlagenen Überweisungen über FinTS übermittelt?

Das ist dann eine ganz normale Fehlermeldung.

wienen-it-dev commented 1 year ago

Hi ampaze,

vielen Dank für Deine Antworten.

Mittlerweile konnten wir eine erfolgreiche Überweisung durchführen, allerdings sind die Test-Möglichkeiten sehr eingeschränkt, insbesondere was Fehlerfälle betrifft. Daher noch Nachfragen hierzu:

  1. Wie bekommt man Zugriff auf die Response-Daten beim SEPA-Transfer und welche Informationen sind dort enthalten? Etwa nach dieser Stelle aus dem Sample transfer.php:

Dort sind keine weiteren Informationen enthalten, nur die Rückmeldung dass der Auftrag angenommen wurde oder eben nicht.

Die execute()-Funktion liefert vermutlich keinen Rückgabewert? Wird SendSEPATransfer->processResponse() ausgeführt oder muss dies noch nach execute() ausgeführt werden?

  1. Wenn sonstige Beschränkungen bestehen (z.B. tägliches Überweisungslimit in EUR für Bankkonto / Dispo erreicht etc.): Wird diese Information bei fehlgeschlagenen Überweisungen über FinTS übermittelt?

Das ist dann eine ganz normale Fehlermeldung.

Wird dies dann als Exception geworfen oder muss wie in Punkt 1. verarbeitet werden?

ampaze commented 1 year ago

So machen wir es

try
{
  $fints->execute($action);
  $action->ensureDone();
} catch (TanRequiredException $e) {
// Handle Tan
} catch (ServerException $e) {
// Handle Error Case aka Inform User
}
wienen-it-dev commented 1 year ago

Hi ampaze,

vielen Dank für Deine Hilfe, dies haben wir nun bei uns implementiert.

Eine weitere Frage ist noch aufgetaucht, betrifft jedoch den Import von Kontoauszugsdaten (GetStatementOfAccount):

Gibt es bei den einzelnen Transaktionen einen Identifier, anhand dem die Buchung eindeutig erkannt werden kann?

Hintergrund: Wir importieren einzelne Buchungstage zum Teil mehrfach und müssen bereits importierte Buchungen herausfiltern.

Falls keine ID verfügbar, gibt es eine andere Möglichkeit bei den Transaktionen, z.B. über einen timestamp (ist bei bookingDate nur Datum oder auch Uhrzeit verfügbar?).

ampaze commented 1 year ago

Es gibt keine ID, die Reihenfolge der Buchungen ist pro Buchungsdatum aber immer gleich. D.h. pro Tag durchzählen. Dann wäre die ID = Datum + Nummer der Buchung an dem Tag.

wienen-it-dev commented 1 year ago

Vielen Dank für die schnelle Hilfe!