RequestToPayCreditorEnrolmentRequestV01

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. &#xD;&#xA;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.