Interactive demo

pain.001 Generator and Validator in Your Browser

Drop in a CSV, use the sample, or paste your own records. Validation runs instantly, entirely in your browser, and nothing ever leaves your machine.

Add your payment data

Drag a CSV file here or click to browse

Maximum 2 MB · read locally by your browser, never uploaded

Download a sample to use as your own template: SEPA credit transfer · cross-border · 20-row batch

Validation result & generated XML

Add data in step 1 and validation runs automatically.

The validated pain.001.001.09 document will appear here once you add data in step 1.

Prove it against the official ISO 20022 XSD

Steps 1–2 already ran the pain001 library itself: its record validation, the scheme rulebook you chose, XML generation, and the official pain.001.001.09 schema gate on the result, all inside a Python runtime compiled to WebAssembly and served from this site. This button re-runs the schema gate on the XML shown above, so you can edit the document and check it again. The runtime (about 28 MB) downloads once, the first time you validate, and stays cached.

Generate XML in step 2 first. The XSD gate runs on that output.

    Everything on this page runs in your browser. Nothing is uploaded, stored, or sent anywhere. It runs the pain001 library itself, the same package you install with pip, inside a Python runtime compiled to WebAssembly: record validation, IBAN and BIC checks, the scheme rulebook you choose, XML generation with recomputed NbOfTxs/CtrlSum control totals, and the official XSD gate. What the CLI adds is scale and inputs: files of any size, Excel, SQLite, JSON, Parquet and SWIFT MT101, and every message edition. Install the CLI for the complete pipeline.

    What this demo shows, and what the real pipeline adds

    Each sample batch is also downloadable as a CSV file to use as the template for your own ERP or spreadsheet export. The header row is the contract.

    The demo above runs the pain001 library itself, not an imitation of it: required-field checks, ISO 13616 mod-97 IBAN checksums, ISO 9362 BIC structure, amount and date formats, control totals (NbOfTxs, CtrlSum) recomputed from the records rather than trusted, the scheme rulebook you choose, and the official XSD gate. Try the "Introduce an error…" menu. Each scenario plants exactly one realistic flaw (a flipped IBAN digit, a malformed BIC, a missing column, a European comma-decimal amount, an impossible date) and shows you the row-level finding a bank's gateway would otherwise report days later.

    The installed toolchain adds what a browser tab cannot: files of any size; input from Excel, SQLite, JSON, Parquet and SWIFT MT101; all 29 scheme profiles, including direct debits and purpose-code mandates (the demo offers 16), with rule-by-rule --explain output; and every supported edition, eleven pain.001 versions and two pain.008 versions (.02 and .08).

    pip install pain001 pain001 -t pain.001.001.09 -d payments.csv -o out/ --scheme sepa-sct --dry-run 

    Step 3 re-runs the schema gate on its own, so you can edit the XML above and check it again: xmlschema against the official pain.001.001.09 schema, served from this site. It is the same class of XSD gate the CLI applies.