Blogpost

Automatisierung im Zahlungsverkehr: pain.002 und die korrekte Zuordnung zur pain.001

Mit der größeren Verbreitung der Echtzeitzahlungen auch über EBICS durch die neue Instant Payment Regulierung (IPR) und der damit verbundenen Rückmeldung über die Ausführung wird der Payment Status Report (PSR) in Form einer pain.002 immer wichtiger. Nur so kann man bequem und automatisiert analysieren, welche Zahlungen nicht ausgeführt wurden.

442
8 Minuten Lesezeit

In dieser Collection enthalten:

Collection öffnen

Viele Banken stellen den pain.002-Payment-Status-Report (PSR) bereits seit Längerem zur Verfügung. Spätestens jedoch mit der Verpflichtung aus der Instant-Payments-Regulation (IPR), Kunden über den Ausführungsstatus jeder einzelnen Zahlung zu informieren, gewinnt die pain.002 zunehmend an Bedeutung.

Je nach Bank bieten diese den pain.002-PSR nicht nur für die Echtzeitzahlungen an, sondern auch für den xml-Auslandszahlungsverkehr, Lastschriften und SEPA-Überweisungen. Die Bereitstellung wird bei EBICS über jeweils unterschiedliche Auftragsarten / BTF zur Verfügung abgeholt.

Die in der Anlage 3 des DFÜ-Abkommens definierten Auftragsarten sind wie folgt:

Auftragsart BTF-Parameter (ab EBICS 3.0) Verwendung
CRZ REP/DE/SCT/ pain.002/ZIP

 

Payment Status Report for Credit Transfer (zip)
CIZ

 

REP/DE/SCI/ pain.002/ZIP

 

Payment Status Report for Instant Credit Transfer (zip)
CDZ

 

REP/DE/SDD/ pain.002/ZIP

 

Payment Status Report for Direct Debit (zip)
CRC

 

REP/DE/SCT/ pain.002/XML

 

Payment Status Report for Credit Transfer (xml-Container)

Wird nicht mehr unterstützt

CBC

 

REP/DE/SDD/ pain.002/XML

 

Payment Status Report for Direct Debit (xml-Container)

Wird nicht mehr unterstützt

Zuordnung und Mapping zwischen pain.001 und pain.002

Der PSR gibt Auskunft über den Verarbeitungsstatus der Zahlungen in der pain.001 bei  der Auftraggeber-, aber auch bei  der Empfängerbank. Die detaillierte Zuordnung des Ausführungsstatus zur Einzelzahlungen in der ursprünglichen pain.001 funktioniert nicht ganz automatisch. Der folgende Text gibt Aufschluss über die Fallstricke und Lösungsansätze für eine bessere Verarbeitung.

Wie sind die beiden Dateien miteinander verbunden?

Die pain-Dateien müssen sowohl auf Dateiebene selbst, auf Sammler-Ebene aber auch auf Einzelsatzebene verbunden sein, damit eine korrekte Zuordnung und Auswertung erfolgen können.

Zuordnung auf Datei-Ebene

Die pain.001 ist chronologisch zuerst vorhanden. Deren Daten müssen sich also in der pain.002 wiederfinden, damit die Verbindung zwischen den beiden funktioniert.

Im folgenden Bild ist die pain.001 links und die pain.002 rechts dargestellt.

Auf Header Ebene ist vor allem die Zuordnung des Tags <MsgId> wichtig, die die Zahldatei eindeutig identifiziert. Die <MsgId>in der pain.001 wird zur <OrgnlMsgId>. (Die pain.002 hat übrigens auch eine eigene <MsgId>, vergeben von der Bank)

In der folgenden Abbildung korrespondiert die <MsgId>1008923225</MsgId> aus der pain.001 (links) mit der <OrgnlMsgId>1008923225</OrgnlMsgId> aus der pain.002 (rechts).

Zuordnung auf Header-Ebene: pain.001 (links), pain.002 (rechts), Artikel pain.002

Abbildung 1: Zuordnung auf Header-Ebene, MsgID (zum Vergrößern bitte anklicken)

Durch das Mapping mittels der <MsgId>/<OrgnlMsgId> finden die beiden Dateien zueinander.

Zuordnung auf Sammler-Ebene

Eine Ähnliches Mapping wie das auf Datei-Ebene muss hier noch zweimal stattfinden. Auf Ebene des Sammlers mittels der Tags <PmtInfId> / <OrgnlPmtInfId >.

Zuordnung auf Sammler-Ebene, Artikel pain.002

Abbildung 2: Zuordnung auf Sammler-Ebene, PmtInfID (zum Vergrößern bitte anklicken)

Zuordnung auf Einzelsatz-Ebene

Auf Ebene der Einzeltransaktion findet das Mapping mittel <InstrId> / <OrgnlInstrId> und/oder <EndToEndId> / <OrgnlEndToEndId> statt.

Zuordnung auf Einzelsatz-Ebene, Artikel pain.002

Abbildung 3: Zuordnung auf Einzelsatz-Ebene, InstrID (zum Vergrößern bitte anklicken)

Und genau hier liegt eines der größten Probleme:

