fxtr.038.001.01
Scope The ForeignExchangeTradeConfirmationStatusAdviceAcknowledgement message is sent from a market participant to a Central matching utility (CMU) in response to the FXTradeConfirmationStatusAdvice previously sent by the CMU in the scenario of trades matched by both participants.
Usage The acknowledgement is sent by the trading member to the CMU after they received the confirmation status advice. Note that one confirmation status advice acknowledgement responds to one confirmation status advice.
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 %% ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 recursion level 0 with max 0 class ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01{ TradeDate IsoISODate TradeIdentification IsoMax35Text TradingMode TradingModeType1Code AffirmationStatus AffirmStatus1Code ConfirmationStatus TradeConfirmationStatus1Code } ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 *-- "0..1" MessageIdentification1 : AdviceAcknowledgementIdentification ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 *-- "1..1" MessageIdentification1 : RequestIdentification ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 *-- "1..1" MarketIdentification88 : MarketIdentification ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 *-- "0..1" AdditionalInformation5 : AdditionalInformation ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
AdviceAcknowledgementIdentification building block
Identification of the advice acknowledgement. Identifies a message by a unique identifier and the date and time when the message was created by the sender. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageIdentification1 recursion level 0 with max 1 class MessageIdentification1{ Identification IsoMax35Text CreationDateTime IsoISODateTime }
MessageIdentification1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Identification | Identification of the message. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date of creation of the message. | IsoISODateTime - Required 1..1 |
RequestIdentification building block
Identification of the request. Identifies a message by a unique identifier and the date and time when the message was created by the sender. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageIdentification1 recursion level 0 with max 1 class MessageIdentification1{ Identification IsoMax35Text CreationDateTime IsoISODateTime }
MessageIdentification1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Identification | Identification of the message. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date of creation of the message. | IsoISODateTime - Required 1..1 |
TradeDate building block
Specifies the date on which the trade was executed. A particular point in the progression of time in a calendar year expressed in the YYYY-MM-DD format. This representation is defined in “XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004” which is aligned with ISO 8601. For comparison, see the ISO20022 official specification This message is declared as ISODate in the ISO specification. In our implementation, it is represented in source code as IsoISODate. Due to global using directives, it is treated as a System.DateOnly by the compiler and runtime.
TradeIdentification building block
Unique reference identification assigned to the trade by the instructing party. This reference will be used throughout the trade life cycle to identify the particular trade. Specifies a character string with a maximum length of 35 characters. For comparison, see the ISO20022 official specification This message is declared as Max35Text in the ISO specification. In our implementation, it is represented in source code as IsoMax35Text. Due to global using directives, it is treated as a System.String by the compiler and runtime.
TradingMode building block
Identifies the type of the trade mode. Identifies the type of the trading mode. For comparison, see the ISO20022 official specification This message is declared as TradingModeType1Code in the ISO specification. In our implementation, it is represented in source code as TradingModeType1Code. Due to global using directives, it is treated as a System.String by the compiler and runtime.
AffirmationStatus building block
Identifies the status of the confirmation acknowledgement. Identifies the status of the confirmation acknowledgement. For comparison, see the ISO20022 official specification This message is declared as AffirmStatus1Code in the ISO specification. In our implementation, it is represented in source code as AffirmStatus1Code. Due to global using directives, it is treated as a System.String by the compiler and runtime.
ConfirmationStatus building block
Identifies the status of the confirmation. Identifies the status of the confirmation. For comparison, see the ISO20022 official specification This message is declared as TradeConfirmationStatus1Code in the ISO specification. In our implementation, it is represented in source code as TradeConfirmationStatus1Code. Due to global using directives, it is treated as a System.String by the compiler and runtime.
MarketIdentification building block
Market in which a trade transaction has been executed. Context, or geographic environment, in which trading parties may meet in order to negotiate and execute trades among themselves. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MarketIdentification88 recursion level 0 with max 1 MarketIdentification88 *-- "0..1" IMarketIdentification1Choice : Identification MarketIdentification88 *-- "1..1" IMarketType13Choice : Type %% IMarketIdentification1Choice recursion level 1 with max 1 %% IMarketType13Choice recursion level 1 with max 1
MarketIdentification88 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Identification | Code allocated to places of trade, ie, stock exchanges, regulated markets, for example, Electronic Trading Platforms (ECN), and unregulated markets, for example, Automated Trading Systems (ATS), as sources of prices and related information, in order to facilitate automated processing. | IMarketIdentification1Choice - Optional 0..1 |
Type | Nature of a market in which transactions take place. | IMarketType13Choice - Required 1..1 |
AdditionalInformation building block
Free format text string. Contains additional information related to the message. For comparison, see the ISO20022 official specification
classDiagram direction tb %% AdditionalInformation5 recursion level 0 with max 1 class AdditionalInformation5{ Information IsoMax256Text }
AdditionalInformation5 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Information | Contains additional information related to the message. | IsoMax256Text - Unknown 1..0 |
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 ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 implementation follows a specific implementaiton pattern. First of all, ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01Document implements IOuterDocument. Because ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01.
classDiagram class IOuterRecord ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 --|> IOuterRecord : Implements ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01Document --|> IOuterDocument~ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01~ : Implements class IOuterDocument~ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01~ { ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 Message }
Document wrapper for serialization
The only real purpose ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:fxtr.038.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01.ToDocument() method. The returned ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01Document *-- ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01 : 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.038.001.01">
<FXTradConfStsAdvcAck>
<AdvcAckId>
<!-- AdviceAcknowledgementIdentification inner content -->
</AdvcAckId>
<ReqId>
<!-- RequestIdentification inner content -->
</ReqId>
<TradDt>
<!-- TradeDate inner content -->
</TradDt>
<TradId>
<!-- TradeIdentification inner content -->
</TradId>
<TradgMd>
<!-- TradingMode inner content -->
</TradgMd>
<AffirmSts>
<!-- AffirmationStatus inner content -->
</AffirmSts>
<ConfSts>
<!-- ConfirmationStatus inner content -->
</ConfSts>
<MktId>
<!-- MarketIdentification inner content -->
</MktId>
<AddtlInf>
<!-- AdditionalInformation inner content -->
</AddtlInf>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</FXTradConfStsAdvcAck>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_4rvHkER_EeStEe_B2dcrqg"
name="ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01"
definition="Scope
The ForeignExchangeTradeConfirmationStatusAdviceAcknowledgement message is sent from a market participant to a Central matching utility (CMU) in response to the FXTradeConfirmationStatusAdvice previously sent by the CMU in the scenario of trades matched by both participants.

