RegulatoryTransactionReportV02

auth.008.001.02

Scope A reporting institution, eg, an investment bank, sends the RegulatoryTransactionReport to a regulator or an intermediary (eg a reporting agent), to report the transaction details of a trade that has been executed on or off-exchange. Usage The message definition can be used to report more than one transaction. The message definition can also be used to specify, on a trade by trade basis, to which authorities the transaction report(s) need to be sent using the TransactionReportMarker.

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
%% RegulatoryTransactionReportV02 recursion level 0 with max 0
RegulatoryTransactionReportV02 *-- "1..1" DocumentIdentification8 : Identification
RegulatoryTransactionReportV02 *-- "1..1" TransactionDetails3 : TransactionDetails
RegulatoryTransactionReportV02 *-- "1..1" IPartyIdentification23Choice : ReportingInstitution
RegulatoryTransactionReportV02 *-- "0..1" IPartyIdentification24Choice : ReportingAgent
RegulatoryTransactionReportV02 *-- "0..1" Extension1 : Extension
  

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

Identification building block

Identification of the RegulatoryTransactionReport. Identifies the document by providing a unique identification and optionally the date/time of the creation of the document. For comparison, see the ISO20022 official specification

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

DocumentIdentification8 members

Member name Description Data Type / Multiplicity
Identification Unique identification of the document. IsoMax35Text - Required 1..1
CreationDateTime Date/time of the creation of the document. IsoISODateTime - Optional 0..1

TransactionDetails building block

Provides details of the trade for which the transaction report is being sent. Details of the transaction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TransactionDetails3 recursion level 0 with max 1
class TransactionDetails3{
    TradeReference IsoMax70Text
    AssociatedTradeReference IsoMax70Text
    TradeDateTime IsoISODateTime
    Side OrderDriverCode
    Capacity TradingCapacity3Code
    SettlementAmount IsoActiveCurrencyAndAmount
    SettlementDate IsoISODateTime
    AdditionalInformation IsoMax350Text
}
TransactionDetails3 *-- "1..1" IPlaceOfTradeIdentification2Choice : PlaceOfTrade
TransactionDetails3 *-- "1..1" FinancialInstrument15 : FinancialInstrumentDetails
TransactionDetails3 *-- "0..10" IPartyIdentification24Choice : TransactionReportMarker
TransactionDetails3 *-- "1..1" IPartyIdentification11Choice : Counterparty
TransactionDetails3 *-- "0..1" PartyIdentification23 : Client
TransactionDetails3 *-- "1..1" IPriceRateOrAmountChoice : ExecutedTradePrice
TransactionDetails3 *-- "1..1" IUnitOrFaceAmountChoice : ExecutedTradeQuantity
TransactionDetails3 *-- "0..1" IPartyIdentification2Choice : ProxyHolder
%% IPlaceOfTradeIdentification2Choice recursion level 1 with max 1
%% FinancialInstrument15 recursion level 1 with max 1
FinancialInstrument15 *-- "1..1" ISecurityIdentification6Choice : Identification
FinancialInstrument15 *-- "0..1" SecurityInstrumentDescription2 : InstrumentDescription
FinancialInstrument15 *-- "0..1" ISecurityIdentification6Choice : UnderlyingInstrumentIdentification
%% IPartyIdentification24Choice recursion level 1 with max 1
%% IPartyIdentification11Choice recursion level 1 with max 1
%% PartyIdentification23 recursion level 1 with max 1
class PartyIdentification23{
    BICOrBEI IsoAnyBICIdentifier
}
PartyIdentification23 *-- "1..1" GenericIdentification1 : ProprietaryIdentification
PartyIdentification23 *-- "0..1" NameAndAddress5 : NameAndAddress
%% IPriceRateOrAmountChoice recursion level 1 with max 1
%% IUnitOrFaceAmountChoice recursion level 1 with max 1
%% IPartyIdentification2Choice recursion level 1 with max 1
  

TransactionDetails3 members

Member name Description Data Type / Multiplicity
TradeReference Unique identification assigned to a trade. This is the reference generated by a firm or the reference allocated by the executing system if the trade was executed automatically. IsoMax70Text - Required 1..1
AssociatedTradeReference Reference that links to other trades that are/will be sent, eg for straddles where put and call legs need to be reported together. IsoMax70Text - Unknown 0..0
PlaceOfTrade Identifies the execution venue. In the case of an exchange or a Multilateral Trading Facility (MTF), this should be identified using a MIC code. In the case of a systematic internaliser, place of trade should be identified using a BIC code. IPlaceOfTradeIdentification2Choice - Required 1..1
TradeDateTime Specifies the date/time on which the trade was executed. IsoISODateTime - Required 1..1
FinancialInstrumentDetails Provides details of the financial instrument for which the transaction report is being sent. FinancialInstrument15 - Required 1..1
Side Identifies whether the transaction was a buy or a sell from the perspective of the reporting firm. OrderDriverCode - Required 1..1
TransactionReportMarker Identifies the regulator(s) to whom the transaction report must be sent. IPartyIdentification24Choice - Collection 0..10
Counterparty Provides details of the counterparty. IPartyIdentification11Choice - Required 1..1
Client Provides details of the client. PartyIdentification23 - Optional 0..1
Capacity Identifies the trading capacity of the firm reporting the transaction, eg Agent or Principal. TradingCapacity3Code - Required 1..1
ExecutedTradePrice Specifies the currency and price at which the trade has been executed, excluding commission or accrued interest. IPriceRateOrAmountChoice - Required 1..1
ExecutedTradeQuantity Quantity of financial instrument executed by the trading party. IUnitOrFaceAmountChoice - Required 1..1
SettlementAmount The total consideration or value. IsoActiveCurrencyAndAmount - Optional 0..1
SettlementDate Identifies the intended settlement date. IsoISODateTime - Optional 0..1
ProxyHolder Provides details of the person/organisation that has the power of attorney. IPartyIdentification2Choice - Optional 0..1
AdditionalInformation Additional domestic regulatory transaction information. IsoMax350Text - Optional 0..1

