AmendForeignExchangeOptionV02

trea.010.001.02

Scope The AmendForeignExchangeOption message is sent by a participant to a central system or to a counterparty to notify the amendment of a foreign currency option contract. Usage The message contains a Related Reference to link it to the previously sent notification and may contain an reason for amendment. This message is only suitable for Simple (i.e. not Barrier) Vanilla (i.e. not Binary, Digital, Notouch) Foreign Exchange Options.

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
%% AmendForeignExchangeOptionV02 recursion level 0 with max 0
AmendForeignExchangeOptionV02 *-- "1..1" TradeAgreement2 : TradeInformation
AmendForeignExchangeOptionV02 *-- "1..1" TradePartyIdentification4 : TradingSideIdentification
AmendForeignExchangeOptionV02 *-- "1..1" TradePartyIdentification4 : CounterpartySideIdentification
AmendForeignExchangeOptionV02 *-- "1..1" Option3 : Option
  

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

TradeInformation building block

Provides reference and date of the foreign exchange option trade which is amended. Date and identification of a trade together with references to previous events in its life. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TradeAgreement2 recursion level 0 with max 1
class TradeAgreement2{
    TradeDate IsoISODate
    NotificationIdentification IsoMax35Text
    CommonReference IsoMax35Text
    AmendOrCancelReason IsoMax35Text
    RelatedReference IsoMax35Text
}
  

TradeAgreement2 members

Member name Description Data Type / Multiplicity
TradeDate Date at which the trading parties have agreed to amend or cancel a treasury trade. IsoISODate - Required 1..1
NotificationIdentification Identification of a notification.This identification must be unique amongst all notifications of same type confirmed by the same party. IsoMax35Text - Required 1..1
CommonReference Reference common to the parties of a trade. IsoMax35Text - Optional 0..1
AmendOrCancelReason Describes the reason for the cancellation or the amendment. IsoMax35Text - Optional 0..1
RelatedReference Refers to the identification of a previous event in the life of a trade which is amended or cancelled. IsoMax35Text - Required 1..1

TradingSideIdentification building block

Specifies the trading side of the currency option trade which is amended. Entity involved in an activity. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TradePartyIdentification4 recursion level 0 with max 1
class TradePartyIdentification4{
    BuyerOrSellerIndicator OptionParty1Code
}
TradePartyIdentification4 *-- "0..1" FundIdentification2 : FundInformation
TradePartyIdentification4 *-- "1..1" IPartyIdentification8Choice : SubmittingParty
TradePartyIdentification4 *-- "1..1" IPartyIdentification8Choice : TradeParty
%% FundIdentification2 recursion level 1 with max 1
class FundIdentification2{
    FundIdentification IsoMax35Text
    AccountIdentificationWithCustodian IsoMax35Text
}
FundIdentification2 *-- "0..1" IPartyIdentification8Choice : CustodianIdentification
%% IPartyIdentification8Choice recursion level 1 with max 1
%% IPartyIdentification8Choice recursion level 1 with max 1
  

TradePartyIdentification4 members

Member name Description Data Type / Multiplicity
FundInformation Identifies the fund which is one of the parties in a treasury trade. FundIdentification2 - Optional 0..1
BuyerOrSellerIndicator Specifies the party which is the buyer or the seller. OptionParty1Code - Required 1..1
SubmittingParty Specifies the party which submits a treasury trade to a matching system or to a settlement system or to a counterparty. IPartyIdentification8Choice - Required 1..1
TradeParty Specifies the party which originated a treasury trade. This party may be the same as the submitting party. IPartyIdentification8Choice - Required 1..1

CounterpartySideIdentification building block

Specifies the counterparty of the currency option trade which is amended. Entity involved in an activity. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TradePartyIdentification4 recursion level 0 with max 1
class TradePartyIdentification4{
    BuyerOrSellerIndicator OptionParty1Code
}
TradePartyIdentification4 *-- "0..1" FundIdentification2 : FundInformation
TradePartyIdentification4 *-- "1..1" IPartyIdentification8Choice : SubmittingParty
TradePartyIdentification4 *-- "1..1" IPartyIdentification8Choice : TradeParty
%% FundIdentification2 recursion level 1 with max 1
class FundIdentification2{
    FundIdentification IsoMax35Text
    AccountIdentificationWithCustodian IsoMax35Text
}
FundIdentification2 *-- "0..1" IPartyIdentification8Choice : CustodianIdentification
%% IPartyIdentification8Choice recursion level 1 with max 1
%% IPartyIdentification8Choice recursion level 1 with max 1
  

TradePartyIdentification4 members

Member name Description Data Type / Multiplicity
FundInformation Identifies the fund which is one of the parties in a treasury trade. FundIdentification2 - Optional 0..1
BuyerOrSellerIndicator Specifies the party which is the buyer or the seller. OptionParty1Code - Required 1..1
SubmittingParty Specifies the party which submits a treasury trade to a matching system or to a settlement system or to a counterparty. IPartyIdentification8Choice - Required 1..1
TradeParty Specifies the party which originated a treasury trade. This party may be the same as the submitting party. IPartyIdentification8Choice - Required 1..1

Option building block

