SecuritiesBalanceTransparencyReportV02

semt.041.001.02

Scope The SecuritiesBalanceTransparencyReport message is sent by an account servicer, such as a custodian, central securities depository or international central securities depository, to the account owner to provide holdings information for the accounts that it services, to disclose underlying details of holdings on an omnibus account that the sender owns or operates at the receiver. The receiver may also be a custodian, central securities depository, international central securities depository, and the ultimate receiver may be a registrar, transfer agent, fund company, official agent of the reported instrument(s) and/or other parties. The SecuritiesBalanceTransparencyReport message provides transparency of holdings through layers of custody chains in a consolidated statement, to allow for an efficient gathering of investor data, which, in turn, may be used to measure marketing effectiveness, validation of compliance with prospectuses and regulatory requirements, and the calculation of trailer fees and other retrocessions. Usage The SecuritiesBalanceTransparencyReport message is used to provide aggregated holdings information and a breakdown of holdings information. A sender of the SecuritiesBalanceTransparencyReport message will identify its own safekeeping account (for example, an omnibus account in the ledger of the receiver) and holdings information at the level of account(s) for which the sender is the account servicer (that is, in the ledger of the sender). When relevant, the sender will aggregate its holdings information with holdings information of one or more sub levels and sub-sub levels of accounts, that is, with holdings information the sender has received from the owner(s) of the account(s) for which the sender is the account servicer. A sender of the SecuritiesBalanceTransparencyReport message may also use it to send statements to its account owning customers, and these can be enrichments of statements that the respective account owners have previously provided to the sender. Ultimately, the statement reaches the relevant fund company, for example, the transfer agent, that may use it for obtaining information about the custodians, distributors and commercial agreement references associated with holdings on an omnibus account at the ultimate place of safekeeping, for example, a central securities depository (CSD) or a register of shareholders. When the message is sent by the owner of the account specified in SafekeepingAccountAndHoldings/AccountIdentification, the message will disclose holding details of the underlying owner(s) of the sender’s holdings with the receiver. This direction is commonly referred to as ‘downstream’. When the sender is the account servicer of an account owned by the receiver, for example, the account in AccountSubLevel1/AccountIdentification or AccountSubLevel2/AccountIdentification, the message is providing a statement of the receiver’s holdings with sender. This direction is commonly referred to as ‘upstream’, and the safekeeping account should identify the ultimate place of safekeeping (for example, an account in a transfer agent’s register of shareholders).

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
%% SecuritiesBalanceTransparencyReportV02 recursion level 0 with max 0
SecuritiesBalanceTransparencyReportV02 *-- "1..1" MessageIdentification1 : MessageIdentification
SecuritiesBalanceTransparencyReportV02 *-- "1..1" PartyIdentification100 : SenderIdentification
SecuritiesBalanceTransparencyReportV02 *-- "0..1" PartyIdentification100 : ReceiverIdentification
SecuritiesBalanceTransparencyReportV02 *-- "1..1" Pagination : Pagination
SecuritiesBalanceTransparencyReportV02 *-- "1..1" Statement59 : StatementGeneralDetails
SecuritiesBalanceTransparencyReportV02 *-- "0..1" SafekeepingAccount7 : SafekeepingAccountAndHoldings
SecuritiesBalanceTransparencyReportV02 *-- "0..1" SupplementaryData1 : SupplementaryData
  

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

MessageIdentification building block

Unique and unambiguous identification of the message. When the report has multiple pages, one message equals one page. Therefore, the MessageIdentification uniquely identifies the page. Identifies a message by a unique identifier and the date and time when the message was created by the sender. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% MessageIdentification1 recursion level 0 with max 1
class MessageIdentification1{
    Identification IsoMax35Text
    CreationDateTime IsoISODateTime
}
  

MessageIdentification1 members

Member name Description Data Type / Multiplicity
Identification Identification of the message. IsoMax35Text - Required 1..1
CreationDateTime Date of creation of the message. IsoISODateTime - Required 1..1

SenderIdentification building block

