Transfer Rates

Find out the exchange rate for your international transfer.

You can get the Flutterwave exchange rate for transfers in different currencies using the get transfer rates endpoint.

🚧

These rates are for transfer estimation only and not for FX trading. They update 3–4 times daily based on currency fluctuations and may change at any time.

Get Exchange Rate

To use the exchange rate API, you'll need to know the source_currency, destination currency and the destination amount (called amount on the API). The rate API will then return the rate and the amount required (source amount) to transit the destination amount.

Example 1: Converting from KES to USD

  • John needs to send Paul $1000
  • John only has a KES balance in his Flutterwave Wallet. This means John needs to know the amount in KES for a $1000 transfer to Paul
  • Based on the above,
    • source_currency is KES
    • destination_currency is USD
    • destination_amount is 1000
    • source_amount is unknown

To get the source_amount, John makes the below API call

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

You'll get the response below:

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

This means that at the request, John needs 114988.5 KES to transfer $1000 to Paul. The applicable rate was 114.9885 KES = 1 USD.

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

Example 2: Converting from USD to KES (Reverse Scenario)

Now let’s look at the reverse situation.

  • Paul now wants to send John 114,989 KES.
  • Paul only has a USD balance in his Flutterwave Wallet. This means Paul needs to know how much USD will be required to send 114,989 KES to John.
  • Based on the above,
    • source_currency = USD
    • destination_currency = KES
    • destination_amount = 114989
    • 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=114989&destination_currency=KES&source_currency=USD' \
--header 'Authorization: Bearer YOUR_SECRET_KEY'

You'll get the response below:

{
  "status": "success",
  "message": "Transfer amount fetched",
  "data": {
    "rate": 0.007477481,
    "source": {
      "currency": "USD",
      "amount": 859.82805794
    },
    "destination": {
      "currency": "KES",
      "amount": 114989
    }
  }
}
{
	"status": "error",
	"message": "Unable to fetch rates at the moment",
	"data": null
}

This means that at the time of the request, Paul needs approximately $859.83 to transfer 114,989 KES to John. The applicable rate was 1 USD = 114.9885 KES, which is the reverse of the first example.

Specifying the source_amount and not the destination_amount i.e. reversing the currencies on the API won't give you the intended rate. You would have to request the destination_amount from the end-user and use the API as explained.