Specifies the parameters of the currency option which is bought by the trading side. List of elements which provide the parameters of an option trade. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% Option3 recursion level 0 with max 1
class Option3{
    ExerciseStyle OptionStyle2Code
    EarliestExerciseDate IsoISODate
    ExpiryDateAndTime IsoISODateTime
    ExpiryLocation IsoMax4AlphaNumericText
    SettlementType SettlementType1Code
    AdditionalOptionInformation IsoMax140Text
}
Option3 *-- "1..1" AmountsAndValueDate2 : OptionAmounts
Option3 *-- "1..1" AgreedRate1 : StrikePrice
Option3 *-- "1..1" PremiumAmount2 : Premium
%% AmountsAndValueDate2 recursion level 1 with max 1
class AmountsAndValueDate2{
    CallAmount IsoActiveOrHistoricCurrencyAndAmount
    PutAmount IsoActiveOrHistoricCurrencyAndAmount
    FinalSettlementDate IsoISODate
}
%% AgreedRate1 recursion level 1 with max 1
class AgreedRate1{
    ExchangeRate IsoBaseOneRate
    UnitCurrency CurrencyCode
    QuotedCurrency CurrencyCode
}
%% PremiumAmount2 recursion level 1 with max 1
class PremiumAmount2{
    Amount IsoActiveOrHistoricCurrencyAndAmount
    SettlementDate IsoISODate
}
PremiumAmount2 *-- "0..1" IPremiumQuote1Choice : PremiumQuote
PremiumAmount2 *-- "0..1" IPartyIdentification8Choice : SettlementParty
  

Option3 members

Member name Description Data Type / Multiplicity
OptionAmounts Specifies the call and the put amount of the underlying foreign exchange trade. AmountsAndValueDate2 - Required 1..1
StrikePrice Specifies the rate of exchange at which the foreign exchange option has been struck. AgreedRate1 - Required 1..1
ExerciseStyle Defines how an option can be exercised. OptionStyle2Code - Required 1..1
EarliestExerciseDate First date on which an american option can be exercised. IsoISODate - Optional 0..1
ExpiryDateAndTime Date on which a privilege (eg, option, right, warrant.) expires. If it is an European option, the option holder can only exercise the right or let it lapse on expiry date. If it is an American option, the option holder can exercise the right up to the expiry date. IsoISODateTime - Required 1..1
ExpiryLocation Financial center where option expires. IsoMax4AlphaNumericText - Required 1..1
SettlementType Indicates whether the trade is to be settled as principal or netted off against another trade. SettlementType1Code - Required 1..1
AdditionalOptionInformation Free format text that may contain information on the option. IsoMax140Text - Optional 0..1
Premium Specifies the amount of the premium of a foreign exchange option trade and its settlement place. PremiumAmount2 - Required 1..1

Extensibility and generalization considerations

To facilitate generalized design patterns in the system, the AmendForeignExchangeOptionV02 implementation follows a specific implementaiton pattern. First of all, AmendForeignExchangeOptionV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, AmendForeignExchangeOptionV02Document implements IOuterDocument. Because AmendForeignExchangeOptionV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type AmendForeignExchangeOptionV02.

classDiagram
    class IOuterRecord
    AmendForeignExchangeOptionV02 --|> IOuterRecord : Implements
    AmendForeignExchangeOptionV02Document --|> IOuterDocument~AmendForeignExchangeOptionV02~ : Implements
    class IOuterDocument~AmendForeignExchangeOptionV02~ {
        AmendForeignExchangeOptionV02 Message
     }
  

Document wrapper for serialization

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

classDiagram
    AmendForeignExchangeOptionV02Document *-- AmendForeignExchangeOptionV02 : 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:trea.010.001.02">
    <AmdFXOptnV02>
        <TradInf>
            <!-- TradeInformation inner content -->
        </TradInf>
        <TradgSdId>
            <!-- TradingSideIdentification inner content -->
        </TradgSdId>
        <CtrPtySdId>
            <!-- CounterpartySideIdentification inner content -->
        </CtrPtySdId>
        <Optn>
            <!-- Option inner content -->
        </Optn>
    </AmdFXOptnV02>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_HQD4WNE8Ed-BzquC8wXy7w_-1614590929"
  name="AmendForeignExchangeOptionV02"
  definition="Scope&#xD;&#xA;The AmendForeignExchangeOption message is sent by a participant to a central system or to a counterparty to notify the amendment of a foreign currency option contract.&#xD;&#xA;Usage&#xD;&#xA;The message contains a Related Reference to link it to the previously sent notification and may contain an reason for amendment.&#xD;&#xA;This message is only suitable for Simple (i.e. not Barrier) Vanilla (i.e. not Binary, Digital, Notouch) Foreign Exchange Options."
  registrationStatus="Registered"
  messageSet="_wRx2x02rEeG_I4xRYCA_7g"
  xmlTag="AmdFXOptnV02"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_HQD4WdE8Ed-BzquC8wXy7w_-277529666"
    name="TradeInformation"
    definition="Provides reference and date of the foreign exchange option trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="TradInf"
    complexType="_TJ8xhdp-Ed-ak6NoX_4Aeg_-401775147" />
  <messageBuildingBlock
    xmi:id="_HQD4WtE8Ed-BzquC8wXy7w_-515469288"
    name="TradingSideIdentification"
    definition="Specifies the trading side of the currency option trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="TradgSdId"
    complexType="_PZvPRNp-Ed-ak6NoX_4Aeg_1453147738" />
  <messageBuildingBlock
    xmi:id="_HQD4W9E8Ed-BzquC8wXy7w_296306803"
    name="CounterpartySideIdentification"
    definition="Specifies the counterparty of the currency option trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="CtrPtySdId"
    complexType="_PZvPRNp-Ed-ak6NoX_4Aeg_1453147738" />
  <messageBuildingBlock
    xmi:id="_HQNCQNE8Ed-BzquC8wXy7w_1463318138"
    name="Option"
    definition="Specifies the parameters of the currency option which is bought by the trading side."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Optn"
    complexType="_TLSOQNp-Ed-ak6NoX_4Aeg_-1226899977" />
  <messageDefinitionIdentifier
    businessArea="trea"
    messageFunctionality="010"
    flavour="001"
    version="02" />
</messageDefinition>

ISO Building Blocks

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