BankLint

Guides

Short, sourced guides for treasury, payments and SAP teams who produce pain.001 files.

How to validate a pain.001 payment file

A pain.001 file is checked in layers: it must be well-formed XML, be a recognised message version, validate against the ISO 20022 schema (XSD) for that version, and for SEPA credit transfers also follow the EPC customer-to-PSP implementation guidelines. A file passes only if every layer passes.

SEPA Credit Transfer rules for pain.001.001.09

SEPA Credit Transfer files must follow the EPC customer-to-PSP implementation guidelines (EPC132-08, 2025 version 1.0, effective 5 October 2025) on top of the ISO 20022 schema. BankLint checks 31 of these rules for pain.001.001.09: 24 are mandatory requirements and 7 are recommendations or depend on your agreement with the bank.

Why banks reject pain.001 files

Most rejected pain.001 files fail for a small set of reasons: the XML is broken, the file does not match the ISO 20022 schema, or it breaks a SEPA rule such as charge bearer SLEV, EUR only, two decimals, IBAN-only accounts or 70-character names. Almost all of them come from the payment-generation configuration, not from the individual payments.

Payment-file regression testing after SAP or TMS changes

Payment-file regression testing compares a new payment file with one the bank already accepted and reports configuration-level differences, such as a changed charge bearer, service level, message version or address mode, while ignoring ordinary differences like other payees, amounts or counts.

Charge bearer SLEV in SEPA credit transfers

In a SEPA credit transfer the charge bearer (ChrgBr), when given, must be SLEV ("following service level"). SHAR, DEBT and CRED are valid ISO 20022 codes but not allowed in SEPA, and the guidelines recommend giving the charge bearer once at payment information level.

Control sum (CtrlSum) and number of transactions (NbOfTxs) in pain.001

For SEPA credit transfers the group-header control sum, the payment-information control sum and the payment-information number of transactions are mandatory, although ISO 20022 makes them optional. Control sums may have at most two decimals. Whether mismatching totals are rejected depends on your agreement with the bank, but many banks reject them.

SEPA character set, names and identifiers

SEPA restricts text in pain.001 files: party names may have at most 70 characters (ISO 20022 allows 140), references and identifiers must use the SEPA Latin character set and must not start or end with "/" or contain "//", and characters outside the basic Latin set are only supported by agreement with the bank.