NovaCodes

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.

CurrencyUnitExample
MVRlaari (1/100)47000 = MVR 470.00
USDcents (1/100)3100 = USD 31.00
USDTcents (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.

GET/balance
All three balances.
Response
{"data": {"MVR": 406000, "USD": 12500, "USDT": 8200}}

Adding balance

Balance is added from your dashboard, not through the API: Account → Balance → Add balance.

Pay byGoes to
Bank transfer in MVR (BML, MIB)MVR balance
Bank transfer in USDUSD balance
USDT on-chain (BNB Chain, Polygon, Ethereum, TRON)USDT balance
An order must be covered by one balance in full. If the named balance is short, the order is refused with 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.