Open source · ISO 20022 · CBPR+ ready

Payment files your bank will not reject.

Pain001 turns the data you already have — CSV, Excel, SQLite, JSON, Parquet, legacy SWIFT MT101 — into schema-validated pain.001 and pain.008 XML, and proves it clean before submission. AI-agent tools and editor diagnostics included.

terminal — 60 seconds to a validated file
# Install the suite
pip install pain001 pain001-loader-xlsx pain001-loader-mt101

# Excel in, validated pain.001.001.09 out
pain001 -t pain.001.001.09 -d payments.xlsx -o out/

# Prove it clean before the bank sees it  (exit 0 = valid)
pain001 -t pain.001.001.09 -d payments.csv --scheme sepa-sct --dry-run

Runs entirely on your machine — no upload, no SaaS, no telemetry. Read the privacy position.

11

message definitions — pain.001 v03–v12 and pain.008

17

MCP tools for AI agents, every one read-only

100%

line and branch coverage, enforced as a CI gate

0

bytes of payment data leave your machine

The suite

Five packages. One validation pipeline.

Every surface — CLI, library, REST, AI agent, editor — runs the same gate: JSON Schema per record, scheme rulebook, then the official XSD. Results never diverge, because there is one pipeline.

pain001 — core library, CLI & REST

Ten pain.001 versions plus pain.008.001.02, five scheme rulebooks, exact decimal.Decimal arithmetic, recomputed control totals, streaming for large batches, and a FastAPI microservice.

Technical reference ›

pain001-mcp — 17 tools for AI agents

The MCP server for ISO 20022 payment initiation. Agents validate identifiers, migrate versions, convert MT101, and generate validated XML — locally, over stdio, read-only by contract.

Meet the MCP server ›

pain001-lsp — diagnostics as you type

Live schema validation, IBAN checksum and BIC diagnostics, completion, hover documentation, quick fixes, and formatting for payment JSON in VS Code, Neovim, Helix, and Emacs.

Editor integration ›

pain001-loader-mt101 — the MT bridge

Parse legacy SWIFT MT101 into records that pass pain.001.001.09 validation — the version mandated when the interbank relay retires on 14 November 2026. Field mapping published in full.

MT101 conversion ›

pain001-loader-xlsx — Excel, safely

Direct .xlsx/.xlsm ingestion with an IBAN safety guard: numeric cells in account columns stop the load before Excel's silent coercion corrupts a single account number.

Excel plugin guide ›

Security & architecture

Zero-trust XML via defusedxml, path-traversal guards, a plugin kill switch, non-root containers, a CycloneDX SBOM — and where an open implementation sits in a patented market.

Architecture paper ›

The 2026 deadlines are data deadlines#

The ISO 20022 cutover is done: MT–MX coexistence on SWIFT ended on 22 November 2025, and roughly 97% of cross-border payment instructions now travel as ISO 20022. What remains is data quality, and the clock runs to 14 November 2026 — the day fully unstructured postal addresses stop being accepted in CBPR+ payments, and the interbank MT101 relay is replaced by pain.001 version 9.

Pain001 ships both requirements today: structured and hybrid address elements in generated XML, and one-command MT101 conversion. The 2026 migration briefing maps every deadline with primary sources — no vendor fog, just dates and citations.

Start with the Installation Guide, browse the Technical Reference, or see how Pain001 compares — including where commercial platforms genuinely win.

The field

Open source against the market.

The full, sourced analysis — including what commercial platforms genuinely do better — is on the comparison page.

Verified July 2026. “Commercial translators” covers SWIFT Translator, XMLdation, and peers; “open-source generators” covers python-sepaxml, php-sepa-xml, and peers.
CapabilityPain001 suiteCommercial translatorsOpen-source generators
Licence & auditability✓ Apache-2.0 / MIT, full source✗ Closed; SWIFT SDK lists €10–30k/yr✓ Open source
pain.001 version coverage✓ v03–v12 + pain.008.001.02Broad, vendor-dependentMostly SEPA v03-era
Data ingestion✓ CSV, Excel, SQLite, JSON, Parquet, MT101, GPGVia integration projects✗ Code-level dicts only
Validation as a hard gate✓ JSON Schema + rulebooks + official XSD✓ Core productMinimal / optional
AI-agent interface (MCP)✓ 17 tools, local, read-only✗ None shipped✗ None
Editor language server✓ pain001-lsp✗ None✗ None
Bank connectivity & support SLAs✗ Out of scope by design✓ Their core value✗ None

Questions

Questions? Answers.

The five most common — the full FAQ covers treasury, operations, engineering, and audit.

What problem does Pain001 actually solve?

Banks reject malformed payment files, and each rejection costs a repair cycle and sometimes a settlement day. Pain001 converts the data you already have — CSV, Excel, SQLite, JSON, Parquet, or legacy MT101 — into ISO 20022 XML that has already passed JSON Schema checks, IBAN/BIC validation, scheme rulebooks, and the official XSD before submission.

Is it ready for the November 2026 deadlines?

Yes, both of them. Pain001 emits the structured and hybrid postal addresses CBPR+ requires from 14 November 2026, and the MT101 loader converts legacy request-for-transfer flows to pain.001.001.09 — the version that replaces the interbank MT101 relay on the same date. Sources for every deadline are in the 2026 briefing.

What can AI agents do with the MCP server?

pain001-mcp exposes 17 tools: identifier validation, schema inspection, record validation, version migration, MT101 conversion, camt.053 and pain.002 parsing, charset sanitisation, and XML generation. Every tool is read-only and idempotent, transport is local stdio, and no tool can submit a payment — generation and validation only.

Is it safe for production banking environments?

Amounts are decimal.Decimal throughout generation, control totals are recomputed rather than trusted, XML parsing routes through defusedxml, containers run non-root, plugin discovery has a kill switch, and the core holds 100% line and branch coverage as a hard CI gate. Nothing phones home; all processing is local.

What does it cost?

Nothing, at any scale. The core is dual-licensed Apache-2.0 / MIT; companions are Apache-2.0. The nearest commercial reference point — SWIFT's translation SDK — is publicly listed at €10,000–30,000 per year before integration costs.

All questions, answered ›

Community

Built in the open. Improved by its users.

Development, issues, and releases are all public. If Pain001 runs in your payment pipeline, telling us makes the project better for everyone — and earns you a place on this page when we publish adopter stories.

Ship bank-ready files today.

Three commands from install to a validated ISO 20022 payment file. Free at any scale, processed entirely on your infrastructure.