Получение данных подписки (V4)
Важно
Метод работает только с подписками, оформленными через Pay SDK.
Метод позволяет получить информацию о подписке пользователя по идентификатору покупки.
подсказка
Если не знаете с чего начать, прочтите инструкцию в сценариях использования.
Параметры взаимодействия
Для реальных подписок:
GET
https://public-api.rustore.ru/public/v4/subscription/{packageName}/{subscriptionId}/{purchaseId}
Для тестовых подписок используйте отдельный метод:
GET
https://public-api.rustore.ru/public/sandbox/v4/subscription/{packageName}/{subscriptionId}/{purchaseId}
| Атрибут | Тип | Описание | Обязательность | Расположение | Пример |
|---|---|---|---|---|---|
Public-Token | string | JWE-токен авторизации в Public API RuStore. Как получить токен авторизации | Да | header | N/A |
packageName | string | Наименование пакета приложения. | Да | path | com.MashaAndTheBear.HairSalon |
subscriptionId | string | Код продукта-подписки. Указывается разработчиком при создании продукта в RuStore Консоли. Как создать подписку. | Да | path | daily_sub |
purchaseId | string | Идентификатор покупки в формате UUID. Можно получить из результата покупки через SDK, из уведомления на сервер или запросом информации о покупке. | Да | path | 3aa0c7bd-964e-4562-b218-fe365adb4ae3 |
Параметры ответа
| Атрибут | Тип | Описание | Обязательность | Расположение | Пример |
|---|---|---|---|---|---|
code | string | Код ответа. | Да | body | OK / ERROR |
message | string | Расшифровка кода ответа. | Нет | body | Bad request |
body{} | object | Тело ответа. | Нет | body | N/A |
timestamp | string | Время ответа. | Да | body | 2024-07-29T12:00:00.000Z |
body{}
| Атрибут | Тип | Описание | Обязательность | Пример |
|---|---|---|---|---|
startTimeMillis | string | Время предоставления подписки в миллисекундах с начала эпохи. | Да | 1694431707000 |
expiryTimeMillis | string | Время истечения срока действия подписки в миллисекундах с начала эпохи. | Да | 1697083457000 |
autoRenewing | boolean | Будет ли подписка автоматически продлеваться по истечении текущего срока действия. | Да | false |
developerPayload | string | Строка с дополнительной информацией о заказе, которую вы можете установить при подтверждении покупки в SDK. | Нет | External id = 1 |
priceCurrencyCode | string | Код валюты ISO 4217 для цены подписки. | Да | RUB |
priceAmountMicros | string | Цена подписки. Цена выражается в микроединицах, где 1 000 000 микроединиц представляет собой одну единицу валюты. Например, если цена подписки составляет 100 рублей, цена AmountMicros равна 100000000. | Да | 749000000 |
countryCode | string | Код страны/региона выставления счетов пользователя на момент предос тавления подписки. | Да | RU |
paymentState | number | Состояние оплаты подписки. Возможные значения: • 0 — ожидание платежа • 1 — платёж получен; • 2 — бесплатная пробная версия.Отсутствует для отмененных подписок с истекшим сроком действия. | Нет, только для активных подписок | 1 |
cancelReason | number | Причина, по которой подписка была отменена. Возможные значения: • 0 — подписка отменена пользователем • 1 — подписка была отменена системой, например, из-за проблемы с оплатой • 3 - подписка отменена разработчиком | Нет, только для отмененных подписок со статусом CLOSED | 0 |
userCancellationTimeMillis | string | Время отмены подписки пользователем в миллисекундах с начала эпохи. | Нет, только для отмененных подписок со статусом CLOSED | 1697083457000 |
orderId | string | Идентификатор последнего счета, связанного с покупкой подписки. Если счетов по подписке более одного, к идентификатору добавляется их количество через разделитель "..", начало от счёта от 0 | Да | 3352..1 |
acknowledgementState | number | Состояние подтверждения продукта подписки. Возможные значения: • 0 — ещё не подтверждено; • 1 — подтверждено. | Да | 1 |
externalAccountId | string | Идентификатор пользователя во внешнем приложении. | Нет, только если задан при старте покупки appUserId | any_string |
kind | string | Всегда androidpublisher#subscriptionPurchase. | Да | androidpublisher#subscriptionPurchase |
purchaseType | number | Тип покупки: 0 — тестовая подписка. | Нет, только для тестовых подписок, для реальных не передаётся | 0 |
introductoryPriceInfo{} | object | Информация о бесплатном периоде подписки. Это поле не указывает, что подписка в настоящее время находится в бесплатном периоде. | Нет, только если у подписки настроен бесплатный период | см. ниже |
promoPriceInfo{} | object | Информация о стартовом периоде подписки. Заполняется только при наличии стартового периода. Это поле не указывает, что подписка в настоящее время находитс я в стартовом периоде. | Нет, только если у подписки настроен стартовый период | см. ниже |
introductoryPriceInfo{}
| Атрибут | Тип | Описание | Пример |
|---|---|---|---|
introductoryPriceCurrencyCode | string | Код валюты ISO-4217 для начальной цены. | RUB |
introductoryPriceAmountMicros | string | Стоимость периода (в микроединицах). Для бесплатного периода значение равно 0. | 0 |
introductoryPricePeriod | string | Длительность бесплатного периода в формате ISO-8601 (P1W, P1M, P3M, P6M, P1Y). | P1Y |
introductoryPriceCycles | string | Количество расчётных периодов предложения. | 1 |
promoPriceInfo{}
| Атрибут | Тип | Описание | Пример |
|---|---|---|---|
promoPriceCurrencyCode | string | Код валюты ISO-4217 для промо-цены. | RUB |
promoPriceAmountMicros | string | Стоимость периода (в микроединицах). | 59900000 |
promoPricePeriod | string | Длительность бесплатного периода в формате ISO-8601 (P1W, P1M, P3M, P6M, P1Y). | P1Y |
promoPriceCycles | string | Количество расчётных периодов промо-предложения. | 1 |
Пример успешного ответа
{
"code": "OK",
"message": "Successful result",
"body": {
"startTimeMillis": "1694431707000",
"expiryTimeMillis": "1697083457000",
"autoRenewing": true,
"developerPayload": "External id = 1",
"priceCurrencyCode": "RUB",
"priceAmountMicros": "749000000",
"countryCode": "RU",
"paymentState": 1,
"cancelReason": 0,
"userCancellationTimeMillis": "1697083457000",
"orderId": "3352..1",
"acknowledgementState": 1,
"externalAccountId": "any_string",
"kind": "androidpublisher#subscriptionPurchase",
"purchaseType": 0,
"introductoryPriceInfo": {
"introductoryPriceCurrencyCode": "RUB",
"introductoryPriceAmountMicros": "0",
"introductoryPricePeriod": "P1Y",
"introductoryPriceCycles": "1"
},
"promoPriceInfo": {
"promoPriceCurrencyCode": "RUB",
"promoPriceAmountMicros": "59900000",
"promoPricePeriod": "P1Y",
"promoPriceCycles": "1"
}
},
"timestamp": "2025-08-11T14:16:02.236Z"
}
Пример ответа с ошибкой
{
"code": "ERROR",
"message": "Bad request",
"body": null,
"timestamp": "2024-07-29T12:00:00.000Z"
}