setr.029.001.01
Scope Sent by an executing party to an instructing party directly or through Central Matching Utility (CMU) to cancel the referenced SecuritiesTradeConfirmation message that was previously sent. The instructing party is typically the investment manager or an intermediary system/vendor communicating on behalf of the investment manager or of other categories of investors. The executing party is typically the broker/dealer or an intermediary system/vendor communicating on behalf of the broker/dealer. It may also be used to cancel the trade confirmation previously sent from an executing party or an instructing party to a custodian or an affirming party directly or through CMU. The ISO 20022 Business Application Header must be used Usage Initiator: Both in local and central matching, the Initiator may be either the Executing Party or Instructing Party. Respondent: Instructing party, a custodian or an affirming party optionally responds with SecuritiesTradeConfirmationResponse (accept or reject) 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 %% SecuritiesTradeConfirmationCancellationV01 recursion level 0 with max 0 SecuritiesTradeConfirmationCancellationV01 *-- "1..1" TransactiontIdentification4 : Identification SecuritiesTradeConfirmationCancellationV01 *-- "0..1" Linkages15 : References SecuritiesTradeConfirmationCancellationV01 *-- "0..1" OtherParties18 : OtherBusinessParties SecuritiesTradeConfirmationCancellationV01 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
Identification building block
Information that unambiguously identifies an SecuritiesTradeConfirmationCancellation message as known by the account owner (or the instructing party acting on its behalf). Transaction identification. For comparison, see the ISO20022 official specification
classDiagram direction tb %% TransactiontIdentification4 recursion level 0 with max 1 class TransactiontIdentification4{ TransactionIdentification IsoMax35Text }
TransactiontIdentification4 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
TransactionIdentification | Unambiguous identification of the transaction as known by the instructing party. | IsoMax35Text - Required 1..1 |
References building block
Link to another transaction that must be processed after, before or at the same time. Information related to a linked transaction. For comparison, see the ISO20022 official specification
classDiagram direction tb %% Linkages15 recursion level 0 with max 1 Linkages15 *-- "0..1" IDocumentNumber4Choice : MessageNumber Linkages15 *-- "1..1" IIdentificationReference8Choice : Reference %% IDocumentNumber4Choice recursion level 1 with max 1 %% IIdentificationReference8Choice recursion level 1 with max 1
Linkages15 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageNumber | Message type number/message identifier of the message referenced in the linkage sequence. | IDocumentNumber4Choice - Optional 0..1 |
Reference | Reference to the linked transaction. | IIdentificationReference8Choice - Required 1..1 |
OtherBusinessParties building block
Chain of parties involved in the settlement of a transaction, including receipts and deliveries, book transfers, treasury deals, or other activities, resulting in the movement of a security or amount of money from one account to another. Provides details about business parties involved in the transaction. For comparison, see the ISO20022 official specification
classDiagram direction tb %% OtherParties18 recursion level 0 with max 1 OtherParties18 *-- "0..0" PartyIdentificationAndAccount79 : Investor OtherParties18 *-- "0..1" PartyIdentificationAndAccount87 : StockExchange OtherParties18 *-- "0..1" PartyIdentificationAndAccount87 : TradeRegulator OtherParties18 *-- "0..1" PartyIdentificationAndAccount83 : TripartyAgent OtherParties18 *-- "0..1" PartyIdentificationAndAccount77 : QualifiedForeignIntermediary %% PartyIdentificationAndAccount79 recursion level 1 with max 1 class PartyIdentificationAndAccount79{ SafekeepingAccount IsoMax35Text ProcessingIdentification IsoMax35Text CountryOfResidence CountryCode } PartyIdentificationAndAccount79 *-- "0..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount79 *-- "0..1" ICashAccountIdentification2Choice : CashAccount PartyIdentificationAndAccount79 *-- "0..1" PartyTextInformation1 : AdditionalInformation PartyIdentificationAndAccount79 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount87 recursion level 1 with max 1 class PartyIdentificationAndAccount87{ ProcessingIdentification IsoMax35Text } PartyIdentificationAndAccount87 *-- "1..1" IPartyIdentification70Choice : Identification PartyIdentificationAndAccount87 *-- "0..1" PartyTextInformation1 : AdditionalInformation PartyIdentificationAndAccount87 *-- "0..1" AlternatePartyIdentification6 : AlternateIdentification %% PartyIdentificationAndAccount87 recursion level 1 with max 1 class PartyIdentificationAndAccount87{ ProcessingIdentification IsoMax35Text } PartyIdentificationAndAccount87 *-- "1..1" IPartyIdentification70Choice : Identification PartyIdentificationAndAccount87 *-- "0..1" PartyTextInformation1 : AdditionalInformation PartyIdentificationAndAccount87 *-- "0..1" AlternatePartyIdentification6 : AlternateIdentification %% PartyIdentificationAndAccount83 recursion level 1 with max 1 class PartyIdentificationAndAccount83{ SafekeepingAccount IsoMax35Text ProcessingIdentification IsoMax35Text } PartyIdentificationAndAccount83 *-- "1..1" IPartyIdentification70Choice : Identification PartyIdentificationAndAccount83 *-- "0..1" ICashAccountIdentification2Choice : CashAccount PartyIdentificationAndAccount83 *-- "0..1" PartyTextInformation1 : AdditionalInformation PartyIdentificationAndAccount83 *-- "0..1" AlternatePartyIdentification6 : AlternateIdentification %% PartyIdentificationAndAccount77 recursion level 1 with max 1 class PartyIdentificationAndAccount77{ SafekeepingAccount IsoMax35Text ProcessingIdentification IsoMax35Text } PartyIdentificationAndAccount77 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount77 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification PartyIdentificationAndAccount77 *-- "0..1" PartyTextInformation1 : AdditionalInformation
OtherParties18 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Investor | Party that identifies the underlying investor. | PartyIdentificationAndAccount79 - Unknown 0..0 |
StockExchange | Party that identifies the stock exchange. | PartyIdentificationAndAccount87 - Optional 0..1 |
TradeRegulator | Party that identifies the trade regulator. | PartyIdentificationAndAccount87 - Optional 0..1 |
TripartyAgent | Party that handles tri-party transactions. | PartyIdentificationAndAccount83 - Optional 0..1 |
QualifiedForeignIntermediary | Foreign Financial Institution which has been authorised by local authorities to act as account management institution in the country. | PartyIdentificationAndAccount77 - Optional 0..1 |
SupplementaryData building block
Additional information that cannot be captured in the structured elements and/or any other specific block. Additional information that can not be captured in the structured fields and/or any other specific block. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SupplementaryData1 recursion level 0 with max 1 class SupplementaryData1{ PlaceAndName IsoMax350Text } SupplementaryData1 *-- "1..1" IsoSupplementaryDataEnvelope1 : Envelope %% IsoSupplementaryDataEnvelope1 recursion level 1 with max 1
SupplementaryData1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | Unambiguous reference to the location where the supplementary data must be inserted in the message instance. In the case of XML, this is expressed by a valid XPath. | IsoMax350Text - Optional 0..1 |
Envelope | Technical element wrapping the supplementary data. | IsoSupplementaryDataEnvelope1 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the SecuritiesTradeConfirmationCancellationV01 implementation follows a specific implementaiton pattern. First of all, SecuritiesTradeConfirmationCancellationV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, SecuritiesTradeConfirmationCancellationV01Document implements IOuterDocument. Because SecuritiesTradeConfirmationCancellationV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type SecuritiesTradeConfirmationCancellationV01.
classDiagram class IOuterRecord SecuritiesTradeConfirmationCancellationV01 --|> IOuterRecord : Implements SecuritiesTradeConfirmationCancellationV01Document --|> IOuterDocument~SecuritiesTradeConfirmationCancellationV01~ : Implements class IOuterDocument~SecuritiesTradeConfirmationCancellationV01~ { SecuritiesTradeConfirmationCancellationV01 Message }
Document wrapper for serialization
The only real purpose SecuritiesTradeConfirmationCancellationV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:setr.029.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using SecuritiesTradeConfirmationCancellationV01.ToDocument() method. The returned SecuritiesTradeConfirmationCancellationV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram SecuritiesTradeConfirmationCancellationV01Document *-- SecuritiesTradeConfirmationCancellationV01 : 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:setr.029.001.01">
<SctiesTradConfCxl>
<Id>
<!-- Identification inner content -->
</Id>
<Refs>
<!-- References inner content -->
</Refs>
<OthrBizPties>
<!-- OtherBusinessParties inner content -->
</OthrBizPties>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</SctiesTradConfCxl>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_RJ4jMOQXEeCGktPI9k4Dlw_1174499492"
nextVersions="_q-sQUQNmEe2P7e2qGFFOGg"
name="SecuritiesTradeConfirmationCancellationV01"
definition="Scope
Sent by an executing party to an instructing party directly or through Central Matching Utility (CMU) to cancel the referenced SecuritiesTradeConfirmation message that was previously sent.
The instructing party is typically the investment manager or an intermediary system/vendor communicating on behalf of the investment manager or of other categories of investors.
The executing party is typically the broker/dealer or an intermediary system/vendor communicating on behalf of the broker/dealer.
It may also be used to cancel the trade confirmation previously sent from an executing party or an instructing party to a custodian or an affirming party directly or through CMU.
The ISO 20022 Business Application Header must be used
Usage
Initiator: Both in local and central matching, the Initiator may be either the Executing Party or Instructing Party.
Respondent: Instructing party, a custodian or an affirming party optionally responds with SecuritiesTradeConfirmationResponse (accept or reject) message."
registrationStatus="Registered"
messageSet="_AELt0P2bEeG1VMy7BW0rqA"
xmlTag="SctiesTradConfCxl"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_RJ4jMeQXEeCGktPI9k4Dlw_-1509857852"
nextVersions="_q-sQVwNmEe2P7e2qGFFOGg"
name="Identification"
definition="Information that unambiguously identifies an SecuritiesTradeConfirmationCancellation message as known by the account owner (or the instructing party acting on its behalf)."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Id"
complexType="_Ab8KktokEeC60axPepSq7g_597298616" />
<messageBuildingBlock
xmi:id="_RJ4jMuQXEeCGktPI9k4Dlw_135409583"
nextVersions="_q-sQWQNmEe2P7e2qGFFOGg"
name="References"
definition="Link to another transaction that must be processed after, before or at the same time."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="Refs"
complexType="_Ab8KlNokEeC60axPepSq7g_1109963606" />
<messageBuildingBlock
xmi:id="_RJ4jM-QXEeCGktPI9k4Dlw_588788110"
nextVersions="_q-sQWwNmEe2P7e2qGFFOGg"
name="OtherBusinessParties"
definition="Chain of parties involved in the settlement of a transaction, including receipts and deliveries, book transfers, treasury deals, or other activities, resulting in the movement of a security or amount of money from one account to another."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="OthrBizPties"
complexType="_AOPFx9okEeC60axPepSq7g_1209561399" />
<messageBuildingBlock
xmi:id="_RJ4jNOQXEeCGktPI9k4Dlw_-206107615"
nextVersions="_q-sQXQNmEe2P7e2qGFFOGg"
name="SupplementaryData"
definition="Additional information that cannot be captured in the structured elements and/or any other specific block."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SplmtryData"
complexType="_Qn0zC9p-Ed-ak6NoX_4Aeg_468227563" />
<messageDefinitionIdentifier
businessArea="setr"
messageFunctionality="029"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.