supl.031.001.02
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
%% DTCCCASTSD1V02 recursion level 0 with max 0
DTCCCASTSD1V02 *-- "0..1" CorporateActionBalanceSD5 : EventBalanceDetails
DTCCCASTSD1V02 *-- "0..1" CorporateActionInstructedBalanceOptionBalanceDetailsSD2 : TotalInstructedBalanceOptionBalanceDetails
DTCCCASTSD1V02 *-- "0..1" CorporateActionInstructedBalanceOptionInstructionDetailsSD2 : TotalInstructedBalanceOptionInstructionDetails
DTCCCASTSD1V02 *-- "0..1" CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 : 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
%% CorporateActionBalanceSD5 recursion level 0 with max 1
class CorporateActionBalanceSD5{
PlaceAndName IsoMax350Text
}
CorporateActionBalanceSD5 *-- "0..1" SignedQuantityFormat9 : TotalUncoveredProtectBalance
%% SignedQuantityFormat9 recursion level 1 with max 1
class SignedQuantityFormat9{
ShortLongPosition ShortLong1Code
}
SignedQuantityFormat9 *-- "1..1" IFinancialInstrumentQuantity15Choice : Quantity
CorporateActionBalanceSD5 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| PlaceAndName | Xpath to the element that is being extended. | IsoMax350Text - Optional 0..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
%% CorporateActionInstructedBalanceOptionBalanceDetailsSD2 recursion level 0 with max 1
class CorporateActionInstructedBalanceOptionBalanceDetailsSD2{
PlaceAndName IsoMax350Text
}
CorporateActionInstructedBalanceOptionBalanceDetailsSD2 *-- "1..1" IOptionNumber1Choice : OptionNumber
CorporateActionInstructedBalanceOptionBalanceDetailsSD2 *-- "0..1" SignedQuantityFormat9 : OptionUncoveredProtectBalance
CorporateActionInstructedBalanceOptionBalanceDetailsSD2 *-- "0..1" SignedQuantityFormat9 : OptionDailyInstructedBalance
CorporateActionInstructedBalanceOptionBalanceDetailsSD2 *-- "0..1" SignedQuantityFormat9 : OptionOversubscriptionQuantity
CorporateActionInstructedBalanceOptionBalanceDetailsSD2 *-- "0..1" SignedQuantityFormat9 : OptionUnacceptedBalance
%% IOptionNumber1Choice recursion level 1 with max 1
%% 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
CorporateActionInstructedBalanceOptionBalanceDetailsSD2 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| PlaceAndName | Xpath to the element that is being extended. | IsoMax350Text - Optional 0..1 |
| OptionNumber | Option Number of the extended balances. | IOptionNumber1Choice - 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 privilege, this quantity will be included within the Instructed quantity in 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 details are referenced by unique instruction identification, 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
%% CorporateActionInstructedBalanceOptionInstructionDetailsSD2 recursion level 0 with max 1
class CorporateActionInstructedBalanceOptionInstructionDetailsSD2{
PlaceAndName IsoMax350Text
TransactionIdentification IsoMax15Text
TransactionSequenceNumber IsoMax3NumericText
TransactionIdentificationDate IsoISODateTime
TransactionIdentificationStatus DTCInstructionStatus2Code
TransactionIdentificationProtectDate IsoISODateTime
TransactionIdentificationCoverProtectDate IsoISODateTime
CustomerReferenceIdentification IsoMax30Text
InstructionComments IsoMax210Text
}
CorporateActionInstructedBalanceOptionInstructionDetailsSD2 *-- "1..1" IOptionNumber1Choice : OptionNumber
CorporateActionInstructedBalanceOptionInstructionDetailsSD2 *-- "0..1" OtherIdentification2 : TransactionContraCUSIP
CorporateActionInstructedBalanceOptionInstructionDetailsSD2 *-- "1..1" IFinancialInstrumentQuantity15Choice : TransactionIdentificationQuantity
CorporateActionInstructedBalanceOptionInstructionDetailsSD2 *-- "0..1" IFinancialInstrumentQuantity15Choice : TransactionIdentificationOversubscriptionQuantity
CorporateActionInstructedBalanceOptionInstructionDetailsSD2 *-- "0..1" IFinancialInstrumentQuantity15Choice : TransactionConditionalQuantity
CorporateActionInstructedBalanceOptionInstructionDetailsSD2 *-- "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
CorporateActionInstructedBalanceOptionInstructionDetailsSD2 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| PlaceAndName | Xpath to the element that is being extended. | IsoMax350Text - Optional 0..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 instruction 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. | IsoMax30Text - Optional 0..1 |
| InstructionComments | Client free format instruction narrative information. Will be 80 characters for tender instructions, 150 characters for rights instructions and 20 characters for put instructions. | IsoMax210Text - 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
%% CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 recursion level 0 with max 1
class CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2{
PlaceAndName IsoMax350Text
ProtectIdentification IsoMax15Text
ProtectSafekeepingAccount IsoRestrictedFINMax35Text
ProtectSequenceNumber IsoMax3NumericText
ProtectDate IsoISODateTime
CoverProtectDate IsoISODateTime
ProtectIdentificationStatus DTCProtectInstructionStatus1Code
CustomerReferenceIdentification IsoMax30Text
InstructionComments IsoMax210Text
}
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 *-- "1..1" IOptionNumber1Choice : OptionNumber
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 *-- "1..1" IFinancialInstrumentQuantity15Choice : ProtectIdentificationQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 *-- "0..1" IFinancialInstrumentQuantity15Choice : ProtectIdentificationUncoveredQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 *-- "0..1" IFinancialInstrumentQuantity15Choice : ProtectIdentificationOversubscriptionQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 *-- "0..1" IFinancialInstrumentQuantity15Choice : ProtectConditionalQuantity
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 *-- "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
CorporateActionInstructedBalanceOptionProtectInstructionDetailsSD2 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| PlaceAndName | Xpath to the element that is being extended. | IsoMax350Text - Optional 0..1 |
| OptionNumber | Option number of the protect instruction. | IOptionNumber1Choice - Required 1..1 |
| ProtectIdentification | Instruction reference number assigned by DTC to the uncovered protect instruction. | IsoMax15Text - Required 1..1 |
| ProtectSafekeepingAccount | For cover protect instructions whereby one safekeeping account is covering on behalf of another safekeeping account. The protect safekeeping account will be the account which submitted the original protect instruction. | IsoRestrictedFINMax35Text - Optional 0..1 |
| ProtectSequenceNumber | Additional reference number used to uniquely identify uncovered protect instruction. | IsoMax3NumericText - Optional 0..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 quantity 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. | IsoMax30Text - Optional 0..1 |
| InstructionComments | Client free format instruction narrative information. Will be 80 characters for tender instructions, 150 characters for rights instructions and 20 characters for put instructions. | IsoMax210Text - Optional 0..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the DTCCCASTSD1V02 implementation follows a specific implementaiton pattern. First of all, DTCCCASTSD1V02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, DTCCCASTSD1V02Document implements IOuterDocument. Because DTCCCASTSD1V02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type DTCCCASTSD1V02.
classDiagram
class IOuterRecord
DTCCCASTSD1V02 --|> IOuterRecord : Implements
DTCCCASTSD1V02Document --|> IOuterDocument~DTCCCASTSD1V02~ : Implements
class IOuterDocument~DTCCCASTSD1V02~ {
DTCCCASTSD1V02 Message
}
Document wrapper for serialization
The only real purpose DTCCCASTSD1V02Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:supl.031.001.02’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using DTCCCASTSD1V02.ToDocument() method. The returned DTCCCASTSD1V02Document value will serialize correctly according to ISO 20022 standards.
classDiagram
DTCCCASTSD1V02Document *-- DTCCCASTSD1V02 : 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.02">
<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="_LAGyq75MEeexmbB7KsjCwA"
nextVersions="_b_h_Y-aHEei5aPS232E3Mw"
previousVersion="_pfw8AJCFEeaSk9d1hvTrHg"
name="DTCCCASTSD1V02"
definition="The DTCCCASTSD1 message extends ISO Corporate Action Instruction Statement Report message with DTCC corporate action elements not covered in the standard message."
registrationStatus="Registered"
messageSet="_urpIICeJEeOCeO5e7islRQ"
xmlTag="DTCCCASTSD1"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_LAGyrb5MEeexmbB7KsjCwA"
nextVersions="_b_h_ZeaHEei5aPS232E3Mw"
previousVersion="_RIHTAJH2EeaNbfbSYshZYw"
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="__1Zacb-zEeeb2ZBoAlSG1Q" />
<messageBuildingBlock
xmi:id="_LAGyr75MEeexmbB7KsjCwA"
nextVersions="_b_h_Z-aHEei5aPS232E3Mw"
previousVersion="_VaV10JH5EeaNbfbSYshZYw"
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="_EoBb8b-0Eeeb2ZBoAlSG1Q" />
<messageBuildingBlock
xmi:id="_LAGysb5MEeexmbB7KsjCwA"
nextVersions="_b_h_aeaHEei5aPS232E3Mw"
previousVersion="_YVG2cJH8EeaNbfbSYshZYw"
name="TotalInstructedBalanceOptionInstructionDetails"
definition="Information to be extended as supplementary data to corporate action balance details at option instruction details level. Option level instruction details are referenced by unique instruction identification, instruction date, quantity and status of instruction."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="TtlInstdBalOptnInstrDtls"
complexType="_HHDqMb-0Eeeb2ZBoAlSG1Q" />
<messageBuildingBlock
xmi:id="_LAGys75MEeexmbB7KsjCwA"
nextVersions="_b_h_a-aHEei5aPS232E3Mw"
previousVersion="_tzhrkJIXEeaNbfbSYshZYw"
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="_KY-t8b-0Eeeb2ZBoAlSG1Q" />
<messageDefinitionIdentifier
businessArea="supl"
messageFunctionality="031"
flavour="001"
version="02" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.