Pain001

This is the complete element reference for pain.008.001.02, generated directly from the official ISO 20022 XSD that Pain001 validates against — not transcribed by hand. Every cardinality, type and code value below can be checked against ISO's own publication.

488 elements · 90 required · 63 types · 15 code lists

Cardinality is shown as ISO writes it: 0..1 optional, 1..1 required, 0..* repeating. Required elements are bold — those are the ones whose absence makes the document invalid before any bank sees it.

Schema provenance. The shipped file carries the header “Generated by SWIFTStandards Workstation on 2009 Jan 08” — that is the schema generation timestamp, not necessarily ISO's publication date. Verify against the ISO 20022 catalogue.

CstmrDrctDbtInitn#

Element Path Card. Type Constraints
CstmrDrctDbtInitn CstmrDrctDbtInitn 1..1 CustomerDirectDebitInitiationV02

GrpHdr#

Group Header — one per message

Element Path Card. Type Constraints
  GrpHdr CstmrDrctDbtInitn/GrpHdr 1..1 GroupHeader39
    MsgId CstmrDrctDbtInitn/GrpHdr/MsgId 1..1 Max35Text length 1–35
    CreDtTm CstmrDrctDbtInitn/GrpHdr/CreDtTm 1..1 ISODateTime
    Authstn CstmrDrctDbtInitn/GrpHdr/Authstn 0..2 Authorisation1Choice
      Cd CstmrDrctDbtInitn/GrpHdr/Authstn/Cd 1..1 Authorisation1Code 4 codes
      Prtry CstmrDrctDbtInitn/GrpHdr/Authstn/Prtry 1..1 Max128Text length 1–128
    NbOfTxs CstmrDrctDbtInitn/GrpHdr/NbOfTxs 1..1 Max15NumericText pattern [0-9]{1,15}
    CtrlSum CstmrDrctDbtInitn/GrpHdr/CtrlSum 0..1 DecimalNumber 17 decimals max
    InitgPty CstmrDrctDbtInitn/GrpHdr/InitgPty 1..1 PartyIdentification32
      Nm CstmrDrctDbtInitn/GrpHdr/InitgPty/Nm 0..1 Max140Text length 1–140
      PstlAdr CstmrDrctDbtInitn/GrpHdr/InitgPty/PstlAdr 0..1 PostalAddress6
      Id CstmrDrctDbtInitn/GrpHdr/InitgPty/Id 0..1 Party6Choice
      CtryOfRes CstmrDrctDbtInitn/GrpHdr/InitgPty/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
      CtctDtls CstmrDrctDbtInitn/GrpHdr/InitgPty/CtctDtls 0..1 ContactDetails2
    FwdgAgt CstmrDrctDbtInitn/GrpHdr/FwdgAgt 0..1 BranchAndFinancialInstitutionIdentification4
      FinInstnId CstmrDrctDbtInitn/GrpHdr/FwdgAgt/FinInstnId 1..1 FinancialInstitutionIdentification7
      BrnchId CstmrDrctDbtInitn/GrpHdr/FwdgAgt/BrnchId 0..1 BranchData2

56 further nested elements sit below this depth — every one of them is defined in the type reference below, which lists each type once instead of repeating it under every party.

PmtInf#

Payment Information — one per debtor account and execution date

