Получение списка покупок по идентификатору
Метод позволяет получить информацию о покупках по внутреннему идентификатору пользователя в приложении (appUserId), переданному при инициации покупки (purchaseProduct). Прямой аналог метода SDK getPurchases для конкретного пользователя в вашем приложении.
Параметры взаимодействия
Для реальных покупок:
GET
https://public-api.rustore.ru/public/applications/{appId}/purchases
Для тестовых покупок:
GET
https://public-api.rustore.ru/public/sandbox/applications/{appId}/purchases
| Атрибут | Тип | Описание | Обязательность | Расположение | Пример |
|---|---|---|---|---|---|
Public-Token | string | Jwe-токен авторизации в Public API RuStore. Как получить токен авторизации. | Да | header | N/A |
appId | string | Идентификатор приложения. | Да | path | 1234 |
appUserId | string | Внутренний идентификатор пользователя в приложении. | Да | query | 0383134 |
purchaseStatus | string | Статус покупки. | Нет | query | N/A |
continuation | string | Continuation token для постраничного получения результатов. | Нет | query | N/A |
limit | string | Размер страницы. | Нет | query | 10 |
Параметры ответа
| Атрибут | Тип | Описание | Обязательность | Расположение | Пример |
|---|---|---|---|---|---|
code | string | Код ответа. | Да | body | • ОК;• ERROR;• BAD_REQUEST;• NOT_FOUND. |
message | string | Расшифровка кода ответа. | Нет | body | null |
body{} | object | Тело ответа. | Нет | body | {} |
timestamp | string | Время ответа. | Да | body | 2025-08-20T08:05:00.000Z |
body{}
| Атрибут | Тип | Описание | Обязательность | Пример |
|---|---|---|---|---|
purchaseId | string | Идентификатор покупки в формате UUID. Можно получить из результата покупки через SDK, из уведомления на сервер или запросом информации о покупке. | Да | 3aa0c7bd-964e-4562-b218-fe365adb4ae3 |
productId | string | Идентификатор продукта. | Да | free_start_2008 |
invoiceId | number | Номер (идентификатор) счёта. | Да | 12345 |
orderId | string | Идентификатор последнего счета, связанного с покупкой подписки. Если счетов по подписке более одного, к идентификатору добавляется их количество через разделитель "..", начало отсчёта от 0 | Да | 41456..3 |
purchaseType | number | Возможные значения: • 0 — реальная подписка; • 1 — тестовая подписка. | Да | 0 |
productType | string | Тип продукта. | Да | SUBSCRIPTION |
description | string | Описание заказа. | Да | Покупка в приложении Маша и медведь 100 кристаллов |
purchaseTime | string | Время покупки в формате ISO-8601. | Да | 2025-08-20T08:04:37.999 |
price | number | Цена в минимальных единицах валюты (копейки). | Да | 19900 |
amountLabel | string | Отформатированная цена товара, включая валютный знак. | Да | 199 ₽ |
currency | string | Код валюты. | Да | RUB |
quantity | number | Количество. | Да | 1 |
purchaseStatus | string | Статус покупки. | Да | ACTIVE |
developerPayload | string | Строка с дополнительной информацией о заказе, которую вы можете установить при подтверждении покупки в SDK. | Нет | External id = 1 |
subscription.expirationDate | string | Дата окончания подписки в формате ISO-8601. | Да (для productType=SUBSCRIPTION) | 2025-08-20T15:05:34.974Z |
subscription.period | string | Период подписки. | Да (для productType=SUBSCRIPTION) | MAIN |
Пример успешного ответа
{
"code": "OK",
"message": null,
"body": {
"elements": [
{
"purchaseId": "ffcf10bf-c990-4999-8a19-fb861d8b70eb",
"productId": "free_start_2008",
"invoiceId": 10000010031,
"orderId": "string",
"purchaseType": "ONE_STEP",
"productType": "SUBSCRIPTION",
"description": "free_start_2008",
"purchaseTime": "2025-08-20T08:04:37.999",
"price": 19900,
"amountLabel": "199 ₽",
"currency": "RUB",
"quantity": 1,
"purchaseStatus": "ACTIVE",
"developerPayload": "string",
"subscription": {
"expirationDate": "2025-08-20T15:05:34.974Z",
"period": "MONTH"
}
}
]
},
"timestamp": "2025-08-20T08:05:00.000Z"
}
Пример ответа с ошибкой
{
"code": "ERROR",
"message": "<соо бщение об ошибке>",
"body": null,
"timestamp": "2025-08-20T08:05:00.000Z"
}
Список ошибок
| Message | Расшифровка |
|---|---|
| This user does not have rights to perform this action. | Недостаточно прав или неверный/просроченный Public-Token. Проверьте валидность токена и соответствие приложению. |
limit должно быть больше 0 | Параметр limit должен быть строго больше 0. Укажите значение от 1. |
limit должно быть не больше 500 | Результатов в ответе не может быть больше 500. |
| Forbidden | Запрещено. Проверьте корректность токена авторизации и параметров запроса. |
| Something went wrong | Внутренняя ошибка. Повторите запрос позже или обратитесь в поддержку. |