AmendNonDeliverableForwardOpeningV02

trea.002.001.02

Scope The AmendNonDeliverableForwardOpening message is sent by a participant to a central system or to a counterparty to notify the amendment of the opening of a non deliverable trade previously confirmed by the sender. Usage The message is sent from a participant to a central settlement system to advise of the update of a previously sent notification and it contains a “Related Reference” to link it to the previous notification.

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
%% AmendNonDeliverableForwardOpeningV02 recursion level 0 with max 0
AmendNonDeliverableForwardOpeningV02 *-- "1..1" TradeAgreement2 : TradeInformation
AmendNonDeliverableForwardOpeningV02 *-- "1..1" TradePartyIdentification3 : TradingSideIdentification
AmendNonDeliverableForwardOpeningV02 *-- "1..1" TradePartyIdentification3 : CounterpartySideIdentification
AmendNonDeliverableForwardOpeningV02 *-- "1..1" AmountsAndValueDate1 : TradeAmounts
AmendNonDeliverableForwardOpeningV02 *-- "1..1" AgreedRate1 : AgreedRate
AmendNonDeliverableForwardOpeningV02 *-- "1..1" NonDeliverableForwardValuationConditions2 : ValuationConditions
  

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

TradeInformation building block

Provides references and date of the non deliverable 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 non deliverable trade which is amended. Entity involved in an activity. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TradePartyIdentification3 recursion level 0 with max 1
TradePartyIdentification3 *-- "0..1" FundIdentification2 : FundInformation
TradePartyIdentification3 *-- "1..1" IPartyIdentification8Choice : SubmittingParty
TradePartyIdentification3 *-- "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
  

TradePartyIdentification3 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
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 non deliverable trade which is amended. Entity involved in an activity. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% TradePartyIdentification3 recursion level 0 with max 1
TradePartyIdentification3 *-- "0..1" FundIdentification2 : FundInformation
TradePartyIdentification3 *-- "1..1" IPartyIdentification8Choice : SubmittingParty
TradePartyIdentification3 *-- "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
  

TradePartyIdentification3 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
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

TradeAmounts building block

Specifies the amounts of the non deliverable trade which is amended. Specifies the value date and the amounts traded in a foreign exchange transaction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% AmountsAndValueDate1 recursion level 0 with max 1
class AmountsAndValueDate1{
    TradingSideBuyAmount IsoActiveOrHistoricCurrencyAndAmount
    TradingSideSellAmount IsoActiveOrHistoricCurrencyAndAmount
    SettlementDate IsoISODate
}
  

AmountsAndValueDate1 members

Member name Description Data Type / Multiplicity
TradingSideBuyAmount Currency and amount bought in a foreign exchange trade. IsoActiveOrHistoricCurrencyAndAmount - Required 1..1
TradingSideSellAmount Currency and amount sold in a foreign exchange trade. IsoActiveOrHistoricCurrencyAndAmount - Required 1..1
SettlementDate Date on which the trade is settled, ie, the amounts are due. IsoISODate - Required 1..1

AgreedRate building block

Specifies the rate of the non deliverable trade which is amended. Information needed to process a currency exchange or conversion. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% AgreedRate1 recursion level 0 with max 1
class AgreedRate1{
    ExchangeRate IsoBaseOneRate
    UnitCurrency CurrencyCode
    QuotedCurrency CurrencyCode
}
  

AgreedRate1 members

Member name Description Data Type / Multiplicity
ExchangeRate The value of one currency expressed in relation to another currency. ExchangeRate expresses the ratio between UnitCurrency and QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency). IsoBaseOneRate - Required 1..1
UnitCurrency Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP. CurrencyCode - Optional 0..1
QuotedCurrency Currency into which the base currency is converted, in a currency exchange. CurrencyCode - Optional 0..1

ValuationConditions building block

Specifies the valuation conditions of the non deliverable trade which is amended. Set of parameters used to calculate the fixing rate to be applied to a non-deliverable agreement. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% NonDeliverableForwardValuationConditions2 recursion level 0 with max 1
class NonDeliverableForwardValuationConditions2{
    SettlementCurrency ActiveOrHistoricCurrencyCode
    ValuationDate IsoISODate
    AdditionalValuationInformation IsoMax140Text
}
NonDeliverableForwardValuationConditions2 *-- "0..1" IPartyIdentification8Choice : SettlementParty
%% IPartyIdentification8Choice recursion level 1 with max 1
  

NonDeliverableForwardValuationConditions2 members

