Управление ресурсами, тарифами

Подписки

Управление ботом подписок: группы ресурсов, каналы и чаты внутри группы, тарифы, уведомления и купленные доступы.

Хост: https://api.bot-t.com. Все методы — POST, тело application/json.

Бот должен быть ботом подписок. Лимит: 120 запросов в минуту с одного IP.

Авторизация

В каждом запросе передайте bot_id — числовой идентификатор бота.

Секрет передаётся одним из способов (в query или в теле):

ПолеГде взять
tokenТокен бота из BotFather
secretKeyСекретный ключ бота в кабинете

Токен и секрет храните только на своём сервере.

POST https://api.bot-t.com/v1/subscriber/resource/index?token=123456:ABC

Ответ

Успех:

{ "result": true, "data": {} }

Ошибка:

{ "result": false, "message": "текст ошибки" }

Удаление и счётчики возвращают data строкой: "1" — да, "0" — нет, либо число записей.

Даты без отдельной пометки — в часовом поясе бота, формат ГГГГ-ММ-ДД ЧЧ:ММ:СС. Дату можно передать и как unix timestamp.

Общие поля

Срок type_term

ЗначениеЕдиница
1день
2неделя
3месяц
4час
5год

term — целое от 1 до 99. Пример: term = 1, type_term = 3 — один месяц.

Валюта currency_id

IDКод
1RUB
2USD
3EUR
4UAH
5KZT
6BYN
7UZS
8GBP
9THB
10MDL
11MNT
12PLN
13XTR (Telegram Stars)

Если валюту не передать при создании тарифа, берётся валюта бота.

Цена

Число в основных единицах валюты: 890 или 890.50. В ответе цена — строка с двумя знаками: "890.50".

Статус группы и тарифа

ЗначениеСмысл
1включено
0выключено

Тип канала или чата

ЗначениеСмысл
1канал
2чат

data — идентификатор чата Telegram (-100… или @username). Перед добавлением бот должен быть администратором этого чата.

Статус купленной подписки

ЗначениеСмысл
1не оплачена
2оплачена, доступ активен
3срок истёк
4ожидает оплаты

user_id в этих методах — идентификатор пользователя в системе (поле id у пользователя бота), а не Telegram ID.

Клиент

Python

import requests

API = "https://api.bot-t.com"
TOKEN = "123456:ABC"
BOT_ID = 1

def call(path, **body):
    response = requests.post(
        f"{API}{path}",
        params={"token": TOKEN},
        json={"bot_id": BOT_ID, **body},
        timeout=30,
    )
    response.raise_for_status()
    payload = response.json()
    if not payload.get("result"):
        raise RuntimeError(payload.get("message", "ошибка API"))
    return payload["data"]

JavaScript

const API = "https://api.bot-t.com";
const TOKEN = "123456:ABC";
const BOT_ID = 1;

async function call(path, body = {}) {
  const response = await fetch(`${API}${path}?token=${encodeURIComponent(TOKEN)}`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ bot_id: BOT_ID, ...body }),
  });
  const payload = await response.json();
  if (!payload.result) {
    throw new Error(payload.message || "ошибка API");
  }
  return payload.data;
}

Дальше в примерах используется эта функция call.


Группа ресурсов

Группа объединяет один или несколько каналов и чатов, свои тарифы и уведомления.

Объект группы:

ПолеОписание
idИдентификатор группы
titleНазвание
descriptionОписание
status1 включена, 0 выключена
custom_emoji_idИдентификатор кастомного эмодзи кнопки или null
access_start_dateДата начала доступа ГГГГ-ММ-ДД или null
itemsКаналы и чаты группы (в списке и в карточке)

Список групп

POST /v1/subscriber/resource/index

Тело: только bot_id.

groups = call("/v1/subscriber/resource/index")
const groups = await call("/v1/subscriber/resource/index");

data — массив групп.

Одна группа

POST /v1/subscriber/resource/view

ПолеОбяз.Описание
idдаИдентификатор группы
group = call("/v1/subscriber/resource/view", id=3)
const group = await call("/v1/subscriber/resource/view", { id: 3 });

Создать группу

POST /v1/subscriber/resource/create

ПолеОбяз.Описание
titleдаНазвание
descriptionнетОписание
generateнетtrue — сразу создать типовые тарифы и уведомления. По умолчанию false
custom_emoji_idнетЦифры и минус, до 40 символов
access_start_dateнетГГГГ-ММ-ДД, строго позже сегодняшнего дня в часовом поясе бота

