TripartyCollateralStatusAdviceV01

colr.023.001.01

Scope: This message is sent by a triparty agent after the receipt of a collateral instruction from its client.

In this message, the Sender is the triparty agent and the Receiver is either the collateral taker or the collateral giver or their account servicer.

Usage: This message provides valuation results as well as the status of the proposed collateral movements (cash and securities).

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
%% TripartyCollateralStatusAdviceV01 recursion level 0 with max 0
TripartyCollateralStatusAdviceV01 *-- "1..1" TransactionIdentifications46 : TransactionInstructionIdentification
TripartyCollateralStatusAdviceV01 *-- "1..1" Pagination1 : Pagination
TripartyCollateralStatusAdviceV01 *-- "0..1" IAllocationStatus1Choice : AllocationStatus
TripartyCollateralStatusAdviceV01 *-- "0..1" ISettlementStatus27Choice : SettlementStatus
TripartyCollateralStatusAdviceV01 *-- "0..1" ICollateralStatus3Choice : CollateralStatus
TripartyCollateralStatusAdviceV01 *-- "1..1" CollateralParameters13 : GeneralParameters
TripartyCollateralStatusAdviceV01 *-- "1..1" CollateralParties8 : CollateralParties
TripartyCollateralStatusAdviceV01 *-- "1..1" DealTransactionDetails7 : DealTransactionDetails
TripartyCollateralStatusAdviceV01 *-- "1..1" CollateralDate2 : DealTransactionDate
TripartyCollateralStatusAdviceV01 *-- "0..1" SecuritiesMovement8 : SecuritiesMovement
TripartyCollateralStatusAdviceV01 *-- "0..1" CashMovement7 : CashMovement
TripartyCollateralStatusAdviceV01 *-- "0..1" SupplementaryData1 : SupplementaryData
  

Now, we will zero-in one-by-one on each of these building blocks.

TransactionInstructionIdentification building block

Provides unambiguous transaction identification information.

Provides unambiguous instruction or transaction identification information. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TransactionIdentifications46 recursion level 0 with max 1
class TransactionIdentifications46{
    ClientCollateralInstructionIdentification IsoMax35Text
    ClientCollateralTransactionIdentification IsoMax35Text
    TripartyAgentServiceProviderCollateralInstructionIdentification IsoMax35Text
    TripartyAgentServiceProviderCollateralTransactionIdentification IsoMax35Text
    CounterpartyCollateralTransactionIdentification IsoMax35Text
    CommonTransactionIdentification IsoMax52Text
}
  

TransactionIdentifications46 members

Member name Description Data Type / Multiplicity
ClientCollateralInstructionIdentification Unique reference identifying the collateral management instruction from the client’s point of view. Identifies the potential match. If not available NONREF must be used. IsoMax35Text - Required 1..1
ClientCollateralTransactionIdentification Unique reference identifying the collateral management transaction from the client’s point of view. Present in case of a decrease. IsoMax35Text - Optional 0..1
TripartyAgentServiceProviderCollateralInstructionIdentification Reference assigned to the instruction by the triparty-agent/service-provider. IsoMax35Text - Optional 0..1
TripartyAgentServiceProviderCollateralTransactionIdentification Unique reference identifying the triparty-agent/service-provider collateral management transaction from the triparty-agent’s/service-provider’s point of view. IsoMax35Text - Optional 0..1
CounterpartyCollateralTransactionIdentification Unique collateral transaction reference assigned by counterparty. IsoMax35Text - Optional 0..1
CommonTransactionIdentification Unique identification (UTI) agreed upon by the two trade counterparties to identify the trade. IsoMax52Text - Optional 0..1

Pagination building block

Page number of the message and continuation indicator to indicate that the multi-part preliminary advice is to continue or that the message is the last page of the multi-part preliminary advice. Number used to sequence pages when it is not possible for data to be conveyed in a single message and the data has to be split across several pages (messages). For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% Pagination1 recursion level 0 with max 1
class Pagination1{
    PageNumber IsoMax5NumericText
    LastPageIndicator IsoYesNoIndicator
}
  