Member name Description Data Type / Multiplicity
SettlementCurrency Specifies the currency in which the non deliverable trade has to be settled ie the deliverable currency. ActiveOrHistoricCurrencyCode - Required 1..1
ValuationDate Date at which the rate used for calculating the net amount to be settled is observed. IsoISODate - Required 1..1
AdditionalValuationInformation Free format text that may contain valuation information such as the place, the time or the source of the rate. IsoMax140Text - Optional 0..1
SettlementParty Party through which the settlement will take place. It may contain the BIC of a central settlement system eg CLSBUS33. IPartyIdentification8Choice - Optional 0..1

Extensibility and generalization considerations

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

classDiagram
    class IOuterRecord
    AmendNonDeliverableForwardOpeningV02 --|> IOuterRecord : Implements
    AmendNonDeliverableForwardOpeningV02Document --|> IOuterDocument~AmendNonDeliverableForwardOpeningV02~ : Implements
    class IOuterDocument~AmendNonDeliverableForwardOpeningV02~ {
        AmendNonDeliverableForwardOpeningV02 Message
     }
  

Document wrapper for serialization

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

classDiagram
    AmendNonDeliverableForwardOpeningV02Document *-- AmendNonDeliverableForwardOpeningV02 : 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.002.001.02">
    <AmdNDFOpngV02>
        <TradInf>
            <!-- TradeInformation inner content -->
        </TradInf>
        <TradgSdId>
            <!-- TradingSideIdentification inner content -->
        </TradgSdId>
        <CtrPtySdId>
            <!-- CounterpartySideIdentification inner content -->
        </CtrPtySdId>
        <TradAmts>
            <!-- TradeAmounts inner content -->
        </TradAmts>
        <AgrdRate>
            <!-- AgreedRate inner content -->
        </AgrdRate>
        <ValtnConds>
            <!-- ValuationConditions inner content -->
        </ValtnConds>
    </AmdNDFOpngV02>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_JB5pZNE8Ed-BzquC8wXy7w_1482836315"
  name="AmendNonDeliverableForwardOpeningV02"
  definition="Scope&#xD;&#xA;The AmendNonDeliverableForwardOpening message is sent by a participant to a central system or to a counterparty to notify the amendment of the opening of a non deliverable trade previously confirmed by the sender.&#xD;&#xA;Usage&#xD;&#xA;The message is sent from a participant to a central settlement system to advise of the update of a previously sent notification and it contains a &quot;Related Reference&quot; to link it to the previous notification."
  registrationStatus="Registered"
  messageSet="_wRx2x02rEeG_I4xRYCA_7g"
  xmlTag="AmdNDFOpngV02"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_JB5pZdE8Ed-BzquC8wXy7w_993953355"
    name="TradeInformation"
    definition="Provides references and date of the non deliverable trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="TradInf"
    complexType="_TJ8xhdp-Ed-ak6NoX_4Aeg_-401775147" />
  <messageBuildingBlock
    xmi:id="_JB5pZtE8Ed-BzquC8wXy7w_305725624"
    name="TradingSideIdentification"
    definition="Specifies the trading side of the non deliverable trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="TradgSdId"
    complexType="_PdKWsdp-Ed-ak6NoX_4Aeg_-1580495666" />
  <messageBuildingBlock
    xmi:id="_JB5pZ9E8Ed-BzquC8wXy7w_982933420"
    name="CounterpartySideIdentification"
    definition="Specifies the counterparty of the non deliverable trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="CtrPtySdId"
    complexType="_PdKWsdp-Ed-ak6NoX_4Aeg_-1580495666" />
  <messageBuildingBlock
    xmi:id="_JB5paNE8Ed-BzquC8wXy7w_639319897"
    name="TradeAmounts"
    definition="Specifies the amounts of the non deliverable trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="TradAmts"
    complexType="_TITy0tp-Ed-ak6NoX_4Aeg_290674075" />
  <messageBuildingBlock
    xmi:id="_JB5padE8Ed-BzquC8wXy7w_-781054907"
    name="AgreedRate"
    definition="Specifies the rate of the non deliverable trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="AgrdRate"
    complexType="_QLW5ctp-Ed-ak6NoX_4Aeg_290674057" />
  <messageBuildingBlock
    xmi:id="_JB5patE8Ed-BzquC8wXy7w_-1055579338"
    name="ValuationConditions"
    definition="Specifies the valuation conditions of the non deliverable trade which is amended."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="ValtnConds"
    complexType="_TIAQw9p-Ed-ak6NoX_4Aeg_1813124879" />
  <messageDefinitionIdentifier
    businessArea="trea"
    messageFunctionality="002"
    flavour="001"
    version="02" />
</messageDefinition>

ISO Building Blocks

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