Balance

Read your current balance, on-hold totals, lifetime aggregates, and the deposit addresses for top-ups.

All examples below assume Authorization: Bearer mer_live_… is set; see Authentication.

Get balance

GET /api/v1/merchant/balance
curl https://api.tradeon.market/api/v1/merchant/balance \
  -H "Authorization: Bearer mer_live_…"

200 OK:

{
  "available": 481.60,
  "on_hold": 18.40,
  "total_deposited": 1000.00,
  "total_spent": 500.00,
  "currency": "USD",
  "deposit_addresses": {
    "trc20": "TXY...USDT_TRC20_ADDRESS",
    "bep20": "0x...USDT_BEP20_ADDRESS"
  }
}

Fields

FieldTypeNotes
availabledecimal (USD)Free balance — what you can spend right now.
on_holddecimal (USD)Sum of in-flight purchases — every purchase whose public status is created, processing, or sent_to_steam. Released back into available on terminal status.
total_depositeddecimal (USD)Lifetime sum of confirmed deposits (Deposit ledger rows).
total_spentdecimal (USD)Lifetime net spend = sum of Purchase debits − sum of Refund credits.
currencystringAlways "USD".
deposit_addressesobjectStatic USDT addresses for top-ups. Both fields are null until provisioned.
deposit_addresses.trc20string | nullUSDT-TRC20 address (Tron network).
deposit_addresses.bep20string | nullUSDT-BEP20 address (BNB Smart Chain).

Topping up

Send USDT to either deposit address (TRC-20 or BEP-20). The deposit is confirmed by our upstream payment provider (Heleket) and credited to your available balance. You will receive a balance.deposited webhook with the credited amount and the new balance_after — use that as your post-confirmation signal rather than polling /balance.

There is no minimum deposit; on-chain network fees still apply on the sender side.

If deposit_addresses is null, the addresses have not been provisioned yet — contact the TradeOn admin team.

Deposit commission

A single commission is withheld per deposit — it covers the network and processing fees, there are no other charges. The rate depends on the amount you send:

Deposit amountCommission
Under $5,0001%
$5,000 and above0.5%

The credited amount is sent × (1 − rate). Example: send $1,000 → $990.00 credited. The commission scale is also available programmatically:

GET /api/v1/merchant/deposits/fees
{
  "currency": "USD",
  "tiers": [
    { "min_amount": 0,    "max_amount": 5000, "percent": 1.0 },
    { "min_amount": 5000, "max_amount": null, "percent": 0.5 }
  ]
}

Errors

HTTPcodeWhen
401MERCHANT_API_KEY_MISSINGAuthorization header missing or malformed.
403MERCHANT_BLOCKEDAccount blocked.
429MERCHANT_RATE_LIMITEDPer-merchant request budget exceeded.

See also