Pagination1 members

Member name Description Data Type / Multiplicity
PageNumber Page number. IsoMax5NumericText - Required 1..1
LastPageIndicator Indicates the last page. IsoYesNoIndicator - Required 1..1

AllocationStatus building block

Provides the status of allocation of collateral to cover the instruction.

Provides the status of allocation of collateral to cover the instruction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% IAllocationStatus1Choice recursion level 0 with max 1
  

AllocationStatus1Choice members

Member name Description Data Type / Multiplicity

SettlementStatus building block

Provides the status of settlement of the transaction or the instruction. Provides the status of settlement of a transaction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% ISettlementStatus27Choice recursion level 0 with max 1
  

SettlementStatus27Choice members

Member name Description Data Type / Multiplicity

CollateralStatus building block

Provides the collateral status of an instruction.

Provides the collateral status of an instruction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% ICollateralStatus3Choice recursion level 0 with max 1
  

CollateralStatus3Choice members

Member name Description Data Type / Multiplicity

GeneralParameters building block

provides general information about the instruction and collateral transaction the message refers to.

Parameters which explicitly state the conditions that must be fulfilled before a particular triparty collateral instruction/transaction can be confirmed. These parameters are defined by the instructing party in compliance with triparty collateral rules in the market the instruction/transaction will take place.

For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CollateralParameters13 recursion level 0 with max 1
class CollateralParameters13{
    CollateralSide CollateralRole1Code
    AutomaticAllocation IsoYesNoIndicator
    CollateralApproved IsoYesNoIndicator
    SettlementApproved IsoYesNoIndicator
}
CollateralParameters13 *-- "1..1" ICollateralTransactionType1Choice : CollateralInstructionType
CollateralParameters13 *-- "1..1" IExposureType23Choice : ExposureType
CollateralParameters13 *-- "0..1" GenericIdentification30 : Priority
CollateralParameters13 *-- "0..1" CollateralAmount5 : CollateralAmount
%% ICollateralTransactionType1Choice recursion level 1 with max 1
%% IExposureType23Choice recursion level 1 with max 1
%% GenericIdentification30 recursion level 1 with max 1
class GenericIdentification30{
    Identification IsoExact4AlphaNumericText
    Issuer IsoMax35Text
    SchemeName IsoMax35Text
}
%% CollateralAmount5 recursion level 1 with max 1
CollateralAmount5 *-- "0..1" AmountAndDirection44 : RequiredMargin
CollateralAmount5 *-- "0..1" AmountAndDirection44 : Collateralised
CollateralAmount5 *-- "0..1" AmountAndDirection44 : RemainingCollateralised
CollateralAmount5 *-- "0..1" AmountAndDirection44 : Settled
CollateralAmount5 *-- "0..1" AmountAndDirection44 : RemainingSettlement
  

CollateralParameters13 members

Member name Description Data Type / Multiplicity
CollateralInstructionType Specifies the type of collateral instruction. ICollateralTransactionType1Choice - Required 1..1
ExposureType Specifies the underlying business area/type of trade causing the exposure. IExposureType23Choice - Required 1..1
CollateralSide Specifies whether the client is the collateral taker or giver. CollateralRole1Code - Required 1..1
Priority Specifies the priority with which the instruction needs to be executed. GenericIdentification30 - Optional 0..1
AutomaticAllocation Specifies whether the allocation of the collateral is manual or automatic. IsoYesNoIndicator - Optional 0..1
CollateralApproved Indicates whether the proposed collateral movements can be accepted. IsoYesNoIndicator - Optional 0..1
SettlementApproved Indicates whether the proposed collateral movements have settled or not. IsoYesNoIndicator - Optional 0..1
CollateralAmount Specifies the amount of the collateral. CollateralAmount5 - Optional 0..1

CollateralParties building block

Identifies the chain of collateral parties.