Identification of the party that is the sender of the message. Identification of the party. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% PartyIdentification100 recursion level 0 with max 1
class PartyIdentification100{
    LEI IsoLEIIdentifier
}
PartyIdentification100 *-- "1..1" IPartyIdentification71Choice : Identification
%% IPartyIdentification71Choice recursion level 1 with max 1
  

PartyIdentification100 members

Member name Description Data Type / Multiplicity
Identification Unique identification of the party. IPartyIdentification71Choice - Required 1..1
LEI Legal entity identification as an alternate identification for a party. IsoLEIIdentifier - Optional 0..1

ReceiverIdentification building block

Identification of the party that is the receiver of the message. Identification of the party. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% PartyIdentification100 recursion level 0 with max 1
class PartyIdentification100{
    LEI IsoLEIIdentifier
}
PartyIdentification100 *-- "1..1" IPartyIdentification71Choice : Identification
%% IPartyIdentification71Choice recursion level 1 with max 1
  

PartyIdentification100 members

Member name Description Data Type / Multiplicity
Identification Unique identification of the party. IPartyIdentification71Choice - Required 1..1
LEI Legal entity identification as an alternate identification for a party. IsoLEIIdentifier - Optional 0..1

Pagination building block

Page number of the message (within a statement) and continuation indicator to indicate that the statement is to continue or that the message is the last page of the statement. 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
%% Pagination recursion level 0 with max 1
class Pagination{
    PageNumber IsoMax5NumericText
    LastPageIndicator IsoYesNoIndicator
}
  

Pagination 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 statement. General characteristics related to a statement which reports information for a precise date. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% Statement59 recursion level 0 with max 1
class Statement59{
    SenderBusinessRole SenderBusinessRole1Code
    QueryReference IsoMax35Text
    StatementIdentification IsoMax35Text
    FrequencyGranularity FrequencyGranularityType1Code
    ActivityIndicator IsoYesNoIndicator
}
Statement59 *-- "0..1" INumber3Choice : StatementNumber
Statement59 *-- "1..1" IDateAndDateTimeChoice : StatementDateTime
Statement59 *-- "1..1" IDatePeriod1Choice : StatementPeriod
Statement59 *-- "0..1" IFrequency22Choice : Frequency
Statement59 *-- "0..1" IUpdateType4Choice : UpdateType
%% INumber3Choice recursion level 1 with max 1
%% IDateAndDateTimeChoice recursion level 1 with max 1
%% IDatePeriod1Choice recursion level 1 with max 1
%% IFrequency22Choice recursion level 1 with max 1
%% IUpdateType4Choice recursion level 1 with max 1
  

Statement59 members

Member name Description Data Type / Multiplicity
SenderBusinessRole Specifies the business role of the message sender and, therefore, the business relationship between the sender and the receiver (or the interests represented by them, in those cases where another entity is acting on behalf of the sender or receiver). The message is exchanged between two entities, one being the account servicer and the other the account owner, and the message can be used with either one as the sender. SenderBusinessRole1Code - Required 1..1
StatementNumber Sequential number of the report. INumber3Choice - Optional 0..1
QueryReference Identification of the query message sent to request this statement. IsoMax35Text - Optional 0..1
StatementIdentification Reference common to all pages of the statement. IsoMax35Text - Required 1..1
StatementDateTime Date and time when the statement was created. IDateAndDateTimeChoice - Required 1..1
StatementPeriod Date period for which the statement was created. IDatePeriod1Choice - Required 1..1
Frequency Frequency of the statement. IFrequency22Choice - Optional 0..1
FrequencyGranularity Granularity of the frequency used for the reporting. FrequencyGranularityType1Code - Optional 0..1
UpdateType Specifies whether the statement is complete or contains changes only. IUpdateType4Choice - Optional 0..1
ActivityIndicator Indicates whether there is activity or updated information reported in the statement. IsoYesNoIndicator - Required 1..1

SafekeepingAccountAndHoldings building block

