Rates from Third-Party FX Providers
Last updated
Last updated
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 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.