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

Введение

Digital Distribution Hub — новое решение Иксоллы, которое соединяет электронные и физические платежи через технологию push-платежей и e-commerce.

Данная документация включает в себя описание методов API для продуктов Внутриигровой магазин и Платежи. Используется два базовых URL-адреса:

  • https://store.xsolla.com/api для групп Общие, Каталог, Корзина и Заказ.
  • https://ps.xsolla.com для группы Уведомления.

Использование методов API из группы Каталог не требует авторизации.

Чтобы использовать методы API из групп Корзина и Заказ, вам необходимо создать токен.

Примечание

Данная документация не является полностью функциональным интерфейсом и представляет собой дизайн будущего API. В настоящее время вы можете использовать только методы из групп Каталог и Уведомления. Если вы хотите поделиться обратной связью, отправьте нам письмо по адресу techdoc@xsolla.com.
Скачать описание OpenAPI
Языки
Серверы
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/ru/api/digital-distribution-hub/
Операции
Операции

Получение списка игр для указанной группы

Запрос

Получение списка игр из указанной группы для создания каталога.

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

ID проекта.

Пример: 44056
external_idstringобязательный

Внешний идентификатор группы.

По умолчанию "all"
Запрос
limitinteger

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

Пример: limit=50
offsetinteger

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

Пример: offset=0
localestring

Язык ответа. Используется двухбуквенное обозначение языка согласно стандарту ISO 639-1.

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

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

countrystring

Страна для расчета региональных цен и ограничений для каталога. Используется двухбуквенное обозначение страны в верхнем регистре согласно стандарту ISO 3166-1 alpha-2. Если вы не укажете страну, она будет рассчитана на основе IP-адреса пользователя.

По умолчанию "US"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/game/group/{external_id}?limit=50&offset=0&locale=en&additional_fields%5B%5D=string&country=US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Ответы

Список игр успешно получен.

Телоapplication/json
itemsArray of objects(Catalog_inline_response_200_items)
Пример: [{"attributes":{"$ref":"#/components/examples/client-attribute-game/Catalog_value"},"description":"Game description","groups":[{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","sku":"game_1","type":"unit","unit_items":[{"drm_name":"Steam","drm_sku":"steam","has_keys":true,"is_free":false,"is_pre_order":true,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"release_date":"2020-08-11T10:00:00+03:00","sku":"game_key_01","type":"game_key","virtual_prices":[]},{"drm_name":"Origin","drm_sku":"origin","has_keys":false,"is_free":false,"is_pre_order":false,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"sku":"game_key_02","type":"game_key","virtual_prices":[]}],"unit_type":"game"},{"attributes":[{"external_id":"OS","name":"OS","values":[{"external_id":"9d5c5efb7c0f00a00fe4e3583f1215b0050bc723","value":"Windows"}]}],"description":"Game description","groups":[{"external_id":"all","name":"All games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","sku":"game_2","type":"unit","unit_items":[{"drm_name":"Steam","drm_sku":"steam","has_keys":false,"is_free":false,"is_pre_order":false,"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"sku":"game_key_01","type":"game_key","virtual_prices":[]}],"unit_type":"game"}]
items[].​attributesArray of objects(Catalog_client-attributes-common)

Список атрибутов и их значений, соответствующих предмету. Может использоваться для фильтрации каталога.

По умолчанию []
items[].​attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

Уникальный идентификатор атрибута. external_id может содержать только строчные буквы латинского алфавита, цифры, дефисы и подчеркивания.

Пример: "attribute_1"
items[].​attributes[].​namestring

Название атрибута.

Пример: "Genre"
items[].​attributes[].​valuesArray of objects
items[].​attributes[].​values[].​external_idstring(Catalog_value-external_id)[ 1 .. 255 ] characters^[-_.\d\w]+$

Уникальный идентификатор атрибута. external_id может содержать только строчные буквы латинского алфавита, цифры, дефисы и подчеркивания.

Пример: "attribute_value"
items[].​attributes[].​values[].​valuestring

Значение атрибута.

Пример: "Strategy"
items[].​descriptionstring

Описание предмета.

Пример: "Game description"
items[].​groupsArray of objects(Catalog_inline_response_200_groups)

Группы, к которым принадлежит предмет.

