setr.030.001.02
Scope Sent by an instructing party, a custodian or an affirming party to an executing party (local matching) or to Central Matching Utility (CMU) to affirm (accept) or disaffirm (reject) (central matching) the SecuritiesTradeConfirmation message. If accepting the SecuritiesTradeConfirmation message, then the trade is ready for settlement processing. If rejecting the SecuritiesTradeConfirmation message, then the trade is not ready for settlement. The executing party is typically the broker/dealer or an intermediary system/vendor communicating on behalf of the broker/dealer. 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 custodian or an affirming party is typically the custodian, trustee, financial institution, intermediary system/vendor communicating on behalf of them, or their agent. The ISO 20022 Business Application Header must be used Usage Initiator: Both in local and central matching, the Initiator may be the Instructing Party, Custodian or Affirming party. Respondent: Executing party does not need to respond if an affirmation. Executing party may respond with modification or cancellation of the rejected SecuritiesTradeConfirmation 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 %% SecuritiesTradeConfirmationResponseV02 recursion level 0 with max 0 SecuritiesTradeConfirmationResponseV02 *-- "1..1" TransactiontIdentification4 : Identification SecuritiesTradeConfirmationResponseV02 *-- "1..1" Linkages52 : References SecuritiesTradeConfirmationResponseV02 *-- "1..1" StatusAndReason46 : Status SecuritiesTradeConfirmationResponseV02 *-- "0..1" Clearing6 : ClearingDetails SecuritiesTradeConfirmationResponseV02 *-- "0..1" ConfirmationParties8 : ConfirmationParties SecuritiesTradeConfirmationResponseV02 *-- "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 SecuritiesTradeConfirmationResponse 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 %% Linkages52 recursion level 0 with max 1 Linkages52 *-- "0..1" IDocumentNumber17Choice : MessageNumber Linkages52 *-- "1..1" IIdentificationReference8Choice : Reference %% IDocumentNumber17Choice recursion level 1 with max 1 %% IIdentificationReference8Choice recursion level 1 with max 1
Linkages52 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageNumber | Message type number/message identifier of the message referenced in the linkage sequence. | IDocumentNumber17Choice - Optional 0..1 |
Reference | Reference to the linked transaction. | IIdentificationReference8Choice - Required 1..1 |
Status building block
Provides details on the processing status of the trade. Provides details related to the status of the order. For comparison, see the ISO20022 official specification
classDiagram direction tb %% StatusAndReason46 recursion level 0 with max 1 class StatusAndReason46{ AdditionalReasonInformation IsoMax210Text } StatusAndReason46 *-- "1..1" IAffirmationStatus10Choice : AffirmationStatus StatusAndReason46 *-- "0..1" IUnaffirmedReason3Choice : UnaffirmedReason %% IAffirmationStatus10Choice recursion level 1 with max 1 %% IUnaffirmedReason3Choice recursion level 1 with max 1
StatusAndReason46 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AffirmationStatus | Status of affirmation of a trade. | IAffirmationStatus10Choice - Required 1..1 |
UnaffirmedReason | Specifies the reason why the instruction has an unaffirmed status. | IUnaffirmedReason3Choice - Optional 0..1 |
AdditionalReasonInformation | Provides additional information about the reason in narrative form. | IsoMax210Text - Optional 0..1 |
ClearingDetails building block
Provides clearing member information. Provides the clearing details. For comparison, see the ISO20022 official specification
classDiagram direction tb %% Clearing6 recursion level 0 with max 1 Clearing6 *-- "1..0" PartyIdentificationAndAccount219 : ClearingMember Clearing6 *-- "0..1" IPartyIdentification243Choice : ClearingSegment %% PartyIdentificationAndAccount219 recursion level 1 with max 1 class PartyIdentificationAndAccount219{ Side ClearingSide1Code ProcessingIdentification IsoMax35Text } PartyIdentificationAndAccount219 *-- "1..1" IPartyIdentification240Choice : Identification PartyIdentificationAndAccount219 *-- "0..1" AlternatePartyIdentification8 : AlternateIdentification PartyIdentificationAndAccount219 *-- "0..1" SecuritiesAccount20 : ClearingAccount PartyIdentificationAndAccount219 *-- "0..1" PartyTextInformation1 : AdditionalInformation %% IPartyIdentification243Choice recursion level 1 with max 1
Clearing6 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ClearingMember | Provides details about the clearing member identification and account. | PartyIdentificationAndAccount219 - Unknown 1..0 |
ClearingSegment | Clearing organisation that will clear the trade. Note: This field allows Clearing Member Firm to segregate flows coming from clearing counterparty’s clearing system. Indeed, Clearing Member Firms receive messages from the same system (same sender) and this field allows them to know if the message is related to equities or derivatives. | IPartyIdentification243Choice - Optional 0..1 |
ConfirmationParties building block
Parties involved in the confirmation of the details of a trade. Parties used for acting parties that apply either to the whole message or to individual sides. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ConfirmationParties8 recursion level 0 with max 1 ConfirmationParties8 *-- "1..1" ConfirmationPartyDetails15 : AffirmingParty ConfirmationParties8 *-- "0..1" ConfirmationPartyDetails12 : Buyer ConfirmationParties8 *-- "0..1" ConfirmationPartyDetails12 : Borrower ConfirmationParties8 *-- "0..1" ConfirmationPartyDetails12 : Seller ConfirmationParties8 *-- "0..1" ConfirmationPartyDetails12 : Lender ConfirmationParties8 *-- "0..1" ConfirmationPartyDetails14 : TradeBeneficiaryParty %% ConfirmationPartyDetails15 recursion level 1 with max 1 class ConfirmationPartyDetails15{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails15 *-- "1..1" IPartyIdentification240Choice : Identification ConfirmationPartyDetails15 *-- "0..1" SecuritiesAccount35 : SafekeepingAccount ConfirmationPartyDetails15 *-- "0..1" IAccountIdentification55Choice : CashDetails ConfirmationPartyDetails15 *-- "0..1" AlternatePartyIdentification8 : AlternateIdentification ConfirmationPartyDetails15 *-- "0..1" PartyTextInformation5 : AdditionalInformation %% ConfirmationPartyDetails12 recursion level 1 with max 1 class ConfirmationPartyDetails12{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails12 *-- "1..1" IPartyIdentification240Choice : Identification ConfirmationPartyDetails12 *-- "0..1" AlternatePartyIdentification8 : AlternateIdentification ConfirmationPartyDetails12 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails12 *-- "0..1" IInvestorCapacity4Choice : InvestorCapacity ConfirmationPartyDetails12 *-- "0..1" ITradingPartyCapacity4Choice : TradingPartyCapacity %% ConfirmationPartyDetails12 recursion level 1 with max 1 class ConfirmationPartyDetails12{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails12 *-- "1..1" IPartyIdentification240Choice : Identification ConfirmationPartyDetails12 *-- "0..1" AlternatePartyIdentification8 : AlternateIdentification ConfirmationPartyDetails12 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails12 *-- "0..1" IInvestorCapacity4Choice : InvestorCapacity ConfirmationPartyDetails12 *-- "0..1" ITradingPartyCapacity4Choice : TradingPartyCapacity %% ConfirmationPartyDetails12 recursion level 1 with max 1 class ConfirmationPartyDetails12{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails12 *-- "1..1" IPartyIdentification240Choice : Identification ConfirmationPartyDetails12 *-- "0..1" AlternatePartyIdentification8 : AlternateIdentification ConfirmationPartyDetails12 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails12 *-- "0..1" IInvestorCapacity4Choice : InvestorCapacity ConfirmationPartyDetails12 *-- "0..1" ITradingPartyCapacity4Choice : TradingPartyCapacity %% ConfirmationPartyDetails12 recursion level 1 with max 1 class ConfirmationPartyDetails12{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails12 *-- "1..1" IPartyIdentification240Choice : Identification ConfirmationPartyDetails12 *-- "0..1" AlternatePartyIdentification8 : AlternateIdentification ConfirmationPartyDetails12 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails12 *-- "0..1" IInvestorCapacity4Choice : InvestorCapacity ConfirmationPartyDetails12 *-- "0..1" ITradingPartyCapacity4Choice : TradingPartyCapacity %% ConfirmationPartyDetails14 recursion level 1 with max 1 class ConfirmationPartyDetails14{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails14 *-- "1..1" IPartyIdentification240Choice : Identification ConfirmationPartyDetails14 *-- "0..1" SecuritiesAccount35 : SafekeepingAccount ConfirmationPartyDetails14 *-- "0..1" IAccountIdentification55Choice : CashDetails ConfirmationPartyDetails14 *-- "0..1" AlternatePartyIdentification8 : AlternateIdentification ConfirmationPartyDetails14 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails14 *-- "0..1" ITradingPartyCapacity3Choice : PartyCapacity
ConfirmationParties8 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AffirmingParty | Party (buyer or seller) that positively affirms the details of a previously agreed security trade confirmation. | ConfirmationPartyDetails15 - Required 1..1 |
Buyer | Party that buys goods or services, or a financial instrument. | ConfirmationPartyDetails12 - Optional 0..1 |
Borrower | Party that has applied, met specific requirements, and received a monetary or securities loan from a lender. The party initiating the request signs a promissory note agreeing to pay the lien holder back during a specified timeframe for the entire loan amount plus any additional fees. The borrower is legally responsible for repayment of the loan and is subject to any penalties for not repaying the loan back based on the lending terms agreed upon. | ConfirmationPartyDetails12 - Optional 0..1 |
Seller | Party that sells goods or services, or a financial instrument. | ConfirmationPartyDetails12 - Optional 0..1 |
Lender | A private, public or institutional entity which makes funds available to others to borrow. | ConfirmationPartyDetails12 - Optional 0..1 |
TradeBeneficiaryParty | Party involved in a legal proceeding, agreement, or other transaction. | ConfirmationPartyDetails14 - 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 SecuritiesTradeConfirmationResponseV02 implementation follows a specific implementaiton pattern. First of all, SecuritiesTradeConfirmationResponseV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, SecuritiesTradeConfirmationResponseV02Document implements IOuterDocument. Because SecuritiesTradeConfirmationResponseV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type SecuritiesTradeConfirmationResponseV02.
classDiagram class IOuterRecord SecuritiesTradeConfirmationResponseV02 --|> IOuterRecord : Implements SecuritiesTradeConfirmationResponseV02Document --|> IOuterDocument~SecuritiesTradeConfirmationResponseV02~ : Implements class IOuterDocument~SecuritiesTradeConfirmationResponseV02~ { SecuritiesTradeConfirmationResponseV02 Message }
Document wrapper for serialization
The only real purpose SecuritiesTradeConfirmationResponseV02Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:setr.030.001.02’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using SecuritiesTradeConfirmationResponseV02.ToDocument() method. The returned SecuritiesTradeConfirmationResponseV02Document value will serialize correctly according to ISO 20022 standards.
classDiagram SecuritiesTradeConfirmationResponseV02Document *-- SecuritiesTradeConfirmationResponseV02 : 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.030.001.02">
<SctiesTradConfRspn>
<Id>
<!-- Identification inner content -->
</Id>
<Refs>
<!-- References inner content -->
</Refs>
<Sts>
<!-- Status inner content -->
</Sts>
<ClrDtls>
<!-- ClearingDetails inner content -->
</ClrDtls>
<ConfPties>
<!-- ConfirmationParties inner content -->
</ConfPties>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</SctiesTradConfRspn>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_s7RRwQNmEe2P7e2qGFFOGg"
previousVersion="_QZAf5eQXEeCGktPI9k4Dlw_433053053"
name="SecuritiesTradeConfirmationResponseV02"
definition="Scope
Sent by an instructing party, a custodian or an affirming party to an executing party (local matching) or to Central Matching Utility (CMU) to affirm (accept) or disaffirm (reject) (central matching) the SecuritiesTradeConfirmation message. If accepting the SecuritiesTradeConfirmation message, then the trade is ready for settlement processing. If rejecting the SecuritiesTradeConfirmation message, then the trade is not ready for settlement.
The executing party is typically the broker/dealer or an intermediary system/vendor communicating on behalf of the broker/dealer.
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 custodian or an affirming party is typically the custodian, trustee, financial institution, intermediary system/vendor communicating on behalf of them, or their agent.
The ISO 20022 Business Application Header must be used
Usage
Initiator: Both in local and central matching, the Initiator may be the Instructing Party, Custodian or Affirming party.
Respondent: Executing party does not need to respond if an affirmation. Executing party may respond with modification or cancellation of the rejected SecuritiesTradeConfirmation message."
registrationStatus="Registered"
messageSet="_oOGmoHkPEeOUfbICsvs_4A"
xmlTag="SctiesTradConfRspn"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_s7RRxwNmEe2P7e2qGFFOGg"
previousVersion="_QZAf5uQXEeCGktPI9k4Dlw_29401960"
name="Identification"
definition="Information that unambiguously identifies an SecuritiesTradeConfirmationResponse 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="_s7RRyQNmEe2P7e2qGFFOGg"
previousVersion="_QZAf5-QXEeCGktPI9k4Dlw_-804271867"
name="References"
definition="Link to another transaction that must be processed after, before or at the same time."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="Refs"
complexType="_cwOuIZBgEeakHoV5BVecAQ" />
<messageBuildingBlock
xmi:id="_s7RRywNmEe2P7e2qGFFOGg"
previousVersion="_QZAf6OQXEeCGktPI9k4Dlw_-1145789065"
name="Status"
definition="Provides details on the processing status of the trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Sts"
complexType="_Oqd4sQd3Ee2fOITqoTnSLQ" />
<messageBuildingBlock
xmi:id="_s7RRzQNmEe2P7e2qGFFOGg"
previousVersion="_QZAf6eQXEeCGktPI9k4Dlw_1899696329"
name="ClearingDetails"
definition="Provides clearing member information."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="ClrDtls"
complexType="_VtTGpQasEe2phaVG0lYKTw" />
<messageBuildingBlock
xmi:id="_s7RRzwNmEe2P7e2qGFFOGg"
previousVersion="_QZKQ4OQXEeCGktPI9k4Dlw_-1695268832"
name="ConfirmationParties"
definition="Parties involved in the confirmation of the details of a trade."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="ConfPties"
complexType="_XlQGxwasEe2phaVG0lYKTw" />
<messageBuildingBlock
xmi:id="_s7RR0QNmEe2P7e2qGFFOGg"
previousVersion="_QZKQ4eQXEeCGktPI9k4Dlw_499478370"
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="030"
flavour="001"
version="02" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.