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

# Тарифы и деньги

> Из чего складывается цена, как проходит оплата и куда ложится наценка

## Цена для клиента

Тарифы у платформы одни на все каналы продаж. Цена для клиента — цена платформы плюс ваша наценка (`markup_percent` в [`GET /account`](https://vargopartners.com/docs/api/account)). В [`GET /plans`](https://vargopartners.com/docs/api/plans) все три числа уже посчитаны:

```json theme={"dark"}
{
  "currency": "RUB",
  "plans": [
    {"plan_id": 3, "months": 1, "lifetime": false,
     "price": "150.00", "platform_price": "100.00", "partner_share": "50.00"}
  ],
  "devices": {"included": 3, "max": 10,
              "price": "75.00", "platform_price": "50.00", "partner_share": "25.00"}
}
```

| Поле | Что это |
| - | - |
| `price` | Цена для клиента — ровно на эту сумму выставится счёт |
| `platform_price` | Часть платформы |
| `partner_share` | Ваша наценка в рублях — ляжет на баланс после оплаты |

Суммы — строки с двумя знаками после точки. С наценкой цена для клиента округляется до целого рубля и никогда не бывает ниже цены платформы, поэтому `partner_share` может отличаться от точного процента; без наценки цена равна цене платформы как есть. Показывайте клиенту суммы из ответа как есть: собственный расчёт по проценту разойдётся со счётом.

## Смена наценки

Наценку меняет [`PATCH /account`](https://vargopartners.com/docs/api/update-account) с полем `markup_percent` — от 0 до 1000 %:

* `GET /plans` отдаёт новые цены сразу — перечитайте тарифы после смены;
* уже выставленные счета остаются по прежней цене: сумма фиксируется при выставлении;
* наценка API своя: цены ваших Telegram-ботов на платформе она не меняет — у каждого бота наценка своя и задаётся в кабинете, на странице бота «Цены».

## Как проходит оплата

**1. Счёт**

Ваш сервер вызывает [`POST /payments`](https://vargopartners.com/docs/api/create-payment) и получает `payment_url`.

**2. Оплата**

Клиент оплачивает на странице сервиса оплаты. Если передан `return_url`, со страницы оплаты клиент вернётся на ваш адрес — и после оплаты, и после отказа, поэтому на этой странице перечитайте счёт. Если страница оплаты возврат не поддерживает, клиент остаётся на ней.

**3. Выдача**

Платформа выдаёт доступ сама — ничего вызывать не нужно. Счёт становится `succeeded`, в поле `client` появляется ссылка подписки, а если подключены вебхуки — на ваш сервер уходит событие [`payment.succeeded`](https://vargopartners.com/docs/webhooks#payment-succeeded).

**4. Наценка**

`partner_share` ложится на ваш баланс партнёра. Баланс и вывод — в кабинете партнёра, раздел [«Финансы»](https://admin.vargopartners.com/reseller/finance).

## Статусы счёта

| Статус | Что значит | Что делать |
| - | - | - |
| `pending` | Ждёт оплаты, `payment_url` действует | Опрашивать, пока клиент на странице оплаты, или ждать событие `payment.succeeded` |
| `succeeded` | Оплачен, доступ выдан | Показать клиенту подключение |
| `expired` | Не оплачен: срок оплаты вышел или оплата не прошла (банк отказал, клиент закрыл страницу оплаты) — но это не окончательно | Предложить клиенту новый счёт. Поздняя оплата по старому всё равно пройдёт и переведёт его в `succeeded` |
| `failed` | Банк вернул клиенту деньги за уже оплаченный счёт | Бывает только после `succeeded`: перечитайте клиента, прежде чем выдавать что-то у себя по этому счёту |

`expires_at` — ориентир: без отмены от сервиса оплаты статус меняется в течение часа после срока, поэтому `pending` может держаться дольше. Отказ банка, наоборот, переводит счёт в `expired` и до `expires_at`.

## Продление

Продление — тот же [`POST /payments`](https://vargopartners.com/docs/api/create-payment) с `purpose: subscription` на тот же `client_id`. Срок прибавляется к текущему, ссылка подписки не меняется: клиенту ничего не нужно переподключать. Если подписка уже истекла, новый срок идёт с момента оплаты.

## Дополнительные устройства

В подписку входит `devices.included` устройств. Докупить ещё — [`POST /payments`](https://vargopartners.com/docs/api/create-payment) с `purpose: devices` и числом `devices`:

```json theme={"dark"}
{"client_id": "user-42", "purpose": "devices", "devices": 2, "method": "sbp"}
```

* Нужна действующая подписка — иначе `400 NO_ACTIVE_SUBSCRIPTION`.
* Больше `devices.max` на клиента не бывает — иначе `400 DEVICE_SLOT_LIMIT_EXCEEDED`.
* На тарифе без ограничения устройств счёт не выставится — `400 DEVICE_SLOTS_NOT_APPLICABLE`.
* `devices: null` в `GET /plans` — доп. устройства сейчас не продаются (`409 DEVICES_NOT_FOR_SALE`).

## Способы оплаты

Список — [`GET /payment-methods`](https://vargopartners.com/docs/api/payment-methods): код `method` для счёта и название для клиента. Список меняется, поэтому перечитывайте его перед показом, а не храните у себя. Способ, который стал недоступен, отвечает `400 UNSUPPORTED_PAYMENT_METHOD`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.