/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
}'{
"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 временно недоступен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": "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"
}
}