TripartyCollateralAndExposureReportV01

colr.022.001.01

Scope: This message is sent by a triparty agent to both the collateral giver and the collateral taker or to an account servicer, who manage the account at the triparty agent on behalf of a trading party, in the following circumstances:

Usage: This message is sent to provide the details of the valuation of both the collateral and the exposure.

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
%% TripartyCollateralAndExposureReportV01 recursion level 0 with max 0
TripartyCollateralAndExposureReportV01 *-- "1..1" Pagination1 : Pagination
TripartyCollateralAndExposureReportV01 *-- "1..1" Statement78 : StatementGeneralDetails
TripartyCollateralAndExposureReportV01 *-- "1..1" CollateralParties9 : CollateralParties
TripartyCollateralAndExposureReportV01 *-- "0..1" OverallCollateralDetails2 : OverallCollateralAggregation
TripartyCollateralAndExposureReportV01 *-- "0..1" ExposureTypeAggregation3 : ExposureTypeAggregation
TripartyCollateralAndExposureReportV01 *-- "0..1" CounterpartyAggregation3 : CounterpartyAggregation
TripartyCollateralAndExposureReportV01 *-- "0..1" Transaction124 : Transactions
TripartyCollateralAndExposureReportV01 *-- "0..1" TotalValueInPageAndStatement5 : AccountBaseCurrencyTotalAmounts
TripartyCollateralAndExposureReportV01 *-- "0..1" SupplementaryData1 : SupplementaryData
  

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

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

StatementGeneralDetails building block

Provides general information on the report. Characteristics of the statement. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% Statement78 recursion level 0 with max 1
class Statement78{
    StatementIdentification IsoMax35Text
    QueryReference IsoMax35Text
    CollateralSide CollateralRole1Code
    StatusType StatementStatusType1Code
    SummaryIndicator IsoYesNoIndicator
    ActivityIndicator IsoYesNoIndicator
}
Statement78 *-- "0..1" INumber3Choice : ReportNumber
Statement78 *-- "1..1" IDateAndDateTime2Choice : StatementDateTime
Statement78 *-- "1..1" IFrequency22Choice : Frequency
Statement78 *-- "1..1" IUpdateType15Choice : UpdateType
Statement78 *-- "1..1" IStatementBasis14Choice : StatementBasis
%% INumber3Choice recursion level 1 with max 1
%% IDateAndDateTime2Choice recursion level 1 with max 1
%% IFrequency22Choice recursion level 1 with max 1
%% IUpdateType15Choice recursion level 1 with max 1
%% IStatementBasis14Choice recursion level 1 with max 1
  

Statement78 members

Member name Description Data Type / Multiplicity
StatementIdentification Reference common to all pages of a statement. IsoMax35Text - Required 1..1
ReportNumber Sequential number of the report. INumber3Choice - Optional 0..1
QueryReference Identification of the SecuritiesStatementQuery message sent to request this statement. IsoMax35Text - Optional 0..1
StatementDateTime Date and time of the statement. IDateAndDateTime2Choice - Required 1..1
Frequency Frequency of the statement. IFrequency22Choice - Required 1..1
UpdateType Indicates whether the statement is complete or contains changes only. IUpdateType15Choice - Required 1..1
CollateralSide Specifies whether the client is the collateral taker or giver. CollateralRole1Code - Required 1..1
StatementBasis Specifies the basis on which the statement is prepared. IStatementBasis14Choice - Required 1..1
StatusType Specifies whether the transactions reported are pending or confirmed. StatementStatusType1Code - Optional 0..1
SummaryIndicator Indicates whether the report is a summary. If the indicator is set to Y then the report will not contain the securities or cash balances. If the indicator is set to N then the report will contain the securities or cash balances. IsoYesNoIndicator - Required 1..1
ActivityIndicator Indicates whether there is activity or information update reported in the statement. IsoYesNoIndicator - Required 1..1

CollateralParties building block

Identifies the chain of collateral parties.

