Ваш сайт или программа сама выдаёт подписки из нашего VPN. Нужен разработчик.
/api/v1/vpn/depositВозвращает invoice_url: откройте его сами или отдайте бухгалтеру. Зачисление
приходит вебхуком deposit.credited и видно в GET /deposit/{custom_id}.
Повтор с тем же custom_id и другой суммой или провайдером отбивается 409: для
денег тихий повтор со старой суммой опаснее ошибки.
Ваш идентификатор операции, уникальный в рамках аккаунта. Повтор запроса с тем же custom_id вернёт результат первой попытки без повторного списания.
successbooleantrue у любого успешного ответа.
depositobjectПополнение.
idempotent_replaybooleanЕсть только в ответе на повтор с тем же custom_id: true, это результат первой попытки, деньги второй раз не списаны.
401unauthorized: Неверный или отсутствующий API-ключ403api_disabled: Доступ к API для этого аккаунта закрыт; ip_not_allowed: Адрес запроса не входит в список разрешённых409custom_id_conflict: Этот custom_id уже использован с другими параметрами; too_many_open_deposits: Слишком много неоплаченных пополнений422validation_error: Неверные параметры запроса429rate_limited: Слишком много запросов503provider_unavailable: Платёжный способ временно недоступен; upstream_unavailable: Поставщик VPN временно недоступенПодставится в примеры и в запрос. Хранится только в этом браузере.
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
}'Запрос меняет данные или списывает деньги: выполняйте его из своего кода.
{
"success": true,
"deposit": {
"custom_id": "11111111-1111-4111-8111-111111111111",
"deposit_id": "01a06320-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
"status": "pending",
"provider": "cryptobot",
"amount_minor": 1000,
"amount_usd": "10.00",
"amount_display_minor": 92500,
"gross_display_minor": 95275,
"display_currency": "RUB",
"invoice_url": "https://t.me/CryptoBot?start=IVxxxxxxxx",
"created_at": "2026-09-02T12:00:00Z",
"paid_at": null,
"expires_at": "2026-09-02T13:00:00Z"
}
}successbooleantrue у любого успешного ответа.
depositobjectПополнение.
idempotent_replaybooleanЕсть только в ответе на повтор с тем же custom_id: true, это результат первой попытки, деньги второй раз не списаны.