UndertakingStatusReportV01

tsrv.019.001.01

The UndertakingStatusReport message is exchanged between parties that have an interest in the referenced undertaking transaction. It notifies the recipient of the status of the transaction, such as acceptance or rejection, withdrawal, or non-conformation. The sender may add additional information, as appropriate.

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
%% UndertakingStatusReportV01 recursion level 0 with max 0
UndertakingStatusReportV01 *-- "1..1" UndertakingStatusAdvice1 : UndertakingStatusReportDetails
UndertakingStatusReportV01 *-- "0..1" PartyAndSignature2 : DigitalSignature
  

Now, we will zero-in one-by-one on each of these building blocks.

UndertakingStatusReportDetails building block

Details of the undertaking status report. Undertaking status information. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% UndertakingStatusAdvice1 recursion level 0 with max 1
class UndertakingStatusAdvice1{
    AmendmentSequenceNumber IsoNumber
    AdvisingPartyReferenceNumber IsoMax35Text
    ConfirmerReferenceNumber IsoMax35Text
    StatusCategory ExternalUndertakingStatusCategory1Code
    Status UndertakingStatus3Code
    AdditionalInformation IsoMax2000Text
}
UndertakingStatusAdvice1 *-- "1..1" PartyIdentification43 : InitiatingParty
UndertakingStatusAdvice1 *-- "0..1" Undertaking8 : UndertakingIdentification
UndertakingStatusAdvice1 *-- "0..0" StatusReasonInformation8 : StatusReason
UndertakingStatusAdvice1 *-- "0..0" ReportedAmount1 : ReportedAmount
UndertakingStatusAdvice1 *-- "0..1" OriginalMessage1 : OriginalMessageDetails
UndertakingStatusAdvice1 *-- "0..0" Document9 : EnclosedFile
%% PartyIdentification43 recursion level 1 with max 1
class PartyIdentification43{
    Name IsoMax140Text
    CountryOfResidence CountryCode
}
PartyIdentification43 *-- "0..1" PostalAddress6 : PostalAddress
PartyIdentification43 *-- "0..1" IParty11Choice : Identification
PartyIdentification43 *-- "0..1" ContactDetails2 : ContactDetails
%% Undertaking8 recursion level 1 with max 1
class Undertaking8{
    Identification IsoMax35Text
    ApplicantReferenceNumber IsoMax35Text
    BeneficiaryReferenceNumber IsoMax35Text
}
Undertaking8 *-- "1..1" PartyIdentification43 : Issuer
%% StatusReasonInformation8 recursion level 1 with max 1
class StatusReasonInformation8{
    AdditionalInformation IsoMax105Text
}
StatusReasonInformation8 *-- "0..1" PartyIdentification32 : Originator
StatusReasonInformation8 *-- "0..1" IStatusReason6Choice : Reason
%% ReportedAmount1 recursion level 1 with max 1
class ReportedAmount1{
    Identification IsoMax35Text
    Type ExternalUndertakingAmountType1Code
    Amount IsoActiveCurrencyAndAmount
}
%% OriginalMessage1 recursion level 1 with max 1
class OriginalMessage1{
    MessageDefinitionIdentifier IsoMax35Text
    BusinessMessageIdentifier IsoMax35Text
    CreationDate IsoISONormalisedDateTime
    CopyDuplicate CopyDuplicate1Code
}
OriginalMessage1 *-- "1..1" IParty9Choice : From
OriginalMessage1 *-- "1..1" IParty9Choice : To
%% Document9 recursion level 1 with max 1
class Document9{
    Identification IsoMax35Text
    Enclosure IsoMax2MBBinary
}
Document9 *-- "1..1" IUndertakingDocumentType1Choice : Type
Document9 *-- "0..1" IDocumentFormat1Choice : Format
Document9 *-- "0..1" PartyAndSignature2 : DigitalSignature
  

UndertakingStatusAdvice1 members