Пустая группа ещё не продаёт доступ: добавьте канал или чат методом ниже. Удобнее создать группу сразу с первым чатом: item/create-join.

group = call(
    "/v1/subscriber/resource/create",
    title="VIP",
    description="Закрытый канал",
    generate=True,
)
const group = await call("/v1/subscriber/resource/create", {
  title: "VIP",
  description: "Закрытый канал",
  generate: true,
});

Изменить группу

POST /v1/subscriber/resource/update

ПолеОбяз.Описание
idдаИдентификатор группы
titleнетНовое название
descriptionнетНовое описание
custom_emoji_idнетНовый эмодзи. Пустая строка сбрасывает
access_start_dateнетНовая дата начала
reset_access_start_dateнетtrue — убрать дату, доступ начнётся с момента оплаты

Непереданные поля не меняются.

call("/v1/subscriber/resource/update", id=3, title="VIP Plus")
await call("/v1/subscriber/resource/update", { id: 3, title: "VIP Plus" });

Включить или выключить

POST /v1/subscriber/resource/change-status

ПолеОбяз.
idда

Переключает статус на противоположный. В ответе — группа.

Удалить группу

POST /v1/subscriber/resource/delete

ПолеОбяз.
idда

Удаляет группу вместе с каналами, тарифами и уведомлениями. data — "1".


Канал или чат в группе

Объект:

ПолеОписание
idИдентификатор
resource_idГруппа
titleНазвание
dataID чата Telegram
type1 канал, 2 чат

Список

POST /v1/subscriber/item/index

ПолеОбяз.
resource_idда
items = call("/v1/subscriber/item/index", resource_id=3)
const items = await call("/v1/subscriber/item/index", { resource_id: 3 });

Добавить в существующую группу

POST /v1/subscriber/item/create

ПолеОбяз.Описание
resource_idдаГруппа
titleдаНазвание
dataдаID чата
typeда1 или 2

Число каналов и чатов в одной группе ограничено тарифом платформы.

item = call(
    "/v1/subscriber/item/create",
    resource_id=3,
    title="Закрытый канал",
    data="-1001234567890",
    type=1,
)
const item = await call("/v1/subscriber/item/create", {
  resource_id: 3,
  title: "Закрытый канал",
  data: "-1001234567890",
  type: 1,
});

Создать группу и первый чат сразу

POST /v1/subscriber/item/create-join

Бот должен быть администратором чата, иначе запрос завершится ошибкой.

ПолеОбяз.Описание
titleдаНазвание группы и чата
dataдаID чата
typeда1 или 2
generateнетtrue — типовые тарифы и уведомления

Ответ:

{
  "result": true,
  "data": {
    "resource": { "id": 3, "title": "VIP", "items": [] },
    "item": { "id": 10, "resource_id": 3, "title": "VIP", "data": "-1001234567890", "type": 1 }
  }
}
created = call(
    "/v1/subscriber/item/create-join",
    title="VIP",
    data="-1001234567890",
    type=1,
    generate=True,
)
resource_id = created["resource"]["id"]
const created = await call("/v1/subscriber/item/create-join", {
  title: "VIP",
  data: "-1001234567890",
  type: 1,
  generate: true,
});
const resourceId = created.resource.id;

Изменить

POST /v1/subscriber/item/update

ПолеОбяз.Описание
idдаИдентификатор канала или чата
titleнетНазвание
dataнетID чата
typeнет1 или 2

Удалить

POST /v1/subscriber/item/delete

ПолеОбяз.
idда

Последний канал или чат группы удалить нельзя. Сначала удалите всю группу.

Проверить права бота

POST /v1/subscriber/item/check

ПолеОбяз.
idда
{
  "result": true,
  "data": {
    "is_admin": true,
    "message": "Бот является администратором"
  }
}
check = call("/v1/subscriber/item/check", id=10)
if not check["is_admin"]:
    raise SystemExit(check["message"])
const check = await call("/v1/subscriber/item/check", { id: 10 });
if (!check.is_admin) {
  throw new Error(check.message);
}

Тарифы

Объект тарифа:

