
Deterministic
The same input produces the same XML and the same findings on every run. Findings are structured data your controls can store beside the payment file.
ArchitectureSwift has deferred its structured-address deadline and will set a new date by December 2026. See what changed
See a real run
--scheme sepa-sct · 5 paymentsexit 0
--scheme sepa-sct · 5 paymentsexit 1
row 1 · SEPA-CDTR-IBANcreditor_account_IBAN must be a valid IBAN (ISO 13616 / mod-97)
--scheme cbpr-cross-border · 1 paymentexit 1
row 0 · CBPR-ADDRSwift CBPR+ cross-border requires the debtor address with town and country (structured or hybrid)
row 0 · CBPR-ADDRSwift CBPR+ cross-border requires the creditor address with town and country (structured or hybrid)
row 0 · CBPR-UETRSwift CBPR+ cross-border expects a UETR on every transaction
Recorded from the pain001 CLI with all network access denied by the operating system. Nothing was uploaded.
Zero data egress. Validation makes no network calls, keeps no copy of your files and sends no telemetry.
pain.001 · pain.008 · SEPA · CBPR+ · CHAPS · Bacs · FPS · FedNow · ACH · MT101 migration
Try the browser sandboxPain001 by the numbers
What reviewers check first
The questions a CIO, a CISO and a payments operations lead ask first, answered by how the software works.

The same input produces the same XML and the same findings on every run. Findings are structured data your controls can store beside the payment file.
Architecture
Validation needs no network. The runs above were recorded with all network access denied. No payment data is uploaded and there is no telemetry.
Data handling
Open source under Apache-2.0 or MIT, with signed releases, a published SBOM and build provenance. Your reviewers read the code, not a brochure.
Evidence for reviewersThe validation model
Checked. The official XSD for the message edition accepts the document, or it does not.
Checked. SEPA, CBPR+, CHAPS, Bacs, Faster Payments, FedNow, ACH and more, each finding named by its rule.
Yours to confirm. Pain001 ships no bank profiles; your bank’s implementation guide still applies.
Yours to confirm. Whether the file can be sent is decided by your bank, not by the file.
One deterministic pipeline
Validate early, generate once, and keep the evidence beside the payment run.
The Pain001 suite
Core
Typed Python API, CLI, REST service, rulebooks, schemas, and deterministic XML generation.
Technical referenceimport csv
from pain001 import validate_scheme
rows = list(csv.DictReader(open("payments.csv")))
result = validate_scheme(rows, profile="sepa-sct")
for v in result.violations:
print(v.index, v.rule, v.message)Output 1 SEPA-CDTR-IBAN creditor_account_IBAN must be a valid IBAN (ISO 13616 / mod-97)
AI agents
Seventeen local, read-only Model Context Protocol tools with human review kept in the loop.
MCP toolsEditors
Diagnostics and payment-rule feedback while a human is still editing the source data.
Editor supportLegacy migration
Move SWIFT request-for-transfer workflows to pain.001.001.09 with explicit conversion findings.
MT101 migrationTreasury teams
Turn governed payment workbooks into validated records without copy-and-paste operations.
Excel loaderEvidence
Reproducible payment scenarios across schemes, countries, currencies, and message editions.
Browse the corpusFor engineering teams
The CLI and Python API run the same checks. Exit codes are meaningful, findings identify their rule, and payment data stays on your machine.
Python 3.10+ · CLI · REST · MCP · LSP
# Install the complete CLI
python -m pip install pain001# Validate source data with a scheme rulebook
pain001 validate -d payments.csv \
-t pain.001.001.09 \
--scheme sepa-sct --explain# Generate and pass the official XSD gate
pain001 generate -d payments.csv \
-t pain.001.001.09 \
-o out/For regulated teams
The software stays Apache-2.0 or MIT, with no feature held back. Add a supported release line, private bank profiles derived under NDA, and integration recipes for your ERP or TMS.

Regulatory timeline
Four dates a payments or risk committee is working to, and what Pain001 does about each one today.
Next
ICT risk reviews now reach the software in the payment chain.
SBOM, signed releases and build provenance, verifiable without asking us. Review evidence
Next
Cross-border instructions travel as ISO 20022.
pain.001.001.09 generated and checked against the official XSD. Message specifications
Next By
The rule against unstructured addresses, and the move from MT101 to pain.001 between banks, were deferred in August 2026.
Structured and hybrid addresses, the CBPR-ADDR rule, and one-command MT101 conversion. 2026 briefing
Next Through 2028
camt investigations and statement migration follow the payment messages.
Tracked with primary sources in the living roadmap. ISO 20022 roadmap
Executive briefing
The ISO 20022 cutover is done: MT–MX coexistence on Swift ended on 22 November 2025, and more than 98% of payment instructions now travel as ISO 20022 (Swift). What remains is data quality. Swift deferred its November 2026 rule against fully unstructured postal addresses in CBPR+ payments and will set a new date by December 2026; the requirement itself stands.
Pain001 ships both requirements today: structured and hybrid address elements in generated XML, and one-command MT101 conversion to pain.001 version 9.