Member name Description Data Type / Multiplicity
InitiatingParty Details related to the party that initiated the report. PartyIdentification43 - Required 1..1
UndertakingIdentification Details related to the identification of the undertaking. Undertaking8 - Optional 0..1
AmendmentSequenceNumber Sequence number assigned by the issuer to each amendment of the undertaking. IsoNumber - Optional 0..1
AdvisingPartyReferenceNumber Unique and unambiguous identifier assigned by the advising party to the undertaking. IsoMax35Text - Optional 0..1
ConfirmerReferenceNumber Unique and unambiguous identifier assigned by the confirmer to the undertaking. IsoMax35Text - Optional 0..1
StatusCategory Specifies the category of the status. ExternalUndertakingStatusCategory1Code - Required 1..1
Status Specifies the reported status. UndertakingStatus3Code - Required 1..1
StatusReason Set of elements used to provide detailed information on the status reason. StatusReasonInformation8 - Unknown 0..0
ReportedAmount Amount reported. ReportedAmount1 - Unknown 0..0
OriginalMessageDetails Information concerning the original message to which the status report may be sent in response. OriginalMessage1 - Optional 0..1
EnclosedFile Document or template enclosed in the report. Document9 - Unknown 0..0
AdditionalInformation Additional information related to the report. IsoMax2000Text - Collection 0..5

DigitalSignature building block

Digital signature of the report. Entity involved in an activity. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% PartyAndSignature2 recursion level 0 with max 1
PartyAndSignature2 *-- "1..1" PartyIdentification43 : Party
PartyAndSignature2 *-- "1..1" ProprietaryData3 : Signature
%% PartyIdentification43 recursion level 1 with max 1
class PartyIdentification43{
    Name IsoMax140Text
    CountryOfResidence CountryCode
}
PartyIdentification43 *-- "0..1" PostalAddress6 : PostalAddress
PartyIdentification43 *-- "0..1" IParty11Choice : Identification
PartyIdentification43 *-- "0..1" ContactDetails2 : ContactDetails
%% ProprietaryData3 recursion level 1 with max 1
ProprietaryData3 *-- "1..1" SkipProcessing : Any
  

PartyAndSignature2 members

Member name Description Data Type / Multiplicity
Party Entity involved in an activity. PartyIdentification43 - Required 1..1
Signature Signature of a party. ProprietaryData3 - Required 1..1

Extensibility and generalization considerations

To facilitate generalized design patterns in the system, the UndertakingStatusReportV01 implementation follows a specific implementaiton pattern. First of all, UndertakingStatusReportV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, UndertakingStatusReportV01Document implements IOuterDocument. Because UndertakingStatusReportV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type UndertakingStatusReportV01.

classDiagram
    class IOuterRecord
    UndertakingStatusReportV01 --|> IOuterRecord : Implements
    UndertakingStatusReportV01Document --|> IOuterDocument~UndertakingStatusReportV01~ : Implements
    class IOuterDocument~UndertakingStatusReportV01~ {
        UndertakingStatusReportV01 Message
     }
  

Document wrapper for serialization

The only real purpose UndertakingStatusReportV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:tsrv.019.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using UndertakingStatusReportV01.ToDocument() method. The returned UndertakingStatusReportV01Document value will serialize correctly according to ISO 20022 standards.

classDiagram
    UndertakingStatusReportV01Document *-- UndertakingStatusReportV01 : 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:tsrv.019.001.01">
    <UdrtkgStsRpt>
        <UdrtkgStsRptDtls>
            <!-- UndertakingStatusReportDetails inner content -->
        </UdrtkgStsRptDtls>
        <DgtlSgntr>
            <!-- DigitalSignature inner content -->
        </DgtlSgntr>
    </UdrtkgStsRpt>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_9h8tJXltEeG7BsjMvd1mEw_-329334493"
  name="UndertakingStatusReportV01"
  definition="The UndertakingStatusReport message is exchanged between parties that have an interest in the referenced undertaking transaction. It notifies the recipient of the status of the transaction, such as acceptance or rejection, withdrawal, or non-conformation. The sender may add additional information, as appropriate."
  registrationStatus="Registered"
  messageSet="_SiMuI9n1EeGEPsbnW6ebrw"
  xmlTag="UdrtkgStsRpt"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_9h8tJnltEeG7BsjMvd1mEw_-1217857261"
    name="UndertakingStatusReportDetails"
    definition="Details of the undertaking status report."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="UdrtkgStsRptDtls"
    complexType="_-DLK5XltEeG7BsjMvd1mEw_1047822406" />
  <messageBuildingBlock
    xmi:id="_9h8tJ3ltEeG7BsjMvd1mEw_1390197264"
    name="DigitalSignature"
    definition="Digital signature of the report."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="DgtlSgntr"
    complexType="_k4nFNZKuEeGnRMFvqYmPBQ" />
  <messageDefinitionIdentifier
    businessArea="tsrv"
    messageFunctionality="019"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

The following items are used as building blocks to construct this message.