ПолеОписание
idИдентификатор
resource_idГруппа
titleНазвание на кнопке
termЧисло срока
type_termЕдиница срока
priceЦена, строка "890.00"
currency_idВалюта
status1 включён, 0 выключен
is_testtrue — пробный тариф
only_for_active_users1 — только у кого уже есть активный доступ к этой группе, 0 — всем
referral_percentПроцент реферального бонуса или null
custom_emoji_idЭмодзи кнопки или null
message_idИдентификатор текста, который уходит покупателю
textТекст тарифа

Список

POST /v1/subscriber/tariff/index

ПолеОбяз.
resource_idда
tariffs = call("/v1/subscriber/tariff/index", resource_id=3)
const tariffs = await call("/v1/subscriber/tariff/index", { resource_id: 3 });

Один тариф

POST /v1/subscriber/tariff/view

ПолеОбяз.
idда

Создать

POST /v1/subscriber/tariff/create

ПолеОбяз.Описание
resource_idдаГруппа
titleдаДо 255 символов
termда1–99
type_termда1–5
priceдаОт 1. Для пробного тарифа можно 0
currency_idнетИначе валюта бота
statusнетПо умолчанию 1
is_testнетtrue — пробный. По умолчанию обычный
only_for_active_usersнет0 или 1
textнетТекст покупателю. Если не передать, подставится текст по умолчанию
referral_percentнет0–100 или null
custom_emoji_idнетЭмодзи кнопки

Число тарифов в группе ограничено тарифом платформы. Лишние при создании удаляются.

tariff = call(
    "/v1/subscriber/tariff/create",
    resource_id=3,
    title="Месяц",
    term=1,
    type_term=3,
    price=890,
    text="Доступ на 30 дней",
)
const tariff = await call("/v1/subscriber/tariff/create", {
  resource_id: 3,
  title: "Месяц",
  term: 1,
  type_term: 3,
  price: 890,
  text: "Доступ на 30 дней",
});

Пробный тариф:

call(
    "/v1/subscriber/tariff/create",
    resource_id=3,
    title="3 дня бесплатно",
    term=3,
    type_term=1,
    price=0,
    is_test=True,
)
await call("/v1/subscriber/tariff/create", {
  resource_id: 3,
  title: "3 дня бесплатно",
  term: 3,
  type_term: 1,
  price: 0,
  is_test: true,
});

Изменить

POST /v1/subscriber/tariff/update

ПолеОбяз.
idда

Остальные поля те же, что при создании, и необязательны. Непереданные поля не меняются. text заменяет текст покупателю. is_test после создания не меняется.

call("/v1/subscriber/tariff/update", id=12, price=990, status=1)
await call("/v1/subscriber/tariff/update", { id: 12, price: 990, status: 1 });

Включить или выключить

POST /v1/subscriber/tariff/change-status

ПолеОбяз.
idда

Переключает status.

Сменить валюту

POST /v1/subscriber/tariff/currency

ПолеОбяз.
idда
currency_idда

Цена в числовом виде не пересчитывается: меняется только валюта отображения.

Удалить

POST /v1/subscriber/tariff/delete

ПолеОбяз.
idда

data — "1". Уже купленные доступы остаются, в них название тарифа станет «тариф удалён».


Уведомления

Сообщение уходит за term + type_term до конца доступа.

Объект:

ПолеОписание
idИдентификатор
resource_idГруппа
termЗа сколько
type_termЕдиница
is_rebilltrue — напоминание перед автоплатежом, false — обычное
message_idИдентификатор текста
textТекст уведомления

Список

POST /v1/subscriber/notice/index

ПолеОбяз.
resource_idда
notices = call("/v1/subscriber/notice/index", resource_id=3)
const notices = await call("/v1/subscriber/notice/index", { resource_id: 3 });

Одно уведомление

POST /v1/subscriber/notice/view

ПолеОбяз.
idда

Создать

POST /v1/subscriber/notice/create

ПолеОбяз.Описание
resource_idдаГруппа
termда1–99
type_termда1–5
textдаТекст
is_rebillнетПо умолчанию обычное уведомление

Число уведомлений ограничено тарифом платформы.

notice = call(
    "/v1/subscriber/notice/create",
    resource_id=3,
    term=2,
    type_term=1,
    text="До конца доступа осталось 2 дня",
)
const notice = await call("/v1/subscriber/notice/create", {
  resource_id: 3,
  term: 2,
  type_term: 1,
  text: "До конца доступа осталось 2 дня",
});

Напоминание об автоплатеже:

