ForeignExchangeTradeStatusNotificationV07

fxtr.008.001.07

Scope The ForeignExchangeTradeStatusNotification message is sent by a central system to the participant to notify the current status of a foreign exchange trade in the system. Usage This ForeignExchangeTradeStatusNotification message will be sent at specific times agreed upon by the central settlement system and a participant in a central settlement system.

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
%% ForeignExchangeTradeStatusNotificationV07 recursion level 0 with max 0
ForeignExchangeTradeStatusNotificationV07 *-- "1..1" TradeData15 : TradeData
ForeignExchangeTradeStatusNotificationV07 *-- "0..1" RegulatoryReporting7 : RegulatoryReporting
ForeignExchangeTradeStatusNotificationV07 *-- "0..1" SupplementaryData1 : SupplementaryData
  

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

TradeData building block

Provides information on the status of a trade in a system. Provides information on the status of a trade. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TradeData15 recursion level 0 with max 1
class TradeData15{
    MessageIdentification IsoMax35Text
    OriginatorReference IsoMax35Text
    MatchingSystemUniqueReference IsoMax35Text
    MatchingSystemMatchingReference IsoMax35Text
    MatchingSystemMatchedSideReference IsoMax35Text
    StatusOriginator IsoMax20Text
    CurrentStatusSubType StatusSubType2Code
    CurrentStatusDateTime IsoISODateTime
    PreviousStatusSubType StatusSubType2Code
    PreviousStatusDateTime IsoISODateTime
    ProductType IsoMax35Text
    SettlementSessionIdentifier IsoExact4AlphaNumericText
    SplitTradeIndicator IsoYesNoIndicator
}
TradeData15 *-- "1..1" StatusAndSubStatus2 : CurrentStatus
TradeData15 *-- "0..1" IStatus28Choice : PreviousStatus
%% StatusAndSubStatus2 recursion level 1 with max 1
class StatusAndSubStatus2{
    SubStatusCode IsoExact4AlphaNumericText
}
StatusAndSubStatus2 *-- "1..1" IStatus27Choice : StatusCode
%% IStatus28Choice recursion level 1 with max 1
  

TradeData15 members

Member name Description Data Type / Multiplicity
MessageIdentification Identification of the present message assigned by the party issuing the message. This identification must be unique amongst all messages of same type sent by the same party. IsoMax35Text - Required 1..1
OriginatorReference Represents the original reference of the instruction for which the status is given, as assigned by the participant that submitted the foreign exchange trade. IsoMax35Text - Optional 0..1
MatchingSystemUniqueReference Reference to the unique system identification assigned to the trade by the central matching system. IsoMax35Text - Required 1..1
MatchingSystemMatchingReference Unique matching identification assigned to the trade and to the matching trade from the counterparty by the central matching system. IsoMax35Text - Optional 0..1
MatchingSystemMatchedSideReference Identification to the unique reference from the central settlement system that allows the removal of alleged trades once the matched status notification for the matching side has been received. IsoMax35Text - Optional 0..1
StatusOriginator Party that assigned the status to the foreign exchange or derivative trade. IsoMax20Text - Optional 0..1
CurrentStatus Specifies the new status of a trade. StatusAndSubStatus2 - Required 1..1
CurrentStatusSubType Additional information on the current status of a trade in a central system. StatusSubType2Code - Optional 0..1
CurrentStatusDateTime Specifies the date and time at which the current status was assigned. IsoISODateTime - Optional 0..1
PreviousStatus Specifies the previous status of a trade. IStatus28Choice - Optional 0..1
PreviousStatusSubType Additional information on the previous status of a trade in a central system. StatusSubType2Code - Optional 0..1
PreviousStatusDateTime Specifies the date and time at which the previous status was assigned. IsoISODateTime - Optional 0..1
ProductType Specifies the product for which the status of the confirmation is reported. IsoMax35Text - Optional 0..1
SettlementSessionIdentifier To indicate the requested CLS Settlement Session that the related trade is part of. IsoExact4AlphaNumericText - Optional 0..1
SplitTradeIndicator To indicate if the trade is split. IsoYesNoIndicator - Optional 0..1

RegulatoryReporting building block

