ISO 20022 pain.001.001.03
Customer Credit Transfer Initiation — ISO 20022 pain.001.001.03
Drag and drop your XML invoice here
or click to browse files
XML format · Max 5 MB
No invoice? Try with a sample ↗
Customer Credit Transfer Initiation — ISO 20022 pain.001.001.03 validator
Version 03 · 81 champs · 21 règles · 10 tables
Structure du document
pain001-cct//*[local-name()='Document']grpHdr.msgIdMessage IDgrpHdr.creDtTmCreation DateTimegrpHdr.authstn.cdAuthorisation CodegrpHdr.authstn.prtryAuthorisation (Proprietary)grpHdr.nbOfTxsNumber of TransactionsgrpHdr.ctrlSumControl SumgrpHdr.initgPty.nmInitiating Party NamegrpHdr.initgPty.ctryOfResInitiating Party Country of ResidencegrpHdr.initgPty.pstlAdr.ctryInitiating Party Postal Address CountrygrpHdr.initgPty.pstlAdr.adrLineInitiating Party Address LinegrpHdr.fwdgAgt.bicForwarding Agent BIC//*[local-name()='PmtInf']pmtInf.pmtInfIdPayment Info IDpmtInf.pmtMtdPayment MethodpmtInf.btchBookgBatch BookingpmtInf.nbOfTxsNb of Txs (per PmtInf)pmtInf.ctrlSumControl Sum (per PmtInf)pmtInf.pmtTpInf.instrPrtyInstruction PrioritypmtInf.pmtTpInf.svcLvlService LevelpmtInf.pmtTpInf.lclInstrmLocal InstrumentpmtInf.pmtTpInf.ctgyPurpCategory PurposepmtInf.reqdExctnDtRequested Execution DatepmtInf.poolgAdjstmntDtPooling Adjustment DatepmtInf.chrgBrCharge BearerpmtInf.dbtr.nmDebtor NamepmtInf.dbtr.ctryOfResDebtor Country of ResidencepmtInf.dbtr.pstlAdr.ctryDebtor Postal Address CountrypmtInf.dbtr.pstlAdr.adrLineDebtor Address LinepmtInf.dbtrAcct.ibanDebtor IBANpmtInf.dbtrAgt.bicDebtor Agent BICpmtInf.dbtrAgtAcct.ibanDebtor Agent Account IBANpmtInf.ultmtDbtr.nmUltimate Debtor NamepmtInf.chrgsAcct.ibanCharges Account IBANpmtInf.chrgsAcctAgt.bicCharges Account Agent BIC//*[local-name()='CdtTrfTxInf']cdtTrfTxInf.endToEndIdEnd-to-End IDcdtTrfTxInf.instrIdInstruction IDcdtTrfTxInf.pmtTpInf.instrPrtyInstruction Priority (tx)cdtTrfTxInf.pmtTpInf.svcLvlService Level (tx)cdtTrfTxInf.pmtTpInf.lclInstrmLocal Instrument (tx)cdtTrfTxInf.pmtTpInf.ctgyPurpCategory Purpose (tx)cdtTrfTxInf.instdAmtInstructed AmountcdtTrfTxInf.instdAmt.ccyCurrencycdtTrfTxInf.eqvtAmt.amtEquivalent AmountcdtTrfTxInf.eqvtAmt.ccyOfTrfEquivalent Amount CcyOfTrfcdtTrfTxInf.xchgRateInf.xchgRateExchange RatecdtTrfTxInf.xchgRateInf.rateTpExchange Rate TypecdtTrfTxInf.xchgRateInf.ctrctIdExchange Rate Contract IDcdtTrfTxInf.chrgBrCharge Bearer (tx level)cdtTrfTxInf.cdtr.nmCreditor NamecdtTrfTxInf.cdtr.ctryOfResCreditor Country of ResidencecdtTrfTxInf.cdtr.pstlAdr.ctryCreditor Postal Address CountrycdtTrfTxInf.cdtr.pstlAdr.adrLineCreditor Address LinecdtTrfTxInf.cdtrAcct.ibanCreditor IBANcdtTrfTxInf.cdtrAgt.bicCreditor Agent BICcdtTrfTxInf.cdtrAgtAcct.ibanCreditor Agent Account IBANcdtTrfTxInf.intrmyAgt1.bicIntermediary Agent 1 BICcdtTrfTxInf.intrmyAgt1Acct.ibanIntermediary Agent 1 Account IBANcdtTrfTxInf.intrmyAgt2.bicIntermediary Agent 2 BICcdtTrfTxInf.intrmyAgt2Acct.ibanIntermediary Agent 2 Account IBANcdtTrfTxInf.intrmyAgt3.bicIntermediary Agent 3 BICcdtTrfTxInf.intrmyAgt3Acct.ibanIntermediary Agent 3 Account IBANcdtTrfTxInf.ultmtCdtr.nmUltimate Creditor NamecdtTrfTxInf.ultmtDbtr.nmUltimate Debtor Name (tx)cdtTrfTxInf.purp.cdPurpose CodecdtTrfTxInf.purp.prtryPurpose (Proprietary)cdtTrfTxInf.instrForCdtrAgt.instrInfInstruction for Creditor AgentcdtTrfTxInf.instrForDbtrAgtInstruction for Debtor AgentcdtTrfTxInf.rmtInf.ustrdRemittance Info (unstructured)//*[local-name()='Strd']cdtTrfTxInf.rmtInf.strd.cdtrRefInf.refCreditor ReferencecdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.cdCreditor Reference Type CodecdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.prtryCreditor Reference Type (Proprietary)cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.issrCreditor Reference IssuercdtTrfTxInf.rmtInf.strd.rfrdDocAmt.duePyblAmtDue Payable AmountcdtTrfTxInf.rmtInf.strd.rfrdDocAmt.dscntApldAmtDiscount Applied AmountcdtTrfTxInf.rmtInf.strd.rfrdDocAmt.cdtNoteAmtCredit Note AmountcdtTrfTxInf.rmtInf.strd.rfrdDocAmt.rmtdAmtRemitted AmountcdtTrfTxInf.rmtInf.strd.addtlRmtInfAdditional Remittance Info//*[local-name()='RfrdDocInf']cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.cdDocument Type CodecdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.prtryDocument Type (Proprietary)cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.issrDocument Type IssuercdtTrfTxInf.rmtInf.strd.rfrdDocInf.nbDocument NumbercdtTrfTxInf.rmtInf.strd.rfrdDocInf.rltdDtDocument Related DateChamps
81 définis| Identifiant | Label | Type | Requis |
|---|---|---|---|
grpHdr.msgId | Message ID | ID | ✓ |
grpHdr.creDtTm | Creation DateTime | ISO_DATETIME | ✓ |
grpHdr.authstn.cd | Authorisation Code | CODE | — |
grpHdr.authstn.prtry | Authorisation (Proprietary) | TEXT | — |
grpHdr.nbOfTxs | Number of Transactions | NB_OF_TXS | ✓ |
grpHdr.ctrlSum | Control Sum | AMOUNT_TOTAL | — |
grpHdr.initgPty.nm | Initiating Party Name | TEXT | — |
grpHdr.initgPty.ctryOfRes | Initiating Party Country of Residence | COUNTRY_CODE | — |
grpHdr.initgPty.pstlAdr.ctry | Initiating Party Postal Address Country | COUNTRY_CODE | — |
grpHdr.initgPty.pstlAdr.adrLine | Initiating Party Address Line | TEXT | — |
grpHdr.fwdgAgt.bic | Forwarding Agent BIC | BIC | — |
pmtInf.pmtInfId | Payment Info ID | ID | ✓ |
pmtInf.pmtMtd | Payment Method | CODE | ✓ |
pmtInf.btchBookg | Batch Booking | BOOLEAN | — |
pmtInf.nbOfTxs | Nb of Txs (per PmtInf) | NB_OF_TXS | — |
pmtInf.ctrlSum | Control Sum (per PmtInf) | AMOUNT_TOTAL | — |
pmtInf.pmtTpInf.instrPrty | Instruction Priority | CODE | — |
pmtInf.pmtTpInf.svcLvl | Service Level | CODE | — |
pmtInf.pmtTpInf.lclInstrm | Local Instrument | CODE | — |
pmtInf.pmtTpInf.ctgyPurp | Category Purpose | CODE | — |
pmtInf.reqdExctnDt | Requested Execution Date | ISO_DATE | ✓ |
pmtInf.poolgAdjstmntDt | Pooling Adjustment Date | ISO_DATE | — |
pmtInf.chrgBr | Charge Bearer | CODE | — |
pmtInf.dbtr.nm | Debtor Name | TEXT | — |
pmtInf.dbtr.ctryOfRes | Debtor Country of Residence | COUNTRY_CODE | — |
pmtInf.dbtr.pstlAdr.ctry | Debtor Postal Address Country | COUNTRY_CODE | — |
pmtInf.dbtr.pstlAdr.adrLine | Debtor Address Line | TEXT | — |
pmtInf.dbtrAcct.iban | Debtor IBAN | IBAN | — |
pmtInf.dbtrAgt.bic | Debtor Agent BIC | BIC | — |
pmtInf.dbtrAgtAcct.iban | Debtor Agent Account IBAN | IBAN | — |
pmtInf.ultmtDbtr.nm | Ultimate Debtor Name | TEXT | — |
pmtInf.chrgsAcct.iban | Charges Account IBAN | IBAN | — |
pmtInf.chrgsAcctAgt.bic | Charges Account Agent BIC | BIC | — |
cdtTrfTxInf.endToEndId | End-to-End ID | ID | ✓ |
cdtTrfTxInf.instrId | Instruction ID | ID | — |
cdtTrfTxInf.pmtTpInf.instrPrty | Instruction Priority (tx) | CODE | — |
cdtTrfTxInf.pmtTpInf.svcLvl | Service Level (tx) | CODE | — |
cdtTrfTxInf.pmtTpInf.lclInstrm | Local Instrument (tx) | CODE | — |
cdtTrfTxInf.pmtTpInf.ctgyPurp | Category Purpose (tx) | CODE | — |
cdtTrfTxInf.instdAmt | Instructed Amount | AMOUNT | — |
cdtTrfTxInf.instdAmt.ccy | Currency | CCY | — |
cdtTrfTxInf.eqvtAmt.amt | Equivalent Amount | AMOUNT | — |
cdtTrfTxInf.eqvtAmt.ccyOfTrf | Equivalent Amount CcyOfTrf | CCY | — |
cdtTrfTxInf.xchgRateInf.xchgRate | Exchange Rate | RATE | — |
cdtTrfTxInf.xchgRateInf.rateTp | Exchange Rate Type | CODE | — |
cdtTrfTxInf.xchgRateInf.ctrctId | Exchange Rate Contract ID | ID | — |
cdtTrfTxInf.chrgBr | Charge Bearer (tx level) | CODE | — |
cdtTrfTxInf.cdtr.nm | Creditor Name | TEXT | — |
cdtTrfTxInf.cdtr.ctryOfRes | Creditor Country of Residence | COUNTRY_CODE | — |
cdtTrfTxInf.cdtr.pstlAdr.ctry | Creditor Postal Address Country | COUNTRY_CODE | — |
cdtTrfTxInf.cdtr.pstlAdr.adrLine | Creditor Address Line | TEXT | — |
cdtTrfTxInf.cdtrAcct.iban | Creditor IBAN | IBAN | — |
cdtTrfTxInf.cdtrAgt.bic | Creditor Agent BIC | BIC | — |
cdtTrfTxInf.cdtrAgtAcct.iban | Creditor Agent Account IBAN | IBAN | — |
cdtTrfTxInf.intrmyAgt1.bic | Intermediary Agent 1 BIC | BIC | — |
cdtTrfTxInf.intrmyAgt1Acct.iban | Intermediary Agent 1 Account IBAN | IBAN | — |
cdtTrfTxInf.intrmyAgt2.bic | Intermediary Agent 2 BIC | BIC | — |
cdtTrfTxInf.intrmyAgt2Acct.iban | Intermediary Agent 2 Account IBAN | IBAN | — |
cdtTrfTxInf.intrmyAgt3.bic | Intermediary Agent 3 BIC | BIC | — |
cdtTrfTxInf.intrmyAgt3Acct.iban | Intermediary Agent 3 Account IBAN | IBAN | — |
cdtTrfTxInf.ultmtCdtr.nm | Ultimate Creditor Name | TEXT | — |
cdtTrfTxInf.ultmtDbtr.nm | Ultimate Debtor Name (tx) | TEXT | — |
cdtTrfTxInf.purp.cd | Purpose Code | CODE | — |
cdtTrfTxInf.purp.prtry | Purpose (Proprietary) | TEXT | — |
cdtTrfTxInf.instrForCdtrAgt.instrInf | Instruction for Creditor Agent | TEXT | — |
cdtTrfTxInf.instrForDbtrAgt | Instruction for Debtor Agent | TEXT | — |
cdtTrfTxInf.rmtInf.ustrd | Remittance Info (unstructured) | TEXT | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.ref | Creditor Reference | ID | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.cd | Creditor Reference Type Code | CODE | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.prtry | Creditor Reference Type (Proprietary) | TEXT | — |
cdtTrfTxInf.rmtInf.strd.cdtrRefInf.tp.issr | Creditor Reference Issuer | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.duePyblAmt | Due Payable Amount | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.dscntApldAmt | Discount Applied Amount | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.cdtNoteAmt | Credit Note Amount | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocAmt.rmtdAmt | Remitted Amount | AMOUNT | — |
cdtTrfTxInf.rmtInf.strd.addtlRmtInf | Additional Remittance Info | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.cd | Document Type Code | CODE | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.prtry | Document Type (Proprietary) | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.tp.issr | Document Type Issuer | TEXT | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.nb | Document Number | ID | — |
cdtTrfTxInf.rmtInf.strd.rfrdDocInf.rltdDt | Document Related Date | ISO_DATE | — |
Règles de validation
21 règlesPAIN001-GEN-001ERRORGrpHdr/NbOfTxs must be equal to the total number of CdtTrfTxInf transactions in the file.
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-002ERRORGrpHdr/CtrlSum, if present, must be equal to the sum of all transaction InstdAmt amounts.
Control Sum est présent
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-003ERRORPmtInf/NbOfTxs, if present, must be equal to the number of CdtTrfTxInf transactions in this PmtInf block.
Nb of Txs (per PmtInf) est présent
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-004ERRORPmtInf/CtrlSum, if present, must be equal to the sum of InstdAmt amounts within the corresponding PmtInf block.
Control Sum (per PmtInf) est présent
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-005ERRORInstdAmt must be strictly positive (> 0). The XSD allows 0, but it is commercially invalid.
Instructed Amount > 0
PAIN001-GEN-006ERRORPmtInf/Dbtr is mandatory in each PmtInf block (XSD-required).
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-007ERROREndToEndId is mandatory for each CdtTrfTxInf transaction (XSD-required).
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-008ERRORPmtInf/PmtInfId is mandatory in each PmtInf block.
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-009ERRORPmtInf/PmtMtd is mandatory in each PmtInf block.
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-011ERRORPmtInf/ReqdExctnDt is mandatory in each PmtInf block.
Règle personnalisée : pain001-ctrl-check
PAIN001-GEN-010ERRORThe IBAN (debtor or creditor), if present, must pass the MOD97 checksum validation.
Règle personnalisée : pain001-iban-check
PAIN001-QUAL-001WARNINGEndToEndId values should be unique within the file. Duplicates may cause reconciliation issues on the bank side.
cdtTrfTxInf.endToEndId est unique dans cdtTrfTxInf
PAIN001-MVP-001ERROROnly the TRF (credit transfer) payment method is supported by this validator. CHK (cheque) and TRA are not supported.
Payment Method ∈ {TRF}
PAIN001-MVP-002ERRORInstdAmt is mandatory. EqvtAmt (equivalent amount) is not supported by this validator.
Instructed Amount est obligatoire
PAIN001-MVP-003ERRORThe creditor name (Cdtr/Nm) is mandatory.
Creditor Name est obligatoire
PAIN001-MVP-004ERRORThe creditor account IBAN (CdtrAcct/Id/IBAN) is mandatory. Non-IBAN accounts (Othr) are not supported by this validator.
Creditor IBAN est obligatoire
PAIN001-MVP-005ERROREqvtAmt (equivalent amount with currency conversion) is not supported. Use InstdAmt with the desired currency instead.
{"op":"rejected","field":"cdtTrfTxInf.eqvtAmt.ccyOfTrf"}
PAIN001-REM-001ERRORCdtrRefInf/Tp/CdOrPrtry/Cd must be a valid creditor reference type code (DocumentType3Code: RADM, RPIN, FXDR, DISP, PUOR or SCOR).
Creditor Reference Type Code ∈ Creditor reference type codes (DocumentType3Code) : {RADM, RPIN, FXDR, DISP, PUOR, SCOR}
PAIN001-REM-002ERRORRfrdDocInf/Tp/CdOrPrtry/Cd must be a valid document type code (DocumentType5Code).
Document Type Code ∈ Document type codes (DocumentType5Code) : {MSIN, CNFA, DNFA, CINV, CREN, DEBN … (15 valeurs)}
PAIN001-REM-003ERRORReferred document amounts (DuePyblAmt, DscntApldAmt, CdtNoteAmt, RmtdAmt) must be strictly positive (> 0) when present.
Règle personnalisée : pain001-rmt-check
PAIN001-REM-004ERRORCdOrPrtry must contain either Cd or Prtry, but not both simultaneously.
Règle personnalisée : pain001-rmt-check
Tables de référence
10 listesISO 4217 — Active currency codes
iso4217-currenciesPayment methods (PaymentMethod3Code)
pmt-methodsCharge bearer types (ChargeBearerType1Code)
charge-bearerAddress types (AddressType2Code)
address-typeInstruction priority (Priority2Code)
priority-codeExchange rate type (ExchangeRateType1Code)
exchange-rate-typeAuthorisation type (Authorisation1Code)
authorisation-codeRegulatory Reporting Type (RegulatoryReportingType1Code)
rgltry-rptg-indCreditor reference type codes (DocumentType3Code)
creditor-reference-type-codeDocument type codes (DocumentType5Code)
document-type-code