DTCCCASTSD1V01

supl.031.001.01

The DTCCCASTSD1 message extends ISO Corporate Action Instruction Statement Report message with DTCC corporate action elements not covered in the standard message.

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
%% DTCCCASTSD1V01 recursion level 0 with max 0
DTCCCASTSD1V01 *-- "0..1" CorporateActionBalanceSD2 : EventBalanceDetails
DTCCCASTSD1V01 *-- "0..1" CorporateActionInstructedBalanceOptionBalanceDetailsSD1 : TotalInstructedBalanceOptionBalanceDetails
DTCCCASTSD1V01 *-- "0..1" CorporateActionInstructedBalanceOptionInstructionDetailsSD1 : TotalInstructedBalanceOptionInstructionDetails
DTCCCASTSD1V01 *-- "0..1" CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 : TotalInstructedBalanceOptionProtectInstructionDetails
  

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

EventBalanceDetails building block

Information to be extended as supplementary data to corporate action balance details at event level. Provides additional information regarding corporate action balance details. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CorporateActionBalanceSD2 recursion level 0 with max 1
class CorporateActionBalanceSD2{
    PlaceAndName IsoMax350Text
}
CorporateActionBalanceSD2 *-- "0..1" SignedQuantityFormat9 : TotalUncoveredProtectBalance
%% SignedQuantityFormat9 recursion level 1 with max 1
class SignedQuantityFormat9{
    ShortLongPosition ShortLong1Code
}
SignedQuantityFormat9 *-- "1..1" IFinancialInstrumentQuantity15Choice : Quantity
  

CorporateActionBalanceSD2 members

Member name Description Data Type / Multiplicity
PlaceAndName xPath to the element that is being extended. IsoMax350Text - Required 1..1
TotalUncoveredProtectBalance Balance of uncovered protect transactions at an event level. SignedQuantityFormat9 - Optional 0..1

TotalInstructedBalanceOptionBalanceDetails building block

Information to be extended as supplementary data to corporate action balance details at option level. Provides additional information regarding corporate action instructed balance details at option level. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CorporateActionInstructedBalanceOptionBalanceDetailsSD1 recursion level 0 with max 1
class CorporateActionInstructedBalanceOptionBalanceDetailsSD1{
    PlaceAndName IsoMax350Text
}
CorporateActionInstructedBalanceOptionBalanceDetailsSD1 *-- "0..1" SignedQuantityFormat9 : OptionUncoveredProtectBalance
CorporateActionInstructedBalanceOptionBalanceDetailsSD1 *-- "0..1" SignedQuantityFormat9 : OptionDailyInstructedBalance
CorporateActionInstructedBalanceOptionBalanceDetailsSD1 *-- "0..1" SignedQuantityFormat9 : OptionOversubscriptionQuantity
CorporateActionInstructedBalanceOptionBalanceDetailsSD1 *-- "0..1" SignedQuantityFormat9 : OptionUnacceptedBalance
%% SignedQuantityFormat9 recursion level 1 with max 1
class SignedQuantityFormat9{
    ShortLongPosition ShortLong1Code
}
SignedQuantityFormat9 *-- "1..1" IFinancialInstrumentQuantity15Choice : Quantity
%% SignedQuantityFormat9 recursion level 1 with max 1
class SignedQuantityFormat9{
    ShortLongPosition ShortLong1Code
}
SignedQuantityFormat9 *-- "1..1" IFinancialInstrumentQuantity15Choice : Quantity
%% SignedQuantityFormat9 recursion level 1 with max 1
class SignedQuantityFormat9{
    ShortLongPosition ShortLong1Code
}
SignedQuantityFormat9 *-- "1..1" IFinancialInstrumentQuantity15Choice : Quantity
%% SignedQuantityFormat9 recursion level 1 with max 1
class SignedQuantityFormat9{
    ShortLongPosition ShortLong1Code
}
SignedQuantityFormat9 *-- "1..1" IFinancialInstrumentQuantity15Choice : Quantity
  