ReportingInstitution building block

Identification of the firm that is legally responsible for sending the transaction report. . Choice of identification of a party. The party can be identified by giving a BIC or a proprietary code. For comparison, see the ISO20022 official specification

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

PartyIdentification23Choice members

Member name Description Data Type / Multiplicity

ReportingAgent building block

Identifies the intermediary which is reporting on behalf on the ReportingInstitution. If there is a reporting chain, then the last party should override the previous one. Choice of identification of a party. The party can be identified by providing a BIC or a MIC. For comparison, see the ISO20022 official specification

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

PartyIdentification24Choice members

Member name Description Data Type / Multiplicity

Extension 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
%% Extension1 recursion level 0 with max 1
class Extension1{
    PlaceAndName IsoMax350Text
    Text IsoMax350Text
}
  

Extension1 members

Member name Description Data Type / Multiplicity
PlaceAndName Name qualifying the information provided in the Text field, and place where this information should be inserted. IsoMax350Text - Required 1..1
Text Text of the extension. IsoMax350Text - Required 1..1

Extensibility and generalization considerations

To facilitate generalized design patterns in the system, the RegulatoryTransactionReportV02 implementation follows a specific implementaiton pattern. First of all, RegulatoryTransactionReportV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, RegulatoryTransactionReportV02Document implements IOuterDocument. Because RegulatoryTransactionReportV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type RegulatoryTransactionReportV02.

classDiagram
    class IOuterRecord
    RegulatoryTransactionReportV02 --|> IOuterRecord : Implements
    RegulatoryTransactionReportV02Document --|> IOuterDocument~RegulatoryTransactionReportV02~ : Implements
    class IOuterDocument~RegulatoryTransactionReportV02~ {
        RegulatoryTransactionReportV02 Message
     }
  

Document wrapper for serialization

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

classDiagram
    RegulatoryTransactionReportV02Document *-- RegulatoryTransactionReportV02 : 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:auth.008.001.02">
    <RgltryTxRpt>
        <Id>
            <!-- Identification inner content -->
        </Id>
        <TxDtls>
            <!-- TransactionDetails inner content -->
        </TxDtls>
        <RptgInstn>
            <!-- ReportingInstitution inner content -->
        </RptgInstn>
        <RptgAgt>
            <!-- ReportingAgent inner content -->
        </RptgAgt>
        <Xtnsn>
            <!-- Extension inner content -->
        </Xtnsn>
    </RgltryTxRpt>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_gKH798IFEeGllrOKQRUTYA_1289680586"
  name="RegulatoryTransactionReportV02"
  definition="Scope&#xD;&#xA;A reporting institution, eg, an investment bank, sends the RegulatoryTransactionReport to a regulator or an intermediary (eg a reporting agent), to report the transaction details of a trade that has been executed on or off-exchange.&#xD;&#xA;Usage&#xD;&#xA;The message definition can be used to report more than one transaction. The message definition can also be used to specify, on a trade by trade basis, to which authorities the transaction report(s) need to be sent using the TransactionReportMarker."
  registrationStatus="Registered"
  messageSet="_wRoFwU2rEeG_I4xRYCA_7g"
  xmlTag="RgltryTxRpt"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_gKH7-MIFEeGllrOKQRUTYA_1289680640"
    name="Identification"
    definition="Identification of the RegulatoryTransactionReport."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Id"
    complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
  <messageBuildingBlock
    xmi:id="_gKRs8MIFEeGllrOKQRUTYA_1289680605"
    name="TransactionDetails"
    definition="Provides details of the trade for which the transaction report is being sent."
    registrationStatus="Provisionally Registered"
    minOccurs="1"
    xmlTag="TxDtls"
    complexType="_S-6mMdp-Ed-ak6NoX_4Aeg_-160365271" />
  <messageBuildingBlock
    xmi:id="_gKRs8cIFEeGllrOKQRUTYA_1289680665"
    name="ReportingInstitution"
    definition="Identification of the firm that is legally responsible for sending the transaction report.&#xA;."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="RptgInstn"
    complexType="_QReIgdp-Ed-ak6NoX_4Aeg_-1086683076" />
  <messageBuildingBlock
    xmi:id="_gKRs8sIFEeGllrOKQRUTYA_1289680990"
    name="ReportingAgent"
    definition="Identifies the intermediary which is reporting on behalf on the ReportingInstitution. If there is a reporting chain, then the last party should override the previous one."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="RptgAgt"
    complexType="_QReIhNp-Ed-ak6NoX_4Aeg_-550871246" />
  <messageBuildingBlock
    xmi:id="_gKRs88IFEeGllrOKQRUTYA_1289680973"
    name="Extension"
    definition="Additional information that cannot be captured in the structured elements and/or any other specific block."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="Xtnsn"
    complexType="_Q6vvCNp-Ed-ak6NoX_4Aeg_1503007069" />
  <messageDefinitionIdentifier
    businessArea="auth"
    messageFunctionality="008"
    flavour="001"
    version="02" />
</messageDefinition>

ISO Building Blocks

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