call(
    "/v1/subscriber/notice/create",
    resource_id=3,
    term=1,
    type_term=1,
    is_rebill=True,
    text="Завтра спишется оплата за продление",
)
await call("/v1/subscriber/notice/create", {
  resource_id: 3,
  term: 1,
  type_term: 1,
  is_rebill: true,
  text: "Завтра спишется оплата за продление",
});

Изменить

POST /v1/subscriber/notice/update

ПолеОбяз.Описание
idдаУведомление
termнет
type_termнет
textнетНовый текст
is_rebillнет
call("/v1/subscriber/notice/update", id=8, term=3, text="Осталось 3 дня")
await call("/v1/subscriber/notice/update", {
  id: 8,
  term: 3,
  text: "Осталось 3 дня",
});

Удалить

POST /v1/subscriber/notice/delete

ПолеОбяз.
idда

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


Купленные подписки

Объект покупки (data элемента списка):

ПолеОписание
idИдентификатор покупки
bot_idБот
status1–4, см. таблицу выше
balanceTypeСпособ оплаты: id, title, image
userПокупатель: id, telegram_id, username, first_name, last_name, link, type
tariff_idТариф или null, если тариф удалён
resource_idГруппа
resource_titleНазвание группы
tariff_titleНазвание тарифа. Для автосписания: «Попытка автосписания #N»
tariff_priceЦена тарифа строкой, например 990 ₽
priceФактически оплаченная сумма строкой
paid_timeНачало доступа в часовом поясе бота или «Не определено»
paid_atНачало доступа, unix UTC, или null
end_paid_timeКонец доступа или «Не определено»
end_paid_atКонец доступа, unix UTC, или null
created_timeКогда создана запись
notification_timeБлижайшее уведомление или -
notification_atТо же, unix UTC
notice_idКакое уведомление запланировано
notice_titleТекст этого уведомления
is_recurrentВключено автопродление
can_edit_access_startМожно сдвинуть дату начала (доступ оплачен и ещё не начался)
item_idСпособ оплаты или null
itemDataДополнительные данные оплаты
bot_clone_idКопия бота или null
purchase_bot_titleВ каком боте оформили

Фильтры списков

Их можно передать в index, count, bot-user-index, bot-user-count.

ПолеОписание
user_idПокупатель
status1–4
idКонкретная покупка
tariff_idТариф. Можно массив
resource_idГруппа. Можно массив. Если не передать в index и count — все группы бота
typeТип записи. Вместе с type_not_in
type_not_intrue — исключить указанные type, false — оставить только их
paid_time_start, paid_time_endПериод оплаты, границы включительно
end_paid_time_start, end_paid_time_endПериод окончания доступа
created_time_start, created_time_endПериод создания записи
data_1Подстрока в данных оплаты, до 500 символов
paid_atСортировка по оплате: ASC или DESC
end_paid_atСортировка по окончанию
notification_atСортировка по уведомлению

Если сортировку не передать, записи идут от новых к старым.

Пагинация: limit (по умолчанию 25, максимум 1000), offset (по умолчанию 0).

Список покупок

POST /v1/subscriber/users/index

ПолеОбяз.Описание
resource_idнетОдна группа. Без поля — все группы
limit, offsetнетСтраница
фильтрынетТаблица выше
page = call("/v1/subscriber/users/index", resource_id=3, status=2, limit=50, offset=0)
const page = await call("/v1/subscriber/users/index", {
  resource_id: 3,
  status: 2,
  limit: 50,
  offset: 0,
});

Количество

POST /v1/subscriber/users/count

Те же фильтры, без limit и offset. data — число строкой, например "128".

total = int(call("/v1/subscriber/users/count", status=2))
const total = Number(await call("/v1/subscriber/users/count", { status: 2 }));

Покупки одного пользователя

POST /v1/subscriber/users/bot-user-index

ПолеОбяз.
user_idда

Плюс limit, offset и фильтры. Группу указывать не нужно.

accesses = call("/v1/subscriber/users/bot-user-index", user_id=501, status=2)
const accesses = await call("/v1/subscriber/users/bot-user-index", {
  user_id: 501,
  status: 2,
});

Сколько покупок у пользователя

POST /v1/subscriber/users/bot-user-count

ПолеОбяз.
user_idда

Плюс фильтры. data — число строкой.

Одна покупка

POST /v1/subscriber/users/view

ПолеОбяз.
idда
access = call("/v1/subscriber/users/view", id=501)
const access = await call("/v1/subscriber/users/view", { id: 501 });