Identifies the chain of collateral parties on the instruction side. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CollateralParties9 recursion level 0 with max 1
CollateralParties9 *-- "0..1" PartyIdentificationAndAccount202 : PartyA
CollateralParties9 *-- "0..1" PartyIdentificationAndAccount202 : ClientPartyA
CollateralParties9 *-- "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
%% 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
%% PartyIdentification136 recursion level 1 with max 1
class PartyIdentification136{
    LEI IsoLEIIdentifier
}
PartyIdentification136 *-- "1..1" IPartyIdentification120Choice : Identification
  

CollateralParties9 members

Member name Description Data Type / Multiplicity
PartyA Instructing party sending the collateral instruction. PartyIdentificationAndAccount202 - Optional 0..1
ClientPartyA Party that instructs party A to send the message. PartyIdentificationAndAccount202 - Optional 0..1
TripartyAgent Party that handles tri-party transactions. PartyIdentification136 - Optional 0..1

OverallCollateralAggregation building block

Overall Collateral contains the global collateral status of all transactions covered in the message, in the reporting currency, that is, the total of the exposure amount, of the posted collateral, of the margin amounts, of the accrued interest, of the fees or commissions and of the principals. In addition, it provides collateral-specific information.

Global collateral status of all transactions covered in the message, in the reporting currency, that is, the total of the exposure amount, of the posted collateral, of the margin amounts, of the accrued interest, of the fees or commissions and of the principals. In addition, it provides collateral-specific information. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% OverallCollateralDetails2 recursion level 0 with max 1
class OverallCollateralDetails2{
    MarginRate IsoPercentageRate
    GlobalCollateralStatus CollateralStatus1Code
    CollateralAdditionalDetails IsoMax350Text
}
OverallCollateralDetails2 *-- "1..1" CollateralAmount15 : ValuationAmounts
OverallCollateralDetails2 *-- "1..1" IDateAndDateTime2Choice : ValuationDate
%% CollateralAmount15 recursion level 1 with max 1
class CollateralAmount15{
    ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount
    TotalExposure IsoActiveOrHistoricCurrencyAndAmount
    TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount
    TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount
    TotalFeesCommissions IsoActiveOrHistoricCurrencyAndAmount
    TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount
}
CollateralAmount15 *-- "0..1" AmountAndDirection53 : Margin
%% IDateAndDateTime2Choice recursion level 1 with max 1
  

OverallCollateralDetails2 members

Member name Description Data Type / Multiplicity
ValuationAmounts Provides details on the collateral valuation. CollateralAmount15 - Required 1..1
MarginRate The collateral excess/shortage expressed in the percentage of the collateral required. IsoPercentageRate - Optional 0..1
GlobalCollateralStatus Provides the status after comparing the total collateral required and the total collateral value of all transactions covered in the message. CollateralStatus1Code - Optional 0..1
ValuationDate Valuation date/time of both the collateral and the exposure. IDateAndDateTime2Choice - Required 1..1
CollateralAdditionalDetails Provides additional information on the collateral. IsoMax350Text - Optional 0..1

ExposureTypeAggregation building block

Specifies the valuation details per exposure type aggregation. Specifies the valuation details per exposure type aggregation. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% ExposureTypeAggregation3 recursion level 0 with max 1
class ExposureTypeAggregation3{
    MarginRate IsoPercentageRate
    GlobalExposureTypeStatus CollateralStatus1Code
}
ExposureTypeAggregation3 *-- "1..1" IExposureType23Choice : ExposureType
ExposureTypeAggregation3 *-- "0..1" GenericIdentification30 : SettlementProcess
ExposureTypeAggregation3 *-- "1..0" CollateralAmount16 : ValuationAmounts
%% IExposureType23Choice recursion level 1 with max 1
%% GenericIdentification30 recursion level 1 with max 1
class GenericIdentification30{
    Identification IsoExact4AlphaNumericText
    Issuer IsoMax35Text
    SchemeName IsoMax35Text
}
%% CollateralAmount16 recursion level 1 with max 1
class CollateralAmount16{
    ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount
    TotalExposure IsoActiveOrHistoricCurrencyAndAmount
    TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount
    TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount
    TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount
}
CollateralAmount16 *-- "0..1" AmountAndDirection53 : Margin
  

