Изменение и отмена подписки

Клиент может сменить тариф, выбрать другой сохранённый способ оплаты, отменить подписку и включить её снова.

Все действия выполняются от имени клиента: передавайте App Token приложения и Bearer клиента. После отмены или возобновления снова получите список подписок — эти методы возвращают сообщение, а не обновлённый объект.

Смена тарифа или сохранённого способа оплаты

Изменение подписки

Метод
PATCH
URL
https://api.gigma.ru/api/counterparty/subscriptions/{id}
Авторизация
App Token + Bearer клиента
Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}
Успешный ответ
200

Метод меняет тариф или выбирает уже сохранённый способ оплаты. Данные новой карты здесь не принимаются.

Параметры запроса

  • nomenclature_id (integer, опционально) — ID нового тарифа;
  • plan_slug (string, опционально) — новый тариф в формате nomenclature-{id};
  • saved_payment_method_id (integer, опционально) — активный способ оплаты этого клиента и приложения;
  • autopay_consent (boolean, условно обязательно) — передайте true, если меняются тариф, сумма, валюта, период или способ оплаты.

Для приложения с управляемым каталогом берите новый тариф из его каталога. Не передавайте произвольную цену или период: Gigma использует условия выбранного тарифа.

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

{
    "nomenclature_id": 34786,
    "autopay_consent": true
}

Ответ

{
    "data": {
        "id": 42,
        "nomenclature_id": 34786,
        "plan_slug": "nomenclature-34786",
        "amount": "1290.00",
        "currency": "RUB",
        "billing_period_months": 3,
        "status": "active"
    }
}

Ошибки

  • 404 — подписка не принадлежит клиенту или текущему приложению;
  • 409 — способ оплаты изменился после открытия формы. Снова получите подписку и повторите действие с актуальными данными;
  • 422 — тариф или способ оплаты недоступен, не принято новое согласие либо сейчас выполняется списание;
  • 429 — превышен лимит частоты запросов.

Чтобы привязать новую карту, используйте смену способа оплаты, а затем передайте её saved_payment_method_id в этот метод.

Отмена подписки

Отмена подписки

Метод
POST
URL
https://api.gigma.ru/api/counterparty/subscriptions/{id}/cancel
Авторизация
App Token + Bearer клиента
Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}
Успешный ответ
200

Тело запроса не нужно. Gigma сразу переводит подписку в canceled, записывает canceled_at и прекращает автоматические списания.

Ответ

{
    "message": "Подписка отменена"
}

Метод не возвращает подписку. После HTTP 200 вызовите GET /api/counterparty/subscriptions и обновите интерфейс.

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

Отложенной отмены в конце периода (cancel_at_period_end) в этом API нет. Не показывайте клиенту обещание «доступ сохранится до даты», если ваш backend проверяет стандартное правило Gigma.

Ошибки

  • 404 — подписка не принадлежит клиенту или текущему приложению;
  • 422 — подписка уже отменена либо сейчас выполняется списание;
  • 429 — превышен лимит частоты запросов.

Возобновление подписки

Перед возобновлением проверьте, что тариф всё ещё доступен, а сохранённый способ оплаты не отвязан. Если нужно, сначала привяжите новый способ оплаты.

Возобновление отменённой подписки

Метод
POST
URL
https://api.gigma.ru/api/counterparty/subscriptions/{id}/resume
Авторизация
App Token + Bearer клиента
Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}
Успешный ответ
200

Возобновление создаёт новое согласие на регулярные списания. Без него метод всегда вернёт ошибку.

Параметры запроса

  • autopay_consent (boolean, обязательно) — должно быть true.

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

{
    "autopay_consent": true
}

Ответ

{
    "message": "Подписка возобновлена"
}

После HTTP 200 снова получите подписки клиента. Если оплаченный период ещё действует, статус станет active; если он закончился — past_due. Открывайте доступ только после получения active с будущим current_period_end.

Ошибки

  • 404 — подписка не принадлежит клиенту или текущему приложению;
  • 409 — предыдущий платёж требует сверки или смена способа оплаты ещё не завершена. Временно заблокируйте кнопку и обновите состояние позже;
  • 422 — подписка не отменена, ранее не была активирована, тариф недоступен, способ оплаты отвязан или согласие не принято;
  • 429 — превышен лимит 12 запросов в минуту;
  • 503 — Gigma временно не может подтвердить состояние операции у платёжного провайдера. Не считайте подписку возобновлённой и не повторяйте запрос автоматически.

После изменения состояния

Не обновляйте интерфейс только локально. После PATCH, cancel или resume получите актуальный объект подписки и используйте его status, current_period_end, saved_payment_method и latest_payment_method_change.

Перед защищённым действием повторите проверку на backend: доступ разрешён только при status = "active" и будущем current_period_end.