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

Введение

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

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

Операции

Получение списка групп предметов

Запрос

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

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

ID проекта.

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

Ответы

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

Телоapplication/json
groupsArray of objects(Catalog_inline_response_200_9_groups)
Пример: [{"children":[{"children":[{"children":[],"description":"Accessory","external_id":"accessory","level":2,"name":"Accessory","order":1,"parent_external_id":"background"}],"description":"Background description","external_id":"background","level":1,"name":"Background","order":1,"parent_external_id":"hair"}],"description":"Hair description","external_id":"hair","level":0,"name":"Hair","order":1},{"children":[],"description":"Super description","external_id":"group_external_id","level":0,"name":"Super","order":1}]
groups[].​childrenArray of objects(Catalog_inline_response_200_9_children_1)

Дочерние группы.

Пример: [{"children":[{"children":[],"description":"Accessory","external_id":"accessory","level":2,"name":"Accessory","order":1,"parent_external_id":"background"}],"description":"Background description","external_id":"background","level":1,"name":"Background","order":1,"parent_external_id":"hair"}]
groups[].​children[].​childrenArray of objects(Catalog_inline_response_200_9_children)

Дочерние группы.

Пример: [{"children":[],"description":"Accessory","external_id":"accessory","level":2,"name":"Accessory","order":1,"parent_external_id":"background"}]
groups[].​children[].​children[].​childrenArray of strings

Дочерние группы.

Пример: []
groups[].​children[].​children[].​descriptionstring

Описание группы.

Пример: "Accessory"
groups[].​children[].​children[].​external_idstring

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

Пример: "accessory"
groups[].​children[].​children[].​image_urlstring

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

groups[].​children[].​children[].​levelinteger

Уровень вложенности группы.

Пример: 2
groups[].​children[].​children[].​namestring

Название группы.

Пример: "Accessory"
groups[].​children[].​children[].​orderinteger

Определяет порядок расположения.

Пример: 1
groups[].​children[].​children[].​parent_external_idstring

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

Пример: "background"
groups[].​children[].​descriptionstring

Описание группы.

Пример: "Background description"
groups[].​children[].​external_idstring

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

Пример: "background"
groups[].​children[].​image_urlstring

URL-адрес изображения группы.

groups[].​children[].​levelinteger

Уровень вложенности группы.

Пример: 1
groups[].​children[].​namestring

Название группы.

Пример: "Background"
groups[].​children[].​orderinteger

Определяет порядок расположения.

Пример: 1
groups[].​children[].​parent_external_idstring

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

Пример: "hair"
groups[].​descriptionstring

Описание группы.

Пример: "Hair description"
groups[].​external_idstring

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

Пример: "hair"
groups[].​image_urlstring

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

groups[].​levelinteger

Уровень вложенности группы.

Пример: 0
groups[].​namestring

Название группы.

Пример: "Hair"
groups[].​orderinteger

Определяет порядок расположения.

Пример: 1
groups[].​parent_external_idstring

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

Ответ
application/json
{ "groups": [ {}, {}, {}, {}, {}, {}, {}, {} ] }

Получение списка виртуальных валют

Запрос

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

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

ID проекта.

