ForeignExchangeTradeBulkStatusNotificationV04

fxtr.030.001.04

Scope The ForeignExchangeTradeBulkStatusNotification message is sent by a central system to the participant to provide notification of the current status of one or more foreign exchange trades.

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
%% ForeignExchangeTradeBulkStatusNotificationV04 recursion level 0 with max 0
ForeignExchangeTradeBulkStatusNotificationV04 *-- "1..1" TradeData12 : StatusDetails
ForeignExchangeTradeBulkStatusNotificationV04 *-- "1..1" TradeData11 : TradeData
ForeignExchangeTradeBulkStatusNotificationV04 *-- "0..1" Pagination : MessagePagination
ForeignExchangeTradeBulkStatusNotificationV04 *-- "0..1" SupplementaryData1 : SupplementaryData
  

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

StatusDetails building block

Information on the status of the trade in the central system.

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

classDiagram
   direction tb
%% TradeData12 recursion level 0 with max 1
class TradeData12{
    MessageIdentification IsoMax35Text
    StatusOriginator IsoMax35Text
    CurrentStatusSubType StatusSubType2Code
    CurrentStatusDateTime IsoISODateTime
    PreviousStatusSubType StatusSubType2Code
    ProductType IsoMax35Text
    SettlementSessionIdentifier IsoExact4AlphaNumericText
    LinkedReportIdentification IsoMax35Text
}
TradeData12 *-- "1..1" StatusAndSubStatus2 : CurrentStatus
TradeData12 *-- "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
  

TradeData12 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
StatusOriginator Party that assigned the status to the foreign exchange trade. IsoMax35Text - Optional 0..1
CurrentStatus Specifies the new status of the trade. StatusAndSubStatus2 - Required 1..1
CurrentStatusSubType Additional information about the current status of the trade. StatusSubType2Code - Optional 0..1
CurrentStatusDateTime Specifies the date and time at which the current status was assigned to all the trades, unless overwritten by a date and time assigned to an individual trade. IsoISODateTime - Required 1..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
ProductType Specifies the product for which the status of the confirmation is reported, unless overwritten by a product type assigned to an individual trade. IsoMax35Text - Optional 0..1
SettlementSessionIdentifier To indicate the requested CLS settlement session that the related trade is part of. IsoExact4AlphaNumericText - Optional 0..1
LinkedReportIdentification The identification that links the quoted trades with a submitted Report issued by a central system. IsoMax35Text - Optional 0..1

TradeData building block

Identifies one or more trades for which the status notification is sent.

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

classDiagram
   direction tb
%% TradeData11 recursion level 0 with max 1
class TradeData11{
    OriginatorReference IsoMax35Text
    MatchingSystemUniqueReference IsoMax35Text
    MatchingSystemMatchingReference IsoMax35Text
    MatchingSystemMatchedSideReference IsoMax35Text
    CurrentSettlementDate IsoISODate
    NewSettlementDate IsoISODate
    CurrentStatusDateTime IsoISODateTime
    ProductType IsoMax35Text
    SettlementSessionIdentifier IsoExact4AlphaNumericText
}
TradeData11 *-- "0..1" RegulatoryReporting4 : RegulatoryReporting
%% RegulatoryReporting4 recursion level 1 with max 1
class RegulatoryReporting4{
    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
    AdditionalReportingInformation IsoMax210Text
}
RegulatoryReporting4 *-- "0..0" TradingSideTransactionReporting1 : TradingSideTransactionReporting
RegulatoryReporting4 *-- "0..0" CounterpartySideTransactionReporting1 : CounterpartySideTransactionReporting
RegulatoryReporting4 *-- "0..1" IPartyIdentification73Choice : CentralCounterpartyClearingHouse
RegulatoryReporting4 *-- "0..1" IPartyIdentification73Choice : ClearingBroker
RegulatoryReporting4 *-- "0..1" IPartyIdentification73Choice : ClearingExceptionParty
RegulatoryReporting4 *-- "0..1" ClearingBrokerIdentification1 : ClearingBrokerIdentification
RegulatoryReporting4 *-- "0..1" IDateAndDateTimeChoice : ExecutionTimestamp
  

TradeData11 members

Member name Description Data Type / Multiplicity
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 Reference to the 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 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
CurrentSettlementDate The current settlement date of the notification. IsoISODate - Optional 0..1
NewSettlementDate Settlement date has been amended. IsoISODate - Optional 0..1
CurrentStatusDateTime Specifies the date and time at which the current status was assigned to the individual trade. IsoISODateTime - Optional 0..1
ProductType Product type of the individual trade. IsoMax35Text - Optional 0..1
SettlementSessionIdentifier To indicate the requested CLS settlement session that the related trade is part of. IsoExact4AlphaNumericText - Optional 0..1
RegulatoryReporting 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. RegulatoryReporting4 - Optional 0..1