Details of the account, account sub-levels and the holdings. Account on which a securities entry is made. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% SafekeepingAccount7 recursion level 0 with max 1
SafekeepingAccount7 *-- "1..1" SecuritiesAccount19 : AccountIdentification
SafekeepingAccount7 *-- "1..1" PartyIdentification100 : AccountOwner
SafekeepingAccount7 *-- "1..1" PartyIdentification100 : AccountServicer
SafekeepingAccount7 *-- "0..0" BeneficialOwner2 : BeneficialOwner
SafekeepingAccount7 *-- "0..0" AggregateHoldingBalance3 : BalanceDetails
SafekeepingAccount7 *-- "0..0" AccountSubLevel11 : AccountSubLevel1
SafekeepingAccount7 *-- "0..0" AggregateHoldingBalance2 : AccountSubLevel1Difference
%% SecuritiesAccount19 recursion level 1 with max 1
class SecuritiesAccount19{
    Identification IsoMax35Text
    Name IsoMax70Text
}
SecuritiesAccount19 *-- "0..1" GenericIdentification30 : Type
%% PartyIdentification100 recursion level 1 with max 1
class PartyIdentification100{
    LEI IsoLEIIdentifier
}
PartyIdentification100 *-- "1..1" IPartyIdentification71Choice : Identification
%% PartyIdentification100 recursion level 1 with max 1
class PartyIdentification100{
    LEI IsoLEIIdentifier
}
PartyIdentification100 *-- "1..1" IPartyIdentification71Choice : Identification
%% BeneficialOwner2 recursion level 1 with max 1
class BeneficialOwner2{
    Nationality CountryCode
    DomicileCountry CountryCode
    NonDomicileCountry CountryCode
    CertificationIndicator IsoYesNoIndicator
    DeclarationDetails IsoMax350Text
}
BeneficialOwner2 *-- "1..1" PartyIdentification100 : BeneficialOwnerIdentification
BeneficialOwner2 *-- "0..1" AlternateIdentification4 : AdditionalIdentification
BeneficialOwner2 *-- "0..1" IBeneficiaryCertificationType9Choice : CertificationType
%% AggregateHoldingBalance3 recursion level 1 with max 1
AggregateHoldingBalance3 *-- "1..0" AggregateHoldingBalance1 : BalanceForAccount
AggregateHoldingBalance3 *-- "0..0" Intermediary29 : Agent
%% AccountSubLevel11 recursion level 1 with max 1
AccountSubLevel11 *-- "1..1" SecuritiesAccount19 : AccountIdentification
AccountSubLevel11 *-- "1..1" PartyIdentification100 : AccountOwner
AccountSubLevel11 *-- "1..1" PartyIdentification100 : AccountServicer
AccountSubLevel11 *-- "0..0" BeneficialOwner2 : BeneficialOwner
AccountSubLevel11 *-- "0..0" AggregateHoldingBalance3 : BalanceDetails
AccountSubLevel11 *-- "0..0" AccountSubLevel12 : AccountSubLevel2
AccountSubLevel11 *-- "0..0" AggregateHoldingBalance2 : AccountSubLevel2Difference
AccountSubLevel11 *-- "0..0" SupplementaryData1 : SupplementaryData
%% AggregateHoldingBalance2 recursion level 1 with max 1
AggregateHoldingBalance2 *-- "1..1" SecurityIdentification19 : FinancialInstrumentIdentification
AggregateHoldingBalance2 *-- "1..0" FinancialInstrumentAggregateBalance1 : BalanceForFinancialInstrument
AggregateHoldingBalance2 *-- "0..0" SupplementaryData1 : SupplementaryData
  

SafekeepingAccount7 members