Die InstrID ist kein Pflichtfeld in der pain.001 und muss somit nicht gesendet werden. Und was die Bank vom Zahler nicht erhält, kann sie nicht korrekt zurückgeben und somit nicht bei der (automatischen) Zuordnung verwenden.

Die EndToEndID wiederum ist ein Pflichtfeld, kann aber immer mit „NOTPROVIDED“ belegt werden und ist in diesem Fall auch ungeeignet, um ein eindeutiges Mapping vorzunehmen. Außerdem ist nicht sichergestellt, dass die Bank die EndToEndID immer mit zurückliefert.

Und wenn beide Tags in der pain.001 nicht vorhanden beziehungsweise nicht ein-eindeutig sind, ist es nicht möglich, die richtige Einzelzahlung zu identifizieren. Ein manueller Abgleich könnte über IBAN und Betrag stattfinden, aber auch hier ist keine Eindeutigkeit garantiert.

Somit muss der Sender der Zahlung sicherstellen, dass die pain.001 nicht nur die Minimum-Voraussetzungen erfüllt, sondern auch für jede einzelne Zahlung unbedingt eine ein-eindeutige InstrID mitsenden, damit die Status-Informationen auf Einzelzahlungsebene aus der pain.002 der ursprünglichen Zahlung gegenüberstellt werden kann. Diese Eineindeutigkeit ist zwingend zu beachten, wenn die Zahlung mit InstrID initiiert wird, da es sonst schon bei Initiierung zur Ablehnung bei der Hausbank kommt. Jede InstrId darf also pro Sammler nur einmal vorkommen, Duplikate führen zur Ablehnung der pain.001.

Sind die Voraussetzungen gegeben, kann ein gutes Electronic-Banking-Programm den Status auf Datei-, Sammler- und Einzelsatz aktualisieren und dem User transparent darstellen, welche Zahlungen gegebenenfalls nicht ausgeführt wurden.

Status-Codes1

Aufgrund unterschiedlicher betrieblicher Prozesse bei dem Zahlungsdienstleistern (ZDL) und dem Kunden obliegt es der Vereinbarung zwischen ZDL und dem Kunden, wie, ob, wann und welche der folgende Positiv-Codes verwendet werden. Bei Verwendung mehrerer Positiv-Codes bedeutet dies, dass mehrere aufeinanderfolgende pain.002-Nachrichten an den Kunden versendet werden.

Allerdings gilt die grundsätzliche Regel, dass diese optional und nur nach bilateraler Vereinbarung verwendbaren Codes NUR in der hier dargestellten Reihenfolge vorkommen können. Davon bleibt unberührt, dass für einen Fall auch Codes übersprungen/ausgelassen werden können:

Reihenfolge Code Definition Regelwerk der Verwendung
1 RCVD ZDL hat Auftrag erhalten Kann nur als erster (Positiv-)Status gesetzt werden, kann nicht auf Transaktionsebene genutzt werden.
2 ACTC Technische Prüfung erfolgreich Kann nur als erster aller A-Codes gesetzt werden.
3 ACCP Technische Prüfung sowie Überprüfung des Kundenprofils erfolgreich.
4 ACWC Technische Prüfung sowie Überprüfung des Kundenprofils nach Anpassung des Auftrages erfolgreich Änderungen können noch möglich sein, auch wenn bereits ACCP berichtet wurde. In diesem Falle kann also ACWC auf ACCP folgen. ACCP kann jedoch nie auf ACWC folgen!

Keine Verwendung auf Datei-Ebene, da eine Belegung von AddtlInf gemäß ISO MDR nur auf Sammler- bzw. Transaktionsebene zulässig sind, Angaben zur Art der Änderungen jedoch im Falle „ACWC“ als DK-Regel für AddtlInf spezifiziert sind.

5 ACSP Auftrag wird ausgeführt, Buchung in Vorbereitung Im Falle einer Verwendung kann ACSP nicht vor ACCP oder ACWC gesetzt werden.
6 ACSC Buchung auf Kundenkonto ist erfolgt Im Falle einer Verwendung kann dies nur der letzte aller A-Codes sein.

Folgende Codes können aufgrund betrieblicher Prozesse unterschiedlich gesetzt werden. Hier ist das grundsätzliche gemeinsame Verständnis in den Regularien der DK beschrieben. Sie sind jedoch insbesondere zu jedem Zeitpunkt möglich. Es ist keine Reihenfolge definiert, jedoch ist die Spalte „Regelwerk der Verwendung“ zu beachten.

Code Definition Regelwerk der Verwendung
PART Verschiedene Zustände innerhalb des Sammlers bzw. der Transaktionen vorhanden Kann auf Datei oder Sammlerebene verwendet werden, wenn in den unteren Ebenen unterschiedliche Status-Codes geliefert werden (z. B. bei mehreren Sammlern mit unterschiedlichem Status). Wenn eine Nachricht nur einen Sammler enthält mit Payment-Information-Status PART, kann der Group-Status PART weggelassen werden.
RJCT Auftrag wurde nicht ausgeführt RJCT stellt einen endgültigen Status dar. Wenn einmal RJCT für eine Transaktion, einen Sammler bzw. eine Nachricht gesetzt wurde, kann dafür kein Positivstatus (d. h. diese Transaktion, diesen Sammler bzw. diese Nachricht) mehr folgen.
PDNG Schwebender Zustand, weitere Prüfungen und Status-Updates werden noch vorgenommen PDNG kann kein finaler Status sein. Der Kunde kann erwarten, dass noch ein Status-Code folgen wird.

