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.