Member name Description Data Type / Multiplicity
AccountIdentification Unique and unambiguous identification for the account between the account owner and the account servicer. SecuritiesAccount19 - Required 1..1
AccountOwner Party that legally owns the account. PartyIdentification100 - Required 1..1
AccountServicer Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account. PartyIdentification100 - Required 1..1
BeneficialOwner Individual or entity that is ultimately entitled to the benefit of income and rights in a financial instrument, as opposed to a nominal or legal owner. BeneficialOwner2 - Unknown 0..0
BalanceDetails Report on the net position of a financial instrument on the account, for a certain date. The agent, for example, a trade intermediary, may also be specified. AggregateHoldingBalance3 - Unknown 0..0
AccountSubLevel1 Holdings of level 1. AccountSubLevel11 - Unknown 0..0
AccountSubLevel1Difference Difference in holdings between the safekeeping account and the sub-accounts of level 1. AggregateHoldingBalance2 - Unknown 0..0

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 SecuritiesBalanceTransparencyReportV02 implementation follows a specific implementaiton pattern. First of all, SecuritiesBalanceTransparencyReportV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, SecuritiesBalanceTransparencyReportV02Document implements IOuterDocument. Because SecuritiesBalanceTransparencyReportV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type SecuritiesBalanceTransparencyReportV02.

classDiagram
    class IOuterRecord
    SecuritiesBalanceTransparencyReportV02 --|> IOuterRecord : Implements
    SecuritiesBalanceTransparencyReportV02Document --|> IOuterDocument~SecuritiesBalanceTransparencyReportV02~ : Implements
    class IOuterDocument~SecuritiesBalanceTransparencyReportV02~ {
        SecuritiesBalanceTransparencyReportV02 Message
     }
  

Document wrapper for serialization

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