Выдать доступ

POST /v1/subscriber/users/grant

Создаёт оплаченную подписку от имени администратора и отправляет приглашение, как при ручной выдаче в кабинете. Пробный тариф выдать нельзя. Пользователь уже должен быть в боте.

ПолеОбяз.Описание
user_idдаПользователь
resource_idдаГруппа
tariff_idдаОбычный тариф этой группы
accrue_referral_bonusнет1 — начислить реферальный бонус (по умолчанию), 0 — не начислять
access = call(
    "/v1/subscriber/users/grant",
    user_id=501,
    resource_id=3,
    tariff_id=12,
    accrue_referral_bonus=0,
)
const access = await call("/v1/subscriber/users/grant", {
  user_id: 501,
  resource_id: 3,
  tariff_id: 12,
  accrue_referral_bonus: 0,
});

Подтвердить оплату

POST /v1/subscriber/users/success

ПолеОбяз.
idда

Отмечает покупку оплаченной администратором. data — "1".

Отправить приглашение в чат

POST /v1/subscriber/users/invite

ПолеОбяз.
idда

Бот сам отправляет ссылку пользователю. data — "ok".

Получить ссылку-приглашение

POST /v1/subscriber/users/generate-invite

ПолеОбяз.
idда

data — текст со ссылкой. Ссылка не выдаётся, если срок уже истёк или дата начала доступа ещё не наступила.

link = call("/v1/subscriber/users/generate-invite", id=501)
const link = await call("/v1/subscriber/users/generate-invite", { id: 501 });

Убрать автопродление

POST /v1/subscriber/users/remove-rebill

ПолеОбяз.
idда

data — "1".

Изменить дату окончания

POST /v1/subscriber/users/edit-end-date

ПолеОбяз.Описание
idдаПокупка
end_paid_timeдаДата в часовом поясе бота или unix timestamp

В ответе — обновлённая покупка. Если новая дата ещё не прошла, ближайшее уведомление пересчитывается.

call("/v1/subscriber/users/edit-end-date", id=501, end_paid_time="2026-12-01 12:00:00")
await call("/v1/subscriber/users/edit-end-date", {
  id: 501,
  end_paid_time: "2026-12-01 12:00:00",
});

Сдвинуть дату окончания у нескольких

POST /v1/subscriber/users/mass-edit-end-date

ПолеОбяз.Описание
resource_idдаГруппа
end_paid_timeдаНовая дата
idнетМассив идентификаторов. Без него — все активные доступы группы
{
  "result": true,
  "data": { "updated": 14, "message": "Обновлено записей: 14" }
}
call(
    "/v1/subscriber/users/mass-edit-end-date",
    resource_id=3,
    end_paid_time="2026-12-01 12:00:00",
    id=[501, 502],
)
await call("/v1/subscriber/users/mass-edit-end-date", {
  resource_id: 3,
  end_paid_time: "2026-12-01 12:00:00",
  id: [501, 502],
});

Изменить дату начала

POST /v1/subscriber/users/edit-access-start

Только если can_edit_access_start равен true: доступ оплачен и paid_at ещё в будущем. Длительность сохраняется, конец сдвигается на ту же величину.

ПолеОбяз.
idда
paid_timeда
call("/v1/subscriber/users/edit-access-start", id=501, paid_time="2026-10-01 00:00:00")
await call("/v1/subscriber/users/edit-access-start", {
  id: 501,
  paid_time: "2026-10-01 00:00:00",
});

Пересчитать уведомления

POST /v1/subscriber/users/rebuild-notification

ПолеОбяз.Описание
idдаИдентификатор или массив. Пропускаются неактивные доступы

data — "1".

Удалить доступ

POST /v1/subscriber/users/delete

ПолеОбяз.Описание
idдаИдентификатор или массив

Пользователя убирают из ресурса. data — "1".

call("/v1/subscriber/users/delete", id=[501, 502])
await call("/v1/subscriber/users/delete", { id: [501, 502] });

Сегмент пользователей бота

POST /v1/subscriber/users/create-group

Создаёт сегмент аудитории бота из покупателей, которые подходят под фильтры.

