nemiah / phpFinTS

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

SEPA direct debit (XML) #410

Closed timrasche closed 1 week ago

timrasche commented 1 year ago

Servus Leute,

mir ist gerade aufgefallen, das wie in der "samples/directDebit_phpSepaXml.php" beschrieben, die Klasse "SEPADirectDebitBasic" und dessen property "type" nicht übernommen wird. Die Lastschrift Option "COR1" (dieser Wert überschreibt den von mir gesetzten) existiert nicht mehr und wurde durch "CORE" ersetzt (Bankenseitig). Daher wird eine falsche XML erstellt.

Ich gehe davon aus das dies der Grund ist wieso (in meinem Fall die Niederrheinische Sparkasse) die Lastschrift nicht akzeptiert und mit einem "The bank does not support the xml schema urn:iso:std:iso:20022:tech:x:sd:pain.008.003.02, but only urn:iso:std:iso:20022:tech:x:sd:pain.001.001.03, urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" quittiert.

Kann mich natürlich irren, aber das ist definitiv kritisch, da damit Lastschriften derzeit bei uns nicht funktionsfähig sind. Sonstige Hilfe gerne willkommen (falls sich der Fehler auf etwas anderes bezieht und das schon bei jemand anderen vorkam)

ampaze commented 1 year ago

Stimmt, das Beispiel ist veraltet, aber die Klasse SEPADirectDebitBasic stammt aus https://github.com/nemiah/phpSepaXml. Vielleicht da mal nachfragen.

timrasche commented 1 year ago

Da der Autor der gleiche ist und das Problem sich direkt auch auf diese Library bezieht, öffne ich ungern das gleiche Issue. Daher lasse ich das mal so stehen hier.

nemiah commented 1 year ago

Hallo,

funktioniert es, wenn der Wert vor der Übertragung manuell geändert wird? Die XML-Datei kann ja zwischengespeichert und bearbeitet werden.

VG Nena

timrasche commented 1 year ago

Hallo Nena,

danke für deine Rückmeldung. Ja so klappt es, ich habe die Klasse ähnlich wie die Business Klasse entsprechend erweitert und den Wert so initialisiert. Natürlich sollte das dennoch auch ohne mein zutun gehen ;-)

timrasche commented 1 year ago

Ok Kommando zurück,

unser Kunde hat uns gerade gemeldet das es doch nicht funktioniert (gleicher Fehler wie oben beschrieben). Also liegt die Ursache wohl an einer anderen Stelle.

timrasche commented 1 year ago

Es scheint so, das die pain message id von allen banken die wir getestet haben nicht funktioniert (pain.001.003.03). Man kann das natürlich jetzt nicht für jede Bank manuell anpassen.

Jemand eine Idee?

nemiah commented 1 year ago

Huhu, bei der Methode toXML kann das pain-Format übergeben werden. Hast du das gemacht?

timrasche commented 1 year ago

Wir sind gerade dabei die verschiedenen Formate zu testen, so wie ich das von verschiedenen Banke lese müsste das für Überweisungen mit allen neuen Features die "pain.001.001.03" sein und für Lastschriften die "pain.008.001.02".

Ich melde mich dazu wieder.

seem2810 commented 1 month ago

Wir sind gerade dabei die verschiedenen Formate zu testen, so wie ich das von verschiedenen Banke lese müsste das für Überweisungen mit allen neuen Features die "pain.001.001.03" sein und für Lastschriften die "pain.008.001.02".

Ich melde mich dazu wieder.

Das sind auch die beiden einzigen Formate, welche wir verwenden. Als Beispiel directCredit (Überweisung)

    $transfer = new SEPATransfer([
            'paymentInitiation' => 'pain.001.001.03',
            'messageID' => 'dce-' . $directCreditExport->id,
            'paymentID' => 'dce-' . $directCreditExport->id,
        ]);