SecuritiesTradeConfirmationResponseV01

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&#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="_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.