Rates from Third-Party FX Providers

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.)

Updating rates

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 Automatic expiry of a quote 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.

Structure of a rate

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.

Rate uniqueness

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

WORKED EXAMPLE: Asymmetric rates

In this example, FXP-A wishes 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 EUR 1 = SGD 1.54)

Note that the SGD➔EUR rate is not simply 1 divided by the EUR➔SGD rate, which would be 0.6667.

The rates above may be attractive rate for anyone sending payments from the Eurozone to Singapore, but less attractive 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 less likely to be selected for payments from Singapore to the Eurozone. Consequently, they are likely to accumulate EUR and run down their holdings of SGD.

Withdrawing a rate

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.

Last updated