Message specification

pain.008.001.08: complete element reference

All 660 elements of pain.008.001.08 with cardinality, types and code lists, generated from the official ISO schema.

This is the complete element reference for pain.008.001.08, 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.

660 elements · 114 required · 88 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 Standards Editor on 2019 Feb 14”. 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 CustomerDirectDebitInitiationV08

GrpHdr#

Group Header, one per message

Element Path Card. Type Constraints
GrpHdr CstmrDrctDbtInitn/GrpHdr 1..1 GroupHeader83
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 PartyIdentification135
Nm CstmrDrctDbtInitn/GrpHdr/InitgPty/Nm 0..1 Max140Text length 1–140
PstlAdr CstmrDrctDbtInitn/GrpHdr/InitgPty/PstlAdr 0..1 PostalAddress24
Id CstmrDrctDbtInitn/GrpHdr/InitgPty/Id 0..1 Party38Choice
CtryOfRes CstmrDrctDbtInitn/GrpHdr/InitgPty/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
CtctDtls CstmrDrctDbtInitn/GrpHdr/InitgPty/CtctDtls 0..1 Contact4
FwdgAgt CstmrDrctDbtInitn/GrpHdr/FwdgAgt 0..1 BranchAndFinancialInstitutionIdentification6
FinInstnId CstmrDrctDbtInitn/GrpHdr/FwdgAgt/FinInstnId 1..1 FinancialInstitutionIdentification18
BrnchId CstmrDrctDbtInitn/GrpHdr/FwdgAgt/BrnchId 0..1 BranchData3

86 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..* PaymentInstruction29
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 PaymentTypeInformation29
InstrPrty CstmrDrctDbtInitn/PmtInf/PmtTpInf/InstrPrty 0..1 Priority2Code 2 codes
SvcLvl CstmrDrctDbtInitn/PmtInf/PmtTpInf/SvcLvl 0..* ServiceLevel8Choice
LclInstrm CstmrDrctDbtInitn/PmtInf/PmtTpInf/LclInstrm 0..1 LocalInstrument2Choice
SeqTp CstmrDrctDbtInitn/PmtInf/PmtTpInf/SeqTp 0..1 SequenceType3Code 5 codes
CtgyPurp CstmrDrctDbtInitn/PmtInf/PmtTpInf/CtgyPurp 0..1 CategoryPurpose1Choice
ReqdColltnDt CstmrDrctDbtInitn/PmtInf/ReqdColltnDt 1..1 ISODate
Cdtr CstmrDrctDbtInitn/PmtInf/Cdtr 1..1 PartyIdentification135
Nm CstmrDrctDbtInitn/PmtInf/Cdtr/Nm 0..1 Max140Text length 1–140
PstlAdr CstmrDrctDbtInitn/PmtInf/Cdtr/PstlAdr 0..1 PostalAddress24
Id CstmrDrctDbtInitn/PmtInf/Cdtr/Id 0..1 Party38Choice
CtryOfRes CstmrDrctDbtInitn/PmtInf/Cdtr/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
CtctDtls CstmrDrctDbtInitn/PmtInf/Cdtr/CtctDtls 0..1 Contact4
CdtrAcct CstmrDrctDbtInitn/PmtInf/CdtrAcct 1..1 CashAccount38
Id CstmrDrctDbtInitn/PmtInf/CdtrAcct/Id 1..1 AccountIdentification4Choice
Tp CstmrDrctDbtInitn/PmtInf/CdtrAcct/Tp 0..1 CashAccountType2Choice
Ccy CstmrDrctDbtInitn/PmtInf/CdtrAcct/Ccy 0..1 ActiveOrHistoricCurrencyCode pattern [A-Z]{3,3}
Nm CstmrDrctDbtInitn/PmtInf/CdtrAcct/Nm 0..1 Max70Text length 1–70
Prxy CstmrDrctDbtInitn/PmtInf/CdtrAcct/Prxy 0..1 ProxyAccountIdentification1
CdtrAgt CstmrDrctDbtInitn/PmtInf/CdtrAgt 1..1 BranchAndFinancialInstitutionIdentification6
FinInstnId CstmrDrctDbtInitn/PmtInf/CdtrAgt/FinInstnId 1..1 FinancialInstitutionIdentification18
BrnchId CstmrDrctDbtInitn/PmtInf/CdtrAgt/BrnchId 0..1 BranchData3
CdtrAgtAcct CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct 0..1 CashAccount38
Id CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Id 1..1 AccountIdentification4Choice
Tp CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Tp 0..1 CashAccountType2Choice
Ccy CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Ccy 0..1 ActiveOrHistoricCurrencyCode pattern [A-Z]{3,3}
Nm CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Nm 0..1 Max70Text length 1–70
Prxy CstmrDrctDbtInitn/PmtInf/CdtrAgtAcct/Prxy 0..1 ProxyAccountIdentification1
UltmtCdtr CstmrDrctDbtInitn/PmtInf/UltmtCdtr 0..1 PartyIdentification135
Nm CstmrDrctDbtInitn/PmtInf/UltmtCdtr/Nm 0..1 Max140Text length 1–140
PstlAdr CstmrDrctDbtInitn/PmtInf/UltmtCdtr/PstlAdr 0..1 PostalAddress24
Id CstmrDrctDbtInitn/PmtInf/UltmtCdtr/Id 0..1 Party38Choice
CtryOfRes CstmrDrctDbtInitn/PmtInf/UltmtCdtr/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
CtctDtls CstmrDrctDbtInitn/PmtInf/UltmtCdtr/CtctDtls 0..1 Contact4
ChrgBr CstmrDrctDbtInitn/PmtInf/ChrgBr 0..1 ChargeBearerType1Code 4 codes
ChrgsAcct CstmrDrctDbtInitn/PmtInf/ChrgsAcct 0..1 CashAccount38
Id CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Id 1..1 AccountIdentification4Choice
Tp CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Tp 0..1 CashAccountType2Choice
Ccy CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Ccy 0..1 ActiveOrHistoricCurrencyCode pattern [A-Z]{3,3}
Nm CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Nm 0..1 Max70Text length 1–70
Prxy CstmrDrctDbtInitn/PmtInf/ChrgsAcct/Prxy 0..1 ProxyAccountIdentification1
ChrgsAcctAgt CstmrDrctDbtInitn/PmtInf/ChrgsAcctAgt 0..1 BranchAndFinancialInstitutionIdentification6
FinInstnId CstmrDrctDbtInitn/PmtInf/ChrgsAcctAgt/FinInstnId 1..1 FinancialInstitutionIdentification18
BrnchId CstmrDrctDbtInitn/PmtInf/ChrgsAcctAgt/BrnchId 0..1 BranchData3
CdtrSchmeId CstmrDrctDbtInitn/PmtInf/CdtrSchmeId 0..1 PartyIdentification135
Nm CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/Nm 0..1 Max140Text length 1–140
PstlAdr CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/PstlAdr 0..1 PostalAddress24
Id CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/Id 0..1 Party38Choice
CtryOfRes CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/CtryOfRes 0..1 CountryCode pattern [A-Z]{2,2}
CtctDtls CstmrDrctDbtInitn/PmtInf/CdtrSchmeId/CtctDtls 0..1 Contact4
DrctDbtTxInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf 1..* DirectDebitTransactionInformation23
PmtId CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/PmtId 1..1 PaymentIdentification6
PmtTpInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/PmtTpInf 0..1 PaymentTypeInformation29
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 DirectDebitTransaction10
UltmtCdtr CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/UltmtCdtr 0..1 PartyIdentification135
DbtrAgt CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/DbtrAgt 1..1 BranchAndFinancialInstitutionIdentification6
DbtrAgtAcct CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/DbtrAgtAcct 0..1 CashAccount38
Dbtr CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/Dbtr 1..1 PartyIdentification135
DbtrAcct CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/DbtrAcct 1..1 CashAccount38
UltmtDbtr CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/UltmtDbtr 0..1 PartyIdentification135
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 TaxInformation8
RltdRmtInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/RltdRmtInf 0..10 RemittanceLocation7
RmtInf CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/RmtInf 0..1 RemittanceInformation16
SplmtryData CstmrDrctDbtInitn/PmtInf/DrctDbtTxInf/SplmtryData 0..* SupplementaryData1

