Payments Academy
FieldMeaningRequired
GrpHdrThe header with message identification, creation date and time and initiating party. It identifies the status report and links it to the bank that produced it. M
OrgnlGrpInfInformation about the original pain.001 group, including its message identification and the group status. It tells the customer which file this report refers toM
OrgnlGrpInfAndStsThe original group reference plus the status and any status reason for the whole group. It carries codes such as ACCP for accepted, RJCT for rejected or PART foM
OrgnlPmtInfAndStsStatus information for one payment information block from the original file, with its identification and status. It lets the customer see which blocks were acceO
OrgnlTxRefReference data from the original payment, such as amount, currency, debtor and creditor, copied into the status report. It helps the customer match the status tO
TxInfAndStsStatus information for a single transaction, with its identification, status and reason. It is the most detailed level of the report. The customer uses it to idO
StsRsnInfThe reason for a status, with a coded reason and additional free text. Codes include NARR for narrative, DUPL for duplicate, AC01 for wrong account number and CO
NbOfTxsPerStsA count of transactions in each status, for example 48 accepted and 2 rejected. It gives the customer a quick summary of the file outcome without reading every O
OrgnlPmtInfIdThe identification of the original payment information block, copied from the pain.001 file. It links the status block to the customer block. The customer uses O
OrgnlInstrIdThe instruction identification of the original payment, copied from the pain.001 file. It links the status to one customer instruction. It is the key the customO
OrgnlEndToEndIdThe end to end identification of the original payment, copied from the pain.001 file. It stays unchanged through the payment chain and lets the customer, the baO
ChrgsInfCharges applied to the payment, when the bank reports them in the status message. It can show the amount and bearer of any fee deducted. The customer uses it toO
Meridian Bank London sends a pain.002 to Northgate Trading for file NGT-20261105: group status ACCP for 47 payments and one transaction status RJCT with reason AC01 for a wrong creditor account number. Northgate corrects the one account number and resends only that payment.

Valid example from the message catalogue. Scheme rules: pain.002 is a base ISO 20022 message: the structure and fields below are the base definition, and each scheme adds its own rules for its rail. Under SEPA the status report must use the SEPA reason cod

0:00 / 3:41 Step 1 of 5

pain.002.001.10 Customer Payment Status Report: Statuses and Reason Codes

pain.001 and pain.002 in Depth, Lesson 2 of 7, Narration 3:41, D04 Messaging and standards

SettlementISO 20022pain.002

What you will learn

Your objective. By the end of this lesson, you will be able to explain pain.002.001.10 customer payment status report: statuses and reason codes. pain.002.001.10 is the ISO 20022 Customer Payment Status Report, and it is the reply a bank sends after it receives and checks a pain.001 file.

Why it matters. This matters because the message is the payment instruction. A wrong field, a missing element or a misunderstood format is a failed payment, a return, or a compliance breach.

Chapter objective: Learner explains pain.001 and pain.002 in depth, describes the relay scenario, authorised party initiation, and financial institution initiation, and traces a payment to pacs.008. Learner uses real amounts, banks and message names to show how customer initiation works in practice.

Key learning points

  • Pain.002.001.10: ISO 20022 Customer Payment
  • Pain.002 report can operate at group level
  • Common status values in pain.002
  • Reason codes in pain.002
  • Timing of pain.002 reports matters

Key terms

Settlement: The final movement of funds between banks to discharge obligations created by cleared payments. Settlement is usually made in central bank money or through correspondent accounts.

ISO 20022: An international standard for financial messaging that defines XML message formats for payments, securities and trade.

pain.002: An ISO 20022 message a bank sends to its customer to report the status of payments instructed in a pain.001 file.

ISO 20022 XML explorer showing pain.002.001.10 Customer Payment Status Report: Statuses and Reason Codes.

Insights and practice scenarios

Worked insights and practice scenarios for this lesson. Each one is a reusable PaymentForge case, so the same case may appear in more than one lesson.

Practise this lesson

Exercise

Read the pain.002 message described in this lesson and identify its key parts.

Use the message structure, fields and example in this lesson.

  1. What to do. List the main blocks of the message, name the field that carries the amount, and name the field that identifies the payment.

Correct result. The message is made of blocks, each carrying a part of the payment instruction. The amount field and the identification field are the two a receiving bank checks first, because without them it cannot process or reconcile the payment.

Why. A message is only useful if you can read it. The blocks tell the receiving bank what to do, and the amount and identification fields are what it checks first.

Check your understanding

Practice question

Which of the following best describes pain.002.001.10 customer payment status report: statuses and reason codes?

Takeaway and next step

What to remember

The report tells the customer whether each instruction was accepted, rejected, or is still pending, and it gives a reason code whenever an instruction fails.

Open the message type from this lesson and inspect its fields, then find the field that carries the amount.

Open the ISO 20022 Message Explorer →

Builds on "pain.001.001.09 Customer Credit Transfer Initiation: What It Is and What It Carries".

Transcript and full text

Show transcript

