pain.001 — Customer Credit Transfer Initiation
pain.001 is the ISO 20022 message for the payment order a company sends to its bank: one or more batches of credit transfers, each with debtor, debtor account, execution date and the individual transactions.
Structure
Every ISO 20022 message has a Document root in the message's own namespace
(urn:iso:std:iso:20022:tech:xsd:pain.001.<variant>.<version>), with exactly one child — here CstmrCdtTrfInitn:
GrpHdr— message id (MsgId), creation time, number of transactions (NbOfTxs), control sum, initiating partyPmtInf— one payment batch: payment method, requested execution date, debtor, debtor account and agentCdtTrfTxInf— each transfer: end-to-end id, amount, creditor, creditor account and agent, remittance information
The exact content differs between versions (pain.001.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.001.001.12, the latest version, directly in the viewer — or pick another version of
pain.001 in the ISO 20022 tab. Then explore Document/CstmrCdtTrfInitn 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.001 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: SEPA credit transfers (with the EPC rulebook), payroll and supplier payment files, ERP payment runs.