CorporateActionInstructedBalanceOptionBalanceDetailsSD1 members

Member name Description Data Type / Multiplicity
PlaceAndName xPath to the element that is being extended. IsoMax350Text - Required 1..1
OptionUncoveredProtectBalance Balance of uncovered protect transactions at an option level. SignedQuantityFormat9 - Optional 0..1
OptionDailyInstructedBalance Daily total of instructions for a given option. Balance will include only made instructions. SignedQuantityFormat9 - Optional 0..1
OptionOversubscriptionQuantity For rights subscription events, total number of oversubscribed units. When there is an oversubscription priviledge, this quantity will be included within the Instructed quantityin the core message. SignedQuantityFormat9 - Optional 0..1
OptionUnacceptedBalance For election merger events, the balance that is being moved into another option number for payment due to the proration of the original option. SignedQuantityFormat9 - Optional 0..1

TotalInstructedBalanceOptionInstructionDetails building block

Information to be extended as supplementary data to corporate action balance details at option instruction details level. Option level instruction detail is referenced by unique Instruction ID, Instruction Date, Quantity and Status of instruction. Provides additional information regarding corporate action instructed balance details at option level. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CorporateActionInstructedBalanceOptionInstructionDetailsSD1 recursion level 0 with max 1
class CorporateActionInstructedBalanceOptionInstructionDetailsSD1{
    PlaceAndName IsoMax350Text
    TransactionIdentification IsoMax15Text
    TransactionSequenceNumber IsoMax3NumericText
    TransactionIdentificationDate IsoISODateTime
    TransactionIdentificationStatus DTCInstructionStatus2Code
    TransactionIdentificationProtectDate IsoISODateTime
    TransactionIdentificationCoverProtectDate IsoISODateTime
    CustomerReferenceIdentification IsoMax15Text
}
CorporateActionInstructedBalanceOptionInstructionDetailsSD1 *-- "1..1" IOptionNumber1Choice : OptionNumber
CorporateActionInstructedBalanceOptionInstructionDetailsSD1 *-- "0..1" OtherIdentification2 : TransactionContraCUSIP
CorporateActionInstructedBalanceOptionInstructionDetailsSD1 *-- "1..1" IFinancialInstrumentQuantity15Choice : TransactionIdentificationQuantity
CorporateActionInstructedBalanceOptionInstructionDetailsSD1 *-- "0..1" IFinancialInstrumentQuantity15Choice : TransactionIdentificationOversubscriptionQuantity
CorporateActionInstructedBalanceOptionInstructionDetailsSD1 *-- "0..1" IFinancialInstrumentQuantity15Choice : TransactionConditionalQuantity
CorporateActionInstructedBalanceOptionInstructionDetailsSD1 *-- "0..1" IPriceFormat57Choice : TransactionTenderBidPrice
%% IOptionNumber1Choice recursion level 1 with max 1
%% OtherIdentification2 recursion level 1 with max 1
class OtherIdentification2{
    Identification IsoRestrictedFINXMax31Text
    Suffix IsoMax16Text
}
OtherIdentification2 *-- "1..1" IIdentificationSource4Choice : Type
%% IFinancialInstrumentQuantity15Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity15Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity15Choice recursion level 1 with max 1
%% IPriceFormat57Choice recursion level 1 with max 1
  

CorporateActionInstructedBalanceOptionInstructionDetailsSD1 members

