Balances & amounts
Two balances, minor units, topping up.
Amounts are minor units
Every amount in the API is a whole number in the currency's smallest unit, so there are no rounding surprises.
| Currency | Unit | Example |
|---|---|---|
| MVR | laari (1/100) | 47000 = MVR 470.00 |
| USD | cents (1/100) | 3100 = USD 31.00 |
| USDT | cents (1/100) | 3007 = USDT 30.07 |
Three separate balances
Your account holds an MVR balance, a USD balance and a USDT balance. They are independent: nothing is converted between them. On every order, of a gift card or of an eSIM, you name the balance to charge, and you pay that currency's price. USDT prices are the USD prices times a factor shown on your price list (a little lower), so paying in USDT costs less. A key can carry a default currency, so calls without balance charge that one.
{"data": {"MVR": 406000, "USD": 12500, "USDT": 8200}}Adding balance
Balance is added from your dashboard, not through the API: Account → Balance → Add balance.
| Pay by | Goes to |
|---|---|
| Bank transfer in MVR (BML, MIB) | MVR balance |
| Bank transfer in USD | USD balance |
| USDT on-chain (BNB Chain, Polygon, Ethereum, TRON) | USDT balance |
402 insufficient_balance and nothing is charged.Refunds
Units the API could not deliver are refunded to the balance they were paid from, automatically and at the price charged. The order shows how much came back in refunded and what you paid in the end in charged.
An eSIM that you cancel before it was installed is refunded the same way: see Manage an eSIM.