Пример: [{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla game"}]
items[].​groups[].​external_idstring
Пример: "accessory"
items[].​groups[].​namestring
Пример: "Accessory"
items[].​image_urlstring

URL изображения.

Пример: "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png"
items[].​namestring

Наименование предмета.

Пример: "Game name"
items[].​skustring

Уникальный идентификатор предмета. Артикул может содержать только строчные буквы латинского алфавита, цифры, точки, дефисы и подчеркивания.

Пример: "game_01"
items[].​typestring

Тип предмета: virtual_good/virtual_currency/bundle/physical_good/unit.

Пример: "unit"
items[].​unit_itemsArray of objects(Catalog_inline_response_200_unit_items)
items[].​unit_items[].​drm_namestring

Название DRM.

Пример: "Steam"
items[].​unit_items[].​drm_skustring

Уникальный идентификатор DRM (артикул). Может содержать только строчные буквы латинского алфавита, цифры, точки, дефисы и подчеркивания.

Пример: "steam"
items[].​unit_items[].​has_keysboolean

Если передано значение true, у игры на платформе есть ключи для продажи.

Пример: false
items[].​unit_items[].​is_freeboolean

Если передано значение true, предмет бесплатный.

Пример: false
items[].​unit_items[].​is_pre_orderboolean

Если передано значение true, игра на платформе доступна для предзаказа и дата выпуска еще не наступила.

Пример: true
items[].​unit_items[].​priceobject(Catalog_inline_response_200_price)

Стоимость предмета.

items[].​unit_items[].​price.​amountstring

Цена предмета со скидкой.

Пример: "2.9900"
items[].​unit_items[].​price.​amount_without_discountstring

Стоимость предмета.

Пример: "2.9900"
items[].​unit_items[].​price.​currencystring

Валюта покупки по умолчанию. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

Пример: "USD"
items[].​unit_items[].​release_datestring

Дата выпуска игры на платформе в формате ISO 8601.

Пример: "2020-08-11T10:00:00+03:00"
items[].​unit_items[].​skustring

Уникальный идентификатор предмета. Артикул может содержать только строчные буквы латинского алфавита, цифры, точки, дефисы и подчеркивания.

Пример: "game_01"
items[].​unit_items[].​typestring

Тип предмета: game_key.

Пример: "game_key"
items[].​unit_items[].​virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Виртуальные цены.

items[].​unit_items[].​virtual_prices[].​amountinteger

Стоимость предмета в виртуальной валюте со скидкой.

Пример: 100
items[].​unit_items[].​virtual_prices[].​amount_without_discountinteger

Стоимость предмета.

Пример: 200
items[].​unit_items[].​virtual_prices[].​descriptionstring

Описание виртуальной валюты.

Пример: "Big Rocket - description"
items[].​unit_items[].​virtual_prices[].​image_urlstring

Изображение виртуальной валюты.

Пример: "http://image.png"
items[].​unit_items[].​virtual_prices[].​is_defaultboolean

Является ли стоимость предмета стоимостью по умолчанию.

Пример: true
items[].​unit_items[].​virtual_prices[].​namestring

Название виртуальной валюты.

Пример: "SHOTGUN FOR TRUE RAIDERS"
items[].​unit_items[].​virtual_prices[].​skustring

Артикул виртуальной валюты.

Пример: "vc_test"
items[].​unit_items[].​virtual_prices[].​typestring

Тип виртуальной валюты.

Пример: "virtual_currency"
items[].​unit_typestring

Тип единицы: game.

Пример: "game"
Ответ
application/json
{ "items": [ {}, {} ] }

Получение игр с привязкой к платформе для указанной группы

Запрос

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

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

ID проекта.

Пример: 44056
external_idstringобязательный

Внешний идентификатор группы.

По умолчанию "all"
Запрос
limitinteger

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

Пример: limit=50
offsetinteger

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

Пример: offset=0
localestring

Язык ответа. Используется двухбуквенное обозначение языка согласно стандарту ISO 639-1.

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

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

countrystring

Страна для расчета региональных цен и ограничений для каталога. Используется двухбуквенное обозначение страны в верхнем регистре согласно стандарту ISO 3166-1 alpha-2. Если вы не укажете страну, она будет рассчитана на основе IP-адреса пользователя.

По умолчанию "US"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/game/key/group/{external_id}?limit=50&offset=0&locale=en&additional_fields%5B%5D=string&country=US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Ответы

Список игр успешно получен.

Телоapplication/json
itemsArray of objects(Catalog_inline_response_200_3_items)
Пример: [{"attributes":{"$ref":"#/components/examples/client-attribute-game-horror/Catalog_value"},"description":"Game description","drm_name":"Steam","drm_sku":"steam","groups":[{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla games"}],"has_keys":true,"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","is_free":false,"is_pre_order":true,"name":"Game name","price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"release_date":"2020-08-11T10:00:00+03:00","sku":"game_1","type":"game_key","virtual_prices":[]},{"attributes":{"$ref":"#/components/examples/client-attribute-game-horror/Catalog_value"},"description":"Game description","drm_name":"Steam","drm_sku":"steam","groups":[{"external_id":"all","name":"All games"}],"has_keys":true,"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","is_free":false,"is_pre_order":false,"name":"Game name","price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"sku":"game_2","type":"game_key","virtual_prices":[]}]
items[].​attributesArray of objects(Catalog_client-attributes)

Список атрибутов и их значений, соответствующих игре.

Обратите внимание. Эта часть ответа доступна только в том случае, если вы передадите `additional_fields[]=attributes` в параметре запроса.
По умолчанию []
items[].​attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

Уникальный идентификатор атрибута. external_id может содержать только строчные буквы латинского алфавита, цифры, дефисы и подчеркивания.

Пример: "attribute_1"
items[].​attributes[].​namestring

Название атрибута.

Пример: "Genre"
items[].​attributes[].​valuesArray of objects
items[].​attributes[].​values[].​external_idstring(Catalog_value-external_id)[ 1 .. 255 ] characters^[-_.\d\w]+$

Уникальный идентификатор атрибута. external_id может содержать только строчные буквы латинского алфавита, цифры, дефисы и подчеркивания.

Пример: "attribute_value"
items[].​attributes[].​values[].​valuestring

Значение атрибута.

Пример: "Strategy"
items[].​descriptionstring

Описание предмета.

Пример: "Game description"
items[].​drm_namestring

Название DRM.

Пример: "Steam"
items[].​drm_skustring

Уникальный идентификатор DRM (артикул). Может содержать только строчные буквы латинского алфавита, цифры, точки, дефисы и подчеркивания.

Пример: "steam"
items[].​groupsArray of objects(Catalog_inline_response_200_groups)

Группы, к которым принадлежит предмет.

Пример: [{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla game"}]
items[].​groups[].​external_idstring
Пример: "accessory"
items[].​groups[].​namestring
Пример: "Accessory"
items[].​has_keysboolean

Если передано значение true, у игры на платформе есть ключи для продажи.

Пример: false
items[].​image_urlstring

URL изображения.

Пример: "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png"
items[].​is_freeboolean

Если передано значение true, предмет бесплатный.

Пример: false
items[].​is_pre_orderboolean

Если передано значение true, игра на платформе доступна для предзаказа и дата выпуска еще не наступила.

Пример: true
items[].​namestring

Наименование предмета.

Пример: "Game name"
items[].​priceobject(Catalog_inline_response_200_price)

Стоимость предмета.

items[].​price.​amountstring

Цена предмета со скидкой.

Пример: "2.9900"
items[].​price.​amount_without_discountstring

Стоимость предмета.

Пример: "2.9900"
items[].​price.​currencystring

Валюта покупки по умолчанию. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

Пример: "USD"
items[].​release_datestring

Дата выпуска игры на платформе в формате ISO 8601.

Пример: "2020-08-11T10:00:00+03:00"
items[].​skustring

Уникальный идентификатор предмета. Артикул может содержать только строчные буквы латинского алфавита, цифры, точки, дефисы и подчеркивания.

Пример: "game_01"
items[].​typestring

Тип предмета: game_key.

Пример: "game_key"
items[].​virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Виртуальные цены.

items[].​virtual_prices[].​amountinteger

Стоимость предмета в виртуальной валюте со скидкой.

Пример: 100
items[].​virtual_prices[].​amount_without_discountinteger

Стоимость предмета.

Пример: 200
items[].​virtual_prices[].​descriptionstring

Описание виртуальной валюты.

Пример: "Big Rocket - description"
items[].​virtual_prices[].​image_urlstring

Изображение виртуальной валюты.

Пример: "http://image.png"
items[].​virtual_prices[].​is_defaultboolean

Является ли стоимость предмета стоимостью по умолчанию.

Пример: true
items[].​virtual_prices[].​namestring

Название виртуальной валюты.

Пример: "SHOTGUN FOR TRUE RAIDERS"
items[].​virtual_prices[].​skustring

Артикул виртуальной валюты.

Пример: "vc_test"
items[].​virtual_prices[].​typestring

Тип виртуальной валюты.

Пример: "virtual_currency"
Ответ
application/json
{ "items": [ {}, {} ] }

Получение игры на платформе для каталога

Запрос

Получение игры на платформе для каталога.

Безопасность
AuthForClient
Путь
project_idintegerобязательный

ID проекта.

Пример: 44056
item_skustringобязательный

Артикул предмета.

Пример: booster_mega_1
Запрос
localestring

Язык ответа. Используется двухбуквенное обозначение языка согласно стандарту ISO 639-1.

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

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

countrystring

Страна для расчета региональных цен и ограничений для каталога. Используется двухбуквенное обозначение страны в верхнем регистре согласно стандарту ISO 3166-1 alpha-2. Если вы не укажете страну, она будет рассчитана на основе IP-адреса пользователя.

По умолчанию "US"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/game/key/sku/booster_mega_1?locale=en&additional_fields%5B%5D=string&country=US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Ответы

Игра успешно получена.

Телоapplication/json
attributesArray of objects(Catalog_client-attributes-common)

Список атрибутов и их значений, соответствующих предмету. Может использоваться для фильтрации каталога.

По умолчанию []
attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

Уникальный идентификатор атрибута. external_id может содержать только строчные буквы латинского алфавита, цифры, дефисы и подчеркивания.

Пример: "attribute_1"
attributes[].​namestring

Название атрибута.

Пример: "Genre"
attributes[].​valuesArray of objects
attributes[].​values[].​external_idstring(Catalog_value-external_id)[ 1 .. 255 ] characters^[-_.\d\w]+$

Уникальный идентификатор атрибута. external_id может содержать только строчные буквы латинского алфавита, цифры, дефисы и подчеркивания.

Пример: "attribute_value"
attributes[].​values[].​valuestring

Значение атрибута.

Пример: "Strategy"
descriptionstring

Описание предмета.

Пример: "Game description"
drm_namestring

Название DRM.

Пример: "Steam"
drm_skustring

Уникальный идентификатор DRM (артикул). Может содержать только строчные буквы латинского алфавита, цифры, точки, дефисы и подчеркивания.

Пример: "steam"
groupsArray of objects(Catalog_inline_response_200_groups)

Группы, к которым принадлежит предмет.

Пример: [{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla games"}]
groups[].​external_idstring
Пример: "accessory"
groups[].​namestring
Пример: "Accessory"
has_keysboolean

Если передано значение true, у игры на платформе есть ключи для продажи.

Пример: true
image_urlstring

URL изображения.

Пример: "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png"
is_freeboolean

Если передано значение true, предмет бесплатный.

Пример: false
is_pre_orderboolean

Если передано значение true, игра на платформе доступна для предзаказа и дата выпуска еще не наступила.

Пример: true
namestring

Наименование предмета.

Пример: "Game name"
priceobject(Catalog_inline_response_200_price)

Стоимость предмета.

price.​amountstring

Цена предмета со скидкой.

Пример: "2.9900"
price.​amount_without_discountstring

Стоимость предмета.

Пример: "2.9900"
price.​currencystring

Валюта покупки по умолчанию. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

Пример: "USD"
release_datestring

Дата выпуска игры на платформе в формате ISO 8601.

Пример: "2020-08-11T10:00:00+03:00"
skustring

Уникальный идентификатор предмета. Артикул может содержать только строчные буквы латинского алфавита, цифры, точки, дефисы и подчеркивания.

Пример: "game_1"
typestring

Тип предмета: game_key.

Пример: "game_key"
virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Виртуальные цены.

Пример: []
virtual_prices[].​amountinteger

Стоимость предмета в виртуальной валюте со скидкой.

Пример: 100
virtual_prices[].​amount_without_discountinteger

Стоимость предмета.

Пример: 200
virtual_prices[].​descriptionstring

Описание виртуальной валюты.

Пример: "Big Rocket - description"
virtual_prices[].​image_urlstring

Изображение виртуальной валюты.

Пример: "http://image.png"
virtual_prices[].​is_defaultboolean

Является ли стоимость предмета стоимостью по умолчанию.

Пример: true
virtual_prices[].​namestring

Название виртуальной валюты.

Пример: "SHOTGUN FOR TRUE RAIDERS"
virtual_prices[].​skustring

Артикул виртуальной валюты.

Пример: "vc_test"
virtual_prices[].​typestring

Тип виртуальной валюты.

Пример: "virtual_currency"
Ответ
application/json
{ "attributes": { "$ref": "#/components/examples/client-attribute-game-horror/Catalog_value" }, "description": "Game description", "drm_name": "Steam", "drm_sku": "steam", "groups": [ {}, {} ], "has_keys": true, "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png", "is_free": false, "is_pre_order": true, "name": "Game name", "price": { "amount": "30.5", "amount_without_discount": "30.5", "currency": "USD" }, "release_date": "2020-08-11T10:00:00+03:00", "sku": "game_1", "type": "game_key", "virtual_prices": [] }

Виртуальные предметы и валюта

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