Member name Description Data Type / Multiplicity
PlaceAndName xPath to the element that is being extended. IsoMax350Text - Required 1..1
OptionNumber Number identifying the available corporate action options. IOptionNumber1Choice - Required 1..1
TransactionIdentification Unique number assigned by the Depository. Transaction identification will be either the DTC Instruction Reference Number for reorganisation instructions (VOI) or the DAM Reference Number for custody / reorganisation deposits. IsoMax15Text - Required 1..1
TransactionSequenceNumber Number which further identifies DTC intsruction reference number. Not applicable to reorganisation / custody deposits. IsoMax3NumericText - Optional 0..1
TransactionIdentificationDate Instruction date and time for reorganisation instructions or the deposit date for reorganisation / custody deposits. IsoISODateTime - Required 1..1
TransactionContraCUSIP Contra CUSIP Identification of the option instruction. OtherIdentification2 - Optional 0..1
TransactionIdentificationQuantity Instructed quantity for reorganisation instructions or the deposit quantity for reorganisation / custody deposits. IFinancialInstrumentQuantity15Choice - Required 1..1
TransactionIdentificationOversubscriptionQuantity Quantity relating only to the oversubscription. IFinancialInstrumentQuantity15Choice - Optional 0..1
TransactionIdentificationStatus Status of the instruction. DTCInstructionStatus2Code - Required 1..1
TransactionIdentificationProtectDate Date and time of the protect instruction. IsoISODateTime - Optional 0..1
TransactionIdentificationCoverProtectDate Date and time of the cover protect. IsoISODateTime - Optional 0..1
TransactionConditionalQuantity Conditional quantity on the instruction. IFinancialInstrumentQuantity15Choice - Optional 0..1
TransactionTenderBidPrice Tender bid price of the instruction. IPriceFormat57Choice - Optional 0..1
CustomerReferenceIdentification Customer identification entered by client upon instruction submission. IsoMax15Text - Optional 0..1

TotalInstructedBalanceOptionProtectInstructionDetails building block

Information to be extended as supplementary data to corporate action balance details at option protect instruction details level. Provides additional information regarding corporate action instructed balance details at option protect level. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 recursion level 0 with max 1
class CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1{
    PlaceAndName IsoMax350Text
    ProtectIdentification IsoMax15Text
    ProtectSequenceNumber IsoMax3NumericText
    ProtectDate IsoISODateTime
    CoverProtectDate IsoISODateTime
    ProtectIdentificationStatus DTCProtectInstructionStatus1Code
    CustomerReferenceIdentification IsoMax15Text
}
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 *-- "1..1" IOptionNumber1Choice : OptionNumber
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 *-- "1..1" IFinancialInstrumentQuantity15Choice : ProtectIdentificationQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 *-- "0..1" IFinancialInstrumentQuantity15Choice : ProtectIdentificationUncoveredQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 *-- "0..1" IFinancialInstrumentQuantity15Choice : ProtectIdentificationOversubscriptionQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 *-- "0..1" IFinancialInstrumentQuantity15Choice : ProtectConditionalQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 *-- "0..1" IPriceFormat57Choice : ProtectTenderBidPrice
%% IOptionNumber1Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity15Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity15Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity15Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity15Choice recursion level 1 with max 1
%% IPriceFormat57Choice recursion level 1 with max 1
  

CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD1 members

Member name Description Data Type / Multiplicity
PlaceAndName xPath to the element that is being extended. IsoMax350Text - Required 1..1
ProtectIdentification Instruction reference number assigned by DTC to the uncovered protect instruction. IsoMax15Text - Required 1..1
ProtectSequenceNumber Additional Reference number used to uniquely identify uncovered protect instruction. IsoMax3NumericText - Optional 0..1
OptionNumber Option number of the protect instruction. IOptionNumber1Choice - Required 1..1
ProtectDate Date and time of the protect instruction. IsoISODateTime - Required 1..1
CoverProtectDate Date and time of the cover protect. Will be the latest cover date if partial cover transaction occurs. IsoISODateTime - Optional 0..1
ProtectIdentificationQuantity Quantity of the protect instruction. For protects which are partially covered, the quanitity will be reduced by the amount partially covered. IFinancialInstrumentQuantity15Choice - Required 1..1
ProtectIdentificationUncoveredQuantity Quantity of the Protect instruction which has not been covered. IFinancialInstrumentQuantity15Choice - Optional 0..1
ProtectIdentificationOversubscriptionQuantity Protect oversubscription quantity. IFinancialInstrumentQuantity15Choice - Optional 0..1
ProtectIdentificationStatus Status of the Protect Instruction. DTCProtectInstructionStatus1Code - Optional 0..1
ProtectConditionalQuantity Conditional Quantity for the Protect Instruction. IFinancialInstrumentQuantity15Choice - Optional 0..1
ProtectTenderBidPrice Tender bid price of the protect instruction. IPriceFormat57Choice - Optional 0..1
CustomerReferenceIdentification Customer identification entered by client upon instruction submission. IsoMax15Text - Optional 0..1

