pain.001
Validateur & Expliqueur ISO 20022 pain.001
Validez et analysez vos fichiers de paiement pain.001 avant envoi à la banque.
Pris en charge
- ISO 20022 pain.001.001.03
- ISO 20022 pain.001.001.09 — Sepa, Swiss CH.03, Swiss UBS
- ISO 20022 pain.001.001.11 — Sepa
Perimetre de validation
Banques
Glissez-déposez votre fichier XML ici
ou parcourir
XML uniquement · 1 Mo max · 20 transactions
Exemples de démonstration
Utilisez-les uniquement pour prévisualiser l'expérience de diagnostic. Votre propre XML reste le flux de travail principal.
Préférez les téléchargements ? XML valide ou XML invalide
Files are processed in memory only — nothing is stored or transmitted to third parties.
Structure du document
90 champs · 87 règles · 10 tables//*[local-name()='Document']grpHdr.msgIdID du messagegrpHdr.creDtTmDate/heure de créationgrpHdr.authstn.cdCode d'autorisationgrpHdr.authstn.prtryAutorisation (propri?taire)grpHdr.nbOfTxsNombre de transactionsgrpHdr.ctrlSumSomme de contr?legrpHdr.initgPty.nmNom de la partie initiatricegrpHdr.initgPty.ctryOfResPays de r?sidence de la partie initiatricegrpHdr.initgPty.pstlAdr.ctryPays de l'adresse postale de la partie initiatricegrpHdr.initgPty.pstlAdr.adrLineLigne d'adresse de la partie initiatricegrpHdr.fwdgAgt.bicfiBIC de l'agent transmetteur//*[local-name()='PmtInf']pmtInf.pmtInfIdID des informations de paiementpmtInf.pmtMtdM?thode de paiementpmtInf.btchBookgComptabilisation group?epmtInf.nbOfTxsNombre de transactions (par PmtInf)pmtInf.ctrlSumSomme de contr?le (par PmtInf)pmtInf.pmtTpInf.instrPrtyPriorit? d'instructionpmtInf.pmtTpInf.svcLvlNiveau de servicepmtInf.pmtTpInf.lclInstrmInstrument localpmtInf.pmtTpInf.ctgyPurpCat?gorie d'objetpmtInf.reqdExctnDt.dtDate d'ex?cution demand?epmtInf.reqdExctnDt.dtTmDate/heure d'ex?cution demand?epmtInf.poolgAdjstmntDtDate d'ajustement du poolingpmtInf.chrgBrPrise en charge des fraispmtInf.dbtr.nmNom du d?biteurpmtInf.dbtr.ctryOfResPays de r?sidence du d?biteurpmtInf.dbtr.pstlAdr.ctryPays de l'adresse postale du d?biteurpmtInf.dbtr.pstlAdr.adrLineLigne d'adresse du d?biteurpmtInf.dbtrAcct.ibanIBAN d?biteurpmtInf.dbtrAgt.bicfiBIC de la banque du d?biteurpmtInf.dbtrAgt.leiLEI de la banque du d?biteurpmtInf.dbtrAgtAcct.ibanIBAN du compte de la banque du d?biteurpmtInf.ultmtDbtr.nmNom du d?biteur finalpmtInf.chrgsAcct.ibanIBAN du compte de fraispmtInf.chrgsAcctAgt.bicfiBIC de la banque du compte de frais//*[local-name()='CdtTrfTxInf']cdtTrfTxInf.endToEndIdID end-to-endcdtTrfTxInf.instrIdID d'instructioncdtTrfTxInf.uetrUETRcdtTrfTxInf.pmtTpInf.instrPrtyPriorit? d'instruction (transaction)cdtTrfTxInf.pmtTpInf.svcLvlNiveau de service (transaction)cdtTrfTxInf.pmtTpInf.lclInstrmInstrument local (transaction)cdtTrfTxInf.pmtTpInf.ctgyPurpCat?gorie d'objet (transaction)cdtTrfTxInf.instdAmtMontant instruitcdtTrfTxInf.instdAmt.ccyDevisecdtTrfTxInf.eqvtAmt.amtMontant ?quivalentcdtTrfTxInf.eqvtAmt.ccyOfTrfDevise de transfert du montant ?quivalentcdtTrfTxInf.xchgRateInf.unitCcyDevise unit? du taux de changecdtTrfTxInf.xchgRateInf.xchgRateTaux de changecdtTrfTxInf.xchgRateInf.rateTpType de taux de changecdtTrfTxInf.xchgRateInf.ctrctIdID du contrat de changecdtTrfTxInf.chrgBrPrise en charge des frais (transaction)cdtTrfTxInf.ultmtDbtr.nmNom du d?biteur final (transaction)cdtTrfTxInf.intrmyAgt1.bicfiBIC de l'agent interm?diaire 1cdtTrfTxInf.intrmyAgt1.leiLEI de l'agent interm?diaire 1cdtTrfTxInf.intrmyAgt1Acct.ibanIBAN du compte de l'agent interm?diaire 1cdtTrfTxInf.intrmyAgt2.bicfiBIC de l'agent interm?diaire 2cdtTrfTxInf.intrmyAgt2.leiIntermediary Agent 2 LEIcdtTrfTxInf.intrmyAgt2Acct.ibanIBAN du compte de l'agent interm?diaire 2cdtTrfTxInf.intrmyAgt3.bicfiBIC de l'agent interm?diaire 3cdtTrfTxInf.intrmyAgt3.leiIntermediary Agent 3 LEIcdtTrfTxInf.intrmyAgt3Acct.ibanIBAN du compte de l'agent interm?diaire 3cdtTrfTxInf.cdtrAgt.bicfiBIC de la banque du cr?anciercdtTrfTxInf.cdtrAgt.leiLEI de la banque du cr?anciercdtTrfTxInf.cdtrAgtAcct.ibanIBAN du compte de la banque du cr?anciercdtTrfTxInf.cdtr.nmNom du cr?anciercdtTrfTxInf.cdtr.ctryOfResPays de r?sidence du cr?anciercdtTrfTxInf.cdtr.pstlAdr.ctryPays de l'adresse postale du cr?anciercdtTrfTxInf.cdtr.pstlAdr.adrLineLigne d'adresse du cr?anciercdtTrfTxInf.cdtrAcct.ibanIBAN cr?anciercdtTrfTxInf.ultmtCdtr.nmNom du cr?ancier finalcdtTrfTxInf.purp.cdCode d'objetcdtTrfTxInf.purp.prtryObjet (propri?taire)cdtTrfTxInf.instrForCdtrAgt.instrInfInstruction pour la banque du cr?anciercdtTrfTxInf.instrForDbtrAgtInstruction pour la banque du d?biteurcdtTrfTxInf.rmtInf.ustrdInformation de versement (non structur?e)//*[local-name()='Strd']cdtTrfTxInf.rmtInf.strd.cdtrRefInf.refR?f?rence cr?anciercdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.cdCode type de r?f?rence cr?anciercdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.prtryType de r?f?rence cr?ancier (propri?taire)cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.issr?metteur de la r?f?rence cr?anciercdtTrfTxInf.rmtInf.strd.rfrdDocAmt.duePyblAmtMontant exigiblecdtTrfTxInf.rmtInf.strd.rfrdDocAmt.dscntApldAmtMontant de remise appliqu?ecdtTrfTxInf.rmtInf.strd.rfrdDocAmt.cdtNoteAmtMontant de note de cr?ditcdtTrfTxInf.rmtInf.strd.rfrdDocAmt.rmtdAmtMontant r?gl?cdtTrfTxInf.rmtInf.strd.addtlRmtInfInformation de versement suppl?mentaire//*[local-name()='RfrdDocInf']cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.cdCode type de documentcdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.prtryType de document (propri?taire)cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.issr?metteur du type de documentcdtTrfTxInf.rmtInf.strd.rfrdDocInf.nbNum?ro de documentcdtTrfTxInf.rmtInf.strd.rfrdDocInf.rltdDtDate li?e au documentcdtTrfTxInf.rmtInf.strd.rfrdDocInf.lineDtls.id.nbNum?ro ID du d?tail de ligneChamps
90 définis| Identifiant | Libellé | Type | Obligatoire |
|---|---|---|---|
grpHdr.msgId | ID du message | ID | ✓ |
grpHdr.creDtTm | Date/heure de création | ISO_DATETIME | ✓ |
grpHdr.authstn.cd | Code d'autorisation | CODE | — |
grpHdr.authstn.prtry | Autorisation (propri?taire) | TEXT | — |
grpHdr.nbOfTxs | Nombre de transactions | NB_OF_TXS | ✓ |
grpHdr.ctrlSum | Somme de contr?le | AMOUNT_TOTAL | — |
grpHdr.initgPty.nm | Nom de la partie initiatrice | TEXT | — |
grpHdr.initgPty.ctryOfRes | Pays de r?sidence de la partie initiatrice | COUNTRY_CODE | — |
grpHdr.initgPty.pstlAdr.ctry | Pays de l'adresse postale de la partie initiatrice | COUNTRY_CODE | — |
grpHdr.initgPty.pstlAdr.adrLine | Ligne d'adresse de la partie initiatrice | TEXT | — |
grpHdr.fwdgAgt.bicfi | BIC de l'agent transmetteur | BIC | — |
pmtInf.pmtInfId | ID des informations de paiement | ID | ✓ |
pmtInf.pmtMtd | M?thode de paiement | CODE | ✓ |
pmtInf.btchBookg | Comptabilisation group?e | BOOLEAN | — |
pmtInf.nbOfTxs | Nombre de transactions (par PmtInf) | NB_OF_TXS | — |
pmtInf.ctrlSum | Somme de contr?le (par PmtInf) | AMOUNT_TOTAL | — |
pmtInf.pmtTpInf.instrPrty | Priorit? d'instruction | CODE | — |
pmtInf.pmtTpInf.svcLvl | Niveau de service | CODE | — |
pmtInf.pmtTpInf.lclInstrm | Instrument local | CODE | — |
pmtInf.pmtTpInf.ctgyPurp | Cat?gorie d'objet | CODE | — |
pmtInf.reqdExctnDt.dt | Date d'ex?cution demand?e | ISO_DATE | — |
pmtInf.reqdExctnDt.dtTm | Date/heure d'ex?cution demand?e | ISO_DATETIME | — |
pmtInf.poolgAdjstmntDt | Date d'ajustement du pooling | ISO_DATE | — |
pmtInf.chrgBr | Prise en charge des frais | CODE | — |
pmtInf.dbtr.nm | Nom du d?biteur | TEXT | — |
pmtInf.dbtr.ctryOfRes | Pays de r?sidence du d?biteur | COUNTRY_CODE | — |
pmtInf.dbtr.pstlAdr.ctry | Pays de l'adresse postale du d?biteur | COUNTRY_CODE | — |
pmtInf.dbtr.pstlAdr.adrLine | Ligne d'adresse du d?biteur | TEXT | — |
pmtInf.dbtrAcct.iban | IBAN d?biteur | IBAN | — |
pmtInf.dbtrAgt.bicfi | BIC de la banque du d?biteur | BIC | — |
pmtInf.dbtrAgt.lei | LEI de la banque du d?biteur | LEI | — |
pmtInf.dbtrAgtAcct.iban | IBAN du compte de la banque du d?biteur | IBAN | — |
pmtInf.ultmtDbtr.nm | Nom du d?biteur final | TEXT | — |
pmtInf.chrgsAcct.iban | IBAN du compte de frais | IBAN | — |
pmtInf.chrgsAcctAgt.bicfi | BIC de la banque du compte de frais | BIC | — |
cdtTrfTxInf.endToEndId | ID end-to-end | ID | ✓ |
cdtTrfTxInf.instrId | ID d'instruction | ID | — |
cdtTrfTxInf.uetr | UETR | UETR | — |
cdtTrfTxInf.pmtTpInf.instrPrty | Priorit? d'instruction (transaction) | CODE | — |
cdtTrfTxInf.pmtTpInf.svcLvl | Niveau de service (transaction) | CODE | — |
cdtTrfTxInf.pmtTpInf.lclInstrm | Instrument local (transaction) | CODE | — |
cdtTrfTxInf.pmtTpInf.ctgyPurp | Cat?gorie d'objet (transaction) | CODE | — |
cdtTrfTxInf.instdAmt | Montant instruit | AMOUNT | — |
cdtTrfTxInf.instdAmt.ccy | Devise | CCY | — |
cdtTrfTxInf.eqvtAmt.amt | Montant ?quivalent | AMOUNT | — |
cdtTrfTxInf.eqvtAmt.ccyOfTrf | Devise de transfert du montant ?quivalent | CCY | — |
cdtTrfTxInf.xchgRateInf.unitCcy | Devise unit? du taux de change | CCY | — |
cdtTrfTxInf.xchgRateInf.xchgRate | Taux de change | RATE | — |
cdtTrfTxInf.xchgRateInf.rateTp | Type de taux de change | CODE | — |
cdtTrfTxInf.xchgRateInf.ctrctId | ID du contrat de change | ID | — |
cdtTrfTxInf.chrgBr | Prise en charge des frais (transaction) | CODE | — |
cdtTrfTxInf.ultmtDbtr.nm | Nom du d?biteur final (transaction) | TEXT | — |
cdtTrfTxInf.intrmyAgt1.bicfi | BIC de l'agent interm?diaire 1 | BIC | — |
cdtTrfTxInf.intrmyAgt1.lei | LEI de l'agent interm?diaire 1 | LEI | — |
cdtTrfTxInf.intrmyAgt1Acct.iban | IBAN du compte de l'agent interm?diaire 1 | IBAN | — |
cdtTrfTxInf.intrmyAgt2.bicfi | BIC de l'agent interm?diaire 2 | BIC | — |
cdtTrfTxInf.intrmyAgt2.lei | Intermediary Agent 2 LEI | LEI | — |
cdtTrfTxInf.intrmyAgt2Acct.iban | IBAN du compte de l'agent interm?diaire 2 | IBAN | — |
cdtTrfTxInf.intrmyAgt3.bicfi | BIC de l'agent interm?diaire 3 | BIC | — |
cdtTrfTxInf.intrmyAgt3.lei | Intermediary Agent 3 LEI | LEI | — |
cdtTrfTxInf.intrmyAgt3Acct.iban | IBAN du compte de l'agent interm?diaire 3 | IBAN | — |
cdtTrfTxInf.cdtrAgt.bicfi | BIC de la banque du cr?ancier | BIC | — |
cdtTrfTxInf.cdtrAgt.lei | LEI de la banque du cr?ancier | LEI | — |
cdtTrfTxInf.cdtrAgtAcct.iban | IBAN du compte de la banque du cr?ancier | IBAN | — |
cdtTrfTxInf.cdtr.nm | Nom du cr?ancier | TEXT | — |
cdtTrfTxInf.cdtr.ctryOfRes | Pays de r?sidence du cr?ancier | COUNTRY_CODE | — |
cdtTrfTxInf.cdtr.pstlAdr.ctry | Pays de l'adresse postale du cr?ancier | COUNTRY_CODE | — |
cdtTrfTxInf.cdtr.pstlAdr.adrLine | Ligne d'adresse du cr?ancier | TEXT | — |
cdtTrfTxInf.cdtrAcct.iban | IBAN cr?ancier | IBAN | — |
cdtTrfTxInf.ultmtCdtr.nm | Nom du cr?ancier final | TEXT | — |
cdtTrfTxInf.purp.cd | Code d'objet | CODE | — |
cdtTrfTxInf.purp.prtry | Objet (propri?taire) | TEXT | — |
cdtTrfTxInf.instrForCdtrAgt.instrInf | Instruction pour la banque du cr?ancier | TEXT | — |
cdtTrfTxInf.instrForDbtrAgt | Instruction pour la banque du d?biteur | TEXT | — |
cdtTrfTxInf.rmtInf.ustrd | Information de versement (non structur?e) | TEXT | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.ref | R?f?rence cr?ancier | ID | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.cd | Code type de r?f?rence cr?ancier | CODE | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.prtry | Type de r?f?rence cr?ancier (propri?taire) | TEXT | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.issr | ?metteur de la r?f?rence cr?ancier | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.duePyblAmt | Montant exigible | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.dscntApldAmt | Montant de remise appliqu?e | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.cdtNoteAmt | Montant de note de cr?dit | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.rmtdAmt | Montant r?gl? | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.addtlRmtInf | Information de versement suppl?mentaire | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.cd | Code type de document | CODE | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.prtry | Type de document (propri?taire) | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.issr | ?metteur du type de document | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.nb | Num?ro de document | ID | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.rltdDt | Date li?e au document | ISO_DATE | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.lineDtls.id.nb | Num?ro ID du d?tail de ligne | ID | — |
Règles de validation
87 règlesPAIN00109-GEN-001ERRORGrpHdr/NbOfTxs doit être égal au nombre total de transactions CdtTrfTxInf dans le fichier.
Règle personnalisée : pain00109-check
PAIN00109-GEN-002ERRORGrpHdr/CtrlSum, si présent, doit être égal à la somme de tous les montants InstdAmt des transactions.
Somme de contr?le est présent
Règle personnalisée : pain00109-check
PAIN00109-GEN-003ERRORPmtInf/NbOfTxs, si présent, doit être égal au nombre de transactions CdtTrfTxInf dans ce bloc PmtInf.
Nombre de transactions (par PmtInf) est présent
Règle personnalisée : pain00109-check
PAIN00109-GEN-004ERRORPmtInf/CtrlSum, si présent, doit être égal à la somme des montants InstdAmt dans le bloc PmtInf correspondant.
Somme de contr?le (par PmtInf) est présent
Règle personnalisée : pain00109-check
PAIN00109-GEN-005ERRORInstdAmt doit être strictement positif (> 0). Le XSD autorise 0, mais cela est commercialement invalide.
Montant instruit > 0
PAIN00109-GEN-006ERRORPmtInf/Dbtr est obligatoire dans chaque bloc PmtInf (requis par le XSD).
Règle personnalisée : pain00109-check
PAIN00109-GEN-007ERROREndToEndId est obligatoire pour chaque transaction CdtTrfTxInf (requis par le XSD).
Règle personnalisée : pain00109-check
PAIN00109-GEN-008ERRORPmtInf/PmtInfId est obligatoire dans chaque bloc PmtInf.
Règle personnalisée : pain00109-check
PAIN00109-GEN-009ERRORPmtInf/PmtMtd est obligatoire dans chaque bloc PmtInf.
Règle personnalisée : pain00109-check
PAIN00109-GEN-010ERRORL’IBAN (débiteur ou créditeur), si présent, doit passer la validation de checksum MOD97.
Règle personnalisée : pain00109-check
PAIN00109-GEN-011ERRORPmtInf/ReqdExctnDt est obligatoire dans chaque bloc PmtInf : fournissez soit Dt (date) soit DtTm (date/heure).
Règle personnalisée : pain00109-check
PAIN00109-QUAL-001WARNINGLes valeurs EndToEndId devraient être uniques dans le fichier. Les doublons peuvent provoquer des problèmes de rapprochement côté banque.
cdtTrfTxInf.endToEndId est unique dans cdtTrfTxInf.endToEndId
PAIN00109-MVP-001ERRORSeule la méthode de paiement TRF (virement) est supportée par ce validateur. CHK (chèque) et TRA ne sont pas supportés.
M?thode de paiement ∈ {TRF}
PAIN00109-MVP-002ERRORInstdAmt est obligatoire. EqvtAmt (montant équivalent) n’est pas supporté par ce validateur.
Montant instruit est obligatoire
PAIN00109-MVP-003ERRORLe nom du créditeur (Cdtr/Nm) est obligatoire.
Nom du cr?ancier est obligatoire
PAIN00109-MVP-004ERRORL’IBAN du compte créditeur (CdtrAcct/Id/IBAN) est obligatoire. Les comptes non-IBAN (Othr) ne sont pas supportés par ce validateur.
IBAN cr?ancier est obligatoire
PAIN00109-MVP-005ERROREqvtAmt (montant équivalent avec conversion de devise) n’est pas supporté. Utilisez plutôt InstdAmt avec la devise souhaitée.
{"op":"rejected","field":"cdtTrfTxInf.eqvtAmt.ccyOfTrf"}
PAIN00109-AGT-001ERRORIntermediary agents must be declared sequentially: IntrmyAgt2 requires IntrmyAgt1 to be present; IntrmyAgt3 requires IntrmyAgt2 to be present.
Règle personnalisée : pain00109-check
PAIN00109-AGT-002ERROREach declared IntrmyAgt[n]/FinInstnId must contain at least one recognized identifier: BICFI, LEI, ClrSysMmbId/MmbId, or Othr/Id.
Règle personnalisée : pain00109-check
PAIN00109-REM-001ERRORCdtrRefInf/Tp/CdOrPrtry/Cd doit être un code de type de référence créditeur valide (DocumentType3Code : RADM, RPIN, FXDR, DISP, PUOR ou SCOR).
Code type de r?f?rence cr?ancier ∈ Codes type de référence créancier (DocumentType3Code): {RADM, RPIN, FXDR, DISP, PUOR, SCOR}
PAIN00109-REM-002ERRORRfrdDocInf/Tp/CdOrPrtry/Cd doit être un code de type de document valide (DocumentType6Code).
Code type de document ∈ Codes type de document (DocumentType6Code): {MSIN, CNFA, DNFA, CINV, CREN, DEBN ... (16 valeurs)}
PAIN00109-REM-003ERRORLes montants des documents référencés (DuePyblAmt, DscntApldAmt, CdtNoteAmt, RmtdAmt) doivent être strictement positifs (> 0) lorsqu’ils sont présents.
Règle personnalisée : pain00109-check
PAIN00109-REM-004ERRORCdOrPrtry doit contenir soit Cd soit Prtry, mais pas les deux simultanément.
Règle personnalisée : pain00109-check
PAIN00109-REM-005ERRORAddtlRmtInf may appear at most 3 times within a single Strd block (ISO 20022 max occurrences).
Règle personnalisée : pain00109-check
SE-B-001ERRORSEPA Credit TransferSEPA: Service Level must be 'SEPA' (Rulebook AT-40).
Règle personnalisée : pain00109-sepa-check
SE-GEN-CHAR-001WARNINGSEPA Credit TransferSEPA: Text fields must use the SEPA Latin character set.
Règle personnalisée : pain00109-sepa-check
SE-GEN-REF-001ERRORSEPA Credit TransferSEPA: Reference fields must not start/end with '/' or contain '//' (EPC230-15).
Règle personnalisée : pain00109-sepa-check
SE-GEN-AMT-001WARNINGSEPA Credit TransferSEPA: Amounts must not have more than 2 decimal digits.
Règle personnalisée : pain00109-sepa-check
SE-A-001WARNINGSEPA Credit TransferSEPA: Initiating Party name must not exceed 70 characters (AT-02).
Règle personnalisée : pain00109-sepa-check
SE-B-002WARNINGSEPA Credit TransferSEPA: Local Instrument is not part of the SEPA core service.
Règle personnalisée : pain00109-sepa-check
SE-B-003ERRORSEPA Credit TransferSEPA: Charge Bearer must be 'SLEV' (Rulebook AT-07).
Règle personnalisée : pain00109-sepa-check
EPC-CT-05ERRORSEPA Credit TransferSEPA: InstrId must be unique within each PmtInf block.
Règle personnalisée : pain00109-sepa-check
EPC-CT-08WARNINGSEPA Credit TransferSEPA: Batch booking on a multi-transaction block may not be supported by all banks.
Règle personnalisée : pain00109-sepa-check
SE-C-002ERRORSEPA Credit TransferSEPA: Instructed Amount currency must be EUR (Rulebook AT-09).
Règle personnalisée : pain00109-sepa-check
SE-C-003WARNINGSEPA Credit TransferSEPA: Creditor Agent BIC must be a valid BIC8 or BIC11 (ISO 9362).
Règle personnalisée : pain00109-sepa-check
SE-C-004ERRORSEPA Credit TransferSEPA: Creditor name is mandatory and must not exceed 70 characters (AT-21).
Règle personnalisée : pain00109-sepa-check
SE-C-005WARNINGSEPA Credit TransferSEPA: Creditor postal address line will be rejected from 22 November 2026 (EPC153-22).
Règle personnalisée : pain00109-sepa-check
EPC-CT-10ERRORSEPA Credit TransferSEPA: Unstructured remittance information (Ustrd) must not exceed 140 characters.
Règle personnalisée : pain00109-sepa-check
CH-GEN-XML-002ERRORSwiss Payments CH.03SPS n’autorise pas les éléments feuilles vides ou contenant uniquement des espaces.
Règle personnalisée : pain00109-ch03-check
CH-GEN-XML-003ERRORSwiss Payments CH.03SPS n’autorise pas les éléments de groupe vides.
Règle personnalisée : pain00109-ch03-check
CH-GEN-CHAR-001ERRORSwiss Payments CH.03SPS autorise uniquement les caractères imprimables Basic Latin, Latin-1 Supplement, Latin Extended-A, Ș/ș/Ț/ț et € dans les valeurs texte.
Règle personnalisée : pain00109-ch03-check
CH-GEN-REF-001ERRORSwiss Payments CH.03Les champs de référence SPS doivent utiliser le jeu de caractères restreint et respecter les règles sur les slashs.
Règle personnalisée : pain00109-ch03-check
CH-GEN-AMT-001WARNINGSwiss Payments CH.03La représentation des montants SPS doit éviter le padding et utiliser un point comme séparateur décimal.
Règle personnalisée : pain00109-ch03-check
CH-GEN-AMT-003ERRORSwiss Payments CH.03Le nombre de décimales des montants SPS doit être cohérent avec la devise.
Règle personnalisée : pain00109-ch03-check
CH-A-007INFOSwiss Payments CH.03SPS recommande les informations logicielles dans GrpHdr/InitgPty/CtctDtls/Othr (NAME, PRVD, VRSN, SPSV).
Règle personnalisée : pain00109-ch03-check
CH-B-003INFOSwiss Payments CH.03CHK (chèque) est une méthode de paiement SPS CH.03 valide mais hors périmètre de ce validateur. Seul TRF est actuellement implémenté.
Règle personnalisée : pain00109-ch03-check
CH-B-007WARNINGSwiss Payments CH.03SPS attend ReqdExctnDt/Dt ; DateTime peut ne pas être supporté par certains profils.
Règle personnalisée : pain00109-ch03-check
CH-S-001ERRORSwiss Payments CH.03Les paiements SPS SEPA nécessitent la devise EUR et le charge bearer SLEV.
Règle personnalisée : pain00109-ch03-check
CH-X-001WARNINGSwiss Payments CH.03Paiement cross-border détecté ; des exigences spécifiques à la banque peuvent s’appliquer.
Règle personnalisée : pain00109-ch03-check
CH-INST-001ERRORSwiss Payments CH.03Les paiements instantanés SPS (INST/ITP) sont uniquement en CHF.
Règle personnalisée : pain00109-ch03-check
CH-QR-001ERRORSwiss Payments CH.03La référence QR SPS doit contenir 27 chiffres numériques et nécessite un compte créditeur QR-IBAN.
Règle personnalisée : pain00109-ch03-check
CH-RF-001ERRORSwiss Payments CH.03La référence créditeur ISO SPS SCOR doit être une référence RF ISO 11649 valide.
Règle personnalisée : pain00109-ch03-check
CH-ADDR-001ERRORSwiss Payments CH.03Les adresses postales structurées SPS nécessitent TwnNm et Ctry ; AdrTp n’est pas autorisé.
Règle personnalisée : pain00109-ch03-check
CH-ADDR-002WARNINGSwiss Payments CH.03SPS n’autorise pas le mélange de AdrLine avec des champs d’adresse structurés dans la même adresse postale.
Règle personnalisée : pain00109-ch03-check
CH-ADDR-003WARNINGSwiss Payments CH.03AdrLine dans les adresses postales du débiteur/créancier sera rejeté par les banques suisses à partir de novembre 2026 (SPS 2026).
Règle personnalisée : pain00109-ch03-check
CH-ID-001ERRORSwiss Payments CH.03SPS (DU05) : InstrId doit être unique dans chaque bloc PmtInf (niveau B). Les doublons entraînent le rejet du niveau B.
Règle personnalisée : pain00109-ch03-check
CH-ID-002ERRORSwiss Payments CH.03SPS (DU02): PmtInfId must be unique across all PmtInf blocks within the message. A duplicate causes full message rejection. Source: SIX Swiss Payment Standards — Business Rules 2025, rule DU02.
Règle personnalisée : pain00109-ch03-check
UBS-A-001ERRORUBS SwitzerlandUBS/CS : GrpHdr/Authstn, GrpHdr/InitgPty/PstlAdr et GrpHdr/InitgPty/CtryOfRes ne sont pas autorisés.
Règle personnalisée : pain00109-ubs-check
UBS-A-002WARNINGUBS SwitzerlandUBS/CS : CtctDtls accepte uniquement Othr ; Nm, PhneNb, MobNb, FaxNb, EmailAdr et autres sous-éléments similaires ne sont pas autorisés. Maximum recommandé : 4 occurrences Othr (NAME, PRVD, VRSN, SPSV).
Règle personnalisée : pain00109-ubs-check
UBS-B-001ERRORUBS SwitzerlandUBS/CS : BtchBookg doit être l’une des valeurs 0, 1, true, false (xs:boolean sensible à la casse).
Règle personnalisée : pain00109-ubs-check
UBS-B-002ERRORUBS SwitzerlandUBS/CS : un PmtInf par devise transférée — plusieurs devises dans un même niveau B ne sont pas autorisées.
Règle personnalisée : pain00109-ubs-check
UBS-B-003ERRORUBS SwitzerlandUBS/CS : ReqdExctnDt/Dt est obligatoire ; DtTm n’est pas autorisé ; la plage de dates valide est de −40/+60 jours calendaires à partir de la soumission.
Règle personnalisée : pain00109-ubs-check
UBS-B-004ERRORUBS SwitzerlandUBS/CS : l’IBAN débiteur ne doit pas être un QR-IBAN ; DbtrAcct/Nm, Othr/SchmeNm et Othr/Issr ne sont pas autorisés.
Règle personnalisée : pain00109-ubs-check
UBS-B-005ERRORUBS SwitzerlandUBS/CS : le même sous-élément PmtTpInf ne doit pas apparaître à la fois au niveau B et au niveau C avec des valeurs conflictuelles (CH07).
Règle personnalisée : pain00109-ubs-check
UBS-B-006ERRORUBS SwitzerlandUBS/CS : Dbtr/PstlAdr/AdrTp, Dbtr/CtryOfRes et Dbtr/CtctDtls ne sont pas autorisés.
Règle personnalisée : pain00109-ubs-check
UBS-B-007ERRORUBS SwitzerlandUBS/CS : DbtrAgt ClrSysMmbId/ClrSysId/Cd doit être CHBCC ; FinInstnId/Nm, FinInstnId/Othr, BrnchId et DbtrAgtAcct ne sont pas autorisés.
Règle personnalisée : pain00109-ubs-check
UBS-B-008WARNINGUBS SwitzerlandUBS/CS : FwdgAgt nécessite normalement un accord bilatéral spécial ; la banque se réserve le droit de rejeter.
Règle personnalisée : pain00109-ubs-check
UBS-B-009WARNINGUBS SwitzerlandUBS/CS : InstrForDbtrAgt à un seul niveau peut entraîner un traitement non-STP ; aux niveaux B et C simultanément cela n’est pas autorisé.
Règle personnalisée : pain00109-ubs-check
UBS-B-010ERRORUBS SwitzerlandUBS/CS : UltmtDbtr et ChrgBr ne doivent pas apparaître simultanément au niveau B et au niveau C (CH07).
Règle personnalisée : pain00109-ubs-check
UBS-N-001ERRORUBS SwitzerlandUBS/CS : SplmtryData n’est pas autorisé au niveau transaction ou document.
Règle personnalisée : pain00109-ubs-check
UBS-C-001ERRORUBS SwitzerlandUBS/CS : pour les paiements domestiques CH/LI, AddtlRmtInf est limité à une occurrence par élément Strd.
Règle personnalisée : pain00109-ubs-check
UBS-B-011ERRORUBS SwitzerlandUBS/CS: PmtTpInf/LclInstrm is not allowed for domestic CH/LI payments or INST payments and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-B-013ERRORUBS SwitzerlandUBS/CS: AdrLine in UltmtDbtr is not allowed. Rejected immediately for type X; rejected for all types since November 2025.
Règle personnalisée : pain00109-ubs-check
UBS-C-007ERRORUBS SwitzerlandUBS/CS: AdrLine in Cdtr postal address is not allowed and will be rejected. Unstructured addresses rejected since November 2025.
Règle personnalisée : pain00109-ubs-check
UBS-C-010ERRORUBS SwitzerlandUBS/CS: AdrLine in UltmtCdtr is not allowed for any payment type and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-C-003ERRORUBS SwitzerlandUBS/CS: IntrmyAgt2, IntrmyAgt2Acct, IntrmyAgt3 and IntrmyAgt3Acct are not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-C-004ERRORUBS SwitzerlandUBS/CS: CdtrAgt ClrSysId/Cd value CHSIC is not allowed. Source: Credit Suisse MIG v3.2, row 133.
Règle personnalisée : pain00109-ubs-check
UBS-B-012ERRORUBS SwitzerlandUBS/CS: PoolgAdjstmntDt is not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-B-014ERRORUBS SwitzerlandUBS/CS: UltmtDbtr/CtryOfRes and UltmtDbtr/CtctDtls are not allowed at B-level or C-level.
Règle personnalisée : pain00109-ubs-check
UBS-C-002ERRORUBS SwitzerlandUBS/CS: IntrmyAgt1 should only be used for cross-border (type X) payments. BrnchId and IntrmyAgt1Acct sub-elements (Tp, Ccy, Nm, Prxy) are not allowed.
Règle personnalisée : pain00109-ubs-check
UBS-C-005ERRORUBS SwitzerlandUBS/CS: CdtrAgt/FinInstnId/Othr and CdtrAgt/BrnchId are not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-C-006ERRORUBS SwitzerlandUBS/CS: CdtrAgtAcct/Tp, Ccy, Nm and Prxy are not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-C-008ERRORUBS SwitzerlandUBS/CS: Cdtr/CtryOfRes and Cdtr/CtctDtls are not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-C-009ERRORUBS SwitzerlandUBS/CS: CdtrAcct/Tp, Ccy and Nm are not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-C-011ERRORUBS SwitzerlandUBS/CS: UltmtCdtr/CtryOfRes and UltmtCdtr/CtctDtls are not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-B-015ERRORUBS SwitzerlandUBS/CS: ChrgsAcct/Tp, ChrgsAcct/Nm and ChrgsAcctAgt are not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
UBS-C-012ERRORUBS SwitzerlandUBS/CS: Tax node is not allowed and will be rejected.
Règle personnalisée : pain00109-ubs-check
Tables de référence
10 listesISO 4217 — codes devise actifs
iso4217-currenciesMéthodes de paiement (PaymentMethod3Code)
pmt-methodsTypes de prise en charge des frais (ChargeBearerType1Code)
charge-bearerTypes d'adresse (AddressType2Code)
address-typePriorité d'instruction (Priority2Code)
priority-codeType de taux de change (ExchangeRateType1Code)
exchange-rate-typeType d'autorisation (Authorisation1Code)
authorisation-codeType de reporting réglementaire (RegulatoryReportingType1Code)
rgltry-rptg-indCodes type de référence créancier (DocumentType3Code)
creditor-reference-type-codeCodes type de document (DocumentType6Code)
document-type-codeSupports official ISO 20022 XSD schemas: pain.001.001.03.xsd (urn:iso:std:iso:20022:tech:xsd:pain.001.001.03), pain.001.001.09.xsd (urn:iso:std:iso:20022:tech:xsd:pain.001.001.09), and the Swiss Payment Standards CH.03 overlay pain.001.001.09.ch.03.xsd. Compatible with Swiss QR-bill, SEPA Credit Transfer (SCT), and SIX Payment Standards. Validates IBAN checksum (MOD97), BIC format, CtrlSum, NbOfTxs, EqvtAmt restrictions, and structured remittance information. Explains ISO 20022 payment file rejection causes: bank rejection, payment rejected, pain001 error, XML validation error, SEPA CT pain.001 invalid, Swiss payment file error.
Valider et expliquer les fichiers de paiement pain.001 avant soumission bancaire — Validation XSD officielle, contrôles spécifiques au profil et diagnostics lisibles pour pain.001.001.03, pain.001.001.09 et Swiss CH.03.
XSD ISO 20022 officiel
Prise en charge Swiss CH.03
Diagnostics lisibles
Aucun compte requis
Pas seulement de la validation XML
Le XSD détecte la structure. Ifriqa explique les causes de rejet.
La validation XSD est nécessaire, mais les banques rejettent les fichiers pain.001 pour des raisons de profil, de cohérence et de règles métier. La plateforme combine des contrôles de schéma, des diagnostics ISO 20022, des overlays de profil et des rapports lisibles.
| Couche | Ce que ça détecte |
|---|---|
| XSD officiel | Structure XML, éléments requis, contraintes de schéma |
| Règles ISO 20022 | IBAN, BIC, CtrlSum, NbOfTxs, cohérence des montants |
| Règles de profil | Restrictions Swiss CH.03 et futures restrictions bancaires |
| Couche d'explication | Diagnostics lisibles et JSON lisible par machine |
Profils supportés
Validation prête pour la Suisse
Validez les fichiers pain.001.001.09 selon le profil Swiss CH.03 avant de les envoyer aux institutions financières suisses.
Les profils spécifiques aux banques sont progressivement ajoutés.
Diagnostics lisibles
| Erreur | Explication |
|---|---|
| Somme de contrôle IBAN invalide | La vérification MOD97 a échoué avant que le fichier n'atteigne la banque. |
| Incohérence du CtrlSum | Le total déclaré diffère de la somme réelle des transactions. |
| EqvtAmt interdit | Le profil sélectionné n'autorise pas le montant équivalent ici. |
Conçu pour
- Éditeurs de logiciels ERP et comptables
- Équipes financières préparant des fichiers SEPA/SCT
- Entreprises suisses utilisant pain.001.001.09 CH.03
- Développeurs intégrant des exports ISO 20022
- Consultants analysant les rejets bancaires
| Fonctionnalité | Gratuit | Payant |
|---|---|---|
| Validation XML unique | Oui | Oui |
| XSD + diagnostics de base | Oui | Oui |
| Explication métier complète | Partiel | Oui |
| Rapport JSON/API | Aperçu | Oui |
| Lot / ZIP | Non | Oui |
| Rapports spécifiques banque/profil | Limité | Oui |
| Historique / rapports sauvegardés | Non | Oui |
| Accès API | Non | Oui |
Guides & Reference
Besoin de validation par lot ou d'accès API ?
L'accès API, le traitement par lot/ZIP, les rapports sauvegardés et les diagnostics de profil spécifiques aux banques sont prévus pour les usages payants.