SecuritiesTradeConfirmationStatusAdviceV01

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&#xD;&#xA;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.&#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. The executing party is typically the broker/dealer or an intermediary system/vendor communicating on behalf of the broker/dealer.&#xD;&#xA;The ISO 20022 Business Application Header must be used&#xD;&#xA;Usage&#xD;&#xA;Initiator: In central matching the Initiator is the Central Matching Utility.&#xD;&#xA;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="&lt;RuleDefinition&gt;&lt;SimpleRule xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:type=&quot;SimpleRule&quot;&gt;&lt;mustBe&gt;&lt;connector&gt;OR&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/AffirmationStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/ProcessingStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/MatchingStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/ReplacementProcessingStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/CancellationProcessingStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/mustBe&gt;&lt;/SimpleRule&gt;&lt;/RuleDefinition&gt;" />
  <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.