FX Providers are responsible for informing Nexus of the rates at which they are willing to swap one currency for another.
The FXP sends rates to the POST /rates/
API
A rate in Nexus describes the ‘going rate’ at which an FXP is willing to swap one currency for another.
The rate is not specific to a single transaction. FXPs are not asked to quote or bid on individual transactions. This means that when an FXP provides a rate to Nexus, they are effectively saying “Until further notice, for any Nexus payment, I’m willing to exchange Currency A for Currency B at exchange rate X”. “Further notice” is given when the FXP sends a revised rate.
The rate provided is the rate that the FX Provider charges to the Source PSP. The Source PSP could choose to mark up this rate before displaying it to the Sender.
A rate provided by an FXP continues to apply until the FXP sends a new rate to the POST /rates/
API.
A new rate causes older rates to immediately expire. Source PSPs who call the GET /quotes/
API are only shown the most recent rates.
Rates can be updated as frequently or infrequently as the FX Provider wishes. Updates could be on a regular or irregular schedule. For example an FXP may choose to update their rates every minute, every half hour, every day or only when market conditions change significantly.
To manage load on the Nexus network, Nexus may apply an upper limit to how frequently rates can be updated. For example, given the lower values of Nexus payments compared to wholesale FX markets, there is little need to update rates multiple times a second (as happens in some wholesale FX markets), as any changes would made a negligible difference to the ultimate cost to the Sender. On the other hand, very frequent updates, multiplied across multiple corridors and multiple FXPs, could have a detrimental impact on the performance of the Nexus FX Service with very little end-user benefit.
Within the Nexus FX service, each rate contains the following information.
A rate is unique to:
A specific FXP, AND
A specific Source Instant Payment System (IPS), AND
A specific Destination IPS
Note that each rate is:
one-directional: a rate describes the rate of exchange for payments flowing in one direction only (eg from currency A>B).
independent & non-reciprocal: for a specific FXP, given currencies A & B, the rate for payments from B>A is set independently of the rate for payments from A>B. The rate for B>A is not simply the reciprocal of the rate for payments from A>B (eg 1 / (B>A)).
WORKED EXAMPLE: Asymmetric rates
FXP-A may wish to reduce their holdings of SGD and increase their holding of EUR. FXP-A provides two independent rates to Nexus:
EUR->SGD = 1.5000 (EUR 1 = SGD 1.50)
SGD->EUR = 0.6500 (SGD 1 = EUR 0.65, equivalent to SGD1 = EUR)
Note that the SGD>EUR rate is not simply 1 divided by the EUR>SGD rate, which would be SGD 0.6667.
The rates above may be attractive rate for anyone sending payments from the Eurozone to Singapore, but unattractive for anyone sending payments from Singapore to the Eurozone. This means the FXP is likely to be selected for payments from the Eurozone to Singapore, but unlikely to be selected for payments from Singapore to the Eurozone. Consequently, they are likely to accumulate EUR and run down their holdings of SGD.
In some cases, an FXP may need to ‘withdraw’ a specific rate. One example would be where the FXP needs to do maintenance on their own systems, making it impossible for them to manage liquidity for Nexus payments. In this case, an FXP could withdraw a rate using the DELETE /rates/
API. “Deleting” a rate would set this rate to expire so that it is no longer shown to PSPs.
This functionality has not been built as part of the PoC and would need to be added to a production version.
IPSs allow payments to be made 24 hours per day, seven days per week. In contrast, FX markets, where financial institutions buy and sell currencies from each other, are only open during business hours from Monday-Friday. Because of the global nature of FX markets, it is usually possible to trade major currencies for 24 hours a day from Monday to Friday, but not over the weekend. This means that there is no “live” market to define FX rates on Saturday and Sunday.
To enable Nexus payments at weekends, FX Providers must continue to provide FX over the weekend. There are two ways they could do this:
An FXP can update their rates when the FX markets close on Friday, and leave those rates fixed throughout the weekend, since the market rates will not change. In this case, they would “price in” the risk that the rates in the wider FX market on Monday morning may jump relative to the rates when the market closed on Friday evening. This means that the rates charged over the weekend are likely to be less competitive than those during the week, to cover this risk.
Alternatively, the FXP could continue to update its rates through the weekend. Although the market rates would not change, an FXP may wish to do this to manage their liquidity in the different currencies. For example, they can make their rates better or worse, compared to the market, in order to attract more or less of certain currencies.
ELEMENT
USAGE
EXAMPLES
Id
Autogenerated Id for this rate (a specific rate for a specific currency pair issued by a specific FXP at a specific time)
302293
FXP Id
Internal Nexus ID for the FXP (not external ID such as BIC or LEI, which is used in the API requests and responses)
1301
UnitCcy
ISO 20022 term for Source Currency
EUR
QtdCcy
ISO 20022 term for Destination Currency
SGD
Threshold
Minimum transaction size IN SOURCE CURRENCY at which the improvement applies. If the FXP has defined tiers for this Source Currency, the POST /rates/ API will generate additional improved rates based on those tiers.
10,000
Rate
Exchange rate, where UnitCcy Amount * Rate = QtyCcy Amount
1.5019
Source UPS
The Source Instant Payment System in which the FXP can receive the Source Currency.
EURTIPS
Destination UPS
The Destination Instant Payment System in which the FXP can receive the Destination Currency.
SGDFAST
DateTimeIssued
DateTime at which the Nexus Gateway accepts the quote and publishes it to the rest of the network
2022-09-11 15:52:23
DateTimeExpired
Initially blank. Will be set if an FXP withdraws their rates.
2022-09-11 16:52:23
In Nexus a specific FXP can offer better rates for larger transactions. This works as follows:
For each specific Source Currency, the FXP can define a number of “tiers” at which better rates apply.
For each tier, the FXP will define how much the base rate (as provided in the POST /rates/
API) should be improved, in basis points.
For payments smaller than the lowest tier, the base rate (provided in the POST /rates/
API) applies. (This is recorded in Nexus as a rate with a threshold of zero.)
Note:
An FXP can choose whether or not to set tiers for a specific currency, and how many tiers to set.
Different FXPs can set different thresholds for their tiers
After submitting a new tier or changing the rate on a tier, changes to an FXP's tiers will only be applied to newly submitted rates. Nexus will not retroactively apply changed rates to existing rates.
WORKED EXAMPLE - TIER IMPROVEMENTS
The Source Currency is Euros. The maximum payment permitted through the TIPS payment system is EUR 100,000. The FXP could therefore choose to set the following tiers:
This means that for a payment of 50,000, the rate will be improved by 1%, and so the amount received by the Recipient will be 1% greater than it would have been with the base rate.
If FXP-A quoted the base rate for EUR>SGD at 1.500, then the improvement would be calculated as:
Improved rate = Base Rate * (1 + (basis points / 10000)
= 1.5000 * (1 + (100 / 10000))
= 1.5000 * (1 + 0.01)
= 1.5000 * (1.01) = 1.5150
Note that for transactions below the 50,000 threshold, FXP-A’s base rate, as provided in the initial POST /rates/
API call, will apply.
FX Providers may also want to offer better rates to specific PSPs, for example, PSPs that already have a strong business relationship with the FXP. In Nexus this works as follows:
An FXP can define the PSPs to which it wishes to offer improved rates
For each PSP, the FXP can define how much the base rate should be improved, in basis points.
When a Source PSP calls the GET /quotes/
API, Nexus will check whether any FXPs have registered preferential rates for that PSP and apply the improvement to the FXP's base rate.
An FXP does not need to set any PSP-based improvements. If no PSP-based improvement is set for a specific PSP, the base rate will apply.
ELEMENTS
USAGE
EXAMPLES
Id
Autogenerated primary key of this tier, unique to a specific FXP, Source Currency and threshold (minimum amount)
20515
FXP Id
Internal Nexus ID for the FXP (not external ID such as BIC or LEI, which is used in the API requests and responses)
1301
UnitCcy
ISO 20022 term for Source Currency. Thresholds relate to value of the payment in this currency only (not Destination Currency)
EUR
Threshold
Minimum transaction value IN SOURCE CURRENCY at which the improvement applies. The payment value must be equal-to-or-greater-than (>=) this threshold value.
50,000.00
Improvement
An improvement, recorded in basis points, which is applied to the base rate.
100.00
DateTimeExpired
Initially blank. Will be set when an FXP provides a new improvement for this threshold.
FXP Id
SOURCE CURRENCY
TIER THRESHOLD (Minimum transaction size at which the improvement applies)
IMPROVEMENT in basis points (applied to the base rate in the FXP’s quote)
FXP-A
EUR
25,000
50
FXP-A
EUR
50,000
100
FXP-A
EUR
75,000
150
ELEMENT
USAGE
EXAMPLES
Id
Primary key of this PSP-based improvement, unique to a specific FXP and specific PSP
3289
FXP Id
Internal Nexus ID for the FXP (not external ID such as BIC or LEI, which is used in the API requests and responses)
1301
PSP Id
Internal Nexus ID for the PSP (not external ID such as BIC or LEI)
0592
Improvement
An improvement, recorded in basis points, which is applied to the rates after any tier-based improvements have been calculated.
30
DateTimeExpired
Initially blank. When the FXP issues a new Improvement for this PSP, the old one is set to expire.
FXP Id
PSP Id (this would be a BIC)
IMPROVEMENT in basis points (applied to the base rate in the FXP’s quote)
FXP-A
PSP-C
25
FXP-A
PSP-D
50
FXP-B
PSP-D
30