Choice of format for the trading capacity. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CollateralParties8 recursion level 0 with max 1
CollateralParties8 *-- "1..1" PartyIdentificationAndAccount202 : PartyA
CollateralParties8 *-- "0..1" PartyIdentificationAndAccount193 : ClientPartyA
CollateralParties8 *-- "1..1" PartyIdentificationAndAccount203 : PartyB
CollateralParties8 *-- "0..1" PartyIdentificationAndAccount193 : ClientPartyB
CollateralParties8 *-- "0..1" PartyIdentification136 : TripartyAgent
%% PartyIdentificationAndAccount202 recursion level 1 with max 1
class PartyIdentificationAndAccount202{
    LEI IsoLEIIdentifier
}
PartyIdentificationAndAccount202 *-- "1..1" IPartyIdentification120Choice : Identification
PartyIdentificationAndAccount202 *-- "0..1" AlternatePartyIdentification7 : AlternateIdentification
PartyIdentificationAndAccount202 *-- "0..1" SecuritiesAccount19 : SafekeepingAccount
PartyIdentificationAndAccount202 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet
PartyIdentificationAndAccount202 *-- "0..1" PartyIdentification136 : AccountOwner
PartyIdentificationAndAccount202 *-- "0..1" ITradingPartyCapacity5Choice : PartyCapacity
%% PartyIdentificationAndAccount193 recursion level 1 with max 1
class PartyIdentificationAndAccount193{
    LEI IsoLEIIdentifier
}
PartyIdentificationAndAccount193 *-- "1..1" IPartyIdentification120Choice : Identification
PartyIdentificationAndAccount193 *-- "0..1" AlternatePartyIdentification7 : AlternateIdentification
%% PartyIdentificationAndAccount203 recursion level 1 with max 1
class PartyIdentificationAndAccount203{
    LEI IsoLEIIdentifier
}
PartyIdentificationAndAccount203 *-- "1..1" IPartyIdentification120Choice : Identification
PartyIdentificationAndAccount203 *-- "0..1" AlternatePartyIdentification7 : AlternateIdentification
PartyIdentificationAndAccount203 *-- "0..1" SecuritiesAccount19 : SafekeepingAccount
PartyIdentificationAndAccount203 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet
PartyIdentificationAndAccount203 *-- "0..1" ITradingPartyCapacity5Choice : PartyCapacity
%% PartyIdentificationAndAccount193 recursion level 1 with max 1
class PartyIdentificationAndAccount193{
    LEI IsoLEIIdentifier
}
PartyIdentificationAndAccount193 *-- "1..1" IPartyIdentification120Choice : Identification
PartyIdentificationAndAccount193 *-- "0..1" AlternatePartyIdentification7 : AlternateIdentification
%% PartyIdentification136 recursion level 1 with max 1
class PartyIdentification136{
    LEI IsoLEIIdentifier
}
PartyIdentification136 *-- "1..1" IPartyIdentification120Choice : Identification
  

CollateralParties8 members

Member name Description Data Type / Multiplicity
PartyA Instructing party sending the collateral instruction. PartyIdentificationAndAccount202 - Required 1..1
ClientPartyA Party that instructs party A to send the message. PartyIdentificationAndAccount193 - Optional 0..1
PartyB Counterparty of party A. PartyIdentificationAndAccount203 - Required 1..1
ClientPartyB Party that instructs party B to settle the instruction on its behalf. PartyIdentificationAndAccount193 - Optional 0..1
TripartyAgent Party that handles tri-party transactions. PartyIdentification136 - Optional 0..1

DealTransactionDetails building block

Specifies the information related to the deal. Details of the triparty collateral transaction deal. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% DealTransactionDetails7 recursion level 0 with max 1
DealTransactionDetails7 *-- "1..1" IClosingDate4Choice : ClosingDate
DealTransactionDetails7 *-- "0..1" CollateralAmount14 : DealDetailsAmount
%% IClosingDate4Choice recursion level 1 with max 1
%% CollateralAmount14 recursion level 1 with max 1
CollateralAmount14 *-- "0..1" AmountAndDirection49 : Transaction
CollateralAmount14 *-- "0..1" AmountAndDirection49 : Termination
CollateralAmount14 *-- "0..1" AmountAndDirection49 : Accrued
CollateralAmount14 *-- "0..1" AmountAndDirection49 : ValueSought
CollateralAmount14 *-- "0..1" AmountAndDirection49 : UndisputedTransaction
  