Information that is to be provided to trade repositories in the context of the regulatory standards around over-the-counter (OTC) derivatives, central counterparties and trade repositories. Includes data elements that can be used for reporting to trade repositories.

Usage: It is not to be used on regular trade confirmations. Although some fields, for example, unique transaction identifier and prior unique transaction identifier, might be used on regular trade confirmations. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% RegulatoryReporting7 recursion level 0 with max 1
class RegulatoryReporting7{
    ClearingThresholdIndicator IsoYesNoIndicator
    ClearedProductIdentification IsoMax35Text
    UnderlyingProductIdentifier UnderlyingProductIdentifier1Code
    AllocationIndicator AllocationIndicator1Code
    CollateralisationIndicator CollateralisationIndicator1Code
    ExecutionVenue IsoMax35Text
    NonStandardFlag IsoYesNoIndicator
    LinkSwapIdentification IsoExact42Text
    FinancialNatureOfTheCounterpartyIndicator IsoYesNoIndicator
    CollateralPortfolioIndicator IsoYesNoIndicator
    CollateralPortfolioCode IsoMax10Text
    PortfolioCompressionIndicator IsoYesNoIndicator
    CorporateSectorIndicator CorporateSectorIdentifier1Code
    TradeWithNonEEACounterpartyIndicator IsoYesNoIndicator
    IntragroupTradeIndicator IsoYesNoIndicator
    CommercialOrTreasuryFinancingIndicator IsoYesNoIndicator
    ConfirmationDateAndTimestamp IsoISODateTime
    ClearingTimestamp IsoISOTime
    AdditionalReportingInformation IsoMax210Text
}
RegulatoryReporting7 *-- "0..0" TradingSideTransactionReporting2 : TradingSideTransactionReporting
RegulatoryReporting7 *-- "0..0" CounterpartySideTransactionReporting2 : CounterpartySideTransactionReporting
RegulatoryReporting7 *-- "0..1" IPartyIdentification242Choice : CentralCounterpartyClearingHouse
RegulatoryReporting7 *-- "0..1" IPartyIdentification242Choice : ClearingBroker
RegulatoryReporting7 *-- "0..1" IPartyIdentification242Choice : ClearingExceptionParty
RegulatoryReporting7 *-- "0..1" ClearingBrokerIdentification1 : ClearingBrokerIdentification
RegulatoryReporting7 *-- "0..1" IDateAndDateTime2Choice : ExecutionTimestamp
RegulatoryReporting7 *-- "0..1" SecurityIdentification19 : FinancialInstrumentIdentification
RegulatoryReporting7 *-- "0..0" FXCommissionOrFee1 : CommissionsAndFees
%% TradingSideTransactionReporting2 recursion level 1 with max 1
class TradingSideTransactionReporting2{
    ReportingJurisdiction IsoMax35Text
}
TradingSideTransactionReporting2 *-- "0..1" IPartyIdentification242Choice : ReportingParty
TradingSideTransactionReporting2 *-- "0..0" UniqueTransactionIdentifier2 : TradingSideUniqueTransactionIdentifier
%% CounterpartySideTransactionReporting2 recursion level 1 with max 1
class CounterpartySideTransactionReporting2{
    ReportingJurisdiction IsoMax35Text
}
CounterpartySideTransactionReporting2 *-- "0..1" IPartyIdentification242Choice : ReportingParty
CounterpartySideTransactionReporting2 *-- "0..0" UniqueTransactionIdentifier2 : CounterpartySideUniqueTransactionIdentifier
%% IPartyIdentification242Choice recursion level 1 with max 1
%% IPartyIdentification242Choice recursion level 1 with max 1
%% IPartyIdentification242Choice recursion level 1 with max 1
%% ClearingBrokerIdentification1 recursion level 1 with max 1
class ClearingBrokerIdentification1{
    SideIndicator SideIndicator1Code
    ClearingBrokerIdentification IsoMax35Text
}
%% IDateAndDateTime2Choice recursion level 1 with max 1
%% SecurityIdentification19 recursion level 1 with max 1
class SecurityIdentification19{
    ISIN IsoISINOct2015Identifier
    Description IsoMax140Text
}
SecurityIdentification19 *-- "0..0" OtherIdentification1 : OtherIdentification
%% FXCommissionOrFee1 recursion level 1 with max 1
class FXCommissionOrFee1{
    Sign IsoPlusOrMinusIndicator
}
FXCommissionOrFee1 *-- "1..1" IFXAmountType1Choice : Type
FXCommissionOrFee1 *-- "1..1" IAmountOrRate4Choice : AmountOrRate
  

