This page relates only to third-party FX Providers.
For Source PSPs that provide their own FX, a different process applies. See Payment setup for PSPs who provide their own FX for details.
In Nexus a specific FXP may offer better rates for larger transactions. This works as follows:
For each specific Source Currency, the FXP may 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) must be improved, in basis points.
For payments smaller than the lowest tier, the base rate (provided when the FXP submits a rate to the POST /rates/
API) applies.
Note:
An FXP may choose whether or not to set any tiers for a specific currency, and how many tiers to set.
Different FXPs may set different tier thresholds for a specific currency.
In this example, the Source Currency is Euros. The maximum payment permitted through the TIPS payment system is EUR 100,000. FXP-A may therefore choose to set the following tiers:
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
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 + ((Improvement in 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.
Tiers only need to be set once by the FXP, and will continue to apply for that FXP until the FXP updates or deletes the tiers.
This page relates only to third-party FX Providers.
For Source PSPs that provide their own FX, a different process applies. See Payment setup for PSPs who provide their own FXfor details.
FX Providers may also want to offer improved rates to specific PSPs. In Nexus this works as follows:
An FXP may define the PSPs to which it wishes to offer improved rates
For each PSP, the FXP may define how much the base rate must be improved, in basis points.
This improvements applies to all quotes issued to that PSP by the FXP, for all currencies.
It is not possible for an FXP to set different PSP-based improvements for different currencies.
When a Source PSP calls the GET /quotes
API, Nexus will review the table of relationships between FXPs and PSPs, and extract any relevant preferential rates for that PSP.
Nexus will then apply the relevant improvement to the FXP's base rate.
An FXP may choose not to set any PSP-based improvements. If no PSP-based improvement is set for a specific PSP, the base rate will apply.
PSP-based improvements only need to be set once by the FXP, and will continue to apply for that FXP until the FXP updates or deletes the tiers.
FXP Id
PSP Id
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
This page relates only to third-party FX Providers.
For Source PSPs that provide their own FX, a different process applies. See Payment setup for PSPs who provide their own FX for details.
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’ or base rate at which an FXP is willing to swap one currency for another.
The base rate is not specific to a single transaction. FXPs are not asked to quote or bid on individual transactions (which would cause significant traffic and demand to their own systems). 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.
A rate may be improved depending on the size of the transaction (tier-based improvements) and/or the PSP requesting the quote. (See Improving rates for larger transactions and Improving rates for specific PSPs)
The final rate provided in a quote to the Source PSP is the rate that the FX Provider charges to the Source PSP.
The final rate is the ratio between the amount the FX Provider pays to the Destination PSP and the amount that the Source PSP pays to the FX Provider.
The Source PSP may charge the Sender more than they transfer to the FX Provider. The different between the amount debited by the Source PSP from the Sender’s account and the amount transferred from the Source PSP to FXP is known as the Source PSP Deducted Fee. (See Fees.)
A rate provided by an FXP continues to apply until the FXP sends a new rate to the POST /rates/
API.
An FX Provider may update rates as frequently or infrequently as they wish. Updates may be sent on a regular or irregular schedule. For example an FXP may choose to update their rates every minute, every half hour, every day or whenever market conditions require.
When a new rate is submitted:
The previous rate is automatically expired
Any already-issued quotes based on the previous rate are set to expire in 600 seconds (10 minutes) from now, meaning that a payment instruction using one of those quotes must reach Nexus within 600 seconds or it will be rejected. (see #toc163809597 and Validations, Duplicates & Fraud)
Source PSPs who call the GET /quotes
API are only shown the most recent (unexpired) rate from each FXP.
Technical Notes:
The FXP must push their rates to the Nexus APIs; Nexus will not “pull” rates from the FXP’s own APIs
To manage load on the Nexus network, Nexus may apply an upper limit to how frequently rates may be updated (implemented as an API “rate limit” or “throttle”). 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. In addition, very frequent updates, multiplied across multiple corridors and multiple FXPs, could have a detrimental impact on the performance of the Nexus FX Service.
Within the Nexus FX service’s internal database, each rate contains the following information.
ELEMENT NAME (JSON Name)
USAGE
EXAMPLES
Id (id)
Universally Unique ID (UUID) for this rate (a specific rate for a specific currency pair issued by a specific FXP at a specific time)
9929ea23-f29c-4053-b54a-5bf7a1bb348e
FXP Id (fxpId)
Internal Nexus ID for the FXP (not external Financial Institution Identification such as BIC or LEI, which is used in the API requests and responses)
1301
Source Currency (sourceCurrency)
Currency of the Sender
EUR
Destination Currency (destinationCurrency)
Currency of the Recipient
SGD
Rate
(rate)
Exchange rate, where UnitCcy Amount * Rate = QtyCcy Amount
1.5019
Source IPS
The Source Instant Payment System in which the FXP can receive the Source Currency.
EURTIPS
Destination IPS
The Destination Instant Payment System in which the FXP can receive the Destination Currency.
SGDFAST
createdDateTime
Date and time at which the Nexus Gateway accepted the quote and published it to the rest of the network
2022-09-11T15:52:23
IsExpired
Boolean, set to TRUE when the rate is expired
FALSE
expiryDateTime
Initially blank. Will be set to “now” at the point an FXP issues a new rate or withdraws their rates.
A rate is unique to:
A specific FXP, AND
A pair of Intermediary Agent Accounts in two separate IPSs
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 A➔B is set independently of the rate for payments from B➔A. The rate for B➔A is not simply the reciprocal of the rate for payments from A➔B
RateB➔A ≠ 1 / RateA➔B
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 may 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. (For audit and traceability purposes, the rate is never actually removed from the underlying database.)
Even when an FXP withdraws their rates, Nexus will continue to honour any quotes issued against that rate if the quote was issued within the last 10 minutes. This means that after withdrawing rates for a particular currency pair, it may take up to 10 minutes for payments to stop being processed against the FXP’s accounts at the Source and Destination SAP.