pain.002.001.10 is the ISO 20022 Customer Payment Status Report, and it is the reply a bank sends after it receives and checks a pain.001 file. The report tells the customer whether each instruction was accepted, rejected, or is still pending, and it gives a reason code whenever an instruction fails. Without pain.002, a corporate treasury team would have no reliable way to know whether a payment of EUR 250,000 to a supplier in Lyon had been accepted for execution or had been stopped because the debtor account number was wrong. The report closes the loop between instruction and execution, and it lets the customer correct and resend a failed instruction quickly. A pain.002 report can operate at group level, at payment information level, or at transaction level, and the level determines how much detail the customer receives. A group level report says the whole file was accepted or rejected, which is enough when a file fails a header check such as a wrong control sum. A transaction level report gives a status for each individual instruction, so a file with 180 payments can show 178 accepted and 2 rejected, with a separate reason for each rejection. Treasury systems depend on transaction level reporting, because they must know exactly which two suppliers were not paid and why, rather than learning only that something in the file failed. The most common status values in pain.002 are ACCP for accepted, RJCT for rejected, PDNG for pending, and ACSP for accepted settlement in process. ACCP means the bank has accepted the instruction and will process it, while ACSP means settlement has started and the money is moving. RJCT means the bank will not execute the instruction, and the report must carry a reason code that explains why. PDNG means the bank has received the instruction but has not yet decided, often because it is waiting for a cut off, a funds check, or a sanction screening result. A payment can move from PDNG to ACCP and then to ACSP as it passes each check. Reason codes in pain.002 use the ISO external code lists, and each code points to a specific problem that the customer can fix. AC01 means the account number is incorrect, and it appears when a creditor IBAN fails the check digit test. AM09 means the amount is wrong, for example when a payment exceeds a limit the customer agreed with the bank. BE01 means the creditor name does not match the account, and it is used when a name check fails. CUST means the customer asked for the payment to be cancelled, and it is a legitimate reason rather than an error. A clear code such as AC01 lets the customer correct the IBAN and resend the EUR 18,900 payment the same day, instead of waiting for a manual investigation. The timing of pain.002 reports matters as much as their content, because a late rejection can break a supplier commitment. Banks usually send an initial pain.002 shortly after receiving the pain.001 file, reporting acceptance or rejection at the validation stage. A second pain.002 may follow after execution, reporting that the payment has been settled or has failed at the clearing stage. For a salary file of EUR 420,000 covering 350 employees, an early rejection report lets payroll correct two wrong account numbers before the pay date, while a report that arrives after the pay date forces an emergency manual payment and a difficult conversation with the affected employees.

pain.002.001.10 is the ISO 20022 Customer Payment Status Report, and it is the reply a bank sends after it receives and checks a pain.001 file. The report tells the customer whether each instruction was accepted, rejected, or is still pending, and it gives a reason code whenever an instruction fails. Without pain.002, a corporate treasury team would have no reliable way to know whether a payment of EUR 250,000 to a supplier in Lyon had been accepted for execution or had been stopped because the debtor account number was wrong. The report closes the loop between instruction and execution, and it lets the customer correct and resend a failed instruction quickly.

A pain.002 report can operate at group level, at payment information level, or at transaction level, and the level determines how much detail the customer receives. A group level report says the whole file was accepted or rejected, which is enough when a file fails a header check such as a wrong control sum. A transaction level report gives a status for each individual instruction, so a file with 180 payments can show 178 accepted and 2 rejected, with a separate reason for each rejection. Treasury systems depend on transaction level reporting, because they must know exactly which two suppliers were not paid and why, rather than learning only that something in the file failed.

The most common status values in pain.002 are ACCP for accepted, RJCT for rejected, PDNG for pending, and ACSP for accepted settlement in process. ACCP means the bank has accepted the instruction and will process it, while ACSP means settlement has started and the money is moving. RJCT means the bank will not execute the instruction, and the report must carry a reason code that explains why. PDNG means the bank has received the instruction but has not yet decided, often because it is waiting for a cut off, a funds check, or a sanction screening result. A payment can move from PDNG to ACCP and then to ACSP as it passes each check.

Reason codes in pain.002 use the ISO external code lists, and each code points to a specific problem that the customer can fix. AC01 means the account number is incorrect, and it appears when a creditor IBAN fails the check digit test. AM09 means the amount is wrong, for example when a payment exceeds a limit the customer agreed with the bank. BE01 means the creditor name does not match the account, and it is used when a name check fails. CUST means the customer asked for the payment to be cancelled, and it is a legitimate reason rather than an error. A clear code such as AC01 lets the customer correct the IBAN and resend the EUR 18,900 payment the same day, instead of waiting for a manual investigation.

The timing of pain.002 reports matters as much as their content, because a late rejection can break a supplier commitment. Banks usually send an initial pain.002 shortly after receiving the pain.001 file, reporting acceptance or rejection at the validation stage. A second pain.002 may follow after execution, reporting that the payment has been settled or has failed at the clearing stage. For a salary file of EUR 420,000 covering 350 employees, an early rejection report lets payroll correct two wrong account numbers before the pay date, while a report that arrives after the pay date forces an emergency manual payment and a difficult conversation with the affected employees.

Full lesson text (all scenes)

Completing a lesson updates your progress dashboard on the homepage.

Scene timestamps are estimated by allocating the narration text proportionally across the real audio length. The audio playback position is the source of truth: pause freezes the visual, seeking restores the correct scene, replay restarts the scene animation.