pain.001 validation rule reference
Every rule BankLint checks in an ISO 20022 pain.001 credit transfer file: 44 rules across XML, message detection, the ISO 20022 schema and the SEPA Credit Transfer scheme. The SEPA rules come from rule pack sepa.sct.pain001.v09 v1, based on EPC132-08 2025 Version 1.0 (effective 2025-10-05).
Blockers fail the run, warnings need review, info findings are recommendations. Try any rule with the synthetic example files on its page, or validate your own file.
XML well-formedness
| BNK-XML-001 | File is not well-formed XML | BLOCKER |
Message detection
| BNK-MSG-002 | Message version differs from the configured version | BLOCKER |
ISO 20022 schema (XSD)
| BNK-ISO-001 | Element not expected at this position | BLOCKER |
| BNK-ISO-002 | Required element missing | BLOCKER |
| BNK-ISO-003 | Value does not match the required format | BLOCKER |
| BNK-ISO-004 | Value too long / Value too short / Value length not allowed | BLOCKER |
| BNK-ISO-005 | Value is not an allowed code | BLOCKER |
| BNK-ISO-006 | Value has the wrong data type | BLOCKER |
| BNK-ISO-007 | Too many decimal places / Too many digits | BLOCKER |
| BNK-ISO-008 | Value below the allowed minimum / Value above the allowed maximum | BLOCKER |
| BNK-ISO-009 | Attribute not allowed / Required attribute missing | BLOCKER |
| BNK-ISO-010 | Unknown root element | BLOCKER |
| BNK-ISO-099 | Schema violation | BLOCKER |
SEPA Credit Transfer scheme rules
Payment method
| SEPA-SCT-PMTMTD-001 | Payment method must be TRF | BLOCKER |
Payment type information
| SEPA-SCT-PTI-001 | Payment type information must be present | BLOCKER |
Service level
| SEPA-SCT-SVCLVL-001 | Service level code must be SEPA | BLOCKER |
| SEPA-SCT-SVCLVL-002 | Only one service level occurrence allowed | BLOCKER |
| SEPA-SCT-SVCLVL-003 | Service level is recommended | INFO |
Charge bearer
| SEPA-SCT-CHRGBR-001 | Charge bearer must be SLEV | BLOCKER |
| SEPA-SCT-CHRGBR-002 | Charge bearer recommended at payment information level | INFO |
Currency
| SEPA-SCT-CCY-001 | Currency must be EUR | BLOCKER |
Amounts
| SEPA-SCT-AMT-001 | Amount outside the SEPA range | BLOCKER |
| SEPA-SCT-AMT-002 | Amount has more than two decimals | BLOCKER |
Control sums
| SEPA-SCT-CTRLSUM-001 | Group header control sum is mandatory | BLOCKER |
| SEPA-SCT-CTRLSUM-002 | Payment information control sum is mandatory | BLOCKER |
| SEPA-SCT-CTRLSUM-003 | Control sum has more than two decimals | BLOCKER |
| SEPA-SCT-CTRLSUM-004 | Group header control sum does not match the amounts | WARNING |
| SEPA-SCT-CTRLSUM-005 | Payment information control sum does not match the amounts | WARNING |
Number of transactions
| SEPA-SCT-NBOFTXS-001 | Payment information number of transactions is mandatory | BLOCKER |
| SEPA-SCT-NBOFTXS-002 | Group header number of transactions does not match | WARNING |
| SEPA-SCT-NBOFTXS-003 | Payment information number of transactions does not match | WARNING |
Debtor account
| SEPA-SCT-DBTRACCT-001 | Debtor account must be an IBAN | BLOCKER |
Creditor account
| SEPA-SCT-CDTRACCT-001 | Creditor account must be an IBAN | BLOCKER |
Debtor agent
| SEPA-SCT-DBTRAGT-001 | Debtor agent must be BICFI or NOTPROVIDED | BLOCKER |
Creditor agent
| SEPA-SCT-CDTRAGT-001 | Creditor agent may only carry a BIC | BLOCKER |
Remittance information
| SEPA-SCT-RMTINF-001 | Either structured or unstructured remittance, not both | BLOCKER |
| SEPA-SCT-RMTINF-002 | Only one remittance information occurrence allowed | BLOCKER |
| SEPA-SCT-RMTINF-003 | Creditor reference type must be SCOR | BLOCKER |
Names
| SEPA-SCT-NAME-001 | Initiating party name longer than 70 characters | BLOCKER |
| SEPA-SCT-NAME-002 | Debtor name longer than 70 characters | BLOCKER |
| SEPA-SCT-NAME-003 | Creditor-side name longer than 70 characters | BLOCKER |
Identifiers
| SEPA-SCT-ID-001 | Reference or identifier violates SEPA character rules | BLOCKER |
| SEPA-SCT-ID-002 | Transaction reference violates SEPA character rules | BLOCKER |
Character set
| SEPA-SCT-CHARSET-001 | Text outside the SEPA Latin character set | WARNING |