Payment Initiation
pain.001 — ISO 20022 Credit Transfer InitiationGenerate and validate ISO 20022 pain.001 XML files. Build from templates or a form, then validate required fields, IBAN format, control sum accuracy, and duplicate EndToEndIds before submitting to your bank.
pain.001 — Valid single transaction
Structurally complete, passes SEPA XML Analyzer. All required fields present.
pain.001 — Valid batch (3 transactions)
Three transactions with correct NbOfTxs and CtrlSum. Ready to test batch processing.
pain.001 — Duplicate EndToEndId
Two transactions share the same EndToEndId. Triggers duplicate detection in the SEPA XML Analyzer.
pain.001 — CtrlSum mismatch
Declared CtrlSum does not match the sum of transaction amounts. Causes rejection at most banks.
pain.001 — Invalid creditor IBAN
Transaction 2 has an IBAN with a bad checksum. Tests IBAN validation in the analyzer.
All processing happens in your browser. No data is sent to any server.
What is validated
- Required fields — MsgId, NbOfTxs, CtrlSum, debtor IBAN/BIC, creditor IBAN, EndToEndId per transaction.
- IBAN format — Mod-97 checksum and country-specific length rules for both debtor and creditor accounts.
- Control sum — Declared CtrlSum must equal the sum of all instructed amounts. Mismatch causes bank rejection.
- Duplicate EndToEndIds — Each transaction must have a unique EndToEndId within the file.
- Namespace — Detects pain.001.001.xx from the xmlns attribute.
Frequently asked questions
What is a pain.001 file?
pain.001 (CustomerCreditTransferInitiation) is an ISO 20022 XML message used to initiate credit transfers. It is the file your system sends to your bank or PSP to request one or more payments — the standard format for SEPA credit transfers.
What is the CtrlSum and why does it cause rejections?
The CtrlSum field must equal the sum of all instructed payment amounts in the file. Banks validate this automatically — a mismatch, even by a single cent, causes the entire batch to be rejected.
What is an EndToEndId?
EndToEndId is a unique reference per transaction. It must be unique within the file, is preserved through the payment chain, and appears in the pain.002 response and bank statements. Duplicates cause rejections.
Which pain.001 versions are supported?
The tool auto-detects the namespace from the xmlns attribute and supports pain.001.001.03 through pain.001.001.11 — the versions in common use for SEPA and domestic ISO 20022 payment schemes.