Skip to content

Overview

Digital Distribution Hub is a new Xsolla solution that aims to connect digital and cash based payments via push payments technology and e-commerce.

This reference combines API endpoints for two Xsolla products: In-Game Store and Pay Station. There are two base URLs:

  • https://store.xsolla.com/api for the Common, Catalog, Cart, and Order groups.
  • https://ps.xsolla.com for the Notifications group.

API endpoints in the Catalog group don’t require authorization.

To work with operations in the Cart and Order groups, you need to generate a token via Create user token.

Note

This reference shows a design of a future API and not a fully functioning interface. Currently, you can try only Catalog and Notifications groups endpoints. If you’d like to share your feedback, please email us at techdoc@xsolla.com.
Download OpenAPI description
Languages
Servers
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/api/digital-distribution-hub/
Operations
Operations
Operations

Request

Gets a virtual items list for building a catalog.

Attention. All projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields.
Security
AuthForClient
Path
project_idintegerrequired

Project ID.

Example: 44056
Query
limitinteger

Limit for the number of elements on the page.

Example: limit=50
offsetinteger

Number of the element from which the list is generated (the count starts from 0).

Example: offset=0
localestring

Response language. Two-letter lowercase language code per ISO 639-1.

Default "en"
additional_fields[]Array of strings

The list of additional fields. These fields will be in the response if you send them in your request. Available fields media_list, order, long_description.

countrystring

Country to calculate regional prices and restrictions for catalog. Two-letter uppercase country code per ISO 3166-1 alpha-2. If you do not specify the country explicitly, it will be calculated based on user's IP address.

Default "US"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/virtual_items?limit=50&offset=0&locale=en&additional_fields%5B%5D=string&country=US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The list of virtual items was successfully received.

Bodyapplication/json
itemsArray of objects(Catalog_inline_response_200_5_items)
Example: [{"sku":"big_rocket","name":"Big Rocket","groups":[{"external_id":"accessory","name":"Accessory"}],"attributes":[{"external_id":"stack_size","name":"Stack size","values":[{"external_id":"size_e3364991f92e751689a68b96598a5a5a84010b85","value":"5"}]}],"type":"virtual_good","description":"Big Rocket - description","image_url":"https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png","is_free":false,"price":{"amount":"100.99","amount_without_discount":"100.99","currency":"USD"},"virtual_prices":[{"amount":100,"sku":"vc_test","is_default":true,"amount_without_discount":100,"image_url":"http://image.png","name":"SHOTGUN FOR TRUE RAIDERS","type":"virtual_currency","description":"description"}],"inventory_options":{"consumable":{"usages_count":1},"expiration_period":{"type":"day","value":1}},"virtual_item_type":"non_renewing_subscription"},{"sku":"shotgun_raider","name":"SHOTGUN FOR TRUE RAIDERS","groups":[{"external_id":"hair","name":"Hair"}],"attributes":[{"external_id":"stack_size","name":"Stack size","values":[{"external_id":"size_e3364991f92e751689a68b96598a5a5a84010b85","value":"5"}]},{"external_id":"rating","name":"Rating","values":[{"external_id":"rating_e3364991f92e751689a68b96598a5a5a84010b85","value":"3.9"}]}],"type":"virtual_good","description":"description","image_url":"http://image.png","is_free":false,"price":{"amount":"101.0","amount_without_discount":"101.0","currency":"USD"},"virtual_prices":[{"amount":100,"sku":"vc_test","is_default":true,"amount_without_discount":100,"image_url":"http://image.png","name":"SHOTGUN FOR TRUE RAIDERS","type":"virtual_currency","description":"description"},{"amount":200,"sku":"vc_test_2","is_default":false,"amount_without_discount":200,"image_url":"http://image.png","name":"SHOTGUN FOR TRUE RAIDERS","type":"virtual_currency","description":"description"}],"inventory_options":{"consumable":{"usages_count":1},"expiration_period":{"type":"day","value":1}},"virtual_item_type":"non_renewing_subscription"},{"sku":"shotgun_raider_2","name":"SHOTGUN FOR TRUE RAIDERS","groups":[],"attributes":[],"type":"virtual_good","description":"description","image_url":"http://image.png","is_free":true,"virtual_prices":[],"inventory_options":{"consumable":{"usages_count":1},"expiration_period":{"type":"day","value":1}},"virtual_item_type":"non_renewing_subscription"}]
items[].​skustring