DealTransactionDetails7 members

Member name Description Data Type / Multiplicity
ClosingDate Closing date/time or maturity date/time of the transaction. IClosingDate4Choice - Required 1..1
DealDetailsAmount Provide deal amount details. CollateralAmount14 - Optional 0..1

DealTransactionDate building block

Identifies the dates related to the triparty collateral instruction or transactions.

Dates related to the triparty collateral instruction or transactions.

For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CollateralDate2 recursion level 0 with max 1
class CollateralDate2{
    TradeDate IsoISODate
    SettlementDate IsoISODate
}
CollateralDate2 *-- "0..1" IDateAndDateTime2Choice : RequestedExecutionDate
%% IDateAndDateTime2Choice recursion level 1 with max 1
  

CollateralDate2 members

Member name Description Data Type / Multiplicity
TradeDate Date the transaction was agreed between the trading parties. IsoISODate - Optional 0..1
RequestedExecutionDate Date/time at which the instructing party requests the instruction to be executed. IDateAndDateTime2Choice - Optional 0..1
SettlementDate Date on which the financial instruments are to be delivered or received. IsoISODate - Optional 0..1

SecuritiesMovement building block

Securities movements. Movements of securities. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% SecuritiesMovement8 recursion level 0 with max 1
class SecuritiesMovement8{
    SecuritiesMovementType ReceiveDelivery1Code
    CollateralMovement IsoYesNoIndicator
    SecuritiesMovementsApproved IsoYesNoIndicator
    PositionType IsoYesNoIndicator
    ClientSecuritiesMovementIdentification IsoMax35Text
    TripartyAgentServiceProviderSecuritiesMovementIdentification IsoMax35Text
}
SecuritiesMovement8 *-- "1..1" SecurityIdentification19 : FinancialInstrumentIdentification
SecuritiesMovement8 *-- "1..1" IQuantity51Choice : SecuritiesQuantity
SecuritiesMovement8 *-- "0..1" ISecuritiesMovementStatus1Choice : MovementStatus
SecuritiesMovement8 *-- "0..1" SecuritiesAccount19 : SafekeepingAccount
SecuritiesMovement8 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet
SecuritiesMovement8 *-- "0..1" AmountAndDirection44 : MarginedValue
%% SecurityIdentification19 recursion level 1 with max 1
class SecurityIdentification19{
    ISIN IsoISINOct2015Identifier
    Description IsoMax140Text
}
SecurityIdentification19 *-- "0..0" OtherIdentification1 : OtherIdentification
%% IQuantity51Choice recursion level 1 with max 1
%% ISecuritiesMovementStatus1Choice recursion level 1 with max 1
%% SecuritiesAccount19 recursion level 1 with max 1
class SecuritiesAccount19{
    Identification IsoMax35Text
    Name IsoMax70Text
}
SecuritiesAccount19 *-- "0..1" GenericIdentification30 : Type
%% BlockChainAddressWallet3 recursion level 1 with max 1
class BlockChainAddressWallet3{
    Identification IsoMax140Text
    Name IsoMax70Text
}
BlockChainAddressWallet3 *-- "0..1" GenericIdentification30 : Type
%% AmountAndDirection44 recursion level 1 with max 1
class AmountAndDirection44{
    Amount IsoActiveOrHistoricCurrencyAndAmount
    CreditDebitIndicator CreditDebitCode
    OriginalCurrencyAndOrderedAmount IsoActiveOrHistoricCurrencyAndAmount
}
AmountAndDirection44 *-- "0..1" ForeignExchangeTerms23 : ForeignExchangeDetails
  

SecuritiesMovement8 members