Пример: 44056
Запрос
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/virtual_currency?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_6_items)
Пример: [{"attributes":[{"external_id":"stack_size","name":"Stack size","values":[{"value":"5"}]}],"description":"Big Rocket - short description","groups":[{"external_id":"accessory","name":"Accessory"}],"image_url":"https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png","inventory_options":{"consumable":{"usages_count":1}},"is_free":false,"name":"Big Rocket","price":{"amount":"100.99","amount_without_discount":"100.99","currency":"USD"},"sku":"big_rocket","type":"virtual_currency","virtual_prices":[{"amount":100,"amount_without_discount":100,"description":"description","image_url":"http://image.png","is_default":true,"name":"SHOTGUN FOR TRUE RAIDERS","sku":"shotgun_raider","type":"virtual_currency"}]},{"attributes":[{"external_id":"stack_size","name":"Stack size","values":[{"value":"1"}]},{"external_id":"rating","name":"Rating","values":[{"value":"3.9"}]},{"external_id":"genre","name":"Genre","values":[{"value":"Strategy"},{"value":"Tactical"},"Turn-based"]}],"description":"description","groups":[{"external_id":"hair","name":"Hair"}],"image_url":"http://image.png","inventory_options":{"consumable":{"usages_count":1}},"is_free":false,"name":"SHOTGUN FOR TRUE RAIDERS","price":{"amount":"101.0","amount_without_discount":"101.0","currency":"USD"},"sku":"shotgun_raider","type":"virtual_currency","virtual_prices":[]},{"attributes":[],"description":"description","groups":[],"image_url":"http://image.png","inventory_options":{"consumable":{"usages_count":1}},"is_free":true,"name":"SHOTGUN FOR TRUE RAIDERS","sku":"shotgun_raider_2","type":"virtual_currency","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

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

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

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

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

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

Пример: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​inventory_optionsobject(Catalog_inline_response_200_5_inventory_options)

Определяет варианты для предметов инвентаря.

items[].​inventory_options.​consumableobject or null(Catalog_inline_response_200_5_inventory_options_consumable)

Определяет, является ли предмет расходуемым или нерасходуемым, если передано значение null.

items[].​inventory_options.​consumable.​usages_countinteger or null

Общее количество оставшихся использований, если это расходуемый предмет, или null, если это нерасходуемый предмет.

Пример: 1
items[].​inventory_options.​expiration_periodobject or null(Catalog_inline_response_200_5_inventory_options_expiration_period)

Если у предмета есть период действия, в этом объекте определяются настройки этого периода. Передайте null, если у предмета нет ограничений по периоду действия.

items[].​inventory_options.​expiration_period.​typestring

Единица времени периода действия предмета.

Перечисление"minute""hour""day""week""month""year"
Пример: "day"
items[].​inventory_options.​expiration_period.​valueinteger

Значение единицы времени периода действия предмета.

Пример: 1
items[].​is_freestring

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

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

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

Пример: "Big Rocket"
items[].​priceobject(Catalog_inline_response_200_5_price)

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

items[].​price.​amountstring

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

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

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

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

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

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

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

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

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

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

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

Пример: [{"amount":100,"amount_without_discount":100,"image_url":"http://image.png","is_default":true,"sku":"shotgun_raider"}]
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": [ {}, {}, {} ] }

Получение списка пакетов виртуальной валюты

Запрос

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

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

ID проекта.

Пример: 44056
Запрос
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/virtual_currency/package?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_7_items)
Пример: [{"attributes":[],"bundle_type":"virtual_currency_package","content":[{"description":"Big Rocket - short description","image_url":"https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png","inventory_options":{"consumable":{"usages_count":1}},"name":"Big Rocket","quantity":100,"sku":"big_rocket","type":"virtual_currency"}],"description":"VC Short Package Description","groups":[],"image_url":"http://vc_package_image.png","is_free":false,"name":"VC Name first package","price":{"amount":"2.0000","amount_without_discount":"2.0000","currency":"USD"},"sku":"vc_package_1","type":"bundle","virtual_prices":[]},{"attributes":[],"bundle_type":"virtual_currency_package","content":[{"description":"description","image_url":"http://image.png","inventory_options":{"consumable":{"usages_count":1}},"name":"SHOTGUN FOR TRUE RAIDERS","quantity":200,"sku":"shotgun_raider","type":"virtual_currency"}],"description":"VC Short Package Description","groups":[],"image_url":"http://vc_package_image.png","is_free":false,"name":"VC Name third package","price":{"amount":"4.0000","amount_without_discount":"4.0000","currency":"USD"},"sku":"vc_package_3","type":"bundle","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[].​bundle_typestring

Тип бандла: standard/virtual_currency_package.

Пример: "virtual_currency_package"
items[].​contentArray of objects(Catalog_inline_response_200_7_content)

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

Пример: [{"description":"Big Rocket - short description","image_url":"https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png","inventory_options":{"consumable":{"usages_count":1}},"name":"Big Rocket","quantity":100,"sku":"big_rocket","type":"virtual_currency"}]
items[].​content[].​descriptionstring

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

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

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

Пример: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​content[].​inventory_optionsobject(Catalog_inline_response_200_7_inventory_options)

Определяет варианты для предметов инвентаря.

items[].​content[].​inventory_options.​consumableobject or null(Catalog_inline_response_200_5_inventory_options_consumable)

Определяет, является ли предмет расходуемым или нерасходуемым, если передано значение null.

items[].​content[].​inventory_options.​consumable.​usages_countinteger or null

Общее количество оставшихся использований, если это расходуемый предмет, или null, если это нерасходуемый предмет.

Пример: 1
items[].​content[].​inventory_options.​expiration_periodobject or null(Catalog_inline_response_200_7_inventory_options_expiration_period)

Если у предмета есть период действия, в этом объекте определяются настройки этого периода. Передайте null, если у предмета нет ограничений по периоду действия.

items[].​content[].​inventory_options.​expiration_period.​typestring

Единица времени периода действия предмета.

Перечисление"minute""hour""day""week""month""year"
Пример: "day"
items[].​content[].​inventory_options.​expiration_period.​valueinteger

Значение единицы времени периода действия предмета.

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

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

Пример: "Big Rocket"
items[].​content[].​quantityinteger

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

Пример: 250
items[].​content[].​skustring

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

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

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

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

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

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

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

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

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

Пример: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​is_freestring

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

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

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

Пример: "Big Rocket"
items[].​priceobject(Catalog_inline_response_200_5_price)

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

items[].​price.​amountstring

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

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

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

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

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

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

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

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

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

Пример: "bundle"
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": [ {}, {} ] }
Операции
Операции
Операции
Операции