How to specify a Non-USD currency when sending top-ups

Mauro Chojrin

Mauro Chojrin

2 min

Your wallet contents are expressed in your local currency and, unless you specify differently, the quantity you specify for the topup will be used directly to deduct from your balance.

For topups where both the sender and recipient use the same currency (Local topups being the most obvious case) this is fine but, in general, when sending international TopUps a currency conversion will need to take place.

Don’t worry, Reloadly has you covered.

How does currency conversion work in Reloadly’s TopUps

In case your balance is expressed in a currency different to the one of the receiving party you have the option of asking Reloadly to make the conversion.

For this Reloadly will use an exchange rate specific to the operator you’re sending credit to.

Specifiying the currency when sending a request

Let’s say you live in the US and you want to make a topup for a phone in Colombia and you want to use Colombian Peso to express the amount to be sent to the recipient.

Let me illustrate this with an example to make things clearer.

You want to make a COP 20,000 topup for +57 301 4264205.

The sequence would be:

  1. Get an authentication token
  2. Get the operator Id
  3. Make the topup request

I’ll assume you know how to perform steps 1 and 2 (If not, just follow the appropriate links) and show you the details of step 3.

Since you prefer the recipient to be credited a specific number in their own currency, you have to inform Reloadly about that by slightly changing the request you’d usually send.

Simply use the useLocalAmount parameter. Like this:

curl --location --request POST https://topups.reloadly.com/topups --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' --header 'Accept: application/com.reloadly.topups-v1+json' --header 'Content-Type: application/json' --data-raw '{
                "operatorId":"92",
                "amount":"20000",
		    "useLocalAmount": true,
                "recipientPhone": {
                        "countryCode": "CO",
                        "number": "573014264205"
                }
        }

Which will produce an output similar to:

{
  "transactionId": 27879,
  "status": "SUCCESSFUL",
  "operatorTransactionId": null,
  "customIdentifier": null,
  "recipientPhone": "573014264205",
  "recipientEmail": null,
  "senderPhone": null,
  "countryCode": "CO",
  "operatorId": 92,
  "operatorName": "Tigo Colombia",
  "discount": 0,
  "discountCurrencyCode": "EUR",
  "requestedAmount": 20000,
  "requestedAmountCurrencyCode": "COP",
  "deliveredAmount": 20000,
  "deliveredAmountCurrencyCode": "COP",
  "transactionDate": "2022-03-02 11:06:23",
  "pinDetail": null,
  "balanceInfo": {
    "oldBalance": 766.814,
    "newBalance": 755.85748,
    "currencyCode": "USD",
    "currencyName": "US Dollar",
    "updatedAt": "2022-03-02 16:06:23"
  }
}

If you look at the bottom (balanceInfo) you’ll notice how the balance got affected after this transaction:

Before sending the top-up it was USD 766.814 and after it is USD 755.85748.

This means that the exchange rate for this particular operator is 1 USD = COP 1,825.38 (10.95652 USD = 20,000 COP).

Note: bear in mind that exchange rates are fluctuant so the exact numbers you’ll get when running this example might not be a perfect match for what you’re reading here but doesn’t mean you’re doing anything wrong.

There are times where you may want to know how many pesos the recipient will get for every USD deducted from your wallet before carrying the operation out.

To find that out you can use the Fetch FX Rate by Operator Id endpoint.

Getting the exchange rate applicable to a mobile Operator

What you’ll want to do is issue a request such as:

curl --location --request POST https://topups.reloadly.com/operators/fx-rate --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' --header 'Accept: application/com.reloadly.topups-v1+json' --header 'Content-Type: application/json' --data-raw '{
        "operatorId":"92",
                "amount":"10"
        }'

Which will produce an output similar to:

{
  "id": 92,
  "name": "Tigo Colombia",
  "fxRate": 18,2533.8,
  "currencyCode": "COP"
}

Which means when you send 10 USD to a phone operated by Tigo Colombia (Operator with ID 92), the recipient’s phone will be credited with 18,2533.8 Colombian Pesos.

This might also interest you:

Content by developers to developers.

Subscribe to The Monthly Reload for Developers and start receiving all the developers’ updates.

The Monthly Reload: the newsletter for you

Subscribe to our Newsletter and don’t miss any news about our industry and products.

It’s time to build, make your first API call today