Usage
The acknowledgement is sent by the trading member to the CMU after they received the confirmation status advice. 
Note that one confirmation status advice acknowledgement responds to one confirmation status advice."
registrationStatus="Registered"
messageSet="_JAbpUQRHEeWRS-48_sRZxQ"
xmlTag="FXTradConfStsAdvcAck"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_BRy-cESAEeStEe_B2dcrqg"
name="AdviceAcknowledgementIdentification"
definition="Identification of the advice acknowledgement."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="AdvcAckId"
complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
<messageBuildingBlock
xmi:id="__tUJkESjEeS6cOLECtYLrA"
name="RequestIdentification"
definition="Identification of the request."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="ReqId"
complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
<messageBuildingBlock
xmi:id="_TqsBUESAEeStEe_B2dcrqg"
name="TradeDate"
definition="Specifies the date on which the trade was executed."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="TradDt"
simpleType="_YXSZFtp-Ed-ak6NoX_4Aeg_2032498111" />
<messageBuildingBlock
xmi:id="_qe6B0IsSEeS_1fMypAW06w"
name="TradeIdentification"
definition="Unique reference identification assigned to the trade by the instructing party. This reference will be used throughout the trade life cycle to identify the particular trade."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="TradId"
simpleType="_YW1tKdp-Ed-ak6NoX_4Aeg_1913463446" />
<messageBuildingBlock
xmi:id="_wbqUIIsSEeS_1fMypAW06w"
name="TradingMode"
definition="Identifies the type of the trade mode."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="TradgMd"
simpleType="_-JagcIBEEeSUJZYcWGKkkw" />
<messageBuildingBlock
xmi:id="_viJsEESvEeSTS-T7FO4CUQ"
name="AffirmationStatus"
definition="Identifies the status of the confirmation acknowledgement."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AffirmSts"
simpleType="_JyV3kHOxEeSG-OV0nXMl5w" />
<messageBuildingBlock
xmi:id="_pYBHsIsREeS_1fMypAW06w"
name="ConfirmationStatus"
definition="Identifies the status of the confirmation."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="ConfSts"
simpleType="_cU5H8IBCEeSUJZYcWGKkkw" />
<messageBuildingBlock
xmi:id="_RD1T0ESAEeStEe_B2dcrqg"
name="MarketIdentification"
definition="Market in which a trade transaction has been executed."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="MktId"
complexType="_5YWZ4UeIEeSzluxs8tdrVw" />
<messageBuildingBlock
xmi:id="_aiEI0ESAEeStEe_B2dcrqg"
name="AdditionalInformation"
definition="Free format text string."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="AddtlInf"
complexType="_Qoao5dp-Ed-ak6NoX_4Aeg_478592239" />
<messageBuildingBlock
xmi:id="_1wlvYKHlEeS69KkQis5bYg"
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="038"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.