MessagePagination building block

Page number of the message (within the status report) and continuation indicator to indicate that the statement is to continue or that the message is the last page of the report. 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

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

classDiagram
    class IOuterRecord
    ForeignExchangeTradeBulkStatusNotificationV04 --|> IOuterRecord : Implements
    ForeignExchangeTradeBulkStatusNotificationV04Document --|> IOuterDocument~ForeignExchangeTradeBulkStatusNotificationV04~ : Implements
    class IOuterDocument~ForeignExchangeTradeBulkStatusNotificationV04~ {
        ForeignExchangeTradeBulkStatusNotificationV04 Message
     }
  

Document wrapper for serialization

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

classDiagram
    ForeignExchangeTradeBulkStatusNotificationV04Document *-- ForeignExchangeTradeBulkStatusNotificationV04 : 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.030.001.04">
    <FXTradBlkStsNtfctn>
        <StsDtls>
            <!-- StatusDetails inner content -->
        </StsDtls>
        <TradData>
            <!-- TradeData inner content -->
        </TradData>
        <MsgPgntn>
            <!-- MessagePagination inner content -->
        </MsgPgntn>
        <SplmtryData>
            <!-- SupplementaryData inner content -->
        </SplmtryData>
    </FXTradBlkStsNtfctn>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_sZyzIZR1Eeak6e8_Fc5fQg"
  nextVersions="_mJe8YQM-Ee2nqoJcXIhTdw"
  previousVersion="_1RUgUTJ5EeOd1OidA-8_VQ"
  name="ForeignExchangeTradeBulkStatusNotificationV04"
  definition="Scope&#xD;&#xD;&#xA;The ForeignExchangeTradeBulkStatusNotification message is sent by a central system to the participant to provide notification of the current status of one or more foreign exchange trades."
  registrationStatus="Registered"
  messageSet="_nB3wITJaEeOX98kTVpuqCw"
  xmlTag="FXTradBlkStsNtfctn"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <constraint
    xmi:id="_eMQWUJU5EeaYkf5FCqYMeA"
    nextVersions="_mJe8YwM-Ee2nqoJcXIhTdw"
    name="SettlementSessionIdentifierRule"
    definition="SettlementSessionIdentifier must only be present in StatusDetails if all of the trades within the bulk status report have been generated from a single settlement session."
    registrationStatus="Provisionally Registered" />
  <messageBuildingBlock
    xmi:id="_sZyzI5R1Eeak6e8_Fc5fQg"
    nextVersions="_mJe8ZQM-Ee2nqoJcXIhTdw"
    previousVersion="_1RUgUzJ5EeOd1OidA-8_VQ"
    name="StatusDetails"
    definition="Information on the status of the trade in the central system.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="StsDtls"
    complexType="_7KIJAZR3Eeak6e8_Fc5fQg" />
  <messageBuildingBlock
    xmi:id="_sZyzJZR1Eeak6e8_Fc5fQg"
    nextVersions="_mJe8ZwM-Ee2nqoJcXIhTdw"
    previousVersion="_1RUgVTJ5EeOd1OidA-8_VQ"
    name="TradeData"
    definition="Identifies one or more trades for which the status notification is sent.&#xD;&#xA;"
    registrationStatus="Provisionally Registered"
    minOccurs="1"
    xmlTag="TradData"
    complexType="_KCvS0VBgEeOenoknK_-H2g" />
  <messageBuildingBlock
    xmi:id="_sZyzJ5R1Eeak6e8_Fc5fQg"
    nextVersions="_mJe8aQM-Ee2nqoJcXIhTdw"
    previousVersion="_1RUgVzJ5EeOd1OidA-8_VQ"
    name="MessagePagination"
    definition="Page number of the message (within the status report) and continuation indicator to indicate that the statement is to continue or that the message is the last page of the report."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="MsgPgntn"
    complexType="_Q65gBdp-Ed-ak6NoX_4Aeg_-21330104" />
  <messageBuildingBlock
    xmi:id="_sZyzKZR1Eeak6e8_Fc5fQg"
    nextVersions="_mJe8awM-Ee2nqoJcXIhTdw"
    previousVersion="_1RUgWTJ5EeOd1OidA-8_VQ"
    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="030"
    flavour="001"
    version="04" />
</messageDefinition>

ISO Building Blocks

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