Enterprise Resource Planning Blogs by Members
Gain new perspectives and knowledge about enterprise resource planning in blog posts from community members. Share your own comments and ERP insights today!
cancel
Showing results for 
Search instead for 
Did you mean: 
parujuneja
Explorer
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

Introduction

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.

  1. Level 1 – Validates the file schema or syntax is correct upon receipt of the file.

  2. 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.

  3. 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

  1. 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)

  2. 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)

  3. 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
<OrgnlMsgId> RENUM
<OrgnlNbOfTxs> number of transactions in the file
<OrgnlCtrlSum> File total
<GrpSts> Group status

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
<TxSts> Transaction status

Note

  • <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

  1. Activate Business Function – FIN_FSCM_BNK


Transaction: SFW5



SFW5 - Initial screen




  1. Configuration


Path – SPRO -> SAP Reference IMG -> Financial Supply Chain Management -> Bank Communication Management -> Payment Status Management -> Map External Status to Internal Status



Map External Status to Internal Status - Initial screen




  1. Define Logical Directory


Transaction: FILE

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.

  1. Approved Payment Batch with status Payment Medium Created



BNK_MONI - Display status


 

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.


System Status: Maintain - Initial screen


By double clicking the status, we can view the controls of different statuses for the selected business transaction.


SysStatus: Maintain Transaction Control - Initial screen


 

Upload payment status report











Transaction Code Program
S_EBJ_98000208 RBNK_IMPORT_PAYM_STATUS_REPORT

Selection Screen


Upload payment status report - Initial screen


Log after successful file upload


Upload payment status report - Log screen


Payment status update in SAP


BNK_MONI - Display status


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


Maintain Inbound Processing Steps - Initial screen


 

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.
8 Comments