Unique item ID. The SKU may only contain lowercase Latin alphanumeric characters, periods, dashes, and underscores.

Example: "big_rocket"
items[].​namestring

Item name.

Example: "Big Rocket"
items[].​groupsArray of objects(Catalog_inline_response_200_groups)

Groups the item belongs to.

Example: [{"external_id":"accessory","name":"Accessory"}]
items[].​groups[].​external_idstring
Example: "accessory"
items[].​groups[].​namestring
Example: "Accessory"
items[].​attributesArray of objects(Catalog_client-attributes)

List of attributes and their values corresponding to the Game.

Attention. This part of response is available only if you send the `additional_fields[]=attributes` query parameter.
Default []
items[].​attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

Unique attribute ID. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

Example: "attribute_1"
items[].​attributes[].​namestring

Name of attribute.

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

Unique value ID for an attribute. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

Example: "attribute_value"
items[].​attributes[].​values[].​valuestring

Value of attribute.

Example: "Strategy"
items[].​typestring

Type of item: virtual_good/virtual_currency/bundle.

Example: "virtual_good"
items[].​descriptionstring

Item description.

Example: "Big Rocket - description"
items[].​image_urlstring

Image URL.

Example: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​is_freeboolean

If true, the item is free.

Example: false
items[].​priceobject(Catalog_inline_response_200_5_price)

Item prices.

items[].​price.​amountstring

Discounted item price.

Example: "100.99"
items[].​price.​amount_without_discountstring

Item price.

Example: "100.99"
items[].​price.​currencystring

Default purchase currency. Three-letter code per ISO 4217.

Example: "USD"
items[].​virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Virtual prices.

items[].​virtual_prices[].​amountinteger

Discounted item price in virtual currency.

Example: 100
items[].​virtual_prices[].​amount_without_discountinteger

Item price.

Example: 200
items[].​virtual_prices[].​skustring

Virtual currency item SKU.

Example: "vc_test"
items[].​virtual_prices[].​is_defaultboolean

Whether price is default for item.

Example: true
items[].​virtual_prices[].​image_urlstring

Image of virtual currency.

Example: "http://image.png"
items[].​virtual_prices[].​namestring

Virtual currency name.

Example: "SHOTGUN FOR TRUE RAIDERS"
items[].​virtual_prices[].​typestring

Virtual currency type.

Example: "virtual_currency"
items[].​virtual_prices[].​descriptionstring

Virtual currency description.

Example: "Big Rocket - description"
items[].​inventory_optionsobject(Catalog_inline_response_200_5_inventory_options)

Defines the inventory item options.

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

Defines the consumable properties if this is a consumable item, or null if this is a non-consumable item.

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

Total number of remaining uses if this is a consumable item, or null if this is a non-consumable item.

Example: 1
items[].​inventory_options.​expiration_periodobject or null(Catalog_inline_response_200_5_inventory_options_expiration_period)

Defines the expiration properties if this is a expired item, or null if this is a non-expired item.

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

Defines type of item expiration.

Enum"minute""hour""day""week""month""year"
Example: "day"
items[].​inventory_options.​expiration_period.​valueinteger

Defines value for an expiration period.

Example: 1
items[].​virtual_item_typestring

Type of virtual item.

Enum"consumable""non_consumable""non_renewing_subscription"
Example: "non-consumable"
Response
application/json
{ "items": [ {}, {}, {} ] }

Request

Gets a virtual currency list for building a catalog.

Attention. All projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields.
Security
AuthForClient
Path
project_idintegerrequired

