StealthSurf VPNStealthSurf VPN
Доступные методыПрофиль

Баланс

Методы для работы с балансом аккаунта: история, расчёт стоимости, пополнение.

Обзор

Модуль для работы с балансом аккаунта. Позволяет рассчитывать стоимость пополнения и пополнять баланс.


GET /profile/balance/calculate

Рассчитать стоимость пополнения баланса.

Rate Limit: 5 req/sec

Query Parameters

ParameterTypeRequiredValidationDescription
amountnumberДа@IsInt @Min(1) @Max(14000)Сумма в рублях (1-14000)

Пример запроса

curl -X GET "https://api.stealthsurf.net/profile/balance/calculate?amount=500" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: Array<{
    id: number
    method_key: string      // sbp | ton | etc.
    display_name: string    // Название способа оплаты
    price: number           // Стоимость в валюте
    currency: string        // RUB | TON | etc.
  }>
}

Пример ответа

{
  "status": true,
  "statusCode": 200,
  "data": [
    {
      "id": 1,
      "method_key": "sbp",
      "display_name": "СБП",
      "price": 500,
      "currency": "RUB"
    },
    {
      "id": 3,
      "method_key": "ton",
      "display_name": "TON",
      "price": 1.25,
      "currency": "TON"
    }
  ]
}

В ответ не попадают неактивные методы, а также методы balance и promocode. Методы с суммой ниже min_amount исключаются (кроме referral). Сортировка — по полю position, затем по id.


POST /profile/balance/topup

Пополнить баланс.

Rate Limit: 1 req/sec

Request Body

FieldTypeRequiredValidationDescription
amountnumberДа@IsInt @Min(1) @Max(14000)Сумма в рублях (1-14000)
payment_method_idnumberДа@IsIntID способа оплаты

Заголовки

HeaderОписание
x-forwarded-forIP-адрес клиента (учитывается платёжным шлюзом)

Пример запроса

curl -X POST "https://api.stealthsurf.net/profile/balance/topup" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 500,
    "payment_method_id": 1
  }'

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    link: string  // Ссылка на оплату
  }
}

Пример ответа

{
  "status": true,
  "statusCode": 200,
  "data": {
    "link": "https://sbp.fk.life/pay/1234567890"
  }
}

Ответ (перевод с реферального баланса)

При пополнении основного баланса с реферального ответ — просто true (а не объект с link).

{
  status: true,
  statusCode: 200,
  data: true
}

Ошибки

errorCodemessageКогда
3bad requestНеверный запрос
15referral balance not enoughНедостаточно реферального баланса для перевода
46invalid topup amountНеверная сумма пополнения (вне диапазона 1-14000)

Минимальная сумма пополнения — 1 рубль, максимальная — 14000 рублей.


GET /profile/balance/monthly-spend

Получить нормализованные ежемесячные расходы по автопродлеваемым подпискам.

Rate Limit: 5 req / 1 sec

Пример запроса

curl -X GET "https://api.stealthsurf.net/profile/balance/monthly-spend" \
  -H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"

Ответ

{
  status: true,
  statusCode: 200,
  data: {
    total: number              // Суммарные расходы
    currency: string           // Валюта (RUB)
    has_active_renewals: boolean
    next_charge: {              // null, если нет активных автопродлений
      at: number               // Unix timestamp следующего списания
      amount: number
    } | null
    items: Array<{
      type: string             // config | cloud_server | paid_option
      id: number
      title: string
      days: number
      charge_amount: number
      price_per_month: number
      expires_at: number
    }>
  }
}

Пример ответа

{
  "status": true,
  "statusCode": 200,
  "data": {
    "total": 750,
    "currency": "RUB",
    "has_active_renewals": true,
    "next_charge": {
      "at": 1716153600,
      "amount": 250
    },
    "items": [
      {
        "type": "config",
        "id": 12,
        "title": "🇳🇱 Нидерланды",
        "days": 30,
        "charge_amount": 250,
        "price_per_month": 250,
        "expires_at": 1716153600
      }
    ]
  }
}

Помогла ли вам эта статья?

Содержание