Element Path Card. Type Constraints
  PmtInf CstmrDrctDbtInitn/PmtInf 1..* PaymentInstructionInformation4
    PmtInfId CstmrDrctDbtInitn/PmtInf/PmtInfId 1..1 Max35Text length 1–35
    PmtMtd CstmrDrctDbtInitn/PmtInf/PmtMtd 1..1 PaymentMethod2Code 1 codes
    BtchBookg CstmrDrctDbtInitn/PmtInf/BtchBookg 0..1 BatchBookingIndicator
    NbOfTxs CstmrDrctDbtInitn/PmtInf/NbOfTxs 0..1 Max15NumericText pattern [0-9]{1,15}
    CtrlSum CstmrDrctDbtInitn/PmtInf/CtrlSum 0..1 DecimalNumber 17 decimals max
    PmtTpInf CstmrDrctDbtInitn/PmtInf/PmtTpInf 0..1 PaymentTypeInformation20
      InstrPrty CstmrDrctDbtInitn/PmtInf/PmtTpInf/InstrPrty 0..1 Priority2Code 2 codes
      SvcLvl CstmrDrctDbtInitn/PmtInf/PmtTpInf/SvcLvl 0..1 ServiceLevel8Choice
      LclInstrm CstmrDrctDbtInitn/PmtInf/PmtTpInf/LclInstrm 0..1 LocalInstrument2Choice
      SeqTp CstmrDrctDbtInitn/PmtInf/PmtTpInf/SeqTp 0..1 SequenceType1Code 4 codes
      CtgyPurp CstmrDrctDbtInitn/PmtInf/PmtTpInf/CtgyPurp 0..1 CategoryPurpose1Choice
    ReqdColltnDt CstmrDrctDbtInitn/PmtInf/ReqdColltnDt 1..1 ISODate
    Cdtr CstmrDrctDbtInitn/PmtInf/Cdtr 1..1 PartyIdentification32
      Nm CstmrDrctDbtInitn/PmtInf/Cdtr/Nm 0..1 Max140Text length 1–140
      PstlAdr CstmrDrctDbtInitn/PmtInf/Cdtr/PstlAdr 0..1 PostalAddress6
      Id CstmrDrctDbtInitn/PmtInf/Cdtr/Id 0..1 Party6Choice
      CtryOfRes CstmrDrctDbtInitn/PmtInf/Cdtr/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
      CtctDtls CstmrDrctDbtInitn/PmtInf/Cdtr/CtctDtls 0..1 ContactDetails2
    CdtrAcct CstmrDrctDbtInitn/PmtInf/CdtrAcct 1..1 CashAccount16
      Id CstmrDrctDbtInitn/PmtInf/CdtrAcct/Id 1..1 AccountIdentification4Choice
      Tp CstmrDrctDbtInitn/PmtInf/CdtrAcct/Tp 0..1 CashAccountType2
      Ccy CstmrDrctDbtInitn/PmtInf/CdtrAcct/Ccy 0..1 ActiveOrHistoricCurrencyCode pattern [A-Z]{3,3}
      Nm CstmrDrctDbtInitn/PmtInf/CdtrAcct/Nm 0..1 Max70Text length 1–70
    CdtrAgt CstmrDrctDbtInitn/PmtInf/CdtrAgt 1..1 BranchAndFinancialInstitutionIdentification4
      FinInstnId CstmrDrctDbtInitn/PmtInf/CdtrAgt/FinInstnId 1..1 FinancialInstitutionIdentification7
      BrnchId CstmrDrctDbtInitn/PmtInf/CdtrAgt/BrnchId 0..1 BranchData2
    CdtrAgtAcct CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct 0..1 CashAccount16
      Id CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Id 1..1 AccountIdentification4Choice
      Tp CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Tp 0..1 CashAccountType2
      Ccy CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Ccy 0..1 ActiveOrHistoricCurrencyCode pattern [A-Z]{3,3}
      Nm CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Nm 0..1 Max70Text length 1–70
    UltmtCdtr CstmrDrctDbtInitn/PmtInf/UltmtCdtr 0..1 PartyIdentification32
      Nm CstmrDrctDbtInitn/PmtInf/UltmtCdtr/Nm 0..1 Max140Text length 1–140
      PstlAdr CstmrDrctDbtInitn/PmtInf/UltmtCdtr/PstlAdr 0..1 PostalAddress6
      Id CstmrDrctDbtInitn/PmtInf/UltmtCdtr/Id 0..1 Party6Choice
      CtryOfRes CstmrDrctDbtInitn/PmtInf/UltmtCdtr/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
      CtctDtls CstmrDrctDbtInitn/PmtInf/UltmtCdtr/CtctDtls 0..1 ContactDetails2
    ChrgBr CstmrDrctDbtInitn/PmtInf/ChrgBr 0..1 ChargeBearerType1Code 4 codes
    ChrgsAcct CstmrDrctDbtInitn/PmtInf/ChrgsAcct 0..1 CashAccount16
      Id CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Id 1..1 AccountIdentification4Choice
      Tp CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Tp 0..1 CashAccountType2
      Ccy CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Ccy 0..1 ActiveOrHistoricCurrencyCode pattern [A-Z]{3,3}
      Nm CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Nm 0..1 Max70Text length 1–70
    ChrgsAcctAgt CstmrDrctDbtInitn/PmtInf/ChrgsAcctAgt 0..1 BranchAndFinancialInstitutionIdentification4
      FinInstnId CstmrDrctDbtInitn/PmtInf/ChrgsAcctAgt/FinInstnId 1..1 FinancialInstitutionIdentification7
      BrnchId CstmrDrctDbtInitn/PmtInf/ChrgsAcctAgt/BrnchId 0..1 BranchData2
    CdtrSchmeId CstmrDrctDbtInitn/PmtInf/CdtrSchmeId 0..1 PartyIdentification32
      Nm CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/Nm 0..1 Max140Text length 1–140
      PstlAdr CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/PstlAdr 0..1 PostalAddress6
      Id CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/Id 0..1 Party6Choice
      CtryOfRes CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
      CtctDtls CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/CtctDtls 0..1 ContactDetails2
    DrctDbtTxInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf 1..* DirectDebitTransactionInformation9
      PmtId CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/PmtId 1..1 PaymentIdentification1
      PmtTpInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/PmtTpInf 0..1 PaymentTypeInformation20
      InstdAmt CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/InstdAmt 1..1 ActiveOrHistoricCurrencyAndAmount
      ChrgBr CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/ChrgBr 0..1 ChargeBearerType1Code 4 codes
      DrctDbtTx CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/DrctDbtTx 0..1 DirectDebitTransaction6
      UltmtCdtr CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/UltmtCdtr 0..1 PartyIdentification32
      DbtrAgt CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/DbtrAgt 1..1 BranchAndFinancialInstitutionIdentification4
      DbtrAgtAcct CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/DbtrAgtAcct 0..1 CashAccount16
      Dbtr CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/Dbtr 1..1 PartyIdentification32
      DbtrAcct CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/DbtrAcct 1..1 CashAccount16
      UltmtDbtr CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/UltmtDbtr 0..1 PartyIdentification32
      InstrForCdtrAgt CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/InstrForCdtrAgt 0..1 Max140Text length 1–140
      Purp CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/Purp 0..1 Purpose2Choice
      RgltryRptg CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/RgltryRptg 0..10 RegulatoryReporting3
      Tax CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/Tax 0..1 TaxInformation3
      RltdRmtInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/RltdRmtInf 0..10 RemittanceLocation2
      RmtInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/RmtInf 0..1 RemittanceInformation5

