SecuritiesTradeConfirmationResponseV02

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&#xD;&#xA;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.&#xD;&#xA;The executing party is typically the broker/dealer or an intermediary system/vendor communicating on behalf of the broker/dealer.&#xD;&#xA;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.&#xD;&#xA;The custodian or an affirming party is typically the custodian, trustee, financial institution, intermediary system/vendor communicating on behalf of them, or their agent.&#xD;&#xA;The ISO 20022 Business Application Header must be used&#xD;&#xA;Usage&#xD;&#xA;Initiator: Both in local and central matching, the Initiator may be the Instructing Party, Custodian or Affirming party.&#xD;&#xA;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.