Project ID.

Example: 44056
Query
limitinteger

Limit for the number of elements on the page.

Example: limit=50
offsetinteger

Number of the element from which the list is generated (the count starts from 0).

Example: offset=0
localestring

Response language. Two-letter lowercase language code per ISO 639-1.

Default "en"
additional_fields[]Array of strings

The list of additional fields. These fields will be in the response if you send them in your request. Available fields media_list, order, long_description.

countrystring

Country to calculate regional prices and restrictions for catalog. Two-letter uppercase country code per ISO 3166-1 alpha-2. If you do not specify the country explicitly, it will be calculated based on user's IP address.

Default "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>'

Responses

The list of virtual currency was successfully received.

Bodyapplication/json
itemsArray of objects(Catalog_inline_response_200_6_items)
Example: [{"sku":"big_rocket","name":"Big Rocket","groups":[{"external_id":"accessory","name":"Accessory"}],"attributes":[{"external_id":"stack_size","name":"Stack size","values":[{"value":"5"}]}],"type":"virtual_currency","description":"Big Rocket - short description","image_url":"https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png","is_free":false,"price":{"amount":"100.99","amount_without_discount":"100.99","currency":"USD"},"virtual_prices":[{"amount":100,"sku":"shotgun_raider","is_default":true,"amount_without_discount":100,"image_url":"http://image.png","name":"SHOTGUN FOR TRUE RAIDERS","type":"virtual_currency","description":"description"}],"inventory_options":{"consumable":{"usages_count":1}}},{"sku":"shotgun_raider","name":"SHOTGUN FOR TRUE RAIDERS","groups":[{"external_id":"hair","name":"Hair"}],"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"]}],"type":"virtual_currency","description":"description","image_url":"http://image.png","is_free":false,"price":{"amount":"101.0","amount_without_discount":"101.0","currency":"USD"},"virtual_prices":[],"inventory_options":{"consumable":{"usages_count":1}}},{"sku":"shotgun_raider_2","name":"SHOTGUN FOR TRUE RAIDERS","groups":[],"attributes":[],"type":"virtual_currency","description":"description","image_url":"http://image.png","is_free":true,"virtual_prices":[],"inventory_options":{"consumable":{"usages_count":1}}}]
items[].​skustring

Unique item ID. The SKU may only contain lowercase Latin alphanumeric characters, periods, dashes, and underscores.

Example: "big_rocket"
items[].​namestring

Item name.

Example: "Big Rocket"
items[].​groupsArray of objects(Catalog_inline_response_200_groups)

Groups the item belongs to.

Example: [{"external_id":"accessory","name":"Accessory"}]
items[].​groups[].​external_idstring
Example: "accessory"
items[].​groups[].​namestring
Example: "Accessory"
items[].​attributesArray of objects(Catalog_client-attributes)

List of attributes and their values corresponding to the Game.

Attention. This part of response is available only if you send the `additional_fields[]=attributes` query parameter.
Default []
items[].​attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

Unique attribute ID. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

Example: "attribute_1"
items[].​attributes[].​namestring

Name of attribute.

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

Unique value ID for an attribute. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

Example: "attribute_value"
items[].​attributes[].​values[].​valuestring

Value of attribute.

Example: "Strategy"
items[].​typestring

Type of item: virtual_good/virtual_currency/bundle.

Example: "virtual_currency"
items[].​descriptionstring

Item description.

Example: "Big Rocket - description"
items[].​image_urlstring

Image URL.

Example: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​is_freestring

If true, the item is free.

Example: "false"
items[].​priceobject(Catalog_inline_response_200_5_price)

Item prices.

items[].​price.​amountstring

Discounted item price.

Example: "100.99"
items[].​price.​amount_without_discountstring

Item price.

Example: "100.99"
items[].​price.​currencystring

Default purchase currency. Three-letter code per ISO 4217.

Example: "USD"
items[].​virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Virtual prices.

