Requires Pain001 v0.0.58 or later. Earlier versions do not carry the API shown on this page. Check what you have with pain001 --version, and see the releases page for what is published.
pain.001.001.10 carries the 2019 rework forward with incremental maintenance. Market infrastructures largely standardised on version 9, so version 10 is generated mainly where a specific platform or bank profile requests it.
What to know about this version#
- Same modern element names (
<BICFI>, structured addresses) as version 9. - Version switches within the post-2019 family are low-risk parameter changes.
Element structure (all versions share this skeleton)#
<GrpHdr>Group Header — message id, creation timestamp,NbOfTxs,CtrlSum, initiating party. Pain001 recomputes the control totals from validated records.<PmtInf>Payment Information — debtor, debtor account and agent, requested execution date, payment method, charge bearer; one block can carry many transactions.<CdtTrfTxInf>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.10 -o work/ # scaffold a starter CSV
pain001 inspect pain.001.001.10 # list required + optional fields
pain001 -t pain.001.001.10 -d payments.csv -o out/ --dry-run
Records can be reshaped between supported versions. The mapper renames and defaults fields to match the target version; elements the target does not model are not carried over, so re-validate after migrating:
from pain001.migration import VersionMapper
rows = VersionMapper().migrate_rows(
rows, "pain.001.001.10", "pain.001.001.09"
)
See the full version catalogue, or the glossary for the vocabulary used here.