Skip to main content

Get a purchase list by the internal user identifier

This method returns purchase information for a specific internal user identifier in the publisher’s app (appUserId) that was passed when initiating a purchase (purchaseProduct). This is a direct equivalent of the SDK method getPurchases for a specific user in your app.

Interaction parameters

For production purchases:

GET
https://public-api.rustore.ru/public/applications/{appId}/purchases

For test purchases:

GET
https://public-api.rustore.ru/public/sandbox/applications/{appId}/purchases
AttributeTypeDescriptionRequiredLocationExample
Public-TokenstringJWE authorization token for the RuStore Public API.
How to get an authorization token.
YesheaderN/A
appIdstringApp identifier.Yespath1234
appUserIdstringInternal user identifier in the app.Yesquery0383134
purchaseStatusstringPurchase status.NoqueryN/A
continuationstringContinuation token for paginated results.NoqueryN/A
limitstringPage size.Noquery10

Response parameters

AttributeTypeDescriptionRequiredLocationExample
codestringResponse code.YesbodyOK;
ERROR;
BAD_REQUEST;
NOT_FOUND.
messagestringDetails for the response code.Nobodynull
body{}objectResponse body.Nobody{}
timestampstringResponse time.Yesbody2025-08-20T08:05:00.000Z

body{}

AttributeTypeDescriptionRequiredExample
purchaseIdstringPurchase identifier in UUID format. You can get it from the SDK purchase result, a server callback notification, or by requesting purchase details.Yes3aa0c7bd-964e-4562-b218-fe365adb4ae3
productIdstringProduct identifier.Yesfree_start_2008
invoiceIdnumberInvoice number (identifier).Yes12345
orderIdstringIdentifier of the latest invoice associated with a subscription purchase. If the subscription has more than one invoice, the invoice count is appended using the .. separator (starting from 0).Yes41456..3
purchaseTypenumberPossible values:
0 — production subscription;
1test subscription.
Yes0
productTypestringProduct type.YesSUBSCRIPTION
descriptionstringOrder description.YesIn-app purchase in “Masha and the Bear”: 100 crystals
purchaseTimestringPurchase time in ISO 8601 format.Yes2025-08-20T08:04:37.999
pricenumberPrice in the smallest currency units (kopecks).Yes19900
amountLabelstringFormatted item price, including the currency symbol.Yes199 ₽
currencystringCurrency code.YesRUB
quantitynumberQuantity.Yes1
purchaseStatusstringPurchase status.YesACTIVE
developerPayloadstringAdditional order information string that you can set when confirming a purchase in the SDK.NoExternal id = 1
subscription.expirationDatestringSubscription expiration date in ISO 8601 format.Yes (for productType=SUBSCRIPTION)2025-08-20T15:05:34.974Z
subscription.periodstringSubscription period.Yes (for productType=SUBSCRIPTION)MAIN

Successful response example

{
"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"
}

Error response example

{
"code": "ERROR",
"message": "<error message>",
"body": null,
"timestamp": "2025-08-20T08:05:00.000Z"
}

Error list

MessageDetails
This user does not have rights to perform this action.Insufficient permissions or an invalid/expired Public-Token. Check the token validity and that it matches the app.
limit must be greater than 0The limit parameter must be greater than 0. Specify a value starting from 1.
limit must not exceed 500.The response cannot contain more than 500 results.
ForbiddenForbidden. Check the authorization token and request parameters.
Something went wrongInternal error. Try again later or contact support.