ExposureTypeAggregation3 members

Member name Description Data Type / Multiplicity
ExposureType Specifies the underlying business area/type of trade causing the exposure. IExposureType23Choice - Required 1..1
SettlementProcess Specifies the settlement process in which the collateral will be settled. GenericIdentification30 - Optional 0..1
ValuationAmounts Provides details on the collateral valuation. CollateralAmount16 - Unknown 1..0
MarginRate The collateral excess/shortage expressed in the percentage of the collateral required. IsoPercentageRate - Optional 0..1
GlobalExposureTypeStatus Provides the status after comparing the total collateral required and the total collateral value of all transactions of the same exposure type. CollateralStatus1Code - Optional 0..1

CounterpartyAggregation building block

Specifies the valuation details per counterparty aggregation. Specifies the valuation details per counterparty aggregation. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CounterpartyAggregation3 recursion level 0 with max 1
class CounterpartyAggregation3{
    TerminationOption RepoTerminationOption1Code
    MarginRate IsoPercentageRate
    GlobalCounterpartyStatus CollateralStatus1Code
}
CounterpartyAggregation3 *-- "0..1" IOptionType6Choice : OptionType
CounterpartyAggregation3 *-- "0..1" BasketIdentificationAndEligibilitySetProfile1 : BasketIdentificationAndEligibilitySetProfile
CounterpartyAggregation3 *-- "1..1" CollateralParties11 : CollateralParties
CounterpartyAggregation3 *-- "1..0" CollateralAmount16 : ValuationAmounts
%% IOptionType6Choice recursion level 1 with max 1
%% BasketIdentificationAndEligibilitySetProfile1 recursion level 1 with max 1
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : PreferentialBasketIdentificationNumber
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : FallbackStartingBasketIdentification
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : ExclusionBasketIdentification
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : EligibilitySetProfile
%% CollateralParties11 recursion level 1 with max 1
CollateralParties11 *-- "1..1" PartyIdentification232 : PartyB
CollateralParties11 *-- "0..1" PartyIdentification232 : ClientPartyB
CollateralParties11 *-- "0..1" PartyIdentification136 : TripartyAgent
CollateralParties11 *-- "0..1" SecuritiesAccount19 : CollateralAccount
CollateralParties11 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet
%% CollateralAmount16 recursion level 1 with max 1
class CollateralAmount16{
    ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount
    TotalExposure IsoActiveOrHistoricCurrencyAndAmount
    TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount
    TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount
    TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount
}
CollateralAmount16 *-- "0..1" AmountAndDirection53 : Margin
  

CounterpartyAggregation3 members

Member name Description Data Type / Multiplicity
OptionType Specifies whether it is a Call option (right to purchase a specific underlying asset) or a Put option (right to sell a specific underlying asset). IOptionType6Choice - Optional 0..1
TerminationOption Indication whether the counterparties to the transaction have agreed to an evergreen or extendable repo. RepoTerminationOption1Code - Optional 0..1
BasketIdentificationAndEligibilitySetProfile Provides information on the baskets identification and the Eligiblity Set Profile. BasketIdentificationAndEligibilitySetProfile1 - Optional 0..1
CollateralParties Provides the identification of the party or parties associated with the collateral agreement CollateralParties11 - Required 1..1
ValuationAmounts Provides details on the collateral valuation. CollateralAmount16 - Unknown 1..0
MarginRate The collateral excess/shortage expressed in the percentage of the collateral required. IsoPercentageRate - Optional 0..1
GlobalCounterpartyStatus Provides the status after comparing the total collateral required and the total collateral value of all transactions against counterparty. CollateralStatus1Code - Optional 0..1

