reda.066.001.01
The RequestToPayCreditorEnrolmentRequest message is sent by the creditor RTP (Request To Pay) provider to an RTP directory provider and optionally by the creditor to a creditor RTP provider to request the creditor registration in the RTP directory. The message may also be forwarded to any authorised third party, as defined in the local scheme.
Message Construction
Every ISO20022 message has at the highest level what we call ‘building blocks’. Because the message is constructed as immutable records, the association is by composition. Below you can see the relationship between the message and its constituent building blocks: For comparison, see the ISO20022 official specification
classDiagram direction LR %% RequestToPayCreditorEnrolmentRequestV01 recursion level 0 with max 0 RequestToPayCreditorEnrolmentRequestV01 *-- "1..1" EnrolmentHeader2 : Header RequestToPayCreditorEnrolmentRequestV01 *-- "1..1" CreditorEnrolment3 : CreditorEnrolment RequestToPayCreditorEnrolmentRequestV01 *-- "1..1" CreditorInvoice3 : ActivationData RequestToPayCreditorEnrolmentRequestV01 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
Header building block
Set of characteristics to identify the message and parties playing a role in the creditor enrolment request. Specifies the header information for the creditor enrolment. For comparison, see the ISO20022 official specification
classDiagram direction tb %% EnrolmentHeader2 recursion level 0 with max 1 class EnrolmentHeader2{ MessageIdentification IsoMax35Text CreationDateTime IsoISODateTime } EnrolmentHeader2 *-- "0..1" RTPPartyIdentification1 : MessageOriginator EnrolmentHeader2 *-- "0..1" RTPPartyIdentification1 : MessageRecipient EnrolmentHeader2 *-- "1..1" RTPPartyIdentification1 : InitiatingParty %% RTPPartyIdentification1 recursion level 1 with max 1 class RTPPartyIdentification1{ Name IsoMax140Text CountryOfResidence CountryCode } RTPPartyIdentification1 *-- "0..1" PostalAddress24 : PostalAddress RTPPartyIdentification1 *-- "0..1" IParty49Choice : Identification RTPPartyIdentification1 *-- "0..1" Contact4 : ContactDetails %% RTPPartyIdentification1 recursion level 1 with max 1 class RTPPartyIdentification1{ Name IsoMax140Text CountryOfResidence CountryCode } RTPPartyIdentification1 *-- "0..1" PostalAddress24 : PostalAddress RTPPartyIdentification1 *-- "0..1" IParty49Choice : Identification RTPPartyIdentification1 *-- "0..1" Contact4 : ContactDetails %% RTPPartyIdentification1 recursion level 1 with max 1 class RTPPartyIdentification1{ Name IsoMax140Text CountryOfResidence CountryCode } RTPPartyIdentification1 *-- "0..1" PostalAddress24 : PostalAddress RTPPartyIdentification1 *-- "0..1" IParty49Choice : Identification RTPPartyIdentification1 *-- "0..1" Contact4 : ContactDetails
EnrolmentHeader2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageIdentification | Point to point reference assigned by the instructing party and sent to the next party in the chain to unambiguously identify the message. Usage: The instructing party has to make sure that ‘MessageIdentification’ is unique per instructed party for a pre-agreed period. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date and time at which the message was created. | IsoISODateTime - Required 1..1 |
MessageOriginator | Party that sends the message. | RTPPartyIdentification1 - Optional 0..1 |
MessageRecipient | Party that receives the message. | RTPPartyIdentification1 - Optional 0..1 |
InitiatingParty | Party that initiates the message. This can either be the creditor himself or the party that initiates the request on behalf of the creditor. | RTPPartyIdentification1 - Required 1..1 |
CreditorEnrolment building block
Specific attributes of the creditor and service enrolment provided by the creditor for its enrolment. Specifies the attributes of the creditor used for a creditor enrolment. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CreditorEnrolment3 recursion level 0 with max 1 class CreditorEnrolment3{ CreditorTradingName IsoMax140Text MerchantCategoryCode IsoMerchantCategoryCodeIdentifier CreditorLogo IsoMax10KBinary } CreditorEnrolment3 *-- "1..1" CreditorServiceEnrolment1 : Enrolment CreditorEnrolment3 *-- "1..1" RTPPartyIdentification1 : Creditor CreditorEnrolment3 *-- "0..1" RTPPartyIdentification1 : UltimateCreditor %% CreditorServiceEnrolment1 recursion level 1 with max 1 class CreditorServiceEnrolment1{ ServiceActivationAllowed IsoTrueFalseIndicator ServiceDescriptionLink IsoMax2048Text CreditorServiceActivationLink IsoMax2048Text } CreditorServiceEnrolment1 *-- "0..1" IDateAndDateTime2Choice : EnrolmentStartDate CreditorServiceEnrolment1 *-- "0..1" IDateAndDateTime2Choice : EnrolmentEndDate CreditorServiceEnrolment1 *-- "0..1" Visibilty1 : Visibility %% RTPPartyIdentification1 recursion level 1 with max 1 class RTPPartyIdentification1{ Name IsoMax140Text CountryOfResidence CountryCode } RTPPartyIdentification1 *-- "0..1" PostalAddress24 : PostalAddress RTPPartyIdentification1 *-- "0..1" IParty49Choice : Identification RTPPartyIdentification1 *-- "0..1" Contact4 : ContactDetails %% RTPPartyIdentification1 recursion level 1 with max 1 class RTPPartyIdentification1{ Name IsoMax140Text CountryOfResidence CountryCode } RTPPartyIdentification1 *-- "0..1" PostalAddress24 : PostalAddress RTPPartyIdentification1 *-- "0..1" IParty49Choice : Identification RTPPartyIdentification1 *-- "0..1" Contact4 : ContactDetails
CreditorEnrolment3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Enrolment | Detailed activation data related to the creditor enrolment. | CreditorServiceEnrolment1 - Required 1..1 |
CreditorTradingName | Name used by a business for commercial purposes, although its registered legal name, used for contracts and other formal situations, may be another, such as the brand name. | IsoMax140Text - Optional 0..1 |
Creditor | Party to which an amount of money is due. | RTPPartyIdentification1 - Required 1..1 |
UltimateCreditor | Ultimate party to which an amount of money is due. | RTPPartyIdentification1 - Optional 0..1 |
MerchantCategoryCode | Classification of a business by the types of goods or services it provides. | IsoMerchantCategoryCodeIdentifier - Required 1..1 |
CreditorLogo | Commercial logo of the creditor. | IsoMax10KBinary - Optional 0..1 |
ActivationData building block
Specific attributes requested from the debtor for its activation as specified by the creditor in the creditor enrolment request. Specifies the identification attribtues of an invoice which are required by the creditor for the activation of the debtor. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CreditorInvoice3 recursion level 0 with max 1 class CreditorInvoice3{ LimitedPresentmentIndicator IsoTrueFalseIndicator CreditorInstruction IsoMax500Text } CreditorInvoice3 *-- "0..1" CustomerTypeRequest2 : CustomerIdentificationType CreditorInvoice3 *-- "0..0" IDocumentFormat2Choice : ContractFormatType CreditorInvoice3 *-- "0..0" IDocumentType1Choice : ContractReferenceType CreditorInvoice3 *-- "1..1" RTPPartyIdentification1 : ActivationRequestDeliveryParty %% CustomerTypeRequest2 recursion level 1 with max 1 class CustomerTypeRequest2{ Requested IsoRequestedIndicator } CustomerTypeRequest2 *-- "0..1" OrganisationType2 : OrganisationType CustomerTypeRequest2 *-- "0..1" PersonType2 : PrivateType %% IDocumentFormat2Choice recursion level 1 with max 1 %% IDocumentType1Choice recursion level 1 with max 1 %% RTPPartyIdentification1 recursion level 1 with max 1 class RTPPartyIdentification1{ Name IsoMax140Text CountryOfResidence CountryCode } RTPPartyIdentification1 *-- "0..1" PostalAddress24 : PostalAddress RTPPartyIdentification1 *-- "0..1" IParty49Choice : Identification RTPPartyIdentification1 *-- "0..1" Contact4 : ContactDetails
CreditorInvoice3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
LimitedPresentmentIndicator | Indicates whether the creditor allows limited presentment of the e-invoice, that is, only the e-invoice data needed for payment initiation. | IsoTrueFalseIndicator - Required 1..1 |
CustomerIdentificationType | Unique and unambiguous type of the identification of the debtor required by the creditor, for example the reference number or customer number. Unique identification provided by the web bank or web payment services user, with which the creditor may identify the debtor in its system. | CustomerTypeRequest2 - Optional 0..1 |
ContractFormatType | Document format type supported to exchange the contracts. | IDocumentFormat2Choice - Unknown 0..0 |
ContractReferenceType | Type of the contract reference for which the enrolment is defined.Type of the contract reference requested by the creditor which the debtor must provide in the debtor activation request to identify the contract(s) for which the RTP is requested. | IDocumentType1Choice - Unknown 0..0 |
CreditorInstruction | Instructions provided by the seller (that is creditor or ultimate creditor) for the Request-To-Pay (RTP) recipient (that is the debtor). The instructions may include for example the time required by the creditor to take into account the activation request. The debtor agent may display the information in the customer’s own service language. | IsoMax500Text - Optional 0..1 |
ActivationRequestDeliveryParty | Creditor’s service provider address to which the debtor activation has to be delivered. | RTPPartyIdentification1 - Required 1..1 |
SupplementaryData building block
Additional information that cannot be captured in the structured elements and/or any other specific block. Additional information that can not be captured in the structured fields and/or any other specific block. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SupplementaryData1 recursion level 0 with max 1 class SupplementaryData1{ PlaceAndName IsoMax350Text } SupplementaryData1 *-- "1..1" IsoSupplementaryDataEnvelope1 : Envelope %% IsoSupplementaryDataEnvelope1 recursion level 1 with max 1
SupplementaryData1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | Unambiguous reference to the location where the supplementary data must be inserted in the message instance. In the case of XML, this is expressed by a valid XPath. | IsoMax350Text - Optional 0..1 |
Envelope | Technical element wrapping the supplementary data. | IsoSupplementaryDataEnvelope1 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the RequestToPayCreditorEnrolmentRequestV01 implementation follows a specific implementaiton pattern. First of all, RequestToPayCreditorEnrolmentRequestV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, RequestToPayCreditorEnrolmentRequestV01Document implements IOuterDocument. Because RequestToPayCreditorEnrolmentRequestV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type RequestToPayCreditorEnrolmentRequestV01.
classDiagram class IOuterRecord RequestToPayCreditorEnrolmentRequestV01 --|> IOuterRecord : Implements RequestToPayCreditorEnrolmentRequestV01Document --|> IOuterDocument~RequestToPayCreditorEnrolmentRequestV01~ : Implements class IOuterDocument~RequestToPayCreditorEnrolmentRequestV01~ { RequestToPayCreditorEnrolmentRequestV01 Message }
Document wrapper for serialization
The only real purpose RequestToPayCreditorEnrolmentRequestV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:reda.066.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using RequestToPayCreditorEnrolmentRequestV01.ToDocument() method. The returned RequestToPayCreditorEnrolmentRequestV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram RequestToPayCreditorEnrolmentRequestV01Document *-- RequestToPayCreditorEnrolmentRequestV01 : Document
Sample of message format
This is an abbreviated version of what the message should look like.
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:reda.066.001.01">
<ReqToPayCdtrEnrlmntReq>
<Hdr>
<!-- Header inner content -->
</Hdr>
<CdtrEnrlmnt>
<!-- CreditorEnrolment inner content -->
</CdtrEnrlmnt>
<ActvtnData>
<!-- ActivationData inner content -->
</ActvtnData>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</ReqToPayCdtrEnrlmntReq>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_rNNBpeHzEeqbls7Gk4-ckA"
name="RequestToPayCreditorEnrolmentRequestV01"
definition="The RequestToPayCreditorEnrolmentRequest message is sent by the creditor RTP (Request To Pay) provider to an RTP directory provider and optionally by the creditor to a creditor RTP provider to request the creditor registration in the RTP directory. 
The message may also be forwarded to any authorised third party, as defined in the local scheme."
registrationStatus="Registered"
messageSet="_6PO9tOHwEeqbls7Gk4-ckA"
xmlTag="ReqToPayCdtrEnrlmntReq"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_rNNBp-HzEeqbls7Gk4-ckA"
name="Header"
definition="Set of characteristics to identify the message and parties playing a role in the creditor enrolment request."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Hdr"
complexType="_US8LoeH7Eeqbls7Gk4-ckA" />
<messageBuildingBlock
xmi:id="_rNNBqeHzEeqbls7Gk4-ckA"
name="CreditorEnrolment"
definition="Specific attributes of the creditor and service enrolment provided by the creditor for its enrolment."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="CdtrEnrlmnt"
complexType="_UZbOJeH7Eeqbls7Gk4-ckA" />
<messageBuildingBlock
xmi:id="_rNNBq-HzEeqbls7Gk4-ckA"
name="ActivationData"
definition="Specific attributes requested from the debtor for its activation as specified by the creditor in the creditor enrolment request."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="ActvtnData"
complexType="_ABrj0eH5Eeqbls7Gk4-ckA" />
<messageBuildingBlock
xmi:id="_rNNBreHzEeqbls7Gk4-ckA"
name="SupplementaryData"
definition="Additional information that cannot be captured in the structured elements and/or any other specific block."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SplmtryData"
complexType="_Qn0zC9p-Ed-ak6NoX_4Aeg_468227563" />
<messageDefinitionIdentifier
businessArea="reda"
messageFunctionality="066"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.