pain.001.001.11 continues post-2019 maintenance with further structured-data refinements. Adoption is led by newer platform builds; most bank channels map it onto their version-9 processing.
What to know about this version#
- Choose it when a counterpart explicitly profiles against it; otherwise
.09maximises interoperability. - Full support: template, XSD, JSON Schema, migration in both directions.
Element structure (all versions share this skeleton)#
Group Header — message id, creation timestamp,NbOfTxs,CtrlSum, initiating party. Pain001 recomputes the control totals from validated records.Payment Information — debtor, debtor account and agent, requested execution date, payment method, charge bearer; one block can carry many transactions.Credit Transfer Transaction — amount and currency, creditor, creditor account and agent, remittance information, end-to-end reference.
Generate and inspect#
pain001 init pain.001.001.11 -o work/ # scaffold a starter CSV
pain001 inspect pain.001.001.11 # list required + optional fields
pain001 -t pain.001.001.11 -d payments.csv -o out/ --dry-run
Records migrate losslessly between supported versions:
from pain001.migration import VersionMapper
records_v9 = VersionMapper("pain.001.001.11", "pain.001.001.09").migrate(records)
See the full version catalogue, or the glossary for the vocabulary used here.