Transactions building block

Specifies the transaction, the collateral and related valuation details.

Details of the transactions reported. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% Transaction124 recursion level 0 with max 1
class Transaction124{
    ClientTripartyCollateralTransactionIdentification IsoMax35Text
    TripartyAgentServiceProviderCollateralTransactionIdentification IsoMax35Text
    CounterpartyCollateralTransactionReference IsoMax35Text
    CommonTransactionIdentification IsoMax52Text
    TerminationOption RepoTerminationOption1Code
    MarginRate IsoPercentageRate
    SpreadRate IsoPercentageRate
    AutomaticAllocation IsoYesNoIndicator
}
Transaction124 *-- "1..1" IExposureType23Choice : ExposureType
Transaction124 *-- "0..1" IOptionType6Choice : OptionType
Transaction124 *-- "0..1" BasketIdentificationAndEligibilitySetProfile1 : BasketIdentificationAndEligibilitySetProfile
Transaction124 *-- "1..1" CollateralParties11 : CollateralParties
Transaction124 *-- "1..1" IClosingDate4Choice : ExecutionRequestedDate
Transaction124 *-- "1..1" IClosingDate4Choice : ClosingDate
Transaction124 *-- "1..1" CollateralAmount17 : ValuationAmounts
Transaction124 *-- "0..1" IRateOrName4Choice : PricingRate
Transaction124 *-- "0..1" IInterestComputationMethodFormat4Choice : DayCountBasis
Transaction124 *-- "0..2" TransactionStatus6 : TransactionStatus
Transaction124 *-- "0..0" SecuritiesBalance3 : SecuritiesBalance
Transaction124 *-- "0..0" CashBalance15 : CashBalance
%% IExposureType23Choice recursion level 1 with max 1
%% IOptionType6Choice recursion level 1 with max 1
%% BasketIdentificationAndEligibilitySetProfile1 recursion level 1 with max 1
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : PreferentialBasketIdentificationNumber
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : FallbackStartingBasketIdentification
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : ExclusionBasketIdentification
BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : EligibilitySetProfile
%% CollateralParties11 recursion level 1 with max 1
CollateralParties11 *-- "1..1" PartyIdentification232 : PartyB
CollateralParties11 *-- "0..1" PartyIdentification232 : ClientPartyB
CollateralParties11 *-- "0..1" PartyIdentification136 : TripartyAgent
CollateralParties11 *-- "0..1" SecuritiesAccount19 : CollateralAccount
CollateralParties11 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet
%% IClosingDate4Choice recursion level 1 with max 1
%% IClosingDate4Choice recursion level 1 with max 1
%% CollateralAmount17 recursion level 1 with max 1
class CollateralAmount17{
    ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount
    TotalExposure IsoActiveOrHistoricCurrencyAndAmount
    TransactionAmount IsoActiveOrHistoricCurrencyAndAmount
    TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount
    TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount
    TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount
    TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount
    TerminationTransactionAmount IsoActiveOrHistoricCurrencyAndAmount
    TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount
}
CollateralAmount17 *-- "0..0" CollateralTransactionAmountBreakdown2 : TransactionAmountBreakdown
CollateralAmount17 *-- "0..1" AmountAndDirection53 : Margin
%% IRateOrName4Choice recursion level 1 with max 1
%% IInterestComputationMethodFormat4Choice recursion level 1 with max 1
%% TransactionStatus6 recursion level 1 with max 1
class TransactionStatus6{
    CoverageStatus CollateralStatus1Code
}
TransactionStatus6 *-- "0..1" ICollateralStatus2Choice : ExecutionStatus
%% SecuritiesBalance3 recursion level 1 with max 1
class SecuritiesBalance3{
    CollateralIndicator IsoYesNoIndicator
    SettlementStatus SecuritiesSettlementStatus3Code
    DenominationCurrency ActiveOrHistoricCurrencyCode
}
SecuritiesBalance3 *-- "1..1" SecurityIdentification19 : FinancialInstrumentIdentification
SecuritiesBalance3 *-- "1..1" IBalanceQuantity13Choice : Quantity
SecuritiesBalance3 *-- "0..1" SafeKeepingPlace3 : SafekeepingPlace
SecuritiesBalance3 *-- "0..1" PartyIdentification232 : AccountOwner
SecuritiesBalance3 *-- "0..1" SecuritiesAccount19 : SafekeepingAccount
SecuritiesBalance3 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet
SecuritiesBalance3 *-- "0..0" Rating2 : RatingDetails
SecuritiesBalance3 *-- "0..1" ForeignExchangeTerms19 : ForeignExchangeDetails
SecuritiesBalance3 *-- "0..1" ValuationsDetails1 : ValuationDetails
SecuritiesBalance3 *-- "0..0" GenericIdentification178 : TransactionLotNumber
%% CashBalance15 recursion level 1 with max 1
class CashBalance15{
    Amount IsoActiveOrHistoricCurrencyAndAmount
}
CashBalance15 *-- "0..1" ForeignExchangeTerms19 : ForeignExchangeDetails
CashBalance15 *-- "0..1" ICashAccountIdentification5Choice : CashAccount
CashBalance15 *-- "0..1" ValuationsDetails2 : ValuationDetails
CashBalance15 *-- "0..0" GenericIdentification178 : TransactionLotNumber
  