Member name Description Data Type / Multiplicity
SecuritiesMovementType Specifies whether the quantity of financial instrument are to be delivered or received ReceiveDelivery1Code - Required 1..1
FinancialInstrumentIdentification Financial instrument representing a sum of rights of the investor vis-a-vis the issuer. SecurityIdentification19 - Required 1..1
SecuritiesQuantity Quantity of financial instrument. IQuantity51Choice - Required 1..1
MovementStatus Securities movement status. ISecuritiesMovementStatus1Choice - Optional 0..1
CollateralMovement Indicates whether the financial instrument is delivered/received as collateral. IsoYesNoIndicator - Required 1..1
SecuritiesMovementsApproved Indicates whether the proposed securities movements can be accepted. IsoYesNoIndicator - Optional 0..1
PositionType Indicates whether the position is fixed (post settlement). IsoYesNoIndicator - Optional 0..1
SafekeepingAccount Account where financial instruments are maintained. SecuritiesAccount19 - Optional 0..1
BlockChainAddressOrWallet Blockchain address or wallet where digital assets are maintained. This is the equivalent of safekeeping account for digital assets. BlockChainAddressWallet3 - Optional 0..1
ClientSecuritiesMovementIdentification Reference assigned by the party A to the financial instrument movement. IsoMax35Text - Optional 0..1
TripartyAgentServiceProviderSecuritiesMovementIdentification Reference assigned by the triparty-agent/service-provider to the financial instrument movement. IsoMax35Text - Optional 0..1
MarginedValue Value of the collateral position. AmountAndDirection44 - Optional 0..1

CashMovement building block

Cash movement. Movements of cash. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CashMovement7 recursion level 0 with max 1
class CashMovement7{
    CashMovement CreditDebit3Code
    CashAmount IsoActiveCurrencyAndAmount
    CollateralMovement IsoYesNoIndicator
    CashMovementApproved IsoYesNoIndicator
    PositionType IsoYesNoIndicator
    ClientCashMovementIdentification IsoMax35Text
    TripartyAgentServiceProviderCashMovementIdentification IsoMax35Text
}
CashMovement7 *-- "0..1" ICashAccountIdentification5Choice : CashAccount
CashMovement7 *-- "0..1" ProprietaryStatusAndReason6 : MovementStatus
%% ICashAccountIdentification5Choice recursion level 1 with max 1
%% ProprietaryStatusAndReason6 recursion level 1 with max 1
ProprietaryStatusAndReason6 *-- "1..1" GenericIdentification30 : ProprietaryStatus
ProprietaryStatusAndReason6 *-- "0..0" ProprietaryReason4 : ProprietaryReason
  

CashMovement7 members

Member name Description Data Type / Multiplicity
CashMovement Specifies whether the cash amount is to be delivered or received. CreditDebit3Code - Required 1..1
CashAmount Amount of the cash movement. IsoActiveCurrencyAndAmount - Required 1..1
CashAccount Account in which cash is maintained. ICashAccountIdentification5Choice - Optional 0..1
MovementStatus Cash movement status ProprietaryStatusAndReason6 - Optional 0..1
CollateralMovement Specifies whether the amount is delivered/received as part of collateral or not. IsoYesNoIndicator - Required 1..1
CashMovementApproved Indicates whether the proposed cash movements can be accepted. IsoYesNoIndicator - Optional 0..1
PositionType Indicates whether the position is fixed (post settlement). IsoYesNoIndicator - Optional 0..1
ClientCashMovementIdentification Reference assigned by party A to the cash movement. IsoMax35Text - Optional 0..1
TripartyAgentServiceProviderCashMovementIdentification Identification assigned by the triparty-agent/service-provider to the cash movement. IsoMax35Text - 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 TripartyCollateralStatusAdviceV01 implementation follows a specific implementaiton pattern. First of all, TripartyCollateralStatusAdviceV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, TripartyCollateralStatusAdviceV01Document implements IOuterDocument. Because TripartyCollateralStatusAdviceV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type TripartyCollateralStatusAdviceV01.

classDiagram
    class IOuterRecord
    TripartyCollateralStatusAdviceV01 --|> IOuterRecord : Implements
    TripartyCollateralStatusAdviceV01Document --|> IOuterDocument~TripartyCollateralStatusAdviceV01~ : Implements
    class IOuterDocument~TripartyCollateralStatusAdviceV01~ {
        TripartyCollateralStatusAdviceV01 Message
     }
  

