All validation rules
Every pain.001 business rule the validator checks — why banks reject each one, and how to fix it.
PAIN001-GEN-001
GrpHdr/NbOfTxs must be equal to the total number of CdtTrfTxInf transactions in the file.
PAIN001-GEN-002
GrpHdr/CtrlSum, if present, must be equal to the sum of all transaction InstdAmt amounts.
PAIN001-GEN-003
PmtInf/NbOfTxs, if present, must be equal to the number of CdtTrfTxInf transactions in this PmtInf block.
PAIN001-GEN-004
PmtInf/CtrlSum, if present, must be equal to the sum of InstdAmt amounts within the corresponding PmtInf block.
PAIN001-GEN-005
InstdAmt must be strictly positive (> 0). The XSD allows 0, but it is commercially invalid.
PAIN001-GEN-006
PmtInf/Dbtr is mandatory in each PmtInf block (XSD-required).
PAIN001-GEN-007
EndToEndId is mandatory for each CdtTrfTxInf transaction (XSD-required).
PAIN001-GEN-008
PmtInf/PmtInfId is mandatory in each PmtInf block.
PAIN001-GEN-009
PmtInf/PmtMtd is mandatory in each PmtInf block.
PAIN001-GEN-010
The IBAN (debtor or creditor), if present, must pass the MOD97 checksum validation.
PAIN001-GEN-011
PmtInf/ReqdExctnDt is mandatory in each PmtInf block.
PAIN001-MVP-001
Only the TRF (credit transfer) payment method is supported by this validator. CHK (cheque) and TRA are not supported.
PAIN001-MVP-002
InstdAmt is mandatory. EqvtAmt (equivalent amount) is not supported by this validator.
PAIN001-MVP-003
The creditor name (Cdtr/Nm) is mandatory.
PAIN001-MVP-004
The creditor account IBAN (CdtrAcct/Id/IBAN) is mandatory. Non-IBAN accounts (Othr) are not supported by this validator.
PAIN001-MVP-005
EqvtAmt (equivalent amount with currency conversion) is not supported. Use InstdAmt with the desired currency instead.
PAIN001-QUAL-001
EndToEndId values should be unique within the file. Duplicates may cause reconciliation issues on the bank side.
PAIN001-REM-001
CdtrRefInf/Tp/CdOrPrtry/Cd must be a valid creditor reference type code (DocumentType3Code: RADM, RPIN, FXDR, DISP, PUOR or SCOR).
PAIN001-REM-002
RfrdDocInf/Tp/CdOrPrtry/Cd must be a valid document type code (DocumentType5Code).
PAIN001-REM-003
Referred document amounts (DuePyblAmt, DscntApldAmt, CdtNoteAmt, RmtdAmt) must be strictly positive (> 0) when present.
PAIN001-REM-004
CdOrPrtry must contain either Cd or Prtry, but not both simultaneously.
PAIN00109-AGT-001
Intermediary agents must be declared sequentially: IntrmyAgt2 requires IntrmyAgt1 to be present; IntrmyAgt3 requires IntrmyAgt2 to be present.
PAIN00109-AGT-002
Each declared IntrmyAgt[n]/FinInstnId must contain at least one recognized identifier: BICFI, LEI, ClrSysMmbId/MmbId, or Othr/Id.
PAIN00109-GEN-001
GrpHdr/NbOfTxs must be equal to the total number of CdtTrfTxInf transactions in the file.
PAIN00109-GEN-002
GrpHdr/CtrlSum, if present, must be equal to the sum of all transaction InstdAmt amounts.
PAIN00109-GEN-003
PmtInf/NbOfTxs, if present, must be equal to the number of CdtTrfTxInf transactions in this PmtInf block.
PAIN00109-GEN-004
PmtInf/CtrlSum, if present, must be equal to the sum of InstdAmt amounts within the corresponding PmtInf block.
PAIN00109-GEN-005
InstdAmt must be strictly positive (> 0). The XSD allows 0, but it is commercially invalid.
PAIN00109-GEN-006
PmtInf/Dbtr is mandatory in each PmtInf block (XSD-required).
PAIN00109-GEN-007
EndToEndId is mandatory for each CdtTrfTxInf transaction (XSD-required).
PAIN00109-GEN-008
PmtInf/PmtInfId is mandatory in each PmtInf block.
PAIN00109-GEN-009
PmtInf/PmtMtd is mandatory in each PmtInf block.
PAIN00109-GEN-010
The IBAN (debtor or creditor), if present, must pass the MOD97 checksum validation.
PAIN00109-GEN-011
PmtInf/ReqdExctnDt is mandatory in each PmtInf block: provide either Dt (date) or DtTm (datetime).
PAIN00109-MVP-001
Only the TRF (credit transfer) payment method is supported by this validator. CHK (cheque) and TRA are not supported.
PAIN00109-MVP-002
InstdAmt is mandatory. EqvtAmt (equivalent amount) is not supported by this validator.
PAIN00109-MVP-003
The creditor name (Cdtr/Nm) is mandatory.
PAIN00109-MVP-004
The creditor account IBAN (CdtrAcct/Id/IBAN) is mandatory. Non-IBAN accounts (Othr) are not supported by this validator.
PAIN00109-MVP-005
EqvtAmt (equivalent amount with currency conversion) is not supported. Use InstdAmt with the desired currency instead.
PAIN00109-QUAL-001
EndToEndId values should be unique within the file. Duplicates may cause reconciliation issues on the bank side.
PAIN00109-REM-001
CdtrRefInf/Tp/CdOrPrtry/Cd must be a valid creditor reference type code (DocumentType3Code: RADM, RPIN, FXDR, DISP, PUOR or SCOR).
PAIN00109-REM-002
RfrdDocInf/Tp/CdOrPrtry/Cd must be a valid document type code (DocumentType6Code).
PAIN00109-REM-003
Referred document amounts (DuePyblAmt, DscntApldAmt, CdtNoteAmt, RmtdAmt) must be strictly positive (> 0) when present.
PAIN00109-REM-004
CdOrPrtry must contain either Cd or Prtry, but not both simultaneously.
PAIN00109-REM-005
AddtlRmtInf may appear at most 3 times within a single Strd block (ISO 20022 max occurrences).
PAIN00111-ADR-001
When using unstructured address lines (AdrLine) for Debtor or Creditor postal address, TwnNm (Town Name) and Ctry (Country) must also be present. ISO 20022 2019 structured address migration requires minimum geographic context alongside AdrLine.
PAIN00111-AGT-001
Intermediary agents must be declared sequentially: IntrmyAgt2 requires IntrmyAgt1 to be present; IntrmyAgt3 requires IntrmyAgt2 to be present.
PAIN00111-AGT-002
Each declared IntrmyAgt[n]/FinInstnId must contain at least one recognized identifier: BICFI, LEI, ClrSysMmbId/MmbId, or Othr/Id.
PAIN00111-FMT-001
UETR (Unique End-to-End Transaction Reference), if present, must be a valid UUID version 4 (format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx).
PAIN00111-FMT-002
LEI (Legal Entity Identifier), if present, must be exactly 20 alphanumeric characters: 18 alphanumeric characters followed by 2 numeric check digits.
PAIN00111-FMT-003
BICFI (Bank Identifier Code), if present, must comply with ISO 9362: 4 letters (institution) + 2 letters (country) + 2 alphanumeric (location) + optional 3 alphanumeric (branch) = 8 or 11 characters total.
PAIN00111-GEN-001
GrpHdr/NbOfTxs must be equal to the total number of CdtTrfTxInf transactions in the file.
PAIN00111-GEN-002
GrpHdr/CtrlSum, if present, must be equal to the sum of all transaction InstdAmt amounts.
PAIN00111-GEN-003
PmtInf/NbOfTxs, if present, must be equal to the number of CdtTrfTxInf transactions in this PmtInf block.
PAIN00111-GEN-004
PmtInf/CtrlSum, if present, must be equal to the sum of InstdAmt amounts within the corresponding PmtInf block.
PAIN00111-GEN-005
InstdAmt must be strictly positive (> 0). The XSD allows 0, but it is commercially invalid.
PAIN00111-GEN-006
PmtInf/Dbtr is mandatory in each PmtInf block (XSD-required).
PAIN00111-GEN-007
EndToEndId is mandatory for each CdtTrfTxInf transaction (XSD-required).
PAIN00111-GEN-008
PmtInf/PmtInfId is mandatory in each PmtInf block.
PAIN00111-GEN-009
PmtInf/PmtMtd is mandatory in each PmtInf block.
PAIN00111-GEN-010
The IBAN (debtor or creditor), if present, must pass the MOD97 checksum validation.
PAIN00111-GEN-011
PmtInf/ReqdExctnDt is mandatory in each PmtInf block: provide either Dt (date) or DtTm (datetime).
PAIN00111-MVP-001
Only the TRF (credit transfer) payment method is supported by this validator. CHK (cheque) and TRA are not supported.
PAIN00111-MVP-002
InstdAmt is mandatory. EqvtAmt (equivalent amount) is not supported by this validator.
PAIN00111-MVP-003
The creditor name (Cdtr/Nm) is mandatory.
PAIN00111-MVP-004
The creditor account IBAN (CdtrAcct/Id/IBAN) is mandatory. Non-IBAN accounts (Othr) are not supported by this validator.
PAIN00111-MVP-005
EqvtAmt (equivalent amount with currency conversion) is not supported. Use InstdAmt with the desired currency instead.
PAIN00111-QUAL-001
EndToEndId values should be unique within the file. Duplicates may cause reconciliation issues on the bank side.
PAIN00111-REM-001
CdtrRefInf/Tp/CdOrPrtry/Cd must be a valid creditor reference type code (DocumentType3Code: RADM, RPIN, FXDR, DISP, PUOR or SCOR).
PAIN00111-REM-002
RfrdDocInf/Tp/CdOrPrtry/Cd must be a valid document type code (DocumentType6Code).
PAIN00111-REM-003
Referred document amounts (DuePyblAmt, DscntApldAmt, CdtNoteAmt, RmtdAmt) must be strictly positive (> 0) when present.
PAIN00111-REM-004
CdOrPrtry must contain either Cd or Prtry, but not both simultaneously.
PAIN00111-REM-005
AddtlRmtInf may appear at most 3 times within a single Strd block (ISO 20022 max occurrences).