Transfer Rates

Query FX rates for cross-border transfers

Transfer rates are applied for cross-border transfers, i.e. you are sending money in a currency but want to debit a different currency for the transfer e.g. transferring USD to a customer but debiting your NGN wallet for the transfer.

You can retrieve the exchange rate applied to your transfers using 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.amount needed to send the specified destination amount. amount = rate × source.amount.

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": 1491.75,
        "source": {
            "currency": "NGN",
            "amount": 1491750
        },
        "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,491,750 NGN to transfer $1000 to Paul. The applicable rate for the transfer is 1491.75 NGN = 1 USD.

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": 0.000632,
        "source": {
            "currency": "USD",
            "amount": 63.2
        },
        "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 $63.2 to transfer 100,000 NGN to John. The applicable rate is 0.000632 USD = 1 NGN.