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:
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.