supl.003.001.03
The DTCCCANOServiceDataSD1 message extends ISO corporate action notification (CANO) message with DTCC validation service specific data elements that are not covered by 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 %% DTCCCANOServiceDataSD1V03 recursion level 0 with max 0 DTCCCANOServiceDataSD1V03 *-- "0..1" CorporateActionNotificationSD6 : NotificationGeneralInformation DTCCCANOServiceDataSD1V03 *-- "0..1" CorporateActionEventReferenceSD2 : EventsLinkage DTCCCANOServiceDataSD1V03 *-- "0..1" CorporateActionNotificationSD1 : CorporateActionNotification DTCCCANOServiceDataSD1V03 *-- "0..1" FinancialInstrumentAttributesSD7 : UnderlyingSecurity DTCCCANOServiceDataSD1V03 *-- "0..1" CorporateActionSD4 : CorporateActionDetails DTCCCANOServiceDataSD1V03 *-- "0..1" CorporateActionDateSD4 : CorporateActionDateDetails DTCCCANOServiceDataSD1V03 *-- "0..1" CorporateActionOptionSD5 : OptionDetails DTCCCANOServiceDataSD1V03 *-- "0..1" SecuritiesOptionSD4 : SecuritiesMovementDetails DTCCCANOServiceDataSD1V03 *-- "0..1" FinancialInstrumentAttributesSD5 : SecuritiesMovementSecurityDetails DTCCCANOServiceDataSD1V03 *-- "0..1" CashOptionSD5 : CashMovementDetails
Now, we will zero-in one-by-one on each of these building blocks.
NotificationGeneralInformation building block
Information to be extended as supplementary data to notification general information. Provides additional information regarding notification general information details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionNotificationSD6 recursion level 0 with max 1 class CorporateActionNotificationSD6{ PlaceAndName IsoMax350Text EventStatus EventWorkflowStatus1Code ApprovedDate IsoISODate MatchDate IsoISODate ActiveUntilDate IsoISODate ValidationNotSupportedReason IsoMax4AlphaNumericText } CorporateActionNotificationSD6 *-- "0..1" Period3 : ServiceLevelAgreementPeriod %% Period3 recursion level 1 with max 1 Period3 *-- "1..1" IDateFormat12Choice : StartDate Period3 *-- "1..1" IDateFormat12Choice : EndDate
CorporateActionNotificationSD6 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
EventStatus | Workflow status of the event. | EventWorkflowStatus1Code - Optional 0..1 |
ApprovedDate | Date by which the announcement is set to approve event status. | IsoISODate - Optional 0..1 |
MatchDate | Date used to match records from multiple vendors to the same event. It is typically the first key date on the event. | IsoISODate - Optional 0..1 |
ActiveUntilDate | Date until which the event will remain in an active status on DTCC (The Depository Trust and Clearing Corporation) system. | IsoISODate - Optional 0..1 |
ServiceLevelAgreementPeriod | Start date and end date of the service level agreement. | Period3 - Optional 0..1 |
ValidationNotSupportedReason | Specifies a reason why a corporate action will not be supported by the validation service. This is usually due to the event type or the product (security) type. The list of values will be provided externally to the schema. | IsoMax4AlphaNumericText - Optional 0..1 |
EventsLinkage building block
Information to be extended as supplementary data to events linkage. Provides additional information regarding linkage details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionEventReferenceSD2 recursion level 0 with max 1 class CorporateActionEventReferenceSD2{ PlaceAndName IsoMax350Text LinkageType DTCCLinkType1Code LinkAddedDate IsoISODate LinkModifiedDate IsoISODate }
CorporateActionEventReferenceSD2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
LinkageType | Indicates the reason why two or more events are related. | DTCCLinkType1Code - Required 1..1 |
LinkAddedDate | Events can be linked together. This date represents the date on which the link was established. | IsoISODate - Required 1..1 |
LinkModifiedDate | Events can be linked together. This date represents the date on which the link was modified. | IsoISODate - Optional 0..1 |
CorporateActionNotification building block
Information to be extended as supplementary data to corporate action notification. Customer security identification reference information.
For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionNotificationSD1 recursion level 0 with max 1 class CorporateActionNotificationSD1{ PlaceAndName IsoMax350Text CustomerInternalSecurityIdentification IsoMax16Text } CorporateActionNotificationSD1 *-- "0..1" SecurityIdentification15 : SecurityOfInterestMatchingSecurity %% SecurityIdentification15 recursion level 1 with max 1 class SecurityIdentification15{ ISIN IsoISINIdentifier Description IsoRestrictedFINXMax140Text } SecurityIdentification15 *-- "0..0" OtherIdentification2 : OtherIdentification
CorporateActionNotificationSD1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
CustomerInternalSecurityIdentification | Internal security identification as provided by the customer for the given security on the security of interest (SOI) import file. | IsoMax16Text - Optional 0..1 |
SecurityOfInterestMatchingSecurity | Security identifier that is used to match the customer’s SOI (Security of Interest) to the GCA VS Security Cross Reference. | SecurityIdentification15 - Optional 0..1 |
UnderlyingSecurity building block
Information to be extended as supplementary data to underlying security. Provides additional information regarding underlying security details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% FinancialInstrumentAttributesSD7 recursion level 0 with max 1 class FinancialInstrumentAttributesSD7{ PlaceAndName IsoMax350Text IssuerDescription IsoMax70Text CountryOfIncorporation CountryCode PrimaryExchangeFlag IsoYesNoIndicator SECRegisteredFlag IsoYesNoIndicator }
FinancialInstrumentAttributesSD7 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
IssuerDescription | Name of the issuer. | IsoMax70Text - Optional 0..1 |
CountryOfIncorporation | Country of incorporation of the issuer. | CountryCode - Optional 0..1 |
PrimaryExchangeFlag | Indicates if the stock exchange associated to place of listing code is primary. | IsoYesNoIndicator - Optional 0..1 |
SECRegisteredFlag | Indicates whether the event has been registered with US Securities Exchange Commission (SEC). | IsoYesNoIndicator - Optional 0..1 |
CorporateActionDetails building block
Information to be extended as corporate action details supplementary data. Provides additional information regarding corporate action details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionSD4 recursion level 0 with max 1 class CorporateActionSD4{ PlaceAndName IsoMax350Text NewParValue IsoRestrictedFINActiveCurrencyAnd13DecimalAmount OldParValue IsoRestrictedFINActiveCurrencyAnd13DecimalAmount ExchangeFeeRequiredFlag IsoYesNoIndicator CustodianShellFlag IsoYesNoIndicator MustAllSharesBeSubmittedFlag IsoYesNoIndicator QualifiedDividendTaxIndicator QualifiedDividendTax1Code SurvivingCompany IsoMax70Text ForeignIncomeSourceFlag IsoYesNoIndicator } CorporateActionSD4 *-- "0..1" CorporateActionSD6 : LotteryDetails %% CorporateActionSD6 recursion level 1 with max 1 class CorporateActionSD6{ LotteryRecordStatus WorkflowStatus1Code }
CorporateActionSD4 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
NewParValue | New par value of a security. | IsoRestrictedFINActiveCurrencyAnd13DecimalAmount - Optional 0..1 |
OldParValue | Old par value of the event security represents the previously established par value that has changed in par value event. Used in combination with new par value element to represent the difference. | IsoRestrictedFINActiveCurrencyAnd13DecimalAmount - Optional 0..1 |
ExchangeFeeRequiredFlag | Indicates whether the event agent is charging a cancellation and or issuance fee upon the exchange of securities. | IsoYesNoIndicator - Optional 0..1 |
CustodianShellFlag | GCA VS-specific flag that indicates whether a composite record has been generated as a result of custodian information that has not yet been confirmed in the market. | IsoYesNoIndicator - Optional 0..1 |
MustAllSharesBeSubmittedFlag | Indicates whether the issuer requires a holder to present the entire account balance in order to be eligible for the offer. | IsoYesNoIndicator - Optional 0..1 |
LotteryDetails | Provides details about the lottery that has been drawn as a part of the corporate action event. | CorporateActionSD6 - Optional 0..1 |
QualifiedDividendTaxIndicator | Indicates whether the dividend as whole or in part qualifies for lower/ favourable tax rate. | QualifiedDividendTax1Code - Optional 0..1 |
SurvivingCompany | Name of the company that will remain (possibly a new name), usually designated after a merger. | IsoMax70Text - Optional 0..1 |
ForeignIncomeSourceFlag | Indicates when all or part of the distribution is paid from foreign sourced income of the issuer. | IsoYesNoIndicator - Optional 0..1 |
CorporateActionDateDetails building block
Information to be extended as corporate action date details supplementary data. Provides additional information regarding corporate action date details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionDateSD4 recursion level 0 with max 1 class CorporateActionDateSD4{ PlaceAndName IsoMax350Text InterimAccountingStartDate IsoISODate DelistingDate IsoISODate ExercisePeriodBeginDate IsoISODate ObjectionDate IsoISODate ExclusionDate IsoISODate ProofOfClaimFilingDate IsoISODate }
CorporateActionDateSD4 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
InterimAccountingStartDate | Date on which accounting for due bills starts and associated tracking begins. | IsoISODate - Optional 0..1 |
DelistingDate | Date on which the event security is no longer listed on the exchange. | IsoISODate - Optional 0..1 |
ExercisePeriodBeginDate | Date by which a holder can exercise warrants. | IsoISODate - Optional 0..1 |
ObjectionDate | Date by which a holder listed as a member of the claimant group in a lawsuit may object to the proposed solution. | IsoISODate - Optional 0..1 |
ExclusionDate | Date by which claimants may exclude themselves from an ongoing class action lawsuit. | IsoISODate - Optional 0..1 |
ProofOfClaimFilingDate | Date by which a holder must file claim forms to become a member of the claimant group in a lawsuit. | IsoISODate - Optional 0..1 |
OptionDetails building block
Information to be extended as supplementary data to option details. Provides additional information regarding corporate action option details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionOptionSD5 recursion level 0 with max 1 class CorporateActionOptionSD5{ PlaceAndName IsoMax350Text OptionStatus WorkflowStatus1Code RandomLotPreferenceFlag IsoYesNoIndicator NewShareDispatchedDate IsoISODate }
CorporateActionOptionSD5 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
OptionStatus | Workflow status of the specified option based on the consistency of the issuer declared data elements (excluding DTC data elements). | WorkflowStatus1Code - Optional 0..1 |
RandomLotPreferenceFlag | Indicates whether or not the offeror will select random lots if the offer has been prorated. The offeror may accept or reject conditional tenders on a random basis. Holders must indicate their willingness to have their rejected conditional tender accepted by random lot (if necessary). The holder must surrender all shares held in order to be eligible for this preference. | IsoYesNoIndicator - Optional 0..1 |
NewShareDispatchedDate | Date on which the new shares to be issued will be distributed, as opposed to the “declared payable date.” This date is typically used in some Asian markets. | IsoISODate - Optional 0..1 |
SecuritiesMovementDetails building block
Information to be extended as supplementary data to securities movement details. Provides additional information regarding corporate action option securities movement details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SecuritiesOptionSD4 recursion level 0 with max 1 class SecuritiesOptionSD4{ PlaceAndName IsoMax350Text PayoutNumber IsoExact3NumericText PayoutType DTCCPayoutType2Code PayoutStatus WorkflowStatus1Code }
SecuritiesOptionSD4 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
PayoutNumber | Unique number associated with a payout within an option. | IsoExact3NumericText - Required 1..1 |
PayoutType | Describes the type of payout associated with the event. | DTCCPayoutType2Code - Required 1..1 |
PayoutStatus | Workflow status of the payout. | WorkflowStatus1Code - Required 1..1 |
SecuritiesMovementSecurityDetails building block
Information to be extended as supplementary data to securities movement security details. Provides additional information regarding corporate action option securities movement security details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% FinancialInstrumentAttributesSD5 recursion level 0 with max 1 class FinancialInstrumentAttributesSD5{ PlaceAndName IsoMax350Text } FinancialInstrumentAttributesSD5 *-- "0..1" SecurityIdentification15 : SecurityOfInterestMatchingSecurity %% SecurityIdentification15 recursion level 1 with max 1 class SecurityIdentification15{ ISIN IsoISINIdentifier Description IsoRestrictedFINXMax140Text } SecurityIdentification15 *-- "0..0" OtherIdentification2 : OtherIdentification
FinancialInstrumentAttributesSD5 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
SecurityOfInterestMatchingSecurity | Matching security identifier for the disbursed security that is used to match the customer’s SOI (Security of Interest) to the GCA VS Security Cross Reference. | SecurityIdentification15 - Optional 0..1 |
CashMovementDetails building block
Information to be extended as cash movement supplementary data. Provides additional information regarding corporate action option cash movement details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CashOptionSD5 recursion level 0 with max 1 class CashOptionSD5{ PlaceAndName IsoMax350Text PayoutNumber IsoExact3NumericText PayoutType DTCCPayoutType1Code PayoutStatus WorkflowStatus1Code MaximumWithholdingTaxPercentage IsoPercentageRate }
CashOptionSD5 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | xPath to the element that is being extended. | IsoMax350Text - Required 1..1 |
PayoutNumber | Unique number associated with a payout within an option. | IsoExact3NumericText - Required 1..1 |
PayoutType | Describes the type of payout associated with the event. | DTCCPayoutType1Code - Required 1..1 |
PayoutStatus | Workflow status of the payout. | WorkflowStatus1Code - Required 1..1 |
MaximumWithholdingTaxPercentage | Maximum withholding rate based on the country of the sourced income. | IsoPercentageRate - Optional 0..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the DTCCCANOServiceDataSD1V03 implementation follows a specific implementaiton pattern. First of all, DTCCCANOServiceDataSD1V03 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, DTCCCANOServiceDataSD1V03Document implements IOuterDocument. Because DTCCCANOServiceDataSD1V03 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type DTCCCANOServiceDataSD1V03.
classDiagram class IOuterRecord DTCCCANOServiceDataSD1V03 --|> IOuterRecord : Implements DTCCCANOServiceDataSD1V03Document --|> IOuterDocument~DTCCCANOServiceDataSD1V03~ : Implements class IOuterDocument~DTCCCANOServiceDataSD1V03~ { DTCCCANOServiceDataSD1V03 Message }
Document wrapper for serialization
The only real purpose DTCCCANOServiceDataSD1V03Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:supl.003.001.03’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using DTCCCANOServiceDataSD1V03.ToDocument() method. The returned DTCCCANOServiceDataSD1V03Document value will serialize correctly according to ISO 20022 standards.
classDiagram DTCCCANOServiceDataSD1V03Document *-- DTCCCANOServiceDataSD1V03 : 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.003.001.03">
<DTCCCANOSvcDataSD1>
<NtfctnGnlInf>
<!-- NotificationGeneralInformation inner content -->
</NtfctnGnlInf>
<EvtsLkg>
<!-- EventsLinkage inner content -->
</EvtsLkg>
<CorpActnNtfctn>
<!-- CorporateActionNotification inner content -->
</CorpActnNtfctn>
<UndrlygScty>
<!-- UnderlyingSecurity inner content -->
</UndrlygScty>
<CorpActnDtls>
<!-- CorporateActionDetails inner content -->
</CorpActnDtls>
<CorpActnDtDtls>
<!-- CorporateActionDateDetails inner content -->
</CorpActnDtDtls>
<OptnDtls>
<!-- OptionDetails inner content -->
</OptnDtls>
<SctiesMvmntDtls>
<!-- SecuritiesMovementDetails inner content -->
</SctiesMvmntDtls>
<SctiesMvmntSctyDtls>
<!-- SecuritiesMovementSecurityDetails inner content -->
</SctiesMvmntSctyDtls>
<CshMvmntDtls>
<!-- CashMovementDetails inner content -->
</CshMvmntDtls>
</DTCCCANOSvcDataSD1>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_1PgAsDL3EeKU9IrkkToqcw_-1681566292"
name="DTCCCANOServiceDataSD1V03"
definition="The DTCCCANOServiceDataSD1 message extends ISO corporate action notification (CANO) message with DTCC validation service specific data elements that are not covered by the standard message."
registrationStatus="Registered"
messageSet="_f180QGxSEeKtkPXDQKdgxQ _Bu3cEJVUEeO6Q83g-JIX_w"
xmlTag="DTCCCANOSvcDataSD1"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_1PgAsTL3EeKU9IrkkToqcw_1324370913"
name="NotificationGeneralInformation"
definition="Information to be extended as supplementary data to notification general information."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="NtfctnGnlInf"
complexType="_1kgnZjL3EeKU9IrkkToqcw_1609699363" />
<messageBuildingBlock
xmi:id="_1PgAsjL3EeKU9IrkkToqcw_1207093876"
name="EventsLinkage"
definition="Information to be extended as supplementary data to events linkage."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="EvtsLkg"
complexType="_1UHa8jL3EeKU9IrkkToqcw_-607146504" />
<messageBuildingBlock
xmi:id="_1PgAszL3EeKU9IrkkToqcw_-847715476"
name="CorporateActionNotification"
definition="Information to be extended as supplementary data to corporate action notification."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CorpActnNtfctn"
complexType="_1Tg-ADL3EeKU9IrkkToqcw_-2108418056" />
<messageBuildingBlock
xmi:id="_1PgAtDL3EeKU9IrkkToqcw_-195598292"
name="UnderlyingSecurity"
definition="Information to be extended as supplementary data to underlying security."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="UndrlygScty"
complexType="_1esTQDL3EeKU9IrkkToqcw_-24344462" />
<messageBuildingBlock
xmi:id="_1PgAtTL3EeKU9IrkkToqcw_1221991011"
name="CorporateActionDetails"
definition="Information to be extended as corporate action details supplementary data."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CorpActnDtls"
complexType="_1dzicDL3EeKU9IrkkToqcw_-1985913164" />
<messageBuildingBlock
xmi:id="_1PgAtjL3EeKU9IrkkToqcw_-885992761"
name="CorporateActionDateDetails"
definition="Information to be extended as corporate action date details supplementary data."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CorpActnDtDtls"
complexType="_1ePnUzL3EeKU9IrkkToqcw_1659480407" />
<messageBuildingBlock
xmi:id="_1PpKoDL3EeKU9IrkkToqcw_531596542"
name="OptionDetails"
definition="Information to be extended as supplementary data to option details."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="OptnDtls"
complexType="_1e_1RDL3EeKU9IrkkToqcw_-1892432228" />
<messageBuildingBlock
xmi:id="_1PpKoTL3EeKU9IrkkToqcw_-1504539626"
name="SecuritiesMovementDetails"
definition="Information to be extended as supplementary data to securities movement details."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SctiesMvmntDtls"
complexType="_1gMIEjL3EeKU9IrkkToqcw_385488940" />
<messageBuildingBlock
xmi:id="_1PpKojL3EeKU9IrkkToqcw_-86950323"
name="SecuritiesMovementSecurityDetails"
definition="Information to be extended as supplementary data to securities movement security details."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SctiesMvmntSctyDtls"
complexType="_1g7u8TL3EeKU9IrkkToqcw_1034011765" />
<messageBuildingBlock
xmi:id="_1PpKozL3EeKU9IrkkToqcw_565166861"
name="CashMovementDetails"
definition="Information to be extended as cash movement supplementary data."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="CshMvmntDtls"
complexType="_1fvcIjL3EeKU9IrkkToqcw_-1926320982" />
<messageDefinitionIdentifier
businessArea="supl"
messageFunctionality="003"
flavour="001"
version="03" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.