Document wrapper for serialization

The only real purpose TripartyCollateralStatusAdviceV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:colr.023.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using TripartyCollateralStatusAdviceV01.ToDocument() method. The returned TripartyCollateralStatusAdviceV01Document value will serialize correctly according to ISO 20022 standards.

classDiagram
    TripartyCollateralStatusAdviceV01Document *-- TripartyCollateralStatusAdviceV01 : 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:colr.023.001.01">
    <TrptyCollStsAdvc>
        <TxInstrId>
            <!-- TransactionInstructionIdentification inner content -->
        </TxInstrId>
        <Pgntn>
            <!-- Pagination inner content -->
        </Pgntn>
        <AllcnSts>
            <!-- AllocationStatus inner content -->
        </AllcnSts>
        <SttlmSts>
            <!-- SettlementStatus inner content -->
        </SttlmSts>
        <CollSts>
            <!-- CollateralStatus inner content -->
        </CollSts>
        <GnlParams>
            <!-- GeneralParameters inner content -->
        </GnlParams>
        <CollPties>
            <!-- CollateralParties inner content -->
        </CollPties>
        <DealTxDtls>
            <!-- DealTransactionDetails inner content -->
        </DealTxDtls>
        <DealTxDt>
            <!-- DealTransactionDate inner content -->
        </DealTxDt>
        <SctiesMvmnt>
            <!-- SecuritiesMovement inner content -->
        </SctiesMvmnt>
        <CshMvmnt>
            <!-- CashMovement inner content -->
        </CshMvmnt>
        <SplmtryData>
            <!-- SupplementaryData inner content -->
        </SplmtryData>
    </TrptyCollStsAdvc>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_2uaM6ys7EeySlt9bF77XfA"
  name="TripartyCollateralStatusAdviceV01"
  definition="Scope:&#xD;&#xA;This message is sent by a triparty agent after the receipt of a collateral instruction from its client.&#xD;&#xA;&#xD;&#xA;In this message, the Sender is the triparty agent and the Receiver is either the collateral taker or the collateral giver or their account servicer.&#xD;&#xA;&#xD;&#xA;Usage:&#xD;&#xA;This message provides valuation results as well as the status of the  proposed collateral movements (cash and securities)."
  registrationStatus="Registered"
  messageSet="_-NT5QSs5EeyjDaA8ufxSSw"
  xmlTag="TrptyCollStsAdvc"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <constraint
    xmi:id="_2uaM7Ss7EeySlt9bF77XfA"
    name="SettlementStatusPresenceRule"
    definition="If settlement status is absent then allocation status or collateral status must be present. "
    registrationStatus="Provisionally Registered"
    expression="&lt;RuleDefinition&gt;&lt;ComplexRule xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:type=&quot;ComplexRule&quot;&gt;&lt;mustBe&gt;&lt;connector&gt;OR&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/AllocationStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/CollateralStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/mustBe&gt;&lt;onCondition&gt;&lt;connector&gt;AND&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Absence&quot;&gt;&lt;leftOperand&gt;/SettlementStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/onCondition&gt;&lt;/ComplexRule&gt;&lt;/RuleDefinition&gt;" />
  <constraint
    xmi:id="_2uaM7ys7EeySlt9bF77XfA"
    name="CollateralStatusPresenceRule"
    definition="If collateral status is absent then allocation status or settlement status must be present. "
    registrationStatus="Provisionally Registered"
    expression="&lt;RuleDefinition&gt;&lt;ComplexRule xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:type=&quot;ComplexRule&quot;&gt;&lt;mustBe&gt;&lt;connector&gt;OR&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/AllocationStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/SettlementStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/mustBe&gt;&lt;onCondition&gt;&lt;connector&gt;AND&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Absence&quot;&gt;&lt;leftOperand&gt;/CollateralStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/onCondition&gt;&lt;/ComplexRule&gt;&lt;/RuleDefinition&gt;" />
  <constraint
    xmi:id="_2uaM8Ss7EeySlt9bF77XfA"
    name="AllocationStatusPresenceRule"
    definition="If allocation status is absent then settlement status or collateral status must be present. "
    registrationStatus="Provisionally Registered"
    expression="&lt;RuleDefinition&gt;&lt;ComplexRule xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:type=&quot;ComplexRule&quot;&gt;&lt;mustBe&gt;&lt;connector&gt;OR&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/SettlementStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/CollateralStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/mustBe&gt;&lt;onCondition&gt;&lt;connector&gt;AND&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Absence&quot;&gt;&lt;leftOperand&gt;/AllocationStatus&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/onCondition&gt;&lt;/ComplexRule&gt;&lt;/RuleDefinition&gt;" />
  <messageBuildingBlock
    xmi:id="_2uaM8ys7EeySlt9bF77XfA"
    name="TransactionInstructionIdentification"
    definition="Provides unambiguous transaction identification information.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="TxInstrId"
    complexType="_NI7BYRIqEeyZaPkaPAzTvQ" />
  <messageBuildingBlock
    xmi:id="_2uaM9Ss7EeySlt9bF77XfA"
    name="Pagination"
    definition="Page number of the message and continuation indicator to indicate that the multi-part preliminary advice is to continue or that the message is the last page of the multi-part preliminary advice."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Pgntn"
    complexType="_xhMHQa6XEees_ufOy2ci-g" />
  <messageBuildingBlock
    xmi:id="_2uaM9ys7EeySlt9bF77XfA"
    name="AllocationStatus"
    definition="Provides the status of allocation of collateral to cover the instruction.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="AllcnSts"
    complexType="_D01G0N_-EeiVRbNQx5-Vhg" />
  <messageBuildingBlock
    xmi:id="_2uaM-Ss7EeySlt9bF77XfA"
    name="SettlementStatus"
    definition="Provides the status of settlement of the transaction or the instruction."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="SttlmSts"
    complexType="_QHmxsOCbEei2UYJ62ws-Fw" />
  <messageBuildingBlock
    xmi:id="_2uaM-ys7EeySlt9bF77XfA"
    name="CollateralStatus"
    definition="Provides the collateral status of an instruction.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="CollSts"
    complexType="_K3a_kOCdEei2UYJ62ws-Fw" />
  <messageBuildingBlock
    xmi:id="_2uaM_Ss7EeySlt9bF77XfA"
    name="GeneralParameters"
    definition="provides general information about the instruction and collateral transaction the message refers to.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="GnlParams"
    complexType="_MOvFUSs9EeySlt9bF77XfA" />
  <messageBuildingBlock
    xmi:id="_2uaM_ys7EeySlt9bF77XfA"
    name="CollateralParties"
    definition="Identifies the chain of collateral parties.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="CollPties"
    complexType="_XXfF4Ss-EeySlt9bF77XfA" />
  <messageBuildingBlock
    xmi:id="_2uaNASs7EeySlt9bF77XfA"
    name="DealTransactionDetails"
    definition="Specifies the information related to the deal."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="DealTxDtls"
    complexType="_b2hQgRIlEeyLzJfz3xPQNA" />
  <messageBuildingBlock
    xmi:id="_2uaNAys7EeySlt9bF77XfA"
    name="DealTransactionDate"
    definition="Identifies the dates related to the triparty collateral instruction or transactions.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="DealTxDt"
    complexType="_qxz5MRInEeyZaPkaPAzTvQ" />
  <messageBuildingBlock
    xmi:id="_2uaNBSs7EeySlt9bF77XfA"
    name="SecuritiesMovement"
    definition="Securities movements."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="SctiesMvmnt"
    complexType="_qJOe4StEEeySlt9bF77XfA" />
  <messageBuildingBlock
    xmi:id="_2uaNBys7EeySlt9bF77XfA"
    name="CashMovement"
    definition=" Cash movement."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="CshMvmnt"
    complexType="_qliBoRIwEeydmIVkS03esw" />
  <messageBuildingBlock
    xmi:id="_2uaNCSs7EeySlt9bF77XfA"
    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="colr"
    messageFunctionality="023"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

The following items are used as building blocks to construct this message.