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
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."
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.
."
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.