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

Введение

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/
Операции
Операции

Запрос

Получение списка доступных DRM.

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

ID проекта.

Пример: 44056
curl -i -X GET \
  https://store.xsolla.com/api/v2/project/44056/items/game/drm \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Ответы

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

Телоapplication/json
drmArray of objects(Catalog_inline_response_200_4_drm)
Пример: [{"drm_id":1,"image":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","link":"https://support.steampowered.com","name":"Steam","redeem_instruction_link":"https://support.steampowered.com","sku":"steam"},{"drm_id":2,"image":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Playstation","redeem_instruction_link":"https://support.us.playstation.com","sku":"playstation"}]
drm[].​drm_idnumber

Идентификатор DRM.

Пример: 1
drm[].​imagestring

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

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

Ссылка на активацию.

Пример: "https://support.us.playstation.com"
drm[].​namestring

Название DRM.

Пример: "Steam"
drm[].​redeem_instruction_linkstring

Ссылка на инструкцию по активации.

Пример: "https://support.us.playstation.com"
drm[].​skustring

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

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

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

Запрос

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

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 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": [ {}, {} ] }

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

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