343 further nested elements sit below this depth — every one of them is defined in the type reference below, which lists each type once instead of repeating it under every party.

Type reference#

Every complex type in this version is defined once on the pain.008.001.02 type reference — 62 types. The tree above repeats a party or address structure under each party; the type reference does not, which makes it the better page for mapping work.

Code lists used by this version#

Code list Values
AddressType2Code ADDR, PBOX, HOME, BIZZ, MLTO, DLVY
Authorisation1Code AUTH, FDET, FSUM, ILEV
CashAccountType4Code CASH, CHAR, COMM, TAXE, CISH, TRAS, SACC, CACC, SVGS, ONDP, MGLD, NREX, MOMA, LOAN (+2 more)
ChargeBearerType1Code DEBT, CRED, SHAR, SLEV
CreditDebitCode CRDT, DBIT
DocumentType3Code RADM, RPIN, FXDR, DISP, PUOR, SCOR
DocumentType5Code MSIN, CNFA, DNFA, CINV, CREN, DEBN, HIRI, SBIN, CMCN, SOAC, DISP, BOLD, VCHR, AROI (+1 more)
Frequency1Code YEAR, MNTH, QURT, MIAN, WEEK, DAIL, ADHO, INDA
NamePrefix1Code DOCT, MIST, MISS, MADM
PaymentMethod2Code DD
Priority2Code HIGH, NORM
RegulatoryReportingType1Code CRED, DEBT, BOTH
RemittanceLocationMethod2Code FAXI, EDIC, URID, EMAL, POST, SMSM
SequenceType1Code FRST, RCUR, FNAL, OOFF
TaxRecordPeriod1Code MM01, MM02, MM03, MM04, MM05, MM06, MM07, MM08, MM09, MM10, MM11, MM12, QTR1, QTR2 (+4 more)

The full value set for every list is on the code lists page.

Generate and validate this version#

pain001 -t pain.008.001.02 -d payments.csv -o out/ --dry-run

See the compatibility matrix for supported input formats and gates.