Transaction124 members

Member name Description Data Type / Multiplicity
ClientTripartyCollateralTransactionIdentification Unique reference identifying the triparty collateral management transaction from the client’s point of view. 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 - Required 1..1
CounterpartyCollateralTransactionReference 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
ExposureType Specifies the underlying business area/type of trade causing the exposure. IExposureType23Choice - Required 1..1
OptionType Specifies whether it is a Call option (right to purchase a specific underlying asset) or a Put option (right to sell a specific underlying asset). IOptionType6Choice - Optional 0..1
TerminationOption Indication whether the counterparties to the transaction have agreed to an evergreen or extendable repo. RepoTerminationOption1Code - Optional 0..1
BasketIdentificationAndEligibilitySetProfile Provides information on the baskets identification and the Eligiblity Set Profile. BasketIdentificationAndEligibilitySetProfile1 - Optional 0..1
CollateralParties Identifies the chain of collateral parties. CollateralParties11 - Required 1..1
ExecutionRequestedDate Date/time at which the party requested the initiation instruction to be executed. IClosingDate4Choice - Required 1..1
ClosingDate Closing date/time or maturity date/time of the transaction. IClosingDate4Choice - Required 1..1
ValuationAmounts Provides details on the collateral valuation. CollateralAmount17 - Required 1..1
PricingRate Interest rate to be paid on the transaction amount, as agreed between the counterparties. IRateOrName4Choice - Optional 0..1
MarginRate The collateral excess/shortage expressed in the percentage of the collateral required. IsoPercentageRate - Optional 0..1
SpreadRate Margin rate over or under an index. Feedback IsoPercentageRate - Optional 0..1
DayCountBasis Specifies the computation method of (accrued) interest of the financial instrument. IInterestComputationMethodFormat4Choice - Optional 0..1
AutomaticAllocation Specifies whether the allocation of the collateral is manual or automatic. IsoYesNoIndicator - Optional 0..1
TransactionStatus Provides the status of a transaction. TransactionStatus6 - Collection 0..2
SecuritiesBalance Quantity of securities assigned as collateral position. SecuritiesBalance3 - Unknown 0..0
CashBalance Amount of cash assigned as collateral position. CashBalance15 - Unknown 0..0

AccountBaseCurrencyTotalAmounts building block

Total valuation amounts provided in the base currency of the account Totals for the value of the holdings reported in the statement or page. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TotalValueInPageAndStatement5 recursion level 0 with max 1
class TotalValueInPageAndStatement5{
    TotalExposureValueOfPage IsoActiveOrHistoricCurrencyAndAmount
    TotalCollateralHeldValueOfPage IsoActiveOrHistoricCurrencyAndAmount
}
  