Der Status auf Datei-Ebene

Wenn alle Einzelsatz-Rückmeldungen identisch sind, dann trägt die pain.002-Datei diesen Status auch auf Header-Ebene – bestenfalls also „ACCP“. Dann ist klar, dass alle Zahlungen ausgeführt wurden.

Hier ist anzumerken, dass in diesem Fall keine Details zu den Einzelsätzen geliefert werden. Die pain.002 ist verhältnismäßig kurz und gibt eine pauschale Rückmeldung nur auf Datei-Ebene. Da alle Einzelsätze verarbeitet wurden ist es nicht notwendig, diese nochmals im Detail aufzuführen.

Status pain.002_ACCP, Artikel pain.002

Abbildung 4: Status pain.002_ACCP (zum Vergrößern bitte anklicken)

Haben alle Einzelzahlungen den Status „RJCT“ kann man dies auch auf Header-Ebene mit demselben Status erkennen. In diesem Fall werden die Einzelzahlungen mit Details der Zahlung und den jeweiligen Ablehnungsgründen zurückgemeldet.

Sind die Status der Einzelzahlungen nicht einheitlich, also einige auf ACCP, andere auf RJCT, dann findet sich auf Header-Ebene der Status PART. Für die abgelehnten Zahlungen werden Details gemeldet.

Rückmeldung auf Einzelsatzebene

Im Normalfall werden für die nicht-akzeptierten Einzelsätze (Status ≠ ACCP) Details aus der Originalzahlung zurückgeliefert. Somit kann man also in der pain.002 im Tag erkennen, welcher Empfänger mit welcher IBAN welchen Betrag hätte erhalten sollen. Deshalb sollte man aus Gründen des Datenschutzes darauf achten, dass nur Mitarbeiterinnen und Mitarbeiter Zugriff auf die pain.002 bekommen, die auch die eigentliche Zahlung einsehen dürfen. Besonders bei Gehaltszahlungen ist hier ein gutes Berechtigungskonzept erforderlich.

Im Umkehrschluss werden für akzeptierte Zahlungen (Status = ACCP) keine weiteren Informationen mehr zurückgeliefert. Diese tauchen in den Details der pain.002 gar nicht mehr auf. Somit hat man bei den akzeptierten Einzelzahlungen auch kein Datenschutzproblem!

Diejenigen Einzelzahlungen, die in den Details der pain.002 nicht mehr gelistet werden sind jene, die ausgeführt wurden.

Zusatzinfo der Ablehnung

Vor allem beim Status RJCT sind die Reason Codes () und die darunter stehen Zusatzinfos () hilfreich bei Fehleranalyse.

Zusatzinfos zur Ablehnung, Kontonummer fehlerhaft, Artikel pain.002

Abbdilung 5: Zusatzinfos zur Ablehnung, Kontonummer fehlerhaft (zum Vergrößern bitte anklicken)

Die Inhalte im Feld sind von der DK (in der Anlage 3 des DFÜ-Abkommens) standardisiert, die Texte im Feld sind eher als Prosa zu verstehen.

Die vorgenannten Code-Definitionen können von denen der DK abweichen, wenn es sich um Zahlungskonten außerhalb Deutschlands handelt, die nicht unter dem Reglement der DK sind.

Zusammenfassung

Eine funktionierende pain.002-Interpretation wird in Zukunft unerlässlich sein. In nächster Zeit werden die Echtzeitzahlungen deutlich zunehmen, aber erste Erfahrungen zeigen, dass die Zahl der Abweisungen aktuell noch relativ hoch ist. Wer dann die pain.002 von Hand auswerten muss, weil es das Bankprogramm nicht kann (entweder weil es grundsätzlich dafür nicht konzipiert ist oder weil die pain.001 nicht die notwendige InstrId geliefert hat), der fährt ein gewisses Risiko.

Wer aber mit der Verarbeitung der pain.002 für die Echtzeitzahlungen und dem daraus resultierenden Informationsgewinn zufrieden ist, kann diesen Service auch für anderen Zahlungsarten bei seinen Banken anfragen.

Wichtig ist auf jeden Fall die Befüllung des Feldes <InstrID>, damit der Abgleich zwischen Zahldatei und Statusreport auch auf Einzelsatzebene funktioniert.

Quelle
  • 1. DK/DFÜ-Abkommen - Anlage 3: Spezifikation der Datenformate / Version 3.9 vom 12.03.2025
Bernd Sibold

Bernd Sibold

verfügt über langjährige Erfahrungen im Bereich Zahlungsverkehr und ist bei msg for banking insbesondere im Themengebiet Corporate Payments Consulting tätig.

Schreiben Sie einen Kommentar

Sie müssen sich anmelden, um einen Kommentar zu schreiben.