Extensibility and generalization considerations

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

classDiagram
    class IOuterRecord
    DTCCCASTSD1V01 --|> IOuterRecord : Implements
    DTCCCASTSD1V01Document --|> IOuterDocument~DTCCCASTSD1V01~ : Implements
    class IOuterDocument~DTCCCASTSD1V01~ {
        DTCCCASTSD1V01 Message
     }
  

Document wrapper for serialization

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

classDiagram
    DTCCCASTSD1V01Document *-- DTCCCASTSD1V01 : 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:supl.031.001.01">
    <DTCCCASTSD1>
        <EvtBalDtls>
            <!-- EventBalanceDetails inner content -->
        </EvtBalDtls>
        <TtlInstdBalOptnBalDtls>
            <!-- TotalInstructedBalanceOptionBalanceDetails inner content -->
        </TtlInstdBalOptnBalDtls>
        <TtlInstdBalOptnInstrDtls>
            <!-- TotalInstructedBalanceOptionInstructionDetails inner content -->
        </TtlInstdBalOptnInstrDtls>
        <TtlInstdBalOptnPrtctInstrDtls>
            <!-- TotalInstructedBalanceOptionProtectInstructionDetails inner content -->
        </TtlInstdBalOptnPrtctInstrDtls>
    </DTCCCASTSD1>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_pfw8AJCFEeaSk9d1hvTrHg"
  nextVersions="_LAGyq75MEeexmbB7KsjCwA"
  name="DTCCCASTSD1V01"
  definition="The DTCCCASTSD1 message extends ISO Corporate Action Instruction Statement Report message with DTCC corporate action elements not covered in the standard message."
  registrationStatus="Provisionally Registered"
  xmlTag="DTCCCASTSD1"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_RIHTAJH2EeaNbfbSYshZYw"
    nextVersions="_LAGyrb5MEeexmbB7KsjCwA"
    name="EventBalanceDetails"
    definition="Information to be extended as supplementary data to corporate action balance details at event level."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="EvtBalDtls"
    complexType="_O_yfIJH3EeaNbfbSYshZYw" />
  <messageBuildingBlock
    xmi:id="_VaV10JH5EeaNbfbSYshZYw"
    nextVersions="_LAGyr75MEeexmbB7KsjCwA"
    name="TotalInstructedBalanceOptionBalanceDetails"
    definition="Information to be extended as supplementary data to corporate action balance details at option level."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="TtlInstdBalOptnBalDtls"
    complexType="_Y8Lvc5H6EeaNbfbSYshZYw" />
  <messageBuildingBlock
    xmi:id="_YVG2cJH8EeaNbfbSYshZYw"
    nextVersions="_LAGysb5MEeexmbB7KsjCwA"
    name="TotalInstructedBalanceOptionInstructionDetails"
    definition="Information to be extended as supplementary data to corporate action balance details at option instruction details level. Option level instruction detail is referenced by unique Instruction ID, Instruction Date, Quantity and Status of instruction."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="TtlInstdBalOptnInstrDtls"
    complexType="_sIx_1pH9EeaNbfbSYshZYw" />
  <messageBuildingBlock
    xmi:id="_tzhrkJIXEeaNbfbSYshZYw"
    nextVersions="_LAGys75MEeexmbB7KsjCwA"
    name="TotalInstructedBalanceOptionProtectInstructionDetails"
    definition="Information to be extended as supplementary data to corporate action balance details at option protect instruction details level."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="TtlInstdBalOptnPrtctInstrDtls"
    complexType="_5CUCwJIYEeaNbfbSYshZYw" />
  <messageDefinitionIdentifier
    businessArea="supl"
    messageFunctionality="031"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

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