TotalValueInPageAndStatement5 members

Member name Description Data Type / Multiplicity
TotalExposureValueOfPage Total value of exposure reported in this message. IsoActiveOrHistoricCurrencyAndAmount - Optional 0..1
TotalCollateralHeldValueOfPage Total value of collateral held reported in this message. IsoActiveOrHistoricCurrencyAndAmount - 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 TripartyCollateralAndExposureReportV01 implementation follows a specific implementaiton pattern. First of all, TripartyCollateralAndExposureReportV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, TripartyCollateralAndExposureReportV01Document implements IOuterDocument. Because TripartyCollateralAndExposureReportV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type TripartyCollateralAndExposureReportV01.

classDiagram
    class IOuterRecord
    TripartyCollateralAndExposureReportV01 --|> IOuterRecord : Implements
    TripartyCollateralAndExposureReportV01Document --|> IOuterDocument~TripartyCollateralAndExposureReportV01~ : Implements
    class IOuterDocument~TripartyCollateralAndExposureReportV01~ {
        TripartyCollateralAndExposureReportV01 Message
     }
  

Document wrapper for serialization

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

classDiagram
    TripartyCollateralAndExposureReportV01Document *-- TripartyCollateralAndExposureReportV01 : 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.022.001.01">
    <TrptyCollAndXpsrRpt>
        <Pgntn>
            <!-- Pagination inner content -->
        </Pgntn>
        <StmtGnlDtls>
            <!-- StatementGeneralDetails inner content -->
        </StmtGnlDtls>
        <CollPties>
            <!-- CollateralParties inner content -->
        </CollPties>
        <OvrllCollAggtn>
            <!-- OverallCollateralAggregation inner content -->
        </OvrllCollAggtn>
        <XpsrTpAggtn>
            <!-- ExposureTypeAggregation inner content -->
        </XpsrTpAggtn>
        <CtrPtyAggtn>
            <!-- CounterpartyAggregation inner content -->
        </CtrPtyAggtn>
        <Txs>
            <!-- Transactions inner content -->
        </Txs>
        <AcctBaseCcyTtlAmts>
            <!-- AccountBaseCurrencyTotalAmounts inner content -->
        </AcctBaseCcyTtlAmts>
        <SplmtryData>
            <!-- SupplementaryData inner content -->
        </SplmtryData>
    </TrptyCollAndXpsrRpt>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_2uaM0Ss7EeySlt9bF77XfA"
  name="TripartyCollateralAndExposureReportV01"
  definition="Scope:&#xD;&#xA;This message is sent by a triparty agent to both the collateral giver and the collateral taker or to an account servicer, who manage the account at the triparty agent on behalf of a trading party, in the following circumstances:&#xD;&#xA;- after all collateral movements have been affected (after settlement-initiated) to show the end (fixed) positions (current status) or,&#xD;&#xA;- taking into account all collateral management instructions (including pending initiation and/or initiated.&#xD;&#xA;&#xD;&#xA;Usage:&#xD;&#xA;This message is sent to provide the details of the valuation of both the collateral and the exposure."
  registrationStatus="Registered"
  messageSet="_-NT5QSs5EeyjDaA8ufxSSw"
  xmlTag="TrptyCollAndXpsrRpt"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <doclet
    xmi:id="_2uaM0ys7EeySlt9bF77XfA"
    type="purpose"
    content="Triparty Scenario's&#xD;&#xA;The triparty collateral management service is used by two trading parties at the agreement of a business transaction (for example, a repo, a securities loan, ... ) when they want to secure the transaction with collateral. The management of this collateral (that is, agreeing on quantity and type, marking to market, ... ) is done by a third party, the triparty collateral manager.&#xD;&#xA;&#xD;&#xA;Before starting to use these services, the three parties will first sign a contract in which they stipulate the rules of the agreement.&#xD;&#xA;&#xD;&#xA;There are three types of triparty collateral management:&#xD;&#xA;&#xD;&#xA;1.collateral management without settlement,&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;2.collateral management with settlement of the collateral on the books of the agent,&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;3.collateral management with external settlement.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;In the first scenario the triparty agent will calculate the necessary quantity of collateral and instruct the trading parties on which movements need to occur. For example, party A and party B closed a repo deal for 1,000,000 USD. They inform the triparty agent of the deal details. The agent will then calculate which pieces of collateral need to be moved to cover the 1,000,000 USD exposure and will inform the trading parties. Parties A and B then settle the movements as instructed by the agent.&#xD;&#xA;&#xD;&#xA;In the second scenario the triparty agent will also execute the settlement. By servicing a safekeeping account for both parties, the agent will not only calculate the necessary movements but will also settle them internally on its books.&#xD;&#xA;&#xD;&#xA;The third scenario is only a slight deviation from the second one. In this case the agent has the authority to move securities from party A's and B's safekeeping accounts with their respective subcustodians.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Tri-party Definitions&#xD;&#xA;Collateral Management Transaction&#xD;&#xA;The triparty agent will create this transaction on receipt of the deal information from the two trading parties. For example, when party A and B have agreed on a securities loan and have reported this information to the triparty agent, the agent will create a collateral management transaction to manage this securities loan on its internal systems.&#xD;&#xA;&#xD;&#xA;A transaction is created, can be changed and is terminated.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Collateral Management Instruction&#xD;&#xA;The trading parties will request the triparty manager to perform certain instructions on the collateral management transaction. An instruction can be to initiate a transaction, modify the terms of a transaction, or close a transaction (non-exhaustive list of instructions). The triparty agent will send feedback on the requested instruction.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Lifecycle of Collateral Management Transaction&#xD;&#xA;When a transaction is initiated, agreed on by both parties, accepted and declared valid by the triparty agent, the lifecycle of the transaction starts. The transaction will normally last as long as the underlying deal. At the end of its lifecycle a transaction is closed.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Lifecycle of Collateral Management Instruction&#xD;&#xA;The lifecycle of a collateral management instruction starts when the user of the triparty service sends an instruction message. At receipt of the instruction message, the triparty agent will process the instruction and assign a status (that is, valid or rejected). At each step in the lifecycle of an instruction a different status will be assigned. For example, an instruction can be valid for processing or rejected because it is incorrect. If an instruction needs to be matched (for example, two initiation- instructions from party A and B need to match) it can have a status matched or unmatched. Other statuses describe the sufficiency or eligibility of the collateral.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;" />
  <constraint
    xmi:id="_2uaM1Ss7EeySlt9bF77XfA"
    name="AggregationFullRule"
    definition="Aggregation information, overall, by exposure or by counterparty,  should be provided in a complete report.&#xD;&#xA;"
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_MB9eMFy5Eeygu-I1C7HLOA"
    name="CashBalancePresenceRule"
    definition="If Summary Indicator is set to Y Cash Balance cannot 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;AND&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;Absence&quot;&gt;&lt;leftOperand&gt;/Transactions[*]/CashBalance[*]&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;/mustBe&gt;&lt;onCondition&gt;&lt;connector&gt;AND&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;EqualToValue&quot;&gt;&lt;leftOperand&gt;/StatementGeneralDetails/SummaryIndicator&lt;/leftOperand&gt;&lt;rightOperand&gt;true&lt;/rightOperand&gt;&lt;/BooleanRule&gt;&lt;/onCondition&gt;&lt;/ComplexRule&gt;&lt;/RuleDefinition&gt;" />
  <constraint
    xmi:id="_fgc3MFy5Eeygu-I1C7HLOA"
    name="CollateralIndicatorValueRule"
    definition="If Summary Indicator is set to Yes and securitiesbalance/Collateral Indicator is present and it is a securities lending, then securitiesbalance/collateral indicator must be set to No."
    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;AND&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;EqualToValue&quot;&gt;&lt;leftOperand&gt;/Transactions[*]/SecuritiesBalance[*]/CollateralIndicator&lt;/leftOperand&gt;&lt;rightOperand&gt;false&lt;/rightOperand&gt;&lt;/BooleanRule&gt;&lt;/mustBe&gt;&lt;onCondition&gt;&lt;connector&gt;AND&lt;/connector&gt;&lt;BooleanRule xsi:type=&quot;EqualToValue&quot;&gt;&lt;leftOperand&gt;/StatementGeneralDetails/SummaryIndicator&lt;/leftOperand&gt;&lt;rightOperand&gt;true&lt;/rightOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;Presence&quot;&gt;&lt;leftOperand&gt;/Transactions[*]/SecuritiesBalance[*]/CollateralIndicator&lt;/leftOperand&gt;&lt;/BooleanRule&gt;&lt;BooleanRule xsi:type=&quot;EqualToValue&quot;&gt;&lt;leftOperand&gt;/Transactions[*]/ExposureType/Code&lt;/leftOperand&gt;&lt;rightOperand&gt;SecuritiesLendingAndBorrowing&lt;/rightOperand&gt;&lt;/BooleanRule&gt;&lt;/onCondition&gt;&lt;/ComplexRule&gt;&lt;/RuleDefinition&gt;" />
  <messageBuildingBlock
    xmi:id="_2uaM2Ss7EeySlt9bF77XfA"
    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="_2uaM2ys7EeySlt9bF77XfA"
    name="StatementGeneralDetails"
    definition="Provides general information on the report."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="StmtGnlDtls"
    complexType="_SnKxcMRtEeij-rSPpvD-Tw" />
  <messageBuildingBlock
    xmi:id="_2uaM3Ss7EeySlt9bF77XfA"
    name="CollateralParties"
    definition="Identifies the chain of collateral parties.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="CollPties"
    complexType="_YHwsTSs-EeySlt9bF77XfA" />
  <messageBuildingBlock
    xmi:id="_2uaM3ys7EeySlt9bF77XfA"
    name="OverallCollateralAggregation"
    definition="Overall Collateral  contains the global collateral status of all transactions covered in the message, in the reporting currency, that is, the total of the exposure amount, of the posted collateral, of the margin amounts, of the accrued interest, of the fees or commissions and of the principals. In addition, it provides collateral-specific information.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="OvrllCollAggtn"
    complexType="_5qoZgRIlEeyLzJfz3xPQNA" />
  <messageBuildingBlock
    xmi:id="_2uaM4Ss7EeySlt9bF77XfA"
    name="ExposureTypeAggregation"
    definition="Specifies the valuation details per exposure type aggregation."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="XpsrTpAggtn"
    complexType="_Ml-goSs9EeySlt9bF77XfA" />
  <messageBuildingBlock
    xmi:id="_2uaM4ys7EeySlt9bF77XfA"
    name="CounterpartyAggregation"
    definition="Specifies the valuation details per counterparty aggregation."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="CtrPtyAggtn"
    complexType="_SZLjaSs_EeySlt9bF77XfA" />
  <messageBuildingBlock
    xmi:id="_2uaM5Ss7EeySlt9bF77XfA"
    name="Transactions"
    definition="Specifies the transaction,  the collateral and related valuation details.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="Txs"
    complexType="_M9-J0Ss9EeySlt9bF77XfA" />
  <messageBuildingBlock
    xmi:id="_2uaM5ys7EeySlt9bF77XfA"
    name="AccountBaseCurrencyTotalAmounts"
    definition="Total valuation amounts provided in the base currency of the account"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="AcctBaseCcyTtlAmts"
    complexType="_L7GM8MRrEeij-rSPpvD-Tw" />
  <messageBuildingBlock
    xmi:id="_2uaM6Ss7EeySlt9bF77XfA"
    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="022"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

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