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!
Showing results for 
Search instead for 
Did you mean: 
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.

  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


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

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.
Labels in this area