Example: [{"amount":100,"sku":"shotgun_raider","is_default":true,"amount_without_discount":100,"image_url":"http://image.png"}]
items[].​virtual_prices[].​amountinteger

Discounted item price in virtual currency.

Example: 100
items[].​virtual_prices[].​amount_without_discountinteger

Item price.

Example: 200
items[].​virtual_prices[].​skustring

Virtual currency item SKU.

Example: "vc_test"
items[].​virtual_prices[].​is_defaultboolean

Whether price is default for item.

Example: true
items[].​virtual_prices[].​image_urlstring

Image of virtual currency.

Example: "http://image.png"
items[].​virtual_prices[].​namestring

Virtual currency name.

Example: "SHOTGUN FOR TRUE RAIDERS"
items[].​virtual_prices[].​typestring

Virtual currency type.

Example: "virtual_currency"
items[].​virtual_prices[].​descriptionstring

Virtual currency description.

Example: "Big Rocket - description"
items[].​inventory_optionsobject(Catalog_inline_response_200_5_inventory_options)

Defines the inventory item options.

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

Defines the consumable properties if this is a consumable item, or null if this is a non-consumable item.

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

Total number of remaining uses if this is a consumable item, or null if this is a non-consumable item.

Example: 1
items[].​inventory_options.​expiration_periodobject or null(Catalog_inline_response_200_5_inventory_options_expiration_period)

Defines the expiration properties if this is a expired item, or null if this is a non-expired item.

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

Defines type of item expiration.

Enum"minute""hour""day""week""month""year"
Example: "day"
items[].​inventory_options.​expiration_period.​valueinteger

Defines value for an expiration period.

Example: 1
Response
application/json
{ "items": [ {}, {}, {} ] }

Request

Gets a virtual currency packages list for building a catalog.

Attention. All projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields.
Security
AuthForClient
Path
project_idintegerrequired

Project ID.

Example: 44056
Query
limitinteger

Limit for the number of elements on the page.

Example: limit=50
offsetinteger

Number of the element from which the list is generated (the count starts from 0).

Example: offset=0
localestring

Response language. Two-letter lowercase language code per ISO 639-1.

Default "en"
additional_fields[]Array of strings

The list of additional fields. These fields will be in the response if you send them in your request. Available fields media_list, order, long_description.

countrystring

Country to calculate regional prices and restrictions for catalog. Two-letter uppercase country code per ISO 3166-1 alpha-2. If you do not specify the country explicitly, it will be calculated based on user's IP address.

Default "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>'

Responses

The list of virtual currency packages was successfully received.

Bodyapplication/json
itemsArray of objects(Catalog_inline_response_200_7_items)
Example: [{"sku":"vc_package_1","name":"VC Name first package","groups":[],"attributes":[],"type":"bundle","description":"VC Short Package Description","image_url":"http://vc_package_image.png","is_free":false,"price":{"amount":"2.0000","amount_without_discount":"2.0000","currency":"USD"},"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","sku":"big_rocket","name":"Big Rocket","type":"virtual_currency","quantity":100,"inventory_options":{"consumable":{"usages_count":1}}}],"virtual_prices":[]},{"sku":"vc_package_3","name":"VC Name third package","groups":[],"attributes":[],"type":"bundle","description":"VC Short Package Description","image_url":"http://vc_package_image.png","is_free":false,"price":{"amount":"4.0000","amount_without_discount":"4.0000","currency":"USD"},"bundle_type":"virtual_currency_package","content":[{"description":"description","image_url":"http://image.png","sku":"shotgun_raider","name":"SHOTGUN FOR TRUE RAIDERS","type":"virtual_currency","quantity":200,"inventory_options":{"consumable":{"usages_count":1}}}],"virtual_prices":[]}]
items[].​skustring

Unique item ID. The SKU may only contain lowercase Latin alphanumeric characters, periods, dashes, and underscores.

Example: "big_rocket"
items[].​namestring

Item name.