RegulatoryReporting7 members

Member name Description Data Type / Multiplicity
TradingSideTransactionReporting Regulatory transaction reporting information from the Trading Side party. TradingSideTransactionReporting2 - Unknown 0..0
CounterpartySideTransactionReporting Regulatory transaction reporting information from the Counterparty Side party. CounterpartySideTransactionReporting2 - Unknown 0..0
CentralCounterpartyClearingHouse Identifies an agency or separate corporation of a futures exchange responsible for settling and clearing trades, collecting and maintaining margins, regulating delivery and reporting trade data. This can also be known as a Central Counterparty (CCP). IPartyIdentification242Choice - Optional 0..1
ClearingBroker Identifies the party that is a member of the clearing house and that acts as a liaison between the investor and the Central Counterparty (CCP). IPartyIdentification242Choice - Optional 0..1
ClearingExceptionParty Identifies the party that is exempt from a clearing obligation. IPartyIdentification242Choice - Optional 0..1
ClearingBrokerIdentification Specifies the reference number assigned by the clearing broker. A distinction can be made between the reference for the Central Counterparty (CCP) leg and the reference for the client leg of the transaction. ClearingBrokerIdentification1 - Optional 0..1
ClearingThresholdIndicator Specifies whether the contract is above or below the clearing threshold. Where No indicates the contract is below the clearing threshold and Yes indicates the contract is above the clearing threshold. IsoYesNoIndicator - Optional 0..1
ClearedProductIdentification Specifies the reference number assigned by the Central Counterparty (CCP). IsoMax35Text - Optional 0..1
UnderlyingProductIdentifier Specifies the underlying product type. UnderlyingProductIdentifier1Code - Optional 0..1
AllocationIndicator Specifies whether the trade is a pre-allocation or a post-allocation trade, or whether the trade is unallocated. AllocationIndicator1Code - Optional 0..1
CollateralisationIndicator Specifies whether the transaction is collateralised. CollateralisationIndicator1Code - Optional 0..1
ExecutionVenue Specifies the trading venue of the transaction. IsoMax35Text - Optional 0..1
ExecutionTimestamp Specifies the date and time of the execution of the transaction in Coordinated Universal Time (UTC). IDateAndDateTime2Choice - Optional 0..1
NonStandardFlag Specifies whether the reportable transaction has one or more additional terms or provisions, other than those listed in the required real-time data fields, that materially affects the price of the reportable transaction. IsoYesNoIndicator - Optional 0..1
LinkSwapIdentification Specifies the common reference or correlation identification for a swap transaction where the near and far leg are confirmed separately. IsoExact42Text - Optional 0..1
FinancialNatureOfTheCounterpartyIndicator Specifies the financial nature of the reporting counterparty. IsoYesNoIndicator - Optional 0..1
CollateralPortfolioIndicator Specifies if the collateral is posted on a portfolio basis. IsoYesNoIndicator - Optional 0..1
CollateralPortfolioCode Identifies the portfolio code to which the trade belongs if the collateral is posted on a portfolio basis (and not trade by trade). IsoMax10Text - Optional 0..1
PortfolioCompressionIndicator Indicates if the trade results from portfolio compression. IsoYesNoIndicator - Optional 0..1
CorporateSectorIndicator Specifies the corporate sector of the counterparty. CorporateSectorIdentifier1Code - Optional 0..1
TradeWithNonEEACounterpartyIndicator Specifies whether the counterparty has entered into a trade with a non-European Economic Area (EEA) counterparty that is not subject to the reporting obligation. IsoYesNoIndicator - Optional 0..1
IntragroupTradeIndicator Indicate if a reported trade falls under the definition of intragroup transaction, as defined by European Securities and Markets Authority (ESMA) in the Technical Standards. IsoYesNoIndicator - Optional 0..1
CommercialOrTreasuryFinancingIndicator Specifies whether the contract is objectively measurable as directly linked to the non-financial counterparty’s commercial or treasury financing activity. IsoYesNoIndicator - Optional 0..1
FinancialInstrumentIdentification Identification of a security, as assigned under a formal or proprietary identification scheme. SecurityIdentification19 - Optional 0..1
ConfirmationDateAndTimestamp Specifies the date and time of the confirmation of the trade in Universal Time Coordinated (UTC). IsoISODateTime - Optional 0..1
ClearingTimestamp Specifies the time at which the Central Counterparty (CCP) has legally taken on the clearing of the trade in Universal Time Coordinated (UTC). IsoISOTime - Optional 0..1
CommissionsAndFees Provides the commission and fee type anf amout or rate. FXCommissionOrFee1 - Unknown 0..0
AdditionalReportingInformation Specifies additional information that might be required by the regulator. IsoMax210Text - 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 ForeignExchangeTradeStatusNotificationV07 implementation follows a specific implementaiton pattern. First of all, ForeignExchangeTradeStatusNotificationV07 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, ForeignExchangeTradeStatusNotificationV07Document implements IOuterDocument. Because ForeignExchangeTradeStatusNotificationV07 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type ForeignExchangeTradeStatusNotificationV07.

