AI agents: this site is available as Markdown at /llms.txt. Each page has a Markdown version at its URL with a .md suffix, and the full API is described in /api/v3/openapi.json.

Transfer Rates

Query FX rates for cross-border transfers

Last updated 13 September 2026

Introduction

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:

Javascript

1
2
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:

Javascript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
    "status": "success",
    "message": "Transfer rates fetched",
    "data": {
        "rate": 0.000694329,
        "source": {
            "currency": "NGN",
            "amount": 1440239.425
        },
        "destination": {
            "currency": "USD",
            "amount": 1000
        }
    }
}

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:

Javascript

1
2
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:

Javascript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
    "status": "success",
    "message": "Transfer rates fetched",
    "data": {
        "rate": 1372,
        "source": {
            "currency": "USD",
            "amount": 72.886
        },
        "destination": {
            "currency": "NGN",
            "amount": 100000
        }
    }
}

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.



FL.AI

Answers from the Flutterwave docs

Hi, I’m FL.AI

Ask anything about Flutterwave’s APIs, guides and coverage.

FL.AI can make mistakes. Check important details in the docs.

Get API Keys