camt.017.001.04
Scope The ReturnCurrencyExchangeRate message is sent by the transaction administrator to a member of the system. It is used to provide information on static data and related to currency exchange details as maintained for system operations by the transaction administrator. The ReturnCurrencyExchangeRate message can be sent as a response to a related GetCurrencyExchangeRate message (pull mode) or initiated by the account servicer (push mode). The push of information can take place either at prearranged times or as a warning or alarm when a problem has occurred. Usage The transaction administrator is in charge of providing the members with business information. The term business information covers all information related to the management of the system, that is, not related to the transactions or requests created in the system. The type of business information available can vary depending on the system. When a system manages a pool of accounts in various currencies for a member, it needs to maintain currency exchange details between the various currencies and the reporting on base currency. The reporting on base currency is used to calculate the actual position of the members in terms of aggregate limits and balances. It also allows the system to contain risk within defined and agreed boundaries. The currency exchange details can be fixed for the entire operational day or regularly updated according to near real-time market feeds. The member can request information about a currency exchange operation through a series of criteria, corresponding to the known information stored within the transaction administrator. Based on the criteria received within the request, the transaction administrator will select items that will match with the request and report them to the requestor. The transaction administrator may also send a Return Currency Exchange Rate message with pre-defined information at times previously agreed with the member or to warn the member about a particular problem that may have arisen and which needs the member(s) attention. The message from the transaction administrator will contain information based on the following elements:
- the currency to be converted (source currency)
- the currency into which the amount is converted (target currency)
- the exchange rate
- the quotation date and currency Additional information on the generic design of the Get/Return messages can be found in the MDR Part 1 section How to Use the Cash Management Messages.
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 %% ReturnCurrencyExchangeRateV04 recursion level 0 with max 0 ReturnCurrencyExchangeRateV04 *-- "1..1" MessageHeader7 : MessageHeader ReturnCurrencyExchangeRateV04 *-- "1..1" IExchangeRateReportOrError1Choice : ReportOrError ReturnCurrencyExchangeRateV04 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
MessageHeader building block
Common business identification for the message. Set of characteristics, such as the identification or the creation date and time, specific to the message. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageHeader7 recursion level 0 with max 1 class MessageHeader7{ MessageIdentification IsoMax35Text CreationDateTime IsoISODateTime QueryName IsoMax35Text } MessageHeader7 *-- "0..1" IRequestType4Choice : RequestType MessageHeader7 *-- "0..1" OriginalBusinessQuery1 : OriginalBusinessQuery %% IRequestType4Choice recursion level 1 with max 1 %% OriginalBusinessQuery1 recursion level 1 with max 1 class OriginalBusinessQuery1{ MessageIdentification IsoMax35Text MessageNameIdentification IsoMax35Text CreationDateTime IsoISODateTime }
MessageHeader7 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageIdentification | Point to point reference, as assigned by the sender, to unambiguously identify the message. | Usage: The sender has to make sure that MessageIdentification is unique for a pre-agreed period. |
CreationDateTime | Date and time at which the message was created. | IsoISODateTime - Optional 0..1 |
RequestType | Specific actions to be executed through the request. | IRequestType4Choice - Optional 0..1 |
OriginalBusinessQuery | Unique identification of the original query message. | OriginalBusinessQuery1 - Optional 0..1 |
QueryName | Recalls the criteria (search and return criteria) defined in a preceding query. | IsoMax35Text - Optional 0..1 |
ReportOrError building block
Reports on currency exchange information. It is used to provide information on static data maintained by the transaction administrator and related to currency exchange details as maintained for system operations by the transaction administrator. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IExchangeRateReportOrError1Choice recursion level 0 with max 1
ExchangeRateReportOrError1Choice members
Member name | Description | Data Type / Multiplicity |
---|
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 ReturnCurrencyExchangeRateV04 implementation follows a specific implementaiton pattern. First of all, ReturnCurrencyExchangeRateV04 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, ReturnCurrencyExchangeRateV04Document implements IOuterDocument. Because ReturnCurrencyExchangeRateV04 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type ReturnCurrencyExchangeRateV04.
classDiagram class IOuterRecord ReturnCurrencyExchangeRateV04 --|> IOuterRecord : Implements ReturnCurrencyExchangeRateV04Document --|> IOuterDocument~ReturnCurrencyExchangeRateV04~ : Implements class IOuterDocument~ReturnCurrencyExchangeRateV04~ { ReturnCurrencyExchangeRateV04 Message }
Document wrapper for serialization
The only real purpose ReturnCurrencyExchangeRateV04Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:camt.017.001.04’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using ReturnCurrencyExchangeRateV04.ToDocument() method. The returned ReturnCurrencyExchangeRateV04Document value will serialize correctly according to ISO 20022 standards.
classDiagram ReturnCurrencyExchangeRateV04Document *-- ReturnCurrencyExchangeRateV04 : 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:camt.017.001.04">
<RtrCcyXchgRate>
<MsgHdr>
<!-- MessageHeader inner content -->
</MsgHdr>
<RptOrErr>
<!-- ReportOrError inner content -->
</RptOrErr>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</RtrCcyXchgRate>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_jwlcCRbvEeiyVv5j1vf1VQ"
nextVersions="_ThV6p9b6Eeq_l4BJLVUF2Q"
name="ReturnCurrencyExchangeRateV04"
definition="Scope
The ReturnCurrencyExchangeRate message is sent by the transaction administrator to a member of the system.
It is used to provide information on static data and related to currency exchange details as maintained for system operations by the transaction administrator.
The ReturnCurrencyExchangeRate message can be sent as a response to a related GetCurrencyExchangeRate message (pull mode) or initiated by the account servicer (push mode). The push of information can take place either at prearranged times or as a warning or alarm when a problem has occurred.
Usage
The transaction administrator is in charge of providing the members with business information. The term business information covers all information related to the management of the system, that is, not related to the transactions or requests created in the system. The type of business information available can vary depending on the system.
When a system manages a pool of accounts in various currencies for a member, it needs to maintain currency exchange details between the various currencies and the reporting on base currency. The reporting on base currency is used to calculate the actual position of the members in terms of aggregate limits and balances. It also allows the system to contain risk within defined and agreed boundaries.
The currency exchange details can be fixed for the entire operational day or regularly updated according to near real-time market feeds.
The member can request information about a currency exchange operation through a series of criteria, corresponding to the known information stored within the transaction administrator. Based on the criteria received within the request, the transaction administrator will select items that will match with the request and report them to the requestor.
The transaction administrator may also send a Return Currency Exchange Rate message with pre-defined information at times previously agreed with the member or to warn the member about a particular problem that may have arisen and which needs the member(s) attention.
The message from the transaction administrator will contain information based on the following elements:
- the currency to be converted (source currency)
- the currency into which the amount is converted (target currency)
- the exchange rate
- the quotation date and currency
Additional information on the generic design of the Get/Return messages can be found in the MDR Part 1 section How to Use the Cash Management Messages."
registrationStatus="Registered"
messageSet="_S0OMdGY1EeuQ__SOdbf47A"
xmlTag="RtrCcyXchgRate"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_jwlcCxbvEeiyVv5j1vf1VQ"
nextVersions="_ThV6r9b6Eeq_l4BJLVUF2Q"
name="MessageHeader"
definition="Common business identification for the message."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="MsgHdr"
complexType="_imfkUZIhEeect698_YsnIA" />
<messageBuildingBlock
xmi:id="_jwlcDRbvEeiyVv5j1vf1VQ"
nextVersions="_ThV6sdb6Eeq_l4BJLVUF2Q"
name="ReportOrError"
definition="Reports on currency exchange information."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="RptOrErr"
complexType="_77JeQ6MgEeCJ6YNENx4h-w_1304764556" />
<messageBuildingBlock
xmi:id="_jwlcDxbvEeiyVv5j1vf1VQ"
nextVersions="_ThV6s9b6Eeq_l4BJLVUF2Q"
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="camt"
messageFunctionality="017"
flavour="001"
version="04" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.