> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vargopartners.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Обзор

> REST API, на котором с нуля собирается свой VPN-сервис: Telegram-бот, мини-апп или сайт

На VARGO Partner API можно с нуля построить собственный VPN-сервис под своим брендом — Telegram-бота, мини-апп или сайт — или добавить продажу VPN туда, где у вас уже есть клиенты. Всё, что клиент видит в своём кабинете, API отдаёт готовым: тарифы и оплату, статус подписки и срок, подключение, устройства.

Серверы, выдача доступа и приём оплаты остаются на платформе. Экраны и общение с клиентом — у вас.

## Что показать клиенту

| Экран | Откуда взять |
| - | - |
| Тарифы и цены | [`GET /plans`](/api/plans) |
| Оплата подписки или продления | [`POST /payments`](/api/create-payment) → ссылка `payment_url` |
| Подписка: активна ли, до какого числа, сколько дней осталось | [`GET /clients/{client_id}`](/api/get-client) → `subscription.status`, `expires_at`, `days_left` |
| Подключение: кнопка «Открыть в приложении» и QR-код | тот же ответ → `subscription.connect` |
| Устройства: сколько подключено из скольких, список с платформой и моделью | [`GET /clients/{client_id}/devices`](/api/list-devices) → `devices_count`, `devices_limit`, `devices` |
| Удалить устройство | [`DELETE /clients/{client_id}/devices/{device_id}`](/api/delete-device) |
| Докупить устройства | [`POST /payments`](/api/create-payment) с `purpose: devices` |
| Пробный период, если он у вас включён | [`POST /clients/{client_id}/trial`](/api/start-trial) |
| Перевыпустить ссылку подписки — старая сразу перестаёт работать | [`POST /clients/{client_id}/rotate-link`](/api/rotate-link) |
| Где скачать VPN-приложение | [`GET /apps`](/api/apps) |
| Соглашение и политика для клиента | [`GET /documents`](/api/documents) |

## Как устроены деньги

Клиент платит платформе на странице оплаты по ссылке из счёта. Цена для клиента — цена платформы плюс ваша наценка; после оплаты наценка ложится на ваш баланс партнёра. Подробно — [Тарифы и деньги](/pricing).

## Основное

| | |
| - | - |
| Базовый адрес | `https://api.vargopartners.com/api/partner/v1` |
| Формат | REST, JSON, UTF-8 |
| Ключ | `Authorization: Bearer vgo_live_…` на каждом запросе |
| Деньги | строки в рублях: `"150.00"`, рядом `currency: "RUB"` |
| Даты | ISO-8601, UTC |
| Ошибки | `{"error": {"code", "message", "fields"}}` — ветвиться по `code` |
| Язык текстов | заголовок `Accept-Language`: `ru` или `en`, без заголовка — `en` |

<Warning>
  Ключ живёт только на вашем сервере. Мини-апп и сайт ходят к вашему серверу, ваш сервер — к API. Ключ в коде мини-аппа достанется любому, кто его откроет, вместе со всеми вашими клиентами.
</Warning>

## Быстрый старт

<Steps>
  <Step title="Проверьте ключ">
    ```bash theme={"dark"}
    curl https://api.vargopartners.com/api/partner/v1/account \
      -H "Authorization: Bearer vgo_live_…"
    ```

    В ответе — название вашего сервиса и наценка. `401 UNAUTHORIZED` — ключ не принят.
  </Step>

  <Step title="Возьмите тарифы и способы оплаты">
    ```bash theme={"dark"}
    curl https://api.vargopartners.com/api/partner/v1/plans \
      -H "Authorization: Bearer vgo_live_…" \
      -H "Accept-Language: ru"

    curl https://api.vargopartners.com/api/partner/v1/payment-methods \
      -H "Authorization: Bearer vgo_live_…" \
      -H "Accept-Language: ru"
    ```

    Покажите клиенту `price` тарифа как есть — пересчитывать сумму у себя не нужно.
  </Step>

  <Step title="Выставьте счёт">
    ```bash theme={"dark"}
    curl -X POST https://api.vargopartners.com/api/partner/v1/payments \
      -H "Authorization: Bearer vgo_live_…" \
      -H "Idempotency-Key: order-1001" \
      -H "Content-Type: application/json" \
      -d '{"client_id": "user-42", "purpose": "subscription", "plan_id": 3, "method": "sbp", "return_url": "https://example.com/thanks"}'
    ```

    Клиента `user-42` ещё нет — он заведётся этим счётом. Ответ `201`:

    ```json theme={"dark"}
    {
      "payment_id": "5b0c9d0e-7c1a-4f3e-9b8e-2a6d1c0f4e21",
      "status": "pending",
      "purpose": "subscription",
      "client_id": "user-42",
      "plan_id": 3,
      "devices": null,
      "method": "sbp",
      "amount": "150.00",
      "platform_amount": "100.00",
      "partner_share": "50.00",
      "currency": "RUB",
      "payment_url": "https://…",
      "created_at": "2026-09-25T12:00:00Z",
      "expires_at": "2026-09-25T12:30:00Z",
      "paid_at": null,
      "client": null,
      "replayed": false
    }
    ```

    Отдайте клиенту `payment_url`.
  </Step>

  <Step title="Дождитесь оплаты">
    ```bash theme={"dark"}
    curl https://api.vargopartners.com/api/partner/v1/payments/5b0c9d0e-7c1a-4f3e-9b8e-2a6d1c0f4e21 \
      -H "Authorization: Bearer vgo_live_…"
    ```

    Когда `status` станет `succeeded`, в поле `client` придёт клиент со ссылкой подписки `subscription.subscription_url` и готовыми ссылками подключения `subscription.connect`.
  </Step>

  <Step title="Подключите клиента">
    Покажите кнопку «Открыть в приложении» (`connect[].connect_url`) или QR-код (`connect[].qr_payload`). Ссылки на установку приложений — `GET /apps`. Подробно — [Клиент и подключение](/clients).
  </Step>
</Steps>

<Note>
  Уведомления об оплате и об окончании срока на ваш адрес (вебхуки) появятся позже. Пока статус счёта и клиента узнаётся запросом `GET`.
</Note>

## Дальше

<CardGroup cols={2}>
  <Card title="Начало работы" icon="key" href="/getting-started">
    Ключ, повтор запроса, язык ответов
  </Card>

  <Card title="Все эндпоинты" icon="list" href="/api/overview">
    Что умеет API — одной таблицей
  </Card>

  <Card title="Ошибки и лимиты" icon="triangle-exclamation" href="/errors">
    Коды ошибок, лимиты, версии
  </Card>

  <Card title="Порядок запуска" icon="plug" href="/onboarding">
    От ключа до первых продаж
  </Card>
</CardGroup>
