setr.030.001.01
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 %% SecuritiesTradeConfirmationResponseV01 recursion level 0 with max 0 SecuritiesTradeConfirmationResponseV01 *-- "1..1" TransactiontIdentification4 : Identification SecuritiesTradeConfirmationResponseV01 *-- "1..1" Linkages15 : References SecuritiesTradeConfirmationResponseV01 *-- "1..1" StatusAndReason10 : Status SecuritiesTradeConfirmationResponseV01 *-- "0..1" Clearing3 : ClearingDetails SecuritiesTradeConfirmationResponseV01 *-- "0..1" ConfirmationParties3 : ConfirmationParties SecuritiesTradeConfirmationResponseV01 *-- "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 %% 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 |
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 %% StatusAndReason10 recursion level 0 with max 1 class StatusAndReason10{ AdditionalReasonInformation IsoMax210Text } StatusAndReason10 *-- "1..1" IAffirmationStatus7Choice : AffirmationStatus StatusAndReason10 *-- "0..1" IUnaffirmedReason2Choice : UnaffirmedReason %% IAffirmationStatus7Choice recursion level 1 with max 1 %% IUnaffirmedReason2Choice recursion level 1 with max 1
StatusAndReason10 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AffirmationStatus | Status of affirmation of a trade. | IAffirmationStatus7Choice - Required 1..1 |
UnaffirmedReason | Specifies the reason why the instruction has an unaffirmed status. | IUnaffirmedReason2Choice - 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 %% Clearing3 recursion level 0 with max 1 Clearing3 *-- "1..0" PartyIdentificationAndAccount78 : ClearingMember Clearing3 *-- "0..1" IPartyIdentification35Choice : ClearingSegment %% PartyIdentificationAndAccount78 recursion level 1 with max 1 class PartyIdentificationAndAccount78{ Side ClearingSide1Code ProcessingIdentification IsoMax35Text } PartyIdentificationAndAccount78 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount78 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification PartyIdentificationAndAccount78 *-- "0..1" SecuritiesAccount20 : ClearingAccount PartyIdentificationAndAccount78 *-- "0..1" PartyTextInformation1 : AdditionalInformation %% IPartyIdentification35Choice recursion level 1 with max 1
Clearing3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ClearingMember | Provides details about the clearing member identification and account. | PartyIdentificationAndAccount78 - 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. | IPartyIdentification35Choice - 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 %% ConfirmationParties3 recursion level 0 with max 1 ConfirmationParties3 *-- "1..1" ConfirmationPartyDetails4 : AffirmingParty ConfirmationParties3 *-- "0..1" ConfirmationPartyDetails2 : Buyer ConfirmationParties3 *-- "0..1" ConfirmationPartyDetails2 : Borrower ConfirmationParties3 *-- "0..1" ConfirmationPartyDetails2 : Seller ConfirmationParties3 *-- "0..1" ConfirmationPartyDetails2 : Lender ConfirmationParties3 *-- "0..1" ConfirmationPartyDetails3 : TradeBeneficiaryParty %% ConfirmationPartyDetails4 recursion level 1 with max 1 class ConfirmationPartyDetails4{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails4 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails4 *-- "0..1" SecuritiesAccount3 : SafekeepingAccount ConfirmationPartyDetails4 *-- "0..1" IAccountIdentification3Choice : CashDetails ConfirmationPartyDetails4 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails4 *-- "0..1" PartyTextInformation5 : AdditionalInformation %% ConfirmationPartyDetails2 recursion level 1 with max 1 class ConfirmationPartyDetails2{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails2 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails2 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails2 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails2 *-- "0..1" IInvestorCapacity3Choice : InvestorCapacity ConfirmationPartyDetails2 *-- "0..1" ITradingPartyCapacity1Choice : TradingPartyCapacity %% ConfirmationPartyDetails2 recursion level 1 with max 1 class ConfirmationPartyDetails2{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails2 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails2 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails2 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails2 *-- "0..1" IInvestorCapacity3Choice : InvestorCapacity ConfirmationPartyDetails2 *-- "0..1" ITradingPartyCapacity1Choice : TradingPartyCapacity %% ConfirmationPartyDetails2 recursion level 1 with max 1 class ConfirmationPartyDetails2{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails2 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails2 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails2 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails2 *-- "0..1" IInvestorCapacity3Choice : InvestorCapacity ConfirmationPartyDetails2 *-- "0..1" ITradingPartyCapacity1Choice : TradingPartyCapacity %% ConfirmationPartyDetails2 recursion level 1 with max 1 class ConfirmationPartyDetails2{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails2 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails2 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails2 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails2 *-- "0..1" IInvestorCapacity3Choice : InvestorCapacity ConfirmationPartyDetails2 *-- "0..1" ITradingPartyCapacity1Choice : TradingPartyCapacity %% ConfirmationPartyDetails3 recursion level 1 with max 1 class ConfirmationPartyDetails3{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails3 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails3 *-- "0..1" SecuritiesAccount3 : SafekeepingAccount ConfirmationPartyDetails3 *-- "0..1" IAccountIdentification3Choice : CashDetails ConfirmationPartyDetails3 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails3 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails3 *-- "0..1" ITradingPartyCapacity2Choice : PartyCapacity
ConfirmationParties3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AffirmingParty | Party (buyer or seller) that positively affirms the details of a previously agreed security trade confirmation. | ConfirmationPartyDetails4 - Required 1..1 |
Buyer | Party that buys goods or services, or a financial instrument. | ConfirmationPartyDetails2 - 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. | ConfirmationPartyDetails2 - Optional 0..1 |
Seller | Party that sells goods or services, or a financial instrument. | ConfirmationPartyDetails2 - Optional 0..1 |
Lender | A private, public or institutional entity which makes funds available to others to borrow. | ConfirmationPartyDetails2 - Optional 0..1 |
TradeBeneficiaryParty | Party involved in a legal proceeding, agreement, or other transaction. | ConfirmationPartyDetails3 - 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 SecuritiesTradeConfirmationResponseV01 implementation follows a specific implementaiton pattern. First of all, SecuritiesTradeConfirmationResponseV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, SecuritiesTradeConfirmationResponseV01Document implements IOuterDocument. Because SecuritiesTradeConfirmationResponseV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type SecuritiesTradeConfirmationResponseV01.
classDiagram class IOuterRecord SecuritiesTradeConfirmationResponseV01 --|> IOuterRecord : Implements SecuritiesTradeConfirmationResponseV01Document --|> IOuterDocument~SecuritiesTradeConfirmationResponseV01~ : Implements class IOuterDocument~SecuritiesTradeConfirmationResponseV01~ { SecuritiesTradeConfirmationResponseV01 Message }
Document wrapper for serialization
The only real purpose SecuritiesTradeConfirmationResponseV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:setr.030.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using SecuritiesTradeConfirmationResponseV01.ToDocument() method. The returned SecuritiesTradeConfirmationResponseV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram SecuritiesTradeConfirmationResponseV01Document *-- SecuritiesTradeConfirmationResponseV01 : 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.01">
<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="_QZAf5eQXEeCGktPI9k4Dlw_433053053"
nextVersions="_s7RRwQNmEe2P7e2qGFFOGg"
name="SecuritiesTradeConfirmationResponseV01"
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="_AELt0P2bEeG1VMy7BW0rqA"
xmlTag="SctiesTradConfRspn"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_QZAf5uQXEeCGktPI9k4Dlw_29401960"
nextVersions="_s7RRxwNmEe2P7e2qGFFOGg"
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="_QZAf5-QXEeCGktPI9k4Dlw_-804271867"
nextVersions="_s7RRyQNmEe2P7e2qGFFOGg"
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="_Ab8KlNokEeC60axPepSq7g_1109963606" />
<messageBuildingBlock
xmi:id="_QZAf6OQXEeCGktPI9k4Dlw_-1145789065"
nextVersions="_s7RRywNmEe2P7e2qGFFOGg"
name="Status"
definition="Provides details on the processing status of the trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Sts"
complexType="_AYEXMtokEeC60axPepSq7g_-1155773451" />
<messageBuildingBlock
xmi:id="_QZAf6eQXEeCGktPI9k4Dlw_1899696329"
nextVersions="_s7RRzQNmEe2P7e2qGFFOGg"
name="ClearingDetails"
definition="Provides clearing member information."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="ClrDtls"
complexType="_A3gsQNokEeC60axPepSq7g_556617430" />
<messageBuildingBlock
xmi:id="_QZKQ4OQXEeCGktPI9k4Dlw_-1695268832"
nextVersions="_s7RRzwNmEe2P7e2qGFFOGg"
name="ConfirmationParties"
definition="Parties involved in the confirmation of the details of a trade."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="ConfPties"
complexType="_AdSOYNokEeC60axPepSq7g_-2040835565" />
<messageBuildingBlock
xmi:id="_QZKQ4eQXEeCGktPI9k4Dlw_499478370"
nextVersions="_s7RR0QNmEe2P7e2qGFFOGg"
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="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.