Transfer Rates

Query FX rates for cross-border transfers

Transfer rates apply to cross-border transfers where the source and destination currencies differ. For example, transferring USD to a customer while debiting your NGN wallet.

You can retrieve the exchange rate applied to your transfers by calling the get transfer rates endpoint .

❗️

Do not use the rates returned by this endpoint for FX trading, use the FX service APIs instead. We update our transfer rates 3-4 times daily.


Query an Exchange Rate

To retrieve the exchange rate to be applied to your transfers, specify the source_currency, destination_currency, andamount (the destination amount) for the transfer to the transfer rates endpoint

The API returns:

  1. The rate representing how much of the destination currency is needed to obtain 1 unit of the source currency.
  2. The source.amountis the total amount debited from the source wallet, representing the value required to fulfill the destination amount after any applicable conversions.

destination.amount = source.amount x rate


Example 1: Querying rates for an NGN -> USD transfer

  • John needs to send Paul $1000
  • John only has funds in his NGN balance on his Flutterwave Wallet. Therefore, he needs to know the amount in NGN required for a $1,000 transfer to Paul.
  • Therefore,
    • source_currency is NGN
    • destination_currency is USD
    • amount is 1000
    • source.amount is unknown

To get the source.amount, John makes the following API call:

curl --request GET 'https://api.flutterwave.com/v3/transfers/rates?amount=1000&destination_currency=USD&source_currency=NGN' \
--header 'Authorization: Bearer YOUR_SECRET_KEY'

You'll get the response below:

{
    "status": "success",
    "message": "Transfer rates fetched",
    "data": {
        "rate": 0.000694329,
        "source": {
            "currency": "NGN",
            "amount": 1440239.425
        },
        "destination": {
            "currency": "USD",
            "amount": 1000
        }
    }
}
{
	"status": "error",
	"message": "Unable to fetch rates at the moment",
	"data": null
}

This means at the time of the request, John needs 1,440,239 NGN to transfer $1000 to Paul. The applicable rate for the transfer is 1 NGN = 0.000694329USD.

If John proceeds with the transfer, he would specify debit_currency as NGN in his transfer request.



Example 2: Querying rates for a USD -> NGN transfer

Now let’s look at the reverse situation.

  • Paul now wants to send John 100,000 NGN.
  • Paul only has a USD balance in his Flutterwave Wallet. This means Paul needs to know how much USD will be required to send 100,000 NGN to John.
  • Based on this,
    • source_currency = USD
    • destination_currency = NGN
    • amount = 100000
    • source.amount = unknown

To get the source_amount, Paul makes the following API call:

curl --request GET 'https://api.flutterwave.com/v3/transfers/rates?amount=100000&destination_currency=NGN&source_currency=USD' \
--header 'Authorization: Bearer YOUR_SECRET_KEY'

You'll get the response below:

{
    "status": "success",
    "message": "Transfer rates fetched",
    "data": {
        "rate": 1372,
        "source": {
            "currency": "USD",
            "amount": 72.886
        },
        "destination": {
            "currency": "NGN",
            "amount": 100000
        }
    }
}
{
	"status": "error",
	"message": "Unable to fetch rates at the moment",
	"data": null
}

This means that at the time of the request, Paul needs approximately $73 to transfer 100,000 NGN to John. The applicable rate is 1 USD = 1372 NGN.