classDiagram
    class IOuterRecord
    ForeignExchangeTradeStatusNotificationV07 --|> IOuterRecord : Implements
    ForeignExchangeTradeStatusNotificationV07Document --|> IOuterDocument~ForeignExchangeTradeStatusNotificationV07~ : Implements
    class IOuterDocument~ForeignExchangeTradeStatusNotificationV07~ {
        ForeignExchangeTradeStatusNotificationV07 Message
     }
  

Document wrapper for serialization

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

classDiagram
    ForeignExchangeTradeStatusNotificationV07Document *-- ForeignExchangeTradeStatusNotificationV07 : 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:fxtr.008.001.07">
    <FXTradStsNtfctn>
        <TradData>
            <!-- TradeData inner content -->
        </TradData>
        <RgltryRptg>
            <!-- RegulatoryReporting inner content -->
        </RgltryRptg>
        <SplmtryData>
            <!-- SupplementaryData inner content -->
        </SplmtryData>
    </FXTradStsNtfctn>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_mJeVGQM-Ee2nqoJcXIhTdw"
  previousVersion="_r8LGMZR5Eeak6e8_Fc5fQg"
  name="ForeignExchangeTradeStatusNotificationV07"
  definition="Scope&#xD;&#xD;&#xA;The ForeignExchangeTradeStatusNotification message is sent by a central system to the participant to notify the current status of a foreign exchange trade in the system.&#xD;&#xD;&#xA;Usage&#xD;&#xD;&#xA;This ForeignExchangeTradeStatusNotification message will be sent at specific times agreed upon by the central settlement system and a participant in a central settlement system."
  registrationStatus="Registered"
  messageSet="_wiatARJsEeSstbhSoCHcWw"
  xmlTag="FXTradStsNtfctn"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_mJeVGwM-Ee2nqoJcXIhTdw"
    previousVersion="_r8LGM5R5Eeak6e8_Fc5fQg"
    name="TradeData"
    definition="Provides information on the status of a trade in a system."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="TradData"
    complexType="_M6hocZU8EeaYkf5FCqYMeA" />
  <messageBuildingBlock
    xmi:id="_mJeVHQM-Ee2nqoJcXIhTdw"
    previousVersion="_r8LGNZR5Eeak6e8_Fc5fQg"
    name="RegulatoryReporting"
    definition="Information that is to be provided to trade repositories in the context of the regulatory standards around over-the-counter (OTC) derivatives, central counterparties and trade repositories."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="RgltryRptg"
    complexType="_VB4PMQNwEe2-vqzwMUAewg" />
  <messageBuildingBlock
    xmi:id="_mJeVHwM-Ee2nqoJcXIhTdw"
    previousVersion="_r8LGN5R5Eeak6e8_Fc5fQg"
    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="fxtr"
    messageFunctionality="008"
    flavour="001"
    version="07" />
</messageDefinition>

ISO Building Blocks

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