478 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.

SplmtryData#

Supplementary Data: scheme-specific extensions

Element Path Card. Type Constraints
SplmtryData CstmrDrctDbtInitn/SplmtryData 0..* SupplementaryData1
PlcAndNm CstmrDrctDbtInitn/SplmtryData/PlcAndNm 0..1 Max350Text length 1–350
Envlp CstmrDrctDbtInitn/SplmtryData/Envlp 1..1 SupplementaryDataEnvelope1

Type reference#

Every complex type in this version is defined once on the pain.008.001.08 type reference, 86 types in all. 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
ChargeBearerType1Code DEBT, CRED, SHAR, SLEV
CreditDebitCode CRDT, DBIT
DocumentType3Code RADM, RPIN, FXDR, DISP, PUOR, SCOR
DocumentType6Code MSIN, CNFA, DNFA, CINV, CREN, DEBN, HIRI, SBIN, CMCN, SOAC, DISP, BOLD, VCHR, AROI (+2 more)
Frequency6Code YEAR, MNTH, QURT, MIAN, WEEK, DAIL, ADHO, INDA, FRTN
NamePrefix2Code DOCT, MADM, MISS, MIST, MIKS
PaymentMethod2Code DD
PreferredContactMethod1Code LETT, MAIL, PHON, FAXX, CELL
Priority2Code HIGH, NORM
RegulatoryReportingType1Code CRED, DEBT, BOTH
RemittanceLocationMethod2Code FAXI, EDIC, URID, EMAL, POST, SMSM
SequenceType3Code FRST, RCUR, FNAL, OOFF, RPRE
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.08 -d payments.csv -o out/ --dry-run

See the compatibility matrix for supported input formats and gates.