ForeignExchangeTradeConfirmationStatusAdviceAcknowledgementV01

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&#xD;&#xA;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.&#xD;&#xA;&#xD;&#xA;Usage&#xD;&#xA;The acknowledgement is sent by the trading member to the CMU after they received the confirmation status advice. &#xD;&#xA;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.