Выставить счёт на пополнение

POST/api/v1/vpn/deposit

Возвращает invoice_url: откройте его сами или отдайте бухгалтеру. Зачисление приходит вебхуком deposit.credited и видно в GET /deposit/{custom_id}. Повтор с тем же custom_id и другой суммой или провайдером отбивается 409: для денег тихий повтор со старой суммой опаснее ошибки.

curl -X POST https://api.relayhub.surf/api/v1/vpn/deposit \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "custom_id": "11111111-1111-4111-8111-111111111111",
    "provider": "cryptobot",
    "amount_minor": 1000
  }'
Вставьте свой ключ в меню, и он подставится вместо <YOUR_API_KEY>.
{
  "success": true,
  "deposit": {
    "custom_id": "dep-2026-09-02-1",
    "deposit_id": "01a06320-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
    "status": "pending",
    "provider": "cryptobot",
    "amount_minor": 5000,
    "amount_usd": "50.00",
    "amount_display_minor": 462500,
    "gross_display_minor": 476375,
    "display_currency": "RUB",
    "invoice_url": "https://t.me/CryptoBot?start=IVxxxxxxxx",
    "created_at": "2026-09-02T12:00:00Z",
    "expires_at": "2026-09-02T13:00:00Z"
  }
}

Авторизация

Заголовок Authorization: Bearer <ключ> на каждом запросе. Ключ один на аккаунт, выпускается в кабинете партнёра и показывается один раз. Он тратит депозит: держите его на сервере.

Тело запроса

custom_idstringобязательно

Ваш идентификатор операции, уникальный в рамках аккаунта. Повтор запроса с тем же custom_id вернёт результат первой попытки без повторного списания.

providerstringобязательно

Способ оплаты из GET /deposit/providers.

amount_minorintegerобязательно

Сумма пополнения в центах USD. Зачислится ровно она; комиссия провайдера сверху.

Поля ответа

successbooleanобязательно
depositobjectобязательно

Когда откажет

401unauthorized: Неверный или отсутствующий API-ключ
403api_disabled: Доступ к API для этого аккаунта закрыт
409custom_id_conflict: Этот custom_id уже использован с другими параметрами; too_many_open_deposits: Слишком много неоплаченных пополнений
422validation_error: Неверные параметры запроса
429rate_limited: Слишком много запросов
503provider_unavailable: Платёжный способ временно недоступен; upstream_unavailable: Поставщик VPN временно недоступен
Собираем анонимную аналитику посещений. Подробнее