ПолеОбяз.Описание
resource_idдаГруппа
titleдаНазвание сегмента
фильтрынетТе же, что у списка покупок
{
  "result": true,
  "data": { "group_id": 44, "title": "Активные VIP", "users_count": 120 }
}
segment = call(
    "/v1/subscriber/users/create-group",
    resource_id=3,
    title="Активные VIP",
    status=2,
)
const segment = await call("/v1/subscriber/users/create-group", {
  resource_id: 3,
  title: "Активные VIP",
  status: 2,
});

Проверка участников

Сверка, кто ещё состоит в чате, но доступ уже не действует.

Объект проверки:

ПолеОписание
idИдентификатор проверки
resourceГруппа: title, description
statusОбъект со значением: 0 черновик, 1 в очереди, 2 выполняется, 3 готово, 4 ошибка
all_usersСколько участников проверено
kickСколько исключено
errorСколько ошибок
created_timeСтарт, ГГГГ-ММ-ДД ЧЧ:ММ
finish_timeФиниш или -

Список проверок

POST /v1/subscriber/check-users/index

ПолеОбяз.
resource_idда

Запустить

POST /v1/subscriber/check-users/start

ПолеОбяз.
resource_idда

data — "1". Проверка выполняется в фоне, статус смотрите в списке.

call("/v1/subscriber/check-users/start", resource_id=3)
checks = call("/v1/subscriber/check-users/index", resource_id=3)
await call("/v1/subscriber/check-users/start", { resource_id: 3 });
const checks = await call("/v1/subscriber/check-users/index", { resource_id: 3 });

Количество

POST /v1/subscriber/check-users/count

ПолеОбяз.
resource_idда

data — число строкой.

Удалить проверку

POST /v1/subscriber/check-users/delete

ПолеОбяз.
idда, число или массив

Сводка адресов

МетодНазначение
POST /v1/subscriber/resource/indexСписок групп
POST /v1/subscriber/resource/viewГруппа
POST /v1/subscriber/resource/createСоздать группу
POST /v1/subscriber/resource/updateИзменить группу
POST /v1/subscriber/resource/change-statusВкл/выкл группу
POST /v1/subscriber/resource/deleteУдалить группу
POST /v1/subscriber/item/indexКаналы и чаты
POST /v1/subscriber/item/createДобавить канал или чат
POST /v1/subscriber/item/create-joinГруппа и первый чат
POST /v1/subscriber/item/updateИзменить канал или чат
POST /v1/subscriber/item/deleteУдалить канал или чат
POST /v1/subscriber/item/checkБот — администратор?
POST /v1/subscriber/tariff/indexТарифы группы
POST /v1/subscriber/tariff/viewТариф
POST /v1/subscriber/tariff/createСоздать тариф
POST /v1/subscriber/tariff/updateИзменить тариф
POST /v1/subscriber/tariff/change-statusВкл/выкл тариф
POST /v1/subscriber/tariff/currencyВалюта тарифа
POST /v1/subscriber/tariff/deleteУдалить тариф
POST /v1/subscriber/notice/indexУведомления
POST /v1/subscriber/notice/viewУведомление
POST /v1/subscriber/notice/createСоздать уведомление
POST /v1/subscriber/notice/updateИзменить уведомление
POST /v1/subscriber/notice/deleteУдалить уведомление
POST /v1/subscriber/users/indexПокупки
POST /v1/subscriber/users/countСколько покупок
POST /v1/subscriber/users/bot-user-indexПокупки пользователя
POST /v1/subscriber/users/bot-user-countСколько покупок у пользователя
POST /v1/subscriber/users/viewОдна покупка
POST /v1/subscriber/users/grantВыдать доступ
POST /v1/subscriber/users/successПодтвердить оплату
POST /v1/subscriber/users/inviteОтправить приглашение
POST /v1/subscriber/users/generate-inviteПолучить ссылку
POST /v1/subscriber/users/remove-rebillВыключить автопродление
POST /v1/subscriber/users/edit-end-dateДата окончания
POST /v1/subscriber/users/mass-edit-end-dateДата окончания у нескольких
POST /v1/subscriber/users/edit-access-startДата начала
POST /v1/subscriber/users/rebuild-notificationПересчитать уведомления
POST /v1/subscriber/users/deleteУдалить доступ
POST /v1/subscriber/users/create-groupСегмент покупателей
POST /v1/subscriber/check-users/indexПроверки участников
POST /v1/subscriber/check-users/startЗапустить проверку
POST /v1/subscriber/check-users/countСколько проверок
POST /v1/subscriber/check-users/deleteУдалить проверку