Skip to content
Theme
English

Understanding Customer payment status report

pain.002 is the ISO 20022 XML status report a bank returns after a payment file. Read its status and reason codes and what acceptance does not prove.

On this page

pain.002, the Customer Payment Status Report, is the ISO 20022 XML message a bank sends back after receiving a payment file. It reports the status of the file, a payment block or single transactions, with a reason for each reject. In the European Payments Council's 2025 SEPA guidelines it is pain.002.001.10, used to return rejects for credit transfers (pain.001) and direct debits (pain.008). Klarbon plans to open pain.002 files.

What is in a pain.002 file?

Block Holds
Group Header message identification, creation date and time
Original Group Information and Status the original message it answers, and a group status
Original Payment Information and Status a payment block, its status, and per transaction a status with Status Reason Information

For SEPA credit transfers, the code RJCT must be used in Group Status, Payment Information Status or Transaction Status to carry a reject, and the original message must be a pain.001 (EPC). The direct debit guidelines use the same message for rejects of pain.008 collections (EPC). The schemas are published by ISO 20022 (ISO 20022).

Status report or statement?

pain.002 CAMT.053
Says what the bank did with your payment file what was booked on the account
Reports booked account movements no, it reports payment-file status yes

What does Klarbon do with pain.002?

Opening pain.002 files to show statuses and reasons in plain language is planned, not available yet. For booked transactions, use your statement; see supported bank statement files. See also pain.001 and pain.008.

Frequently asked questions

What is the pain.002 message used for?

A bank uses it to tell a customer what happened to a payment file it sent, a pain.001 for transfers or a pain.008 for direct debits. In SEPA it carries rejects for the whole file, a payment block or single transactions.

What do the pain.002 status codes mean?

The status sits at group, payment information or transaction level. RJCT means rejected, and SEPA rejects must use it. Banks also use other ISO 20022 status codes, for example to confirm technical acceptance; check your bank's guide.

Where are the rejection reasons in a pain.002?

In Status Reason Information, which holds an ISO 20022 reason code. The code says why, for example an incorrect account number; your bank's guide lists the codes it sends.

Which pain.002 version does SEPA use?

The EPC's 2025 guidelines use pain.002.001.10, the status report for pain.001.001.09 and pain.008.001.08.

Does an accepted pain.002 mean the money has arrived?

No. Technical acceptance says the bank took the file. Only the account statement shows what was booked.

Sources

Updated 5 November 2026