Баланс и курсы
GET /balance
Текущий баланс мерчанта.
Ответ
{
"available_usdt": "1245.32100000",
"reserved_usdt": "0.00000000",
"pending_rub": "50000.00",
"total_settled_usdt": "15678.90000000",
"total_withdrawn_usdt": "14433.58000000",
"updated_at": "2026-04-14T12:00:00Z"
}
| Поле | Что значит |
|---|---|
available_usdt |
Доступно к выплате прямо сейчас |
reserved_usdt |
Зарезервировано под выплату в обработке |
pending_rub |
Уже принятые рубли, ждут settlement (T+1) |
total_settled_usdt |
Всего получено USDT за всё время |
total_withdrawn_usdt |
Всего выведено за всё время |
Settlement T+1
Что такое T+1: settlement запускается каждый день в 12:00 по московскому времени (09:00 UTC). В него попадают все платежи, оплаченные до 00:00 UTC текущих суток (03:00 МСК), — то есть за предыдущие сутки. Рубли конвертируются в USDT по курсу, который фиксируется один раз на весь расчёт в момент его запуска.
Зачем:
- Фиксируем курс на весь батч — нет спекуляций на колебаниях
- Успеваем проверить все callback'и от банка
- Есть буфер на возвраты/диспуты
Пример:
9 апр 10:00 МСК — платёж 1000₽ принят (pending_rub += 1000)
10 апр 12:00 МСК — settlement: 1000₽ / 83.3595 = 11.996 USDT → available_usdt
10 апр 12:01 МСК — средства на балансе, попадут в ближайшую автоматическую выплату
GET /rates
Informational курс RUB/USDT. Не settlement — только для справки/калькулятора.
Ответ
{
"pair": "RUB/USDT",
"rate_market": "79.37",
"rate_merchant": "83.55",
"updated_at": "2026-04-14T12:00:00Z",
"note": "Informational rate. Final rate is fixed at T+1 settlement."
}
| Поле | Описание |
|---|---|
pair |
Всегда "RUB/USDT" |
rate_market |
Справочный рыночный курс (RUB за 1 USDT), округлён до 2 знаков. Без наценки X-Hub — по нему видно, от чего считается rate_merchant. Для начисления не используется |
rate_merchant |
Итоговый курс для мерчанта (RUB за 1 USDT), округлён до 2 знаков. Включает все комиссии/наценку X-Hub — используй его в калькуляторе. Рыночный курс отдаётся полем rate_market, размер наценки отдельным полем по-прежнему не отдаётся |
updated_at |
ISO-8601 UTC. Время последнего обновления курса |
note |
Информационное сообщение |
Используй rate_merchant в калькуляторе
Клиент платит 1000₽ → тебе начислится 1000 / rate_merchant USDT (минус флуктуации до settlement).
Пример
Клиент платит 1000₽, R = 79.37 (рыночный курс на T+1, он же rate_market), markup = 5%:
merchant_rate = 79.37 / (1 - 0.05) = 83.5474 → в API придёт "83.55"
merchant_usdt = 1000 / 83.5474 = 11.96925338 USDT <-- тебе
xhub_fee = (1000 / 79.37) - 11.96925338 ≈ 0.63 USDT (все комиссии X-Hub)
Не считай начисление по rate_merchant до копейки
В ответе курс округлён до 2 знаков, а фактическое начисление считается по полной точности и фиксируется на T+1 settlement. GET /rates — для калькулятора и витрины, не для сверки.
Курс временно недоступен
Если источник курса не отвечает — 503 RATE_UNAVAILABLE. Ретрай через 30-60 сек, см. Коды ошибок.