fxtr.030.001.03
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 %% ForeignExchangeTradeBulkStatusNotificationV03 recursion level 0 with max 0 ForeignExchangeTradeBulkStatusNotificationV03 *-- "1..1" TradeData10 : StatusDetails ForeignExchangeTradeBulkStatusNotificationV03 *-- "1..1" TradeData11 : TradeData ForeignExchangeTradeBulkStatusNotificationV03 *-- "0..1" Pagination : MessagePagination ForeignExchangeTradeBulkStatusNotificationV03 *-- "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 %% TradeData10 recursion level 0 with max 1 class TradeData10{ MessageIdentification IsoMax35Text StatusOriginator IsoMax35Text CurrentStatusSubType StatusSubType1Code CurrentStatusDateTime IsoISODateTime PreviousStatusSubType StatusSubType1Code ProductType IsoMax35Text } TradeData10 *-- "1..1" StatusAndSubStatus1 : CurrentStatus TradeData10 *-- "0..1" IStatus5Choice : PreviousStatus %% StatusAndSubStatus1 recursion level 1 with max 1 class StatusAndSubStatus1{ SubStatusCode IsoExact4AlphaNumericText } StatusAndSubStatus1 *-- "1..1" IStatus13Choice : StatusCode %% IStatus5Choice recursion level 1 with max 1
TradeData10 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. | StatusAndSubStatus1 - Required 1..1 |
CurrentStatusSubType | Additional information about the current status of the trade. | StatusSubType1Code - 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. | IStatus5Choice - Optional 0..1 |
PreviousStatusSubType | Additional information on the previous status of a trade in a central system. | StatusSubType1Code - 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 |
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 ForeignExchangeTradeBulkStatusNotificationV03 implementation follows a specific implementaiton pattern. First of all, ForeignExchangeTradeBulkStatusNotificationV03 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, ForeignExchangeTradeBulkStatusNotificationV03Document implements IOuterDocument. Because ForeignExchangeTradeBulkStatusNotificationV03 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type ForeignExchangeTradeBulkStatusNotificationV03.
classDiagram class IOuterRecord ForeignExchangeTradeBulkStatusNotificationV03 --|> IOuterRecord : Implements ForeignExchangeTradeBulkStatusNotificationV03Document --|> IOuterDocument~ForeignExchangeTradeBulkStatusNotificationV03~ : Implements class IOuterDocument~ForeignExchangeTradeBulkStatusNotificationV03~ { ForeignExchangeTradeBulkStatusNotificationV03 Message }
Document wrapper for serialization
The only real purpose ForeignExchangeTradeBulkStatusNotificationV03Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:fxtr.030.001.03’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using ForeignExchangeTradeBulkStatusNotificationV03.ToDocument() method. The returned ForeignExchangeTradeBulkStatusNotificationV03Document value will serialize correctly according to ISO 20022 standards.
classDiagram ForeignExchangeTradeBulkStatusNotificationV03Document *-- ForeignExchangeTradeBulkStatusNotificationV03 : 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.03">
<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="_1RUgUTJ5EeOd1OidA-8_VQ"
nextVersions="_sZyzIZR1Eeak6e8_Fc5fQg"
previousVersion="_9QLmwRnWEeKKXqHkeUjBbw"
name="ForeignExchangeTradeBulkStatusNotificationV03"
definition="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."
registrationStatus="Registered"
messageSet="_urpIICeJEeOCeO5e7islRQ"
xmlTag="FXTradBlkStsNtfctn"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_1RUgUzJ5EeOd1OidA-8_VQ"
nextVersions="_sZyzI5R1Eeak6e8_Fc5fQg"
previousVersion="_9QLmwxnWEeKKXqHkeUjBbw"
name="StatusDetails"
definition="Information on the status of the trade in the central system.
"
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="StsDtls"
complexType="_wUKTwR3dEeKXIbeXfdPzuw" />
<messageBuildingBlock
xmi:id="_1RUgVTJ5EeOd1OidA-8_VQ"
nextVersions="_sZyzJZR1Eeak6e8_Fc5fQg"
previousVersion="_9QLmxxnWEeKKXqHkeUjBbw"
name="TradeData"
definition="Identifies one or more trades for which the status notification is sent.
"
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="TradData"
complexType="_KCvS0VBgEeOenoknK_-H2g" />
<messageBuildingBlock
xmi:id="_1RUgVzJ5EeOd1OidA-8_VQ"
nextVersions="_sZyzJ5R1Eeak6e8_Fc5fQg"
previousVersion="_9QLmyxnWEeKKXqHkeUjBbw"
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="_1RUgWTJ5EeOd1OidA-8_VQ"
nextVersions="_sZyzKZR1Eeak6e8_Fc5fQg"
previousVersion="_ghz5LSnBEeKqmMA7_Y42sg"
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="03" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.