setr.044.001.01
Scope This message is sent from Central Matching Utility (CMU) to an executing party or an instructing party to advise the status of the SecuritiesTradeConfirmation message previously sent by the party. The status may be a processing, pending processing, affirmed or disaffirmed, cancel or replacement by an instructing party, a custodian or an affirming party, internal matching, and/or matching status. 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. The ISO 20022 Business Application Header must be used Usage Initiator: In central matching the Initiator is the Central Matching Utility. Respondent: no response is needed by the recipient of the 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 %% SecuritiesTradeConfirmationStatusAdviceV01 recursion level 0 with max 0 SecuritiesTradeConfirmationStatusAdviceV01 *-- "1..1" TransactiontIdentification4 : Identification SecuritiesTradeConfirmationStatusAdviceV01 *-- "1..1" Linkages18 : References SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" IAffirmationStatus6Choice : AffirmationStatus SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" IProcessingStatus17Choice : ProcessingStatus SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" IMatchingStatus9Choice : MatchingStatus SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" IReplacementProcessingStatus7Choice : ReplacementProcessingStatus SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" ICancellationProcessingStatus6Choice : CancellationProcessingStatus SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" Order16 : PartyTradingDetails SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" Order16 : CounterpartyTradingDetails SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" ConfirmationParties4 : ConfirmationParties SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" SettlementParties23 : DeliveringSettlementParties SecuritiesTradeConfirmationStatusAdviceV01 *-- "0..1" SettlementParties23 : ReceivingSettlementParties SecuritiesTradeConfirmationStatusAdviceV01 *-- "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 SecuritiesTradeConfirmationStatusAdvice 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 %% Linkages18 recursion level 0 with max 1 Linkages18 *-- "0..1" IDocumentNumber4Choice : MessageNumber Linkages18 *-- "1..1" IIdentificationReference11Choice : Reference %% IDocumentNumber4Choice recursion level 1 with max 1 %% IIdentificationReference11Choice recursion level 1 with max 1
Linkages18 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. | IIdentificationReference11Choice - Required 1..1 |
AffirmationStatus building block
Provides details on the affitrmation status of a trade. Choice of status for the affirmation. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IAffirmationStatus6Choice recursion level 0 with max 1
AffirmationStatus6Choice members
Member name | Description | Data Type / Multiplicity |
---|
ProcessingStatus building block
Provides the processing status of a trade. Choice of status for the processing. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IProcessingStatus17Choice recursion level 0 with max 1
ProcessingStatus17Choice members
Member name | Description | Data Type / Multiplicity |
---|
MatchingStatus building block
Provides details on the matching status of a trade. Choice of status for the matching. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IMatchingStatus9Choice recursion level 0 with max 1
MatchingStatus9Choice members
Member name | Description | Data Type / Multiplicity |
---|
ReplacementProcessingStatus building block
Provides the replacement processing status of a trade. Choice of status for the replacement processing. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IReplacementProcessingStatus7Choice recursion level 0 with max 1
ReplacementProcessingStatus7Choice members
Member name | Description | Data Type / Multiplicity |
---|
CancellationProcessingStatus building block
Provides details on the cancellation status of a trade. Choice of status for the cancellation processing. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ICancellationProcessingStatus6Choice recursion level 0 with max 1
CancellationProcessingStatus6Choice members
Member name | Description | Data Type / Multiplicity |
---|
PartyTradingDetails building block
Details of the trading party. Intention to transfer an ownership of a financial instrument. For comparison, see the ISO20022 official specification
classDiagram direction tb %% Order16 recursion level 0 with max 1 class Order16{ OrderIdentification IsoMax35Text ClientOrderIdentification IsoMax35Text SecondaryClientOrderIdentification IsoMax35Text ListIdentification IsoMax35Text Side Side3Code Payment DeliveryReceiptType2Code PreAdvice IsoYesNoIndicator OrderBookingDate IsoISODate TradeOriginationDate IsoISODateTime CashMargin CashMarginOrder1Code NumberOfDaysAccrued IsoMax3Number GiveUpNumberOfDays IsoMax3Number InterestType InterestType2Code AccruedInterestPercentage IsoPercentageRate TradeRegulatoryConditionsType TradeRegulatoryConditions1Code OrderOriginatorEligibility Eligibility1Code PositionEffect PositionEffect2Code DerivativeCovered IsoYesNoIndicator CallInType CallIn1Code AdditionalTradeInstructionProcessingInformation IsoMax350Text } Order16 *-- "0..1" IBusinessProcessType1Choice : BusinessProcessType Order16 *-- "1..1" SecurityIdentification14 : FinancialInstrumentIdentification Order16 *-- "0..1" ITradeType3Choice : TradeTransactionType Order16 *-- "0..0" ITradeTransactionCondition4Choice : TradeTransactionCondition Order16 *-- "0..1" MarketIdentification77 : PlaceOfTrade Order16 *-- "1..1" ITradeDate4Choice : TradeDate Order16 *-- "0..1" ITradeDate4Choice : ProcessingDate Order16 *-- "1..1" ISettlementDate8Choice : SettlementDate Order16 *-- "0..1" IDateAndDateTime1Choice : NAVDate Order16 *-- "0..0" PartialFill1 : PartialFillDetails Order16 *-- "1..1" IQuantity6Choice : ConfirmationQuantity Order16 *-- "0..0" QuantityBreakdown11 : QuantityBreakdown Order16 *-- "0..1" AmountAndDirection29 : GrossTradeAmount Order16 *-- "1..1" Price4 : DealPrice Order16 *-- "0..1" ITypeOfPrice10Choice : TypeOfPrice Order16 *-- "0..1" Commission16 : Commission Order16 *-- "0..1" ICurrencyToBuyOrSell1Choice : CurrencyToBuyOrSell Order16 *-- "0..1" IChargeTaxBasisType1Choice : ChargeTaxBasisType Order16 *-- "0..1" IEUCapitalGainType2Choice : CapitalGainType Order16 *-- "0..1" IMatchingStatus8Choice : MatchStatus Order16 *-- "0..1" YieldCalculation2 : YieldType Order16 *-- "0..0" IReporting5Choice : Reporting Order16 *-- "0..1" RegistrationParameters3 : AdditionalPhysicalOrRegistrationDetails Order16 *-- "0..1" AmountAndDirection29 : AccruedInterestAmount %% IBusinessProcessType1Choice recursion level 1 with max 1 %% SecurityIdentification14 recursion level 1 with max 1 class SecurityIdentification14{ ISIN IsoISINIdentifier Description IsoMax140Text } SecurityIdentification14 *-- "0..0" OtherIdentification1 : OtherIdentification %% ITradeType3Choice recursion level 1 with max 1 %% ITradeTransactionCondition4Choice recursion level 1 with max 1 %% MarketIdentification77 recursion level 1 with max 1 MarketIdentification77 *-- "0..1" IMarketIdentification3Choice : Identification MarketIdentification77 *-- "0..1" IMarketType11Choice : Type %% ITradeDate4Choice recursion level 1 with max 1 %% ITradeDate4Choice recursion level 1 with max 1 %% ISettlementDate8Choice recursion level 1 with max 1 %% IDateAndDateTime1Choice recursion level 1 with max 1 %% PartialFill1 recursion level 1 with max 1 PartialFill1 *-- "1..1" IQuantity6Choice : ConfirmationQuantity PartialFill1 *-- "1..1" Price4 : DealPrice PartialFill1 *-- "0..1" ITradeDate4Choice : TradeDate PartialFill1 *-- "0..1" MarketIdentification13 : PlaceOfTrade PartialFill1 *-- "1..1" IQuantityOrAmount1Choice : OriginalOrderedQuantity PartialFill1 *-- "1..1" IQuantityOrAmount1Choice : PreviouslyExecutedQuantity PartialFill1 *-- "1..1" IQuantityOrAmount1Choice : RemainingQuantity PartialFill1 *-- "0..1" IQuantityOrAmount1Choice : MatchIncrementQuantity %% IQuantity6Choice recursion level 1 with max 1 %% QuantityBreakdown11 recursion level 1 with max 1 QuantityBreakdown11 *-- "0..1" GenericIdentification37 : LotNumber QuantityBreakdown11 *-- "0..1" IFinancialInstrumentQuantity1Choice : LotQuantity QuantityBreakdown11 *-- "0..1" IDateAndDateTime1Choice : LotDateTime QuantityBreakdown11 *-- "0..1" Price4 : LotPrice %% AmountAndDirection29 recursion level 1 with max 1 class AmountAndDirection29{ Amount IsoActiveOrHistoricCurrencyAndAmount CreditDebitIndicator CreditDebitCode OriginalCurrencyAndOrderedAmount IsoActiveOrHistoricCurrencyAndAmount } AmountAndDirection29 *-- "0..1" ForeignExchangeTerms18 : ForeignExchangeDetails %% Price4 recursion level 1 with max 1 class Price4{ Type PriceValueType7Code } Price4 *-- "1..1" IPriceRateOrAmountChoice : Value %% ITypeOfPrice10Choice recursion level 1 with max 1 %% Commission16 recursion level 1 with max 1 class Commission16{ CalculationDate IsoISODate TotalVATAmount IsoActiveCurrencyAndAmount VATRate IsoBaseOneRate } Commission16 *-- "1..1" ICommissionType2Choice : Type Commission16 *-- "1..1" IAmountOrRate2Choice : Commission Commission16 *-- "0..1" PartyIdentification54 : RecipientIdentification Commission16 *-- "0..1" AmountAndDirection29 : TotalCommission %% ICurrencyToBuyOrSell1Choice recursion level 1 with max 1 %% IChargeTaxBasisType1Choice recursion level 1 with max 1 %% IEUCapitalGainType2Choice recursion level 1 with max 1 %% IMatchingStatus8Choice recursion level 1 with max 1 %% YieldCalculation2 recursion level 1 with max 1 class YieldCalculation2{ Value IsoPercentageRate CalculationType CalculationType1Code ValueDate IsoISODate CalculationDate IsoISODate } YieldCalculation2 *-- "0..1" Price4 : RedemptionPrice YieldCalculation2 *-- "0..1" IDateTimePeriodChoice : ValuePeriod %% IReporting5Choice recursion level 1 with max 1 %% RegistrationParameters3 recursion level 1 with max 1 class RegistrationParameters3{ CertificationIdentification IsoMax35Text RegistrarAccount IsoMax35Text } RegistrationParameters3 *-- "0..1" IDateAndDateTime1Choice : CertificationDateTime RegistrationParameters3 *-- "0..0" SecuritiesCertificate3 : CertificateNumber %% AmountAndDirection29 recursion level 1 with max 1 class AmountAndDirection29{ Amount IsoActiveOrHistoricCurrencyAndAmount CreditDebitIndicator CreditDebitCode OriginalCurrencyAndOrderedAmount IsoActiveOrHistoricCurrencyAndAmount } AmountAndDirection29 *-- "0..1" ForeignExchangeTerms18 : ForeignExchangeDetails
Order16 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
BusinessProcessType | Specifies the type of business process. | IBusinessProcessType1Choice - Optional 0..1 |
OrderIdentification | Unique identifier for Order as assigned by sell-side. | IsoMax35Text - Unknown 0..0 |
ClientOrderIdentification | Unique identifier for the order as assigned by the buy-side. Uniqueness must be guaranteed within a single trading day. Firms, particularly those that electronically submit multi-day orders, trade globally or throughout market close periods, should ensure uniqueness across days, for example by embedding a date within the ClientOrderIdentification element. | IsoMax35Text - Unknown 0..0 |
SecondaryClientOrderIdentification | Assigned by the party that originates the order. Can be used to provide the ClientOrderIdentification used by an exchange or executing system. | IsoMax35Text - Unknown 0..0 |
ListIdentification | Unique identifier for a list, as assigned by the trading party. The identifier must be unique within a single trading day. | IsoMax35Text - Unknown 0..0 |
FinancialInstrumentIdentification | Unique and unambiguous identifier of a financial instrument, assigned under a formal or proprietary identification scheme. | SecurityIdentification14 - Required 1..1 |
Side | Coded list to specify the side of the order. | Side3Code - Required 1..1 |
Payment | Specifies how the transaction is to be settled, for example, against payment. | DeliveryReceiptType2Code - Optional 0..1 |
TradeTransactionType | Specifies the type of transaction of which the order is a component. | ITradeType3Choice - Optional 0..1 |
TradeTransactionCondition | Indicates the conditions under which the order/trade is to be/was executed. | ITradeTransactionCondition4Choice - Unknown 0..0 |
PreAdvice | Transaction is a pre-advice, that is, for matching purposes only. | IsoYesNoIndicator - Optional 0..1 |
PlaceOfTrade | Market in which a trade transaction is to be or has been executed. | MarketIdentification77 - Optional 0..1 |
OrderBookingDate | Date and time when an entry is posted to an account on the account servicer’s books. | IsoISODate - Optional 0..1 |
TradeOriginationDate | Indicates the date and time of the agreement in principal between counter-parties prior to actual trade date. | Used with fixed income for municipal new issue markets. |
TradeDate | Specifies the date/time on which the trade was executed. | ITradeDate4Choice - Required 1..1 |
ProcessingDate | Processing date of the trading session. | ITradeDate4Choice - Optional 0..1 |
SettlementDate | Date and time at which the securities are to be delivered or received. | ISettlementDate8Choice - Required 1..1 |
NAVDate | Valuation point, or valuation date of the portfolio (underlying assets). This is also known as price date. | IDateAndDateTime1Choice - Optional 0..1 |
PartialFillDetails | Quantity of financial instrument bought or sold which is less than the quantity of financial instrument ordered. | PartialFill1 - Unknown 0..0 |
ConfirmationQuantity | Quantity of financial instrument that is being confirmed for the account.The quantity of the security to be settled. | IQuantity6Choice - Required 1..1 |
QuantityBreakdown | Breakdown of a quantity into lots such as tax lots, instrument series, etc. | QuantityBreakdown11 - Unknown 0..0 |
GrossTradeAmount | Principal amount of a trade (price multiplied by quantity). | AmountAndDirection29 - Optional 0..1 |
DealPrice | Amount of money for which goods or services are offered, sold, or bought. | Price4 - Required 1..1 |
TypeOfPrice | Specifies the type of transaction price. | ITypeOfPrice10Choice - Optional 0..1 |
CashMargin | Identifies whether an order is a margin order or a non-margin order. This is primarily used when sending orders to Japanese exchanges to indicate sell margin or buy to cover. The same tag could be assigned also by buy-side to indicate the intent to sell or buy margin and the sell-side to accept or reject (base on some validation criteria) the margin request. | CashMarginOrder1Code - Optional 0..1 |
Commission | Amount of money due to a party as compensation for a service. | Commission16 - Optional 0..1 |
NumberOfDaysAccrued | Number of days on which the interest rate accrues (daily accrual note). | IsoMax3Number - Optional 0..1 |
GiveUpNumberOfDays | Specifies the number of days from trade date that the counterparty on the other side of the trade should be “given up” or divulged. | IsoMax3Number - Optional 0..1 |
InterestType | Indicates whether the trade is cum interest or ex interest. | InterestType2Code - Optional 0..1 |
AccruedInterestPercentage | Interest rate that has been accrued in between coupon payment periods. | IsoPercentageRate - Optional 0..1 |
TradeRegulatoryConditionsType | Specifies the regulatory conditions type of the trade. | TradeRegulatoryConditions1Code - Optional 0..1 |
CurrencyToBuyOrSell | Account servicer is instructed to buy the indicated currency after the receipt of cash proceeds or to sell the indicated currency in order to obtain the necessary currency to fund the transaction. | ICurrencyToBuyOrSell1Choice - Optional 0..1 |
OrderOriginatorEligibility | Counterparties eligibility as defined by article 24 of the EU MiFID Directive applicable to transactions executed by investment firms for eligible counterparties. | Eligibility1Code - Optional 0..1 |
PositionEffect | Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together. | PositionEffect2Code - Optional 0..1 |
DerivativeCovered | Indicates whether the derivative product is covered or not by an underlying financial instrument position. | IsoYesNoIndicator - Optional 0..1 |
ChargeTaxBasisType | Type of charge/tax basis. | IChargeTaxBasisType1Choice - Optional 0..1 |
CapitalGainType | Specifies the type of capital gain. | IEUCapitalGainType2Choice - Optional 0..1 |
MatchStatus | Provides the matching status of the trade confirmation. | IMatchingStatus8Choice - Optional 0..1 |
CallInType | Specifies the type of pay-in call report. | CallIn1Code - Optional 0..1 |
YieldType | Type of yield at which the transaction was effected. | YieldCalculation2 - Optional 0..1 |
Reporting | Specifies that a trade is to be reported to a third party. | IReporting5Choice - Unknown 0..0 |
AdditionalPhysicalOrRegistrationDetails | Provides information required for the registration or physical settlement. | RegistrationParameters3 - Optional 0..1 |
AdditionalTradeInstructionProcessingInformation | Provides additional details of the trade process not included within structured fields of this message. | IsoMax350Text - Optional 0..1 |
AccruedInterestAmount | Interest amount that has accrued in between two periods, for example, in between interest payment periods. | AmountAndDirection29 - Optional 0..1 |
CounterpartyTradingDetails building block
Details of the trading counterparty. Intention to transfer an ownership of a financial instrument. For comparison, see the ISO20022 official specification
classDiagram direction tb %% Order16 recursion level 0 with max 1 class Order16{ OrderIdentification IsoMax35Text ClientOrderIdentification IsoMax35Text SecondaryClientOrderIdentification IsoMax35Text ListIdentification IsoMax35Text Side Side3Code Payment DeliveryReceiptType2Code PreAdvice IsoYesNoIndicator OrderBookingDate IsoISODate TradeOriginationDate IsoISODateTime CashMargin CashMarginOrder1Code NumberOfDaysAccrued IsoMax3Number GiveUpNumberOfDays IsoMax3Number InterestType InterestType2Code AccruedInterestPercentage IsoPercentageRate TradeRegulatoryConditionsType TradeRegulatoryConditions1Code OrderOriginatorEligibility Eligibility1Code PositionEffect PositionEffect2Code DerivativeCovered IsoYesNoIndicator CallInType CallIn1Code AdditionalTradeInstructionProcessingInformation IsoMax350Text } Order16 *-- "0..1" IBusinessProcessType1Choice : BusinessProcessType Order16 *-- "1..1" SecurityIdentification14 : FinancialInstrumentIdentification Order16 *-- "0..1" ITradeType3Choice : TradeTransactionType Order16 *-- "0..0" ITradeTransactionCondition4Choice : TradeTransactionCondition Order16 *-- "0..1" MarketIdentification77 : PlaceOfTrade Order16 *-- "1..1" ITradeDate4Choice : TradeDate Order16 *-- "0..1" ITradeDate4Choice : ProcessingDate Order16 *-- "1..1" ISettlementDate8Choice : SettlementDate Order16 *-- "0..1" IDateAndDateTime1Choice : NAVDate Order16 *-- "0..0" PartialFill1 : PartialFillDetails Order16 *-- "1..1" IQuantity6Choice : ConfirmationQuantity Order16 *-- "0..0" QuantityBreakdown11 : QuantityBreakdown Order16 *-- "0..1" AmountAndDirection29 : GrossTradeAmount Order16 *-- "1..1" Price4 : DealPrice Order16 *-- "0..1" ITypeOfPrice10Choice : TypeOfPrice Order16 *-- "0..1" Commission16 : Commission Order16 *-- "0..1" ICurrencyToBuyOrSell1Choice : CurrencyToBuyOrSell Order16 *-- "0..1" IChargeTaxBasisType1Choice : ChargeTaxBasisType Order16 *-- "0..1" IEUCapitalGainType2Choice : CapitalGainType Order16 *-- "0..1" IMatchingStatus8Choice : MatchStatus Order16 *-- "0..1" YieldCalculation2 : YieldType Order16 *-- "0..0" IReporting5Choice : Reporting Order16 *-- "0..1" RegistrationParameters3 : AdditionalPhysicalOrRegistrationDetails Order16 *-- "0..1" AmountAndDirection29 : AccruedInterestAmount %% IBusinessProcessType1Choice recursion level 1 with max 1 %% SecurityIdentification14 recursion level 1 with max 1 class SecurityIdentification14{ ISIN IsoISINIdentifier Description IsoMax140Text } SecurityIdentification14 *-- "0..0" OtherIdentification1 : OtherIdentification %% ITradeType3Choice recursion level 1 with max 1 %% ITradeTransactionCondition4Choice recursion level 1 with max 1 %% MarketIdentification77 recursion level 1 with max 1 MarketIdentification77 *-- "0..1" IMarketIdentification3Choice : Identification MarketIdentification77 *-- "0..1" IMarketType11Choice : Type %% ITradeDate4Choice recursion level 1 with max 1 %% ITradeDate4Choice recursion level 1 with max 1 %% ISettlementDate8Choice recursion level 1 with max 1 %% IDateAndDateTime1Choice recursion level 1 with max 1 %% PartialFill1 recursion level 1 with max 1 PartialFill1 *-- "1..1" IQuantity6Choice : ConfirmationQuantity PartialFill1 *-- "1..1" Price4 : DealPrice PartialFill1 *-- "0..1" ITradeDate4Choice : TradeDate PartialFill1 *-- "0..1" MarketIdentification13 : PlaceOfTrade PartialFill1 *-- "1..1" IQuantityOrAmount1Choice : OriginalOrderedQuantity PartialFill1 *-- "1..1" IQuantityOrAmount1Choice : PreviouslyExecutedQuantity PartialFill1 *-- "1..1" IQuantityOrAmount1Choice : RemainingQuantity PartialFill1 *-- "0..1" IQuantityOrAmount1Choice : MatchIncrementQuantity %% IQuantity6Choice recursion level 1 with max 1 %% QuantityBreakdown11 recursion level 1 with max 1 QuantityBreakdown11 *-- "0..1" GenericIdentification37 : LotNumber QuantityBreakdown11 *-- "0..1" IFinancialInstrumentQuantity1Choice : LotQuantity QuantityBreakdown11 *-- "0..1" IDateAndDateTime1Choice : LotDateTime QuantityBreakdown11 *-- "0..1" Price4 : LotPrice %% AmountAndDirection29 recursion level 1 with max 1 class AmountAndDirection29{ Amount IsoActiveOrHistoricCurrencyAndAmount CreditDebitIndicator CreditDebitCode OriginalCurrencyAndOrderedAmount IsoActiveOrHistoricCurrencyAndAmount } AmountAndDirection29 *-- "0..1" ForeignExchangeTerms18 : ForeignExchangeDetails %% Price4 recursion level 1 with max 1 class Price4{ Type PriceValueType7Code } Price4 *-- "1..1" IPriceRateOrAmountChoice : Value %% ITypeOfPrice10Choice recursion level 1 with max 1 %% Commission16 recursion level 1 with max 1 class Commission16{ CalculationDate IsoISODate TotalVATAmount IsoActiveCurrencyAndAmount VATRate IsoBaseOneRate } Commission16 *-- "1..1" ICommissionType2Choice : Type Commission16 *-- "1..1" IAmountOrRate2Choice : Commission Commission16 *-- "0..1" PartyIdentification54 : RecipientIdentification Commission16 *-- "0..1" AmountAndDirection29 : TotalCommission %% ICurrencyToBuyOrSell1Choice recursion level 1 with max 1 %% IChargeTaxBasisType1Choice recursion level 1 with max 1 %% IEUCapitalGainType2Choice recursion level 1 with max 1 %% IMatchingStatus8Choice recursion level 1 with max 1 %% YieldCalculation2 recursion level 1 with max 1 class YieldCalculation2{ Value IsoPercentageRate CalculationType CalculationType1Code ValueDate IsoISODate CalculationDate IsoISODate } YieldCalculation2 *-- "0..1" Price4 : RedemptionPrice YieldCalculation2 *-- "0..1" IDateTimePeriodChoice : ValuePeriod %% IReporting5Choice recursion level 1 with max 1 %% RegistrationParameters3 recursion level 1 with max 1 class RegistrationParameters3{ CertificationIdentification IsoMax35Text RegistrarAccount IsoMax35Text } RegistrationParameters3 *-- "0..1" IDateAndDateTime1Choice : CertificationDateTime RegistrationParameters3 *-- "0..0" SecuritiesCertificate3 : CertificateNumber %% AmountAndDirection29 recursion level 1 with max 1 class AmountAndDirection29{ Amount IsoActiveOrHistoricCurrencyAndAmount CreditDebitIndicator CreditDebitCode OriginalCurrencyAndOrderedAmount IsoActiveOrHistoricCurrencyAndAmount } AmountAndDirection29 *-- "0..1" ForeignExchangeTerms18 : ForeignExchangeDetails
Order16 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
BusinessProcessType | Specifies the type of business process. | IBusinessProcessType1Choice - Optional 0..1 |
OrderIdentification | Unique identifier for Order as assigned by sell-side. | IsoMax35Text - Unknown 0..0 |
ClientOrderIdentification | Unique identifier for the order as assigned by the buy-side. Uniqueness must be guaranteed within a single trading day. Firms, particularly those that electronically submit multi-day orders, trade globally or throughout market close periods, should ensure uniqueness across days, for example by embedding a date within the ClientOrderIdentification element. | IsoMax35Text - Unknown 0..0 |
SecondaryClientOrderIdentification | Assigned by the party that originates the order. Can be used to provide the ClientOrderIdentification used by an exchange or executing system. | IsoMax35Text - Unknown 0..0 |
ListIdentification | Unique identifier for a list, as assigned by the trading party. The identifier must be unique within a single trading day. | IsoMax35Text - Unknown 0..0 |
FinancialInstrumentIdentification | Unique and unambiguous identifier of a financial instrument, assigned under a formal or proprietary identification scheme. | SecurityIdentification14 - Required 1..1 |
Side | Coded list to specify the side of the order. | Side3Code - Required 1..1 |
Payment | Specifies how the transaction is to be settled, for example, against payment. | DeliveryReceiptType2Code - Optional 0..1 |
TradeTransactionType | Specifies the type of transaction of which the order is a component. | ITradeType3Choice - Optional 0..1 |
TradeTransactionCondition | Indicates the conditions under which the order/trade is to be/was executed. | ITradeTransactionCondition4Choice - Unknown 0..0 |
PreAdvice | Transaction is a pre-advice, that is, for matching purposes only. | IsoYesNoIndicator - Optional 0..1 |
PlaceOfTrade | Market in which a trade transaction is to be or has been executed. | MarketIdentification77 - Optional 0..1 |
OrderBookingDate | Date and time when an entry is posted to an account on the account servicer’s books. | IsoISODate - Optional 0..1 |
TradeOriginationDate | Indicates the date and time of the agreement in principal between counter-parties prior to actual trade date. | Used with fixed income for municipal new issue markets. |
TradeDate | Specifies the date/time on which the trade was executed. | ITradeDate4Choice - Required 1..1 |
ProcessingDate | Processing date of the trading session. | ITradeDate4Choice - Optional 0..1 |
SettlementDate | Date and time at which the securities are to be delivered or received. | ISettlementDate8Choice - Required 1..1 |
NAVDate | Valuation point, or valuation date of the portfolio (underlying assets). This is also known as price date. | IDateAndDateTime1Choice - Optional 0..1 |
PartialFillDetails | Quantity of financial instrument bought or sold which is less than the quantity of financial instrument ordered. | PartialFill1 - Unknown 0..0 |
ConfirmationQuantity | Quantity of financial instrument that is being confirmed for the account.The quantity of the security to be settled. | IQuantity6Choice - Required 1..1 |
QuantityBreakdown | Breakdown of a quantity into lots such as tax lots, instrument series, etc. | QuantityBreakdown11 - Unknown 0..0 |
GrossTradeAmount | Principal amount of a trade (price multiplied by quantity). | AmountAndDirection29 - Optional 0..1 |
DealPrice | Amount of money for which goods or services are offered, sold, or bought. | Price4 - Required 1..1 |
TypeOfPrice | Specifies the type of transaction price. | ITypeOfPrice10Choice - Optional 0..1 |
CashMargin | Identifies whether an order is a margin order or a non-margin order. This is primarily used when sending orders to Japanese exchanges to indicate sell margin or buy to cover. The same tag could be assigned also by buy-side to indicate the intent to sell or buy margin and the sell-side to accept or reject (base on some validation criteria) the margin request. | CashMarginOrder1Code - Optional 0..1 |
Commission | Amount of money due to a party as compensation for a service. | Commission16 - Optional 0..1 |
NumberOfDaysAccrued | Number of days on which the interest rate accrues (daily accrual note). | IsoMax3Number - Optional 0..1 |
GiveUpNumberOfDays | Specifies the number of days from trade date that the counterparty on the other side of the trade should be “given up” or divulged. | IsoMax3Number - Optional 0..1 |
InterestType | Indicates whether the trade is cum interest or ex interest. | InterestType2Code - Optional 0..1 |
AccruedInterestPercentage | Interest rate that has been accrued in between coupon payment periods. | IsoPercentageRate - Optional 0..1 |
TradeRegulatoryConditionsType | Specifies the regulatory conditions type of the trade. | TradeRegulatoryConditions1Code - Optional 0..1 |
CurrencyToBuyOrSell | Account servicer is instructed to buy the indicated currency after the receipt of cash proceeds or to sell the indicated currency in order to obtain the necessary currency to fund the transaction. | ICurrencyToBuyOrSell1Choice - Optional 0..1 |
OrderOriginatorEligibility | Counterparties eligibility as defined by article 24 of the EU MiFID Directive applicable to transactions executed by investment firms for eligible counterparties. | Eligibility1Code - Optional 0..1 |
PositionEffect | Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together. | PositionEffect2Code - Optional 0..1 |
DerivativeCovered | Indicates whether the derivative product is covered or not by an underlying financial instrument position. | IsoYesNoIndicator - Optional 0..1 |
ChargeTaxBasisType | Type of charge/tax basis. | IChargeTaxBasisType1Choice - Optional 0..1 |
CapitalGainType | Specifies the type of capital gain. | IEUCapitalGainType2Choice - Optional 0..1 |
MatchStatus | Provides the matching status of the trade confirmation. | IMatchingStatus8Choice - Optional 0..1 |
CallInType | Specifies the type of pay-in call report. | CallIn1Code - Optional 0..1 |
YieldType | Type of yield at which the transaction was effected. | YieldCalculation2 - Optional 0..1 |
Reporting | Specifies that a trade is to be reported to a third party. | IReporting5Choice - Unknown 0..0 |
AdditionalPhysicalOrRegistrationDetails | Provides information required for the registration or physical settlement. | RegistrationParameters3 - Optional 0..1 |
AdditionalTradeInstructionProcessingInformation | Provides additional details of the trade process not included within structured fields of this message. | IsoMax350Text - Optional 0..1 |
AccruedInterestAmount | Interest amount that has accrued in between two periods, for example, in between interest payment periods. | AmountAndDirection29 - Optional 0..1 |
ConfirmationParties building block
Parties used for acting parties that applies either to the whole message or to individual sides. 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 %% ConfirmationParties4 recursion level 0 with max 1 ConfirmationParties4 *-- "0..0" PartyIdentificationAndAccount79 : Investor ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails2 : Buyer ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails2 : Borrower ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails2 : Seller ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails2 : Lender ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails3 : BrokerOfCredit ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails3 : IntroducingFirm ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails1 : StepInFirm ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails1 : StepOutFirm ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails6 : ClearingFirm ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails6 : ExecutingBroker ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails3 : AffirmingParty ConfirmationParties4 *-- "0..1" ConfirmationPartyDetails3 : TradeBeneficiaryParty %% 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 %% 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 %% 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 %% ConfirmationPartyDetails1 recursion level 1 with max 1 class ConfirmationPartyDetails1{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails1 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails1 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails1 *-- "0..1" PartyTextInformation5 : AdditionalInformation %% ConfirmationPartyDetails1 recursion level 1 with max 1 class ConfirmationPartyDetails1{ ProcessingIdentification IsoMax35Text } ConfirmationPartyDetails1 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails1 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails1 *-- "0..1" PartyTextInformation5 : AdditionalInformation %% ConfirmationPartyDetails6 recursion level 1 with max 1 class ConfirmationPartyDetails6{ ProcessingIdentification IsoMax35Text InvestorProtectionAssociationMembership IsoYesNoIndicator } ConfirmationPartyDetails6 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails6 *-- "0..1" SecuritiesAccount3 : SafekeepingAccount ConfirmationPartyDetails6 *-- "0..1" IAccountIdentification3Choice : CashDetails ConfirmationPartyDetails6 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails6 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails6 *-- "0..1" ITradingPartyCapacity2Choice : PartyCapacity %% ConfirmationPartyDetails6 recursion level 1 with max 1 class ConfirmationPartyDetails6{ ProcessingIdentification IsoMax35Text InvestorProtectionAssociationMembership IsoYesNoIndicator } ConfirmationPartyDetails6 *-- "1..1" IPartyIdentification32Choice : Identification ConfirmationPartyDetails6 *-- "0..1" SecuritiesAccount3 : SafekeepingAccount ConfirmationPartyDetails6 *-- "0..1" IAccountIdentification3Choice : CashDetails ConfirmationPartyDetails6 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification ConfirmationPartyDetails6 *-- "0..1" PartyTextInformation5 : AdditionalInformation ConfirmationPartyDetails6 *-- "0..1" ITradingPartyCapacity2Choice : PartyCapacity %% 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 %% 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
ConfirmationParties4 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Investor | Party that identifies the underlying investor. | PartyIdentificationAndAccount79 - Unknown 0..0 |
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 |
BrokerOfCredit | Brokerage firm which is the commissioned broker in a multi-broker trade. | ConfirmationPartyDetails3 - Optional 0..1 |
IntroducingFirm | Broker or other intermediary with the closest association with the investor. | ConfirmationPartyDetails3 - Optional 0..1 |
StepInFirm | Brokerage firm assigned to take credit on the trade from the step-out brokerage firm. | ConfirmationPartyDetails1 - Optional 0..1 |
StepOutFirm | Brokerage firm that executes an order, but gives other firms credit and some of the commission for the trade. | ConfirmationPartyDetails1 - Optional 0..1 |
ClearingFirm | Party, also know as take up broker, that settles security transactions from another broker for a fee. | ConfirmationPartyDetails6 - Optional 0..1 |
ExecutingBroker | Party responsible for executing an order (for example, an executing or give-up broker). Usually a commission is charged to the client for executing an order. | ConfirmationPartyDetails6 - Optional 0..1 |
AffirmingParty | Party (buyer or seller) that positively affirms the details of a previously agreed security trade confirmation. | ConfirmationPartyDetails3 - Optional 0..1 |
TradeBeneficiaryParty | Party involved in a legal proceeding, agreement, or other transaction. | ConfirmationPartyDetails3 - Optional 0..1 |
DeliveringSettlementParties building block
Identifies the chain of delivering settlement parties. 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. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SettlementParties23 recursion level 0 with max 1 SettlementParties23 *-- "0..1" PartyIdentification55 : Depository SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party1 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party2 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party3 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party4 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party5 %% PartyIdentification55 recursion level 1 with max 1 PartyIdentification55 *-- "1..1" IPartyIdentification68Choice : Identification PartyIdentification55 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification PartyIdentification55 *-- "0..1" PartyTextInformation1 : AdditionalInformation %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification
SettlementParties23 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Depository | First party in the settlement chain. In a plain vanilla settlement, it is the Central Securities Depository where the counterparty requests to receive the financial instrument or from where the counterparty delivers the financial instruments. | PartyIdentification55 - Optional 0..1 |
Party1 | Party that, in a settlement chain interacts with the depository. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party2 | Party that, in a settlement chain interacts with the party 1. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party3 | Party that, in a settlement chain interacts with the party 2. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party4 | Party that, in a settlement chain interacts with the party 3. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party5 | Party that, in a settlement chain interacts with the party 4. | PartyIdentificationAndAccount34 - Optional 0..1 |
ReceivingSettlementParties building block
Identifies the chain of receiving settlement parties. 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. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SettlementParties23 recursion level 0 with max 1 SettlementParties23 *-- "0..1" PartyIdentification55 : Depository SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party1 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party2 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party3 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party4 SettlementParties23 *-- "0..1" PartyIdentificationAndAccount34 : Party5 %% PartyIdentification55 recursion level 1 with max 1 PartyIdentification55 *-- "1..1" IPartyIdentification68Choice : Identification PartyIdentification55 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification PartyIdentification55 *-- "0..1" PartyTextInformation1 : AdditionalInformation %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification %% PartyIdentificationAndAccount34 recursion level 1 with max 1 class PartyIdentificationAndAccount34{ AdditionalInformation IsoMax350Text SafekeepingAccount IsoMax35Text } PartyIdentificationAndAccount34 *-- "1..1" IPartyIdentification32Choice : Identification PartyIdentificationAndAccount34 *-- "0..1" AlternatePartyIdentification5 : AlternateIdentification
SettlementParties23 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Depository | First party in the settlement chain. In a plain vanilla settlement, it is the Central Securities Depository where the counterparty requests to receive the financial instrument or from where the counterparty delivers the financial instruments. | PartyIdentification55 - Optional 0..1 |
Party1 | Party that, in a settlement chain interacts with the depository. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party2 | Party that, in a settlement chain interacts with the party 1. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party3 | Party that, in a settlement chain interacts with the party 2. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party4 | Party that, in a settlement chain interacts with the party 3. | PartyIdentificationAndAccount34 - Optional 0..1 |
Party5 | Party that, in a settlement chain interacts with the party 4. | PartyIdentificationAndAccount34 - 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 SecuritiesTradeConfirmationStatusAdviceV01 implementation follows a specific implementaiton pattern. First of all, SecuritiesTradeConfirmationStatusAdviceV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, SecuritiesTradeConfirmationStatusAdviceV01Document implements IOuterDocument. Because SecuritiesTradeConfirmationStatusAdviceV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type SecuritiesTradeConfirmationStatusAdviceV01.
classDiagram class IOuterRecord SecuritiesTradeConfirmationStatusAdviceV01 --|> IOuterRecord : Implements SecuritiesTradeConfirmationStatusAdviceV01Document --|> IOuterDocument~SecuritiesTradeConfirmationStatusAdviceV01~ : Implements class IOuterDocument~SecuritiesTradeConfirmationStatusAdviceV01~ { SecuritiesTradeConfirmationStatusAdviceV01 Message }
Document wrapper for serialization
The only real purpose SecuritiesTradeConfirmationStatusAdviceV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:setr.044.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using SecuritiesTradeConfirmationStatusAdviceV01.ToDocument() method. The returned SecuritiesTradeConfirmationStatusAdviceV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram SecuritiesTradeConfirmationStatusAdviceV01Document *-- SecuritiesTradeConfirmationStatusAdviceV01 : 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.044.001.01">
<SctiesTradConfStsAdvc>
<Id>
<!-- Identification inner content -->
</Id>
<Refs>
<!-- References inner content -->
</Refs>
<AffirmSts>
<!-- AffirmationStatus inner content -->
</AffirmSts>
<PrcgSts>
<!-- ProcessingStatus inner content -->
</PrcgSts>
<MtchgSts>
<!-- MatchingStatus inner content -->
</MtchgSts>
<RplcmntPrcgSts>
<!-- ReplacementProcessingStatus inner content -->
</RplcmntPrcgSts>
<CxlPrcgSts>
<!-- CancellationProcessingStatus inner content -->
</CxlPrcgSts>
<PtyTradgDtls>
<!-- PartyTradingDetails inner content -->
</PtyTradgDtls>
<CtrPtyTradgDtls>
<!-- CounterpartyTradingDetails inner content -->
</CtrPtyTradgDtls>
<ConfPties>
<!-- ConfirmationParties inner content -->
</ConfPties>
<DlvrgSttlmPties>
<!-- DeliveringSettlementParties inner content -->
</DlvrgSttlmPties>
<RcvgSttlmPties>
<!-- ReceivingSettlementParties inner content -->
</RcvgSttlmPties>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</SctiesTradConfStsAdvc>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_R0gNheQXEeCGktPI9k4Dlw_2456602"
nextVersions="_V_jSQTAjEeOUGqA1wUwNLA"
name="SecuritiesTradeConfirmationStatusAdviceV01"
definition="Scope
This message is sent from Central Matching Utility (CMU) to an executing party or an instructing party to advise the status of the SecuritiesTradeConfirmation message previously sent by the party. The status may be a processing, pending processing, affirmed or disaffirmed, cancel or replacement by an instructing party, a custodian or an affirming party, internal matching, and/or matching status.
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.
The ISO 20022 Business Application Header must be used
Usage
Initiator: In central matching the Initiator is the Central Matching Utility.
Respondent: no response is needed by the recipient of the message."
registrationStatus="Registered"
messageSet="_urpIICeJEeOCeO5e7islRQ"
xmlTag="SctiesTradConfStsAdvc"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<constraint
xmi:id="_R085cOQXEeCGktPI9k4Dlw_66859073"
nextVersions="_V_jSQzAjEeOUGqA1wUwNLA"
name="StatusPresenceRule"
definition="AffirmationStatus or ProcessingStatus or MatchingStatus or ReplacementProcessingStatus or CancellationProcessingStatus must be present."
registrationStatus="Provisionally Registered"
expression="<RuleDefinition><SimpleRule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SimpleRule"><mustBe><connector>OR</connector><BooleanRule xsi:type="Presence"><leftOperand>/AffirmationStatus</leftOperand></BooleanRule><BooleanRule xsi:type="Presence"><leftOperand>/ProcessingStatus</leftOperand></BooleanRule><BooleanRule xsi:type="Presence"><leftOperand>/MatchingStatus</leftOperand></BooleanRule><BooleanRule xsi:type="Presence"><leftOperand>/ReplacementProcessingStatus</leftOperand></BooleanRule><BooleanRule xsi:type="Presence"><leftOperand>/CancellationProcessingStatus</leftOperand></BooleanRule></mustBe></SimpleRule></RuleDefinition>" />
<messageBuildingBlock
xmi:id="_R0gNhuQXEeCGktPI9k4Dlw_1519100634"
nextVersions="_V_jSRTAjEeOUGqA1wUwNLA"
name="Identification"
definition="Information that unambiguously identifies an SecuritiesTradeConfirmationStatusAdvice 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="_R0gNh-QXEeCGktPI9k4Dlw_1063314509"
nextVersions="_V_jSRzAjEeOUGqA1wUwNLA"
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="_Adb_Z9okEeC60axPepSq7g_1299396476" />
<messageBuildingBlock
xmi:id="_R0p-gOQXEeCGktPI9k4Dlw_1323761257"
nextVersions="_V_jSSTAjEeOUGqA1wUwNLA"
name="AffirmationStatus"
definition="Provides details on the affitrmation status of a trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="AffirmSts"
complexType="_A55R5NokEeC60axPepSq7g_-1061221633" />
<messageBuildingBlock
xmi:id="_R0p-geQXEeCGktPI9k4Dlw_-1888119231"
nextVersions="_V_jSSzAjEeOUGqA1wUwNLA"
name="ProcessingStatus"
definition="Provides the processing status of a trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="PrcgSts"
complexType="_A42wEtokEeC60axPepSq7g_1414128802" />
<messageBuildingBlock
xmi:id="_R0p-guQXEeCGktPI9k4Dlw_336194724"
nextVersions="_V_jSTTAjEeOUGqA1wUwNLA"
name="MatchingStatus"
definition="Provides details on the matching status of a trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="MtchgSts"
complexType="_A4aEItokEeC60axPepSq7g_-668898951" />
<messageBuildingBlock
xmi:id="_R0p-g-QXEeCGktPI9k4Dlw_-1103109076"
nextVersions="_V_jSTzAjEeOUGqA1wUwNLA"
name="ReplacementProcessingStatus"
definition="Provides the replacement processing status of a trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="RplcmntPrcgSts"
complexType="_A5TcANokEeC60axPepSq7g_722143945" />
<messageBuildingBlock
xmi:id="_R0p-hOQXEeCGktPI9k4Dlw_-1182200619"
nextVersions="_V_jSUTAjEeOUGqA1wUwNLA"
name="CancellationProcessingStatus"
definition="Provides details on the cancellation status of a trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CxlPrcgSts"
complexType="_A4HJMtokEeC60axPepSq7g_1947058911" />
<messageBuildingBlock
xmi:id="_R0p-heQXEeCGktPI9k4Dlw_1766193623"
nextVersions="_V_jSUzAjEeOUGqA1wUwNLA"
name="PartyTradingDetails"
definition="Details of the trading party."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="PtyTradgDtls"
complexType="_App2ctokEeC60axPepSq7g_-83194478" />
<messageBuildingBlock
xmi:id="_R0zvgOQXEeCGktPI9k4Dlw_1093600034"
nextVersions="_V_jSVTAjEeOUGqA1wUwNLA"
name="CounterpartyTradingDetails"
definition="Details of the trading counterparty."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CtrPtyTradgDtls"
complexType="_App2ctokEeC60axPepSq7g_-83194478" />
<messageBuildingBlock
xmi:id="_R0zvgeQXEeCGktPI9k4Dlw_660966103"
nextVersions="_V_jSVzAjEeOUGqA1wUwNLA"
name="ConfirmationParties"
definition="Parties used for acting parties that applies either to the whole message or to individual sides."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="ConfPties"
complexType="_AeLmRNokEeC60axPepSq7g_-324873963" />
<messageBuildingBlock
xmi:id="_R0zvguQXEeCGktPI9k4Dlw_-390382216"
nextVersions="_V_jSWTAjEeOUGqA1wUwNLA"
name="DeliveringSettlementParties"
definition="Identifies the chain of delivering settlement parties."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="DlvrgSttlmPties"
complexType="_AlyDENokEeC60axPepSq7g_1741459384" />
<messageBuildingBlock
xmi:id="_R0zvg-QXEeCGktPI9k4Dlw_1254885219"
nextVersions="_V_jSWzAjEeOUGqA1wUwNLA"
name="ReceivingSettlementParties"
definition="Identifies the chain of receiving settlement parties."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="RcvgSttlmPties"
complexType="_AlyDENokEeC60axPepSq7g_1741459384" />
<messageBuildingBlock
xmi:id="_R0zvhOQXEeCGktPI9k4Dlw_1454821028"
nextVersions="_V_jSXTAjEeOUGqA1wUwNLA"
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="044"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.