Подключение подписки

Перед подключением

Авторизация

В заголовке каждого запроса необходимо передавать токен API Key в следующем формате:

  • Тип токена: Bearer
  • Имя заголовка: Authorization

Подробнее о получении параметров авторизации в разделе Получение токена.

URL для запросов

Все запросы необходимо отправлять на следующий URL:

https://smartmarket.online.sberbank.ru/api/subscription-market/

Список доступных подписок

Вы можете отображать пользователю список подписок, которые он может оформить в смартапе. Для этого используйте метод GET /v2/products.


Параметры заголовка


Поле Описание
token

Обязательное

string

Токен для авторизации запроса. Подробнее в разделе Получение токена

user_id

Обязательное

object

Блок с информацией о пользователе


encrypted_sub_id

Обязательное

string

Идентификатор пользователя. Передается для получения информации о покупках конкретного пользователя. Идентификатор можно получить из переменной $request.rawRequest.uuid.sub


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


Параметр Описание

serviceId

Обязательное

string

Идентификатор сервиса, который был выдан смартапу вместе с токеном авторизации. Подробнее в разделе Получение токена


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

curl --location --request GET 'https://smartmarket.online.sberbank.ru/api/subscription-market/v2/products?deviceType=SBERBOX&deviceId=GZB01Y06DD006388&serviceId=12' \
--header 'token: eyJhbGciOiJSUzI1NiIsI...' \
--header 'user_id: {"encrypted_sub_id":"lhIq...}'

Параметры ответа


Поле Описание
success

boolean

Результат обработки запроса. Значения:
• true — данные получены
• false — данные не получены

message

string

Текстовое описание ошибки

body

array

Блок с информацией о подписках


productId

numeric

Идентификатор продукта подписки. Выдается при запросе доступа к подпискам


name

string

Наименование продукта подписки. Передается значение из заявки на получение доступа к подпискам


description

string

Описание подписки. Передается значение из заявки на получение доступа к подпискам


productCode

string

Артикул (код подписки у провайдера). Передается значение из заявки на получение доступа к подпискам


tariffParams

array

Блок с параметрами тарифа



tariffId

numeric

Идентификатор тарифа. Выдается при запросе доступа к подпискам



partnerName

string

Наименование тарифа



periodName

string

Название периода списания за подписку:
• PROMO — бесплатный либо за 1 рубль
• START — с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания с карты пользователя в случае неуспешной оплаты при продлении подписки. В течение периода контент не блокируется
• HOLD — период повторных попыток списания с карты пользователя в случае неуспешной оплаты при продлении подписки. В течение периода контент блокируется



periodType

string

Единица измерения продолжительности периода подписки:
• DAY — дни
• MONTH — месяцы



periodDuration

numeric

Продолжительность периода подписки



periodPrice

string

Стоимость периода подписки. Указывается в копейках


Пример ответа

{
  "success": true,
  "message": "",
  "body": [
    {
      "productId": 1,
      "name": "Тариф Middle",
      "description": "Тариф Middle - базовое предложение...",
      "productCode": "Middle",
      "tariffParams": [
        {
          "tariffId": 1,
          "partnerName": "Тариф Middle",
          "periodName": "PROMO | START | STANDARD | GRACE | HOLD",
          "periodType": "MINUTE | HOUR | DAY | MONTH | YEAR",
          "periodDuration": 30,
          "periodPrice": "10000"
        }
      ]
    }
  ]
}

Подключение подписки

Вы можете подключить пользователю подписку, если у вас есть идентификатор подписки (productId) и идентификатор тарифа (tariffId). Для подключения используйте метод POST /v2/subscriptions.


Параметры заголовка


Поле Описание
token

Обязательное

string

Токен для авторизации запроса. Подробнее в разделе Получение токена

user_id

Обязательное

object

Блок с информацией о пользователе


encrypted_sub_id

Обязательное

string

Идентификатор пользователя. Передается для получения информации о покупках конкретного пользователя. Идентификатор можно получить из переменной $request.rawRequest.uuid.sub


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


Параметр Описание

tariffId

Обязательное

numeric

Идентификатор тарифа. Выдается при запросе доступа к подпискам

recurrent

boolean

Признак автоматического продления подписки:
• true — подписка продлевается автоматически (по умолчанию)
• false — подписка закрывается после истечения первого периода

addParameters

object

Json-объект, в котором можно передать любую информацию по подписке. Информация будет отправляться в callback-уведомлениях при наступлении событий (активация, отмена, продление подписки)


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

curl -X POST "https://.../v2/subscriptions"
-H  "token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9…"
-H  "user_id: {   "encrypted_sub_id": "123" }"
-H  "Content-Type: application/json"
-d "{\"addParameters\":\"{\\\"something\\\":\\\"unknown\\\"},\"tariffId\":1,\"recurrent\":true}"

Параметры ответа


Поле Описание
success

boolean

Результат обработки запроса. Значения:
• true — данные получены
• false — данные не получены

message

string

Текстовое описание ошибки

body

array

Блок с информацией о подписках


orderId

numeric

Идентификатор созданной подписки


invoiceId

string

Идентификатор платежа для оформления подписки


name

string

Наименование подписки. Передается значение из заявки на получение доступа к подпискам


description

string

Описание подписки. Передается значение из заявки на получение доступа к подпискам


price

numeric

Цена первого периода подписки. Указывается в копейках:
• Если есть PROMO период — цена 0
• Если нет PROMO, но есть START — цена стартового периода
• Если предусмотрен только STANDARD — цена стандартного периода


currency

string

Валюта списания. По умолчанию возвращается значение RUB


periodType

string

Единица измерения продолжительности периода подписки:
• DAY — дни
• MONTH — месяцы


periodDuration

numeric

Продолжительность периода подписки


state

string

Текущий статус подписки. В ответе будет возвращаться статус ACCEPTED


Пример ответа

{
  "success": true,
  "message": "",
  "body": {
    "orderId": 999,
    "invoiceId": "b702aae8-13df-11eb-a058-b...",
    "name": "Тариф Middle",
    "description": "Тариф Middle - базовое предложение...",
    "price": 10000,
    "currency": "RUB",
    "periodType": "DAY",
    "periodDuration": 30,
    "state": "ACCEPTED"
  }
}

Оплата подписки

В ответ на запрос POST /v2/subscriptions придет параметр invoiceId — это идентификатор платежа для оформления подписки. Даже если для подписки предусмотрен бесплатный PROMO период, необходимо провести платеж для привязки карты. В этом случае средства не списываются — пользователь просто указывает реквизиты банковской карты для последующих списаний.

Процесс оплаты подписки совпадает со стандартным процессом оплаты. Подробнее в разделе POLICY_RUN_APP.

Получение статуса оплаты

Если пользователь активировал подписку, вы получите событие PAY_DIALOG_FINISHED и callback-уведомление об активации подписки. Чтобы отобразить результат оплаты пользователю, используйте метод получения статуса платежа по invoiceId, с которым был инициирован платеж.

Запрос статуса платежа аналогичен запросу статуса при проведении разового платежа. Подробнее в разделе Получение статуса.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней