Bank Communication Management – Payment Status Reports
This document is an overview and detailed guide on implementing ISO 20022 XML PAIN.002 payment status reports or payment acknowledgement files. This document covers baseline configuration steps and prerequisites for payment status reports.
Payment Status Report Overview
Customer Payment Status Reports (ISO 20022 XML – “pain.002.001.03”) gives near real-time actual status updates of payments made from SAP S/4 HANA. It helps to track the end-to-end payment status in the payment lifecycle. These XML files contain group and transaction level status.
Levels of Payment Status Reports
Basically, there are three levels of PSR.
- Level 1 – Validates the file schema or syntax is correct upon receipt of the file.
- Level 2 – Validates each payment transaction in the file and check if all the information needed to process the transaction further downstream is present correctly.
- Level 3 – Validates the payment files have been processed by the bank and confirmation is received at this level. We receive ACSP or ACSC in case of accepted by bank or RJCT in case of rejected by bank as an external status from the bank at this level.
Understanding ISO20022 PAIN.002 XML Schema
ISO20022 XML PAIN.002 file schema is divided into 3 blocks namely
- Group Header – This block is provided once per PSR and contains fields like Message Id and Id. Message Id is a unique field. (Mandatory Block)
- Original Group Information and Status – This block is provided once per PSR and contains values from the outgoing PAIN.001 file, it contains fields like original message ID, original number of transactions, original control sum, and group status. (Mandatory Block)
- Original Payment Information and Status – This block is provided multiple times per PSR and contains values from the outgoing PAIN.001 file, it contains important fields like original payment information Id, original instruction Id, original EndtoEnd Id, and reason code. (Optional block)
Important ISO XML Tags in PAIN.002 file
Block – Group Header
|ISO XML Tag||Information|
|<MsgId>||Message Id is generated by bank|
|<Id>||Identification is generated by bank|
Block – Original Group Information and Status
|ISO XML Tag||Information|
|<OrgnlNbOfTxs>||number of transactions in the file|
Block – Original Payment Information and Status
|ISO XML Tag||Information|
|<OrgnlPmtInfId>||RENUM+CC+Last two digits of Fiscal Year|
|<OrgnlInstrId>||01-Company Code+Payment Doc+Year|
|<OrgnlEndToEndId>||Payment document number|
- <OrgnlPmtInfId> – System reads the first 10 digits (RENUM) from the XML tag to identify the batch.
- <OrgnlEndToEndId> – System accepts only payment document number as end to end Id while uploading the file.
Prerequisites to upload ISO XML PAIN.002 Payment Status Report
- Activate Business Function – FIN_FSCM_BNK
- Define Logical Directory
Three logical directories are required for Error, Archive, and Input respectively. If we consume the files via same folder as archive or error, then while uploading the file, the system will give error message.
- Approved Payment Batch with status Payment Medium Created
Map External to Internal Status
This node allows us to configure bank specific status codes that are coming externally in payment status reports. These external codes can be mapped to SAP internal status codes, which will update the status in BCM reports like BNK_MONI. External status code PAIN_ABCD should be configured and assigned to internal code BSP (Batch partially processed), or else the system will give an error message while uploading the files.
Partial status is used when multiple different transaction level status is sent in a single file by the bank.
Commonly used status
|BAC||Accepted by Bank|
|BPA||Partially Accepted by Bank|
|BPE||Pending by Bank|
|BRB||Received by Bank|
|BRE||Rejected by Bank|
|BSP||Batch partially processed|
Logical Sequence of Payment Status
SAP accepts logical sequencing of payment statuses while importing the PSR files like Received by Bank followed by Accepted by Bank or Rejected by Bank. SAP will not accept status Accepted by Bank after the batch status has been updated to Rejected by Bank. However, in exceptional scenarios where the bank is sending late rejection, SAP Note 3025112 can be implemented to enable late rejection functionality.
SAP Internal status can be edited or displayed via BS22 transaction. Payment status relevant codes are starting with IBC.
By double clicking the status, we can view the controls of different statuses for the selected business transaction.
Upload payment status report
Log after successful file upload
Payment status update in SAP
Points to note when SAP Multi-Bank Connectivity is in scope
- No variant setup is required when uploading the files via SAP Multi-Bank Connectivity
- PSR’s are uploaded automatically when /BSNAGT/MESSAGES_PULL program is executed
When uploading PSR via MBC when Advanced Payment Management (APM) related step is executed
By default, a processing step for Advanced Payment Management (APM) is planned within MBC Connector. To stop this, you can define a processing step for BCM (only) and so override the default settings.
IMG -> Multi-Bank Connectivity Connector -> Maintain Inbound Processing Steps
List of relevant SAP Notes
- 2503973 – How to reverse the payment document automatically in BCM in the case of rejection
- 2727284 – During the upload a Payment Status Report file: error BNK_COM_CORE 104 occurs
- 2930484 – BCM: Introduction of Current status
- 1389302 – Use of Alerts in BCM
- 2915965 – GPI Reason Codes: Processing of ISO Pain.002 with UETR Reference Only
- 2975509 – CPON BCM: Locking Error in ISO 20022 pain.002 Import Processing (Multiple Sections) after SAP Note 2930484
- 2534292 – Upload a Payment Status Report file using report RBNK_IMPORT_PAYM_STATUS_REPORT
- 3025112 – CPON BCM: Enable Late Reject for Pain.002 Process
- 1822445 – BNK: BAdI for the ‘Payment Status Report’ upload report
This blog is an attempt to gather all the information, and I hope this will equip you to implement the payment status report in ISO XML 20022 PAIN.002 format.
Please don’t forget to provide your feedback in the comments section. It will be immensely beneficial for my future blog posts. Questions/Suggestions are welcome.