classDiagram
    SecuritiesBalanceTransparencyReportV02Document *-- SecuritiesBalanceTransparencyReportV02 : 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:semt.041.001.02">
    <SctiesBalTrnsprncyRpt>
        <MsgId>
            <!-- MessageIdentification inner content -->
        </MsgId>
        <SndrId>
            <!-- SenderIdentification inner content -->
        </SndrId>
        <RcvrId>
            <!-- ReceiverIdentification inner content -->
        </RcvrId>
        <Pgntn>
            <!-- Pagination inner content -->
        </Pgntn>
        <StmtGnlDtls>
            <!-- StatementGeneralDetails inner content -->
        </StmtGnlDtls>
        <SfkpgAcctAndHldgs>
            <!-- SafekeepingAccountAndHoldings inner content -->
        </SfkpgAcctAndHldgs>
        <SplmtryData>
            <!-- SupplementaryData inner content -->
        </SplmtryData>
    </SctiesBalTrnsprncyRpt>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_LMa20VTQEeatgN-VQ0eFlQ"
  previousVersion="_xPhF4Ig7EeO9_8n7Pjtlag"
  name="SecuritiesBalanceTransparencyReportV02"
  definition="Scope&#xD;&#xA;The SecuritiesBalanceTransparencyReport message is sent by an account servicer, such as a custodian, central securities depository or international central securities depository, to the account owner to provide holdings information for the accounts that it services, to disclose underlying details of holdings on an omnibus account that the sender owns or operates at the receiver. The receiver may also be a custodian, central securities depository, international central securities depository, and the ultimate receiver may be a registrar, transfer agent, fund company, official agent of the reported instrument(s) and/or other parties.&#xD;&#xA;The SecuritiesBalanceTransparencyReport message provides transparency of holdings through layers of custody chains in a consolidated statement, to allow for an efficient gathering of investor data, which, in turn, may be used to measure marketing effectiveness, validation of compliance with prospectuses and regulatory requirements, and the calculation of trailer fees and other retrocessions.&#xD;&#xA;Usage&#xD;&#xA;The SecuritiesBalanceTransparencyReport message is used to provide aggregated holdings information and a breakdown of holdings information.&#xD;&#xA;A sender of the SecuritiesBalanceTransparencyReport message will identify its own safekeeping account (for example, an omnibus account in the ledger of the receiver) and holdings information at the level of account(s) for which the sender is the account servicer (that is, in the ledger of the sender). When relevant, the sender will aggregate its holdings information with holdings information of one or more sub levels and sub-sub levels of accounts, that is, with holdings information the sender has received from the owner(s) of the account(s) for which the sender is the account servicer.&#xD;&#xA;A sender of the SecuritiesBalanceTransparencyReport message may also use it to send statements to its account owning customers, and these can be enrichments of statements that the respective account owners have previously provided to the sender.&#xD;&#xA;Ultimately, the statement reaches the relevant fund company, for example, the transfer agent, that may use it for obtaining information about the custodians, distributors and commercial agreement references associated with holdings on an omnibus account at the ultimate place of safekeeping, for example, a central securities depository (CSD) or a register of shareholders.&#xD;&#xA;When the message is sent by the owner of the account specified in SafekeepingAccountAndHoldings/AccountIdentification, the message will disclose holding details of the underlying owner(s) of the sender’s holdings with the receiver. This direction is commonly referred to as ‘downstream’. &#xD;&#xA;When the sender is the account servicer of an account owned by the receiver, for example, the account in AccountSubLevel1/AccountIdentification or AccountSubLevel2/AccountIdentification, the message is providing a statement of the receiver’s holdings with sender. This direction is commonly referred to as ‘upstream’, and the safekeeping account should identify the ultimate place of safekeeping (for example, an account in a transfer agent's register of shareholders)."
  registrationStatus="Registered"
  messageSet="_O_9S0IgbEeOoCPu5rQ_Cew _qCumkAFwEeu2__1EbNXzuA"
  xmlTag="SctiesBalTrnsprncyRpt"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_LMa201TQEeatgN-VQ0eFlQ"
    previousVersion="_tOXzJYjUEeONZKAAW4pOaQ"
    name="MessageIdentification"
    definition="Unique and unambiguous identification of the message. When the report has multiple pages, one message equals one page. Therefore, the MessageIdentification uniquely identifies the page."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="MsgId"
    complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
  <messageBuildingBlock
    xmi:id="_LMa21VTQEeatgN-VQ0eFlQ"
    previousVersion="_tOXzJojUEeONZKAAW4pOaQ"
    name="SenderIdentification"
    definition="Identification of the party that is the sender of the message."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="SndrId"
    complexType="_QgqFw2wfEeWLq_lbZ2Mhyw" />
  <messageBuildingBlock
    xmi:id="_LMa211TQEeatgN-VQ0eFlQ"
    previousVersion="_tOXzJ4jUEeONZKAAW4pOaQ"
    name="ReceiverIdentification"
    definition="Identification of the party that is the receiver of the message."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="RcvrId"
    complexType="_QgqFw2wfEeWLq_lbZ2Mhyw" />
  <messageBuildingBlock
    xmi:id="_LMa22VTQEeatgN-VQ0eFlQ"
    previousVersion="_7HiiYIjUEeONZKAAW4pOaQ"
    name="Pagination"
    definition="Page number of the message (within a statement) and continuation indicator to indicate that the statement is to continue or that the message is the last page of the statement."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Pgntn"
    complexType="_Q65gBdp-Ed-ak6NoX_4Aeg_-21330104" />
  <messageBuildingBlock
    xmi:id="_LMa221TQEeatgN-VQ0eFlQ"
    previousVersion="_tOXzKIjUEeONZKAAW4pOaQ"
    name="StatementGeneralDetails"
    definition="Provides general information on the statement."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="StmtGnlDtls"
    complexType="_oN8KIV10Eea7JNQ75Q3JCw" />
  <messageBuildingBlock
    xmi:id="_LMa23VTQEeatgN-VQ0eFlQ"
    previousVersion="_tOXzKYjUEeONZKAAW4pOaQ"
    name="SafekeepingAccountAndHoldings"
    definition="Details of the account, account sub-levels and the holdings."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="SfkpgAcctAndHldgs"
    complexType="_9nv3AVV2Eea1MPROA61PoQ" />
  <messageBuildingBlock
    xmi:id="_LMa231TQEeatgN-VQ0eFlQ"
    previousVersion="_JnQCkVLbEeSGm-QRrvBvYg"
    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="semt"
    messageFunctionality="041"
    flavour="001"
    version="02" />
</messageDefinition>

ISO Building Blocks

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