Skip to main content
Пользователь оплачивает пакет на вашей стороне, после чего вы выдаёте ему подписку в Ai-Seven через API. Взаиморасчёт между компаниями происходит отдельно, по итогам периода.

Список пакетов

Возвращает пакеты, доступные для выдачи. У каждого варианта зафиксированы срок и объём токенов.
string
Название пакета.
array
Варианты пакета с разными сроками.
Запрашивайте список перед выдачей — состав пакетов и цены могут меняться. Выдать можно только существующий вариант. Пакеты с ограниченным числом мест в список не входят и через API не выдаются.

Выдача подписки

Получателя указывают одним из двух способов:
  • user_id — ваш идентификатор пользователя (sub токена входа). Если аккаунта ещё нет, он создаётся.
  • public_id — наш идентификатор из статистики или из токена виджета. Пакет ложится в существующий аккаунт, новый не создаётся.

Заголовки

string
required
Уникальный ключ операции, от 6 до 64 символов. Защищает от повторной выдачи при таймаутах и ретраях.

Тело запроса

string
Идентификатор пользователя в вашей системе — тот же, что вы передаёте в sub токена входа. От 1 до 64 символов. Передаётся ровно одно из user_id и public_id.
string
Идентификатор пользователя в Ai-Seven, UUID. Передаётся ровно одно из user_id и public_id.
integer
required
Идентификатор варианта пакета из GET /subscription-plans.
string
required
Идентификатор платежа в вашей системе, от 1 до 64 символов. Используется при сверке взаиморасчётов и защищает от повторной выдачи по одному платежу. Важно: параметр уникален в рамках партнёра.
integer
default:"0"
Процент цены пакета, от которого начисляются выплаты маркетинга, от 0 до 100. Учитывается, только если маркетинг при выдаче включён для вашей интеграции — см. Выплаты маркетинга.
object
Данные пользователя для отображения в кабинете. Учитываются только при выдаче по user_id и только при создании нового аккаунта.

Ответ

string | null
Ваш идентификатор пользователя — если выдача была по user_id. При выдаче по public_id — null.
string
Идентификатор пользователя в Ai-Seven.
integer
Момент окончания пакета, который действует у пользователя после выдачи, unix-время в секундах. У бессрочного пакета — 4102444800 (01.01.2100).
string
Название пакета, который действует у пользователя после выдачи.
integer
Идентификатор варианта, который действует у пользователя после выдачи. Обычно совпадает с переданным; если у пользователя уже был пакет лучше — это его вариант, см. Поведение.

Пример

Выплаты маркетинга

Выдача пакета может запускать выплаты маркетинга Ai-Seven — так же, как покупка этого пакета на сайте: прямой бонус и матчинг вышестоящим по структуре пользователя, учёт в обороте периодических бонусов. Выплаты получают пользователи Ai-Seven, с вас ничего не списывается. Выплаты запускаются, только если выполнены все условия:
1

Маркетинг при выдаче включён для вашей интеграции

Включается с нашей стороны вместе с суточным потолком выдач — договоритесь с контактным лицом в Ai-Seven. Без включения marketing_percent не учитывается: пакет выдаётся, выплат нет.
2

В запросе передан marketing_percent больше 0

Не передан или 0 — пакет выдаётся без выплат.
База выплат — цена варианта пакета в нашем каталоге (price из GET /subscription-plans) × marketing_percent / 100. Например, вариант за 8 500 ₽ с marketing_percent: 50 даёт выплаты как покупка за 4 250 ₽. Повтор успешной выдачи с тем же Idempotency-Key или payment_id второй раз ничего не выдаёт и не начисляет.

Лимиты

Суточный потолок выдач

Сумма цен выданных вами пакетов за сутки по московскому времени, с 00:00. Задаётся с нашей стороны. Выдача, с которой сумма превысит потолок, отклоняется с 429 — ничего не выдаётся и не начисляется.

Лимиты запросов

Число запросов в минуту и в сутки на всю интеграцию — общее для всех эндпоинтов Partner API. Подробнее — в Обзоре.

Поведение

При выдаче по user_id аккаунт создаётся автоматически, пакет ждёт первого входа. Сценарий «купил, потом зашёл» работает — пользователю достаточно перейти по кнопке из вашего кабинета.При выдаче по public_id аккаунт не создаётся: неизвестный public_id — 404.
Выдача не понижает действующий пакет пользователя. Прежний пакет остаётся, если он выше рангом, а при равном ранге — если он кончается позже, чем кончился бы выданный, или это другой пакет и он дороже. Тогда plan_title, plan_price_id и activated_until в ответе — прежнего пакета. В остальных случаях пакет заменяется на выданный — пакеты не суммируются.Выданный пакет действует с момента выдачи на свой полный срок, остаток прежнего пакета к нему не прибавляется. Месяц срока — 30 суток.Доступ к платформе продлевается до более поздней из двух дат: нынешнего окончания доступа или момента выдачи плюс срок пакета.Токены выданного варианта начисляются в любом случае.
Успешный ответ повторяется как есть, повторной выдачи не происходит. Если операция завершилась ошибкой, ключ освобождается, и повтор с тем же ключом выполняет её заново (например, после 429 потолка — на следующие сутки).Если первая операция ещё выполняется, вернётся 409. Если ключ пришёл с другим телом запроса — 422.
Возвращается 409. Один платёж может быть использован для выдачи только один раз, независимо от ключа идемпотентности.

Ошибки

Помимо общих ошибок:
Используйте новый Idempotency-Key на каждую операцию выдачи. При повторном использовании ключа с другими данными вернётся 422, и выдача не выполнится.