Example: "Big Rocket"
items[].​groupsArray of objects(Catalog_inline_response_200_groups)

Groups the item belongs to.

Example: [{"external_id":"accessory","name":"Accessory"}]
items[].​groups[].​external_idstring
Example: "accessory"
items[].​groups[].​namestring
Example: "Accessory"
items[].​attributesArray of objects(Catalog_client-attributes)

List of attributes and their values corresponding to the Game.

Attention. This part of response is available only if you send the `additional_fields[]=attributes` query parameter.
Default []
items[].​attributes[].​external_idstring(Catalog_admin-attribute-external_id)[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

Unique attribute ID. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

Example: "attribute_1"
items[].​attributes[].​namestring

Name of attribute.

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

Unique value ID for an attribute. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

Example: "attribute_value"
items[].​attributes[].​values[].​valuestring

Value of attribute.

Example: "Strategy"
items[].​typestring

Type of item: virtual_good/virtual_currency/bundle.

Example: "bundle"
items[].​bundle_typestring

Type of bundle: standard/virtual_currency_package.

Example: "virtual_currency_package"
items[].​descriptionstring

Item description.

Example: "Big Rocket - description"
items[].​image_urlstring

Image URL.

Example: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​is_freestring

If true, the item is free.

Example: "false"
items[].​priceobject(Catalog_inline_response_200_5_price)

Item prices.

items[].​price.​amountstring

Discounted item price.

Example: "100.99"
items[].​price.​amount_without_discountstring

Item price.

Example: "100.99"
items[].​price.​currencystring

Default purchase currency. Three-letter code per ISO 4217.

Example: "USD"
items[].​virtual_pricesArray of objects(Catalog_inline_response_200_virtual_prices)

Virtual prices.

items[].​virtual_prices[].​amountinteger

Discounted item price in virtual currency.

Example: 100
items[].​virtual_prices[].​amount_without_discountinteger

Item price.

Example: 200
items[].​virtual_prices[].​skustring

Virtual currency item SKU.

Example: "vc_test"
items[].​virtual_prices[].​is_defaultboolean

Whether price is default for item.

Example: true
items[].​virtual_prices[].​image_urlstring

Image of virtual currency.

Example: "http://image.png"
items[].​virtual_prices[].​namestring

Virtual currency name.

Example: "SHOTGUN FOR TRUE RAIDERS"
items[].​virtual_prices[].​typestring

Virtual currency type.

Example: "virtual_currency"
items[].​virtual_prices[].​descriptionstring

Virtual currency description.

Example: "Big Rocket - description"
items[].​contentArray of objects(Catalog_inline_response_200_7_content)

Virtual currency package content.

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

Unique item ID. The SKU may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

Example: "big_rocket"
items[].​content[].​namestring

Item name.

Example: "Big Rocket"
items[].​content[].​typestring

Type of item: virtual_good/virtual_currency/bundle.

Example: "virtual_currency"
items[].​content[].​descriptionstring

Item description.

Example: "Big Rocket - description"
items[].​content[].​image_urlstring

Image URL.

Example: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​content[].​quantityinteger

Quantity of virtual currency in a package.

Example: 250
items[].​content[].​inventory_optionsobject(Catalog_inline_response_200_7_inventory_options)

Defines the inventory item options.

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

Defines the consumable properties if this is a consumable item, or null if this is a non-consumable item.

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

Total number of remaining uses if this is a consumable item, or null if this is a non-consumable item.

Example: 1
items[].​content[].​inventory_options.​expiration_periodobject or null(Catalog_inline_response_200_7_inventory_options_expiration_period)

Defines the expiration properties if this is a expired item, or null if this is a non-expired item.

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

Defines type of expiration of a item.

Enum"minute""hour""day""week""month""year"
Example: "day"
items[].​content[].​inventory_options.​expiration_period.​valueinteger

Defines value for expiration period.

Example: 1
Response
application/json
{ "items": [ {}, {} ] }
Operations
Operations
Operations
Operations