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:
- The
raterepresenting how much of the destination currency is needed to obtain 1 unit of the source currency. - The
source.amountneeded 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
NGNbalance on his Flutterwave Wallet. Therefore, he needs to know the amount inNGNrequired for a $1,000 transfer to Paul. - Therefore,
source_currencyisNGNdestination_currencyisUSDamountis1000source.amountisunknown
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=USDdestination_currency=NGNamount=100000source.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.
Updated 6 minutes ago
