pain.002 — Customer Payment Status Report

pain.002 is the ISO 20022 message for the bank's answer to a pain.001 or pain.008: whether the file, a batch or a single transaction was accepted or rejected, and why.

Structure

Every ISO 20022 message has a Document root in the message's own namespace (urn:iso:std:iso:20022:tech:xsd:pain.002.<variant>.<version>), with exactly one child — here CstmrPmtStsRpt:

The exact content differs between versions (pain.002.001.03, .001.09, …) and is usually restricted further by your bank's or scheme's implementation guide (for example the EPC rulebooks for SEPA).

View the schema

Open pain.002.001.14, the latest version, directly in the viewer — or pick another version of pain.002 in the ISO 20022 tab. Then explore Document/CstmrPmtStsRpt as a diagram, search for element names (Ctrl/⌘ + K), and export the diagram or an HTML documentation for your team.

The schemas are loaded from a public mirror of the ISO 20022 catalogue, unchanged; the authoritative source is the ISO 20022 message catalogue. Your bank's implementation guide may require a specific version — the version is the last part of the file's namespace.

Validate a pain.002 file

Load the XSD, then validate your XML document against it — in the browser or via the REST API from a script. For a file-first workflow with an Excel list of all errors, use the XML Viewer. Schema validation checks structure, types, lengths and code lists; rules from bank-specific implementation guides (MIGs) are outside an XSD and need your bank's own validator.

Typical use: Reconciling rejected payments, automated handling of reason codes in ERP systems.

Open pain.002.001.14 in the viewer