Перейти к содержимому

Введение

API каталога позволяет настраивать каталог внутриигровых товаров на стороне Xsolla и отображать каталог пользователям в вашем игровом магазине.

API позволяет вам управлять такими сущностями каталога, как:

  • Виртуальные предметы — внутриигровые предметы, например оружие, скины, бустеры.
  • Виртуальная валюта — виртуальные деньги, которые используются для приобретения виртуальных товаров. Пакеты виртуальной валюты — предустановленные наборы виртуальной валюты.
  • Бандлы — комбинированные наборы виртуальных предметов, валюты или игровых ключей, продаваемые как единый артикул.
  • Игровые ключи — ключи для игр и DLC, распространяемые через такие платформы, как Steam, или других DRM-провайдеров.
  • Группы — логические группировки для организации и сортировки товаров в каталоге.

Методы API

Методы API делятся на следующие группы:

  • Admin — методы для создания, обновления, удаления и настройки товаров и групп каталога. Для вызова требуется базовая HTTP-аутентификация с использованием учетных данных Личного кабинета. Не предназначены для построения витрин для конечных пользователей.
  • Catalog — методы для получения товаров и построения витрин для конечных пользователей. Поддерживают опциональную аутентификацию с использованием JWT пользователя для возврата персонализированных данных, таких как пользовательские лимиты и активные промоакции.
Скачать описание OpenAPI
Языки
Серверы
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/ru/api/catalog/
Операции
Операции
Операции
Операции
Операции

Отзыв права владения (admin)Server-sideAdmin

Запрос

Отзывает право владения у пользователя.

Внимание

Могут быть отозваны только игровые ключи или игры для DRM-free-платформ.
Безопасность
basicAuth
Путь
project_idintegerобязательный

ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта.

Пример: 44056
Телоapplication/jsonобязательный
drmobjectобязательный

Объект со свойствами DRM.

Пример: {"sku":"com.xsolla.key_1"}
drm.​skustring(Game-Keys_drm_sku)обязательный

Уникальный ID платформы.

Перечисление"steam""playstation""xbox""uplay""origin""drmfree""gog""epicgames""nintendo_eshop""discord_game_store"
Пример: "steam"
gameobjectобязательный

Объект со свойствами игры.

Пример: {"sku":"com.xsolla.game_1"}
game.​skustring(Game-Keys_game_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$обязательный

Уникальный ID пакета ключей.

Пример: "theGreatestGameSku"
modestringобязательный

Какой тип прав владения должен быть отозван. Если параметру присвоено значение sandbox, у пользователя будет отозвано право в режиме тестового окружения. Если для параметра установлено значение default, у пользователя будет отозвано право в режиме боевого окружения.

Перечисление"default""sandbox"
Пример: "default"
user_external_idstringобязательный

Уникальный идентификатор пользователя.

Пример: "user-external-id"
curl -i -X POST \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/entitlement/revoke \
  -H 'Content-Type: application/json' \
  -d '{
    "drm": {
      "sku": "com.xsolla.key_1"
    },
    "game": {
      "sku": "com.xsolla.game_1"
    },
    "mode": "default",
    "user_external_id": "user-external-id"
  }'

Ответы

Отозвано успешно.

Ответ
Нет содержимого

Получение списка игр, принадлежащих пользователюClient-side

Запрос

Получает список игр, принадлежащих пользователю. Ответ будет содержать массив игр, принадлежащих определенному пользователю.

Внимание

Все проекты имеют ограничение на количество товаров, которые вы можете получить в ответе. Значение по умолчанию и максимальное значение — 50 товаров на ответ.Чтобы получить больше данных постранично, используйте поля limit и offset.
Безопасность
XsollaLoginUserJWT
Путь
project_idintegerобязательный

ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта.

Пример: 44056
Запрос
limitinteger>= 1

Лимит количества элементов на странице.

Пример: limit=50
offsetinteger>= 0

Номер элемента, с которого выполняется вывод на странице (нумерация ведется с 0).

Пример: offset=0
sandboxinteger

Какой тип прав владения должен быть возвращен. Если параметру присвоено значение 1, возвращаются права владения, полученные пользователем только в режиме тестового окружения. Если параметр не передан или установлен в 0, возвращаются права владения, полученные пользователем только в режиме боевого окружения.

По умолчанию 0
additional_fields[]Array of strings

Список дополнительных полей. Эти поля будут в ответе, если вы отправите их в своем запросе. Доступные поля: attributes.

curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/entitlement?limit=50&offset=0&sandbox=0&additional_fields%5B%5D=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Ответы

Список игровых ключей, принадлежащих пользователю, успешно получен.

Телоapplication/json
has_moreboolean(Pagination_has-more)

Используется как индикатор того, что остались еще страницы.

Пример: true
itemsArray of objects(Game-Keys_entitlement_item)
total_items_countinteger(Pagination_total-items-count)

Общее количество игр, которыми владеет пользователь.

Пример: 10
Ответ
application/json
{ "has_more": false, "items": [ {} ], "total_items_count": 1 }

Активация игрового ключа на стороне клиентаClient-side

Запрос

Дает право владения по предоставленному игровому коду.

Внимание

Могут быть погашены только игровые коды для DRM-free-платформ.
Безопасность
XsollaLoginUserJWT
Путь
project_idintegerобязательный

ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта.

Пример: 44056
Телоapplication/jsonобязательный
codestringобязательный

Игровой ключ.

Пример: "AAAA-BBBB-CCCC-DDDD"
sandboxboolean

Погашает игровой ключ в режиме тестового окружения. Данная опция доступна пользователям, указанным в списке пользователей компании.

По умолчанию false
Пример: false
curl -i -X POST \
  https://store.xsolla.com/api/v2/project/44056/entitlement/redeem \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "code": "AAAA-BBBB-CCCC-DDDD",
    "sandbox": false
  }'

Ответы

Успешная операция.

Ответ
Нет содержимого
Операции
Операции
Операции

Корзина (на стороне клиента)

Операции

Корзина (на стороне сервера)

Операции

Оплата (на стороне клиента)

Операции

Оплата (на стороне сервера)

Операции
Операции
Операции
Операции
Операции
Операции
Операции
Операции

Catalog

Данный API позволяет получать продаваемые товары любого вида или конкретный товар.

Операции
Операции
Операции