Operations related to creating and updating game entities. Game entities are used to combine and sort items.
Backpack API & Webhooks (1.0.0)
Welcome to the Backpack API, an essential tool to enhance your item-selling strategy and promotional campaigns.
With Backpack, users can store information about the items they purchased or received for free. When receiving items, users don’t need to use their game ID or go to the game from the distributor site — they can keep items in the Backpack and redeem them later.
All items purchased or received for free on the distributor website are available to the user in the Metaframe widget or Xsolla Wallet.
User flow:
- The user visits the distribution site.
- The user logs in through the Xsolla account in the Metaframe widget.
- The user purchases the item or gets it for free and selects the option to move the item to the Backpack.
- Information about the received item is transferred to the Backpack.
- In the Metaframe widget or Xsolla Wallet, the user opens the Backpack section and selects the item.
- The user receives the item.
- Information about the received item is transferred to the game.
- Item Storage: Users can store information about items purchased or received for free.
- Redemption Flexibility: Items stored in the Backpack can be redeemed at the user's convenience.
To get started with Backpack, check out our detailed guide on Setting up Backpack. This guide will walk you through the process of configuring Backpack to suit your needs.
Backpack revolves around three major entities:
- Items: The core entities that can be distributed to users.
- Game: The entity designed to combine items.
- Backpack: The entity designed to to grant user items in the game.
Webhook notifications associated with the Backpack are listed under the Webhooks tag. For more in-depth information about working with webhooks, refer to our main webhook documentation.
To set up webhooks:
- Open your project in the Publisher Account.
- Click Project settings in the side menu and navigate to Webhooks.
- Specify the URL where you want to receive webhooks in the
https://example.comformat. - A secret key to sign project webhooks is generated by default. To generate a new secret key, click the refresh icon.
- Click Enable webhooks.
If you have set up a Metaframe webhook, please contact the integration team at integration@xsolla.com or your Customer Success Manager at csm@xsolla.com. They will assist you in setting up a second webhook for the project.
- Mock serverhttps://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/items
- https://metaframe.xsolla.com/web/backpack/items
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/items?offset=0&limit=50&group=game_name&item_type=game_key' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'The list of items from users's Backpack was succesfully recieved.
The unique identifier for the item. Specified when creating item via API call.
The item's Stock Keeping Unit (SKU) from the Publisher Account. The SKU may only contain lowercase Latin alphanumeric characters, periods, dashes, and underscores.
The item's name from the Publisher Account. Currently, only English names are supported, and this information is displayed to the user in the Metaframe widget.
The URL pointing to the item's image, which is displayed to the user in the Metaframe widget.
An image should have an aspect ratio of 8 x 3, meaning that the width to height ratio should be approximately 2.67 (e.g., width = 400 px and height = 150 px). In this case, the image scales with minimal cropping at the edges, so the content remains visible. Optimum minimal resolution is 620 x 233 px (1240 x 466 px for Retina display).
The URL pointing to the image of the item in the proxy storage, which is displayed to the player in the Metaframe widget. This URL allows you to resize the image by passing the dimensions to the URL as parameters.
The item's description from the Publisher Account. Currently, only English descriptions are supported, and this information is displayed to the user in the Metaframe widget.
The item type indicates the category of claimed item.
The price of the virtual currency item in the specified currency (currency parameter). This value represents the cost of acquiring the specified amount of virtual currency. For example, if the price is 10.99 and the currency is USD, it means the cost to obtain the associated amount of virtual currency is $10.99.
The currency which prices are displayed in (USD by default). Three-letter currency code per ISO 4217.
Unique case sensitive code that user can redeem in the game to recieve the item. Contains letters and numbers.
The name of the game associated with the item. Refer to endpoints under the Game tag for additional details.
The external identifier uniquely assigned by you to represent the game. Refer to endpoints under the Game tag for additional details.
It's recommended to specify it, so that all items associated with the same game would be sorted by the game in the Metaframe widget.
The item status shows stage of item. In this case, the item status will be claimed.
Whether the virtual currency is partners' currency or Xsolla currency.
The game platform associated with the item. If specified, the user needs to link their game platform account to Backpack to get the item.
[ { "item_id": "item123", "item_sku": "sku_item_001", "item_name": "Magic Sword Game Key", "image_url": "https://example.com/images/item123.png", "image_proxy_url": "https://proxy.example.com/images/item123.png?w=620&h=233", "description": "A powerful sword with magical properties.", "project_id": 12345, "merchant_id": 98765, "item_type": "game_key", "price": null, "currency": "USD", "promo_code": "", "code": "ABC123-DEF456-GHI789", "game_name": "Epic Adventure", "external_game_id": "game_456", "created_at": "2023-10-24T14:53:00Z", "item_status": "claimed", "quantity": 1, "is_external_vc": false, "platform": "steam" }, { "item_id": "item456", "item_sku": "sku_item_002", "item_name": "Healing Potion", "image_url": "https://example.com/images/item456.png", "image_proxy_url": "https://proxy.example.com/images/item456.png?w=620&h=233", "description": "Restores 50% of health.", "project_id": 12345, "merchant_id": 98765, "item_type": "virtual_item", "price": 5.99, "currency": "USD", "promo_code": "", "code": "", "game_name": "Epic Adventure", "external_game_id": "game_456", "created_at": "2023-10-24T14:55:00Z", "item_status": "claimed", "quantity": 0, "is_external_vc": false, "platform": "" } ]
The unique identifier for the item. Specified when creating item via API call.
- Mock serverhttps://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/items/{itemId}
- https://metaframe.xsolla.com/web/backpack/items/{itemId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/items/{itemId}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'The details of a specified item from user's Backpack was seccessfully recieved.
The unique identifier for the item. Specified when creating item via API call.
The item's Stock Keeping Unit (SKU) from the Publisher Account. The SKU may only contain lowercase Latin alphanumeric characters, periods, dashes, and underscores.
The item's name from the Publisher Account. Currently, only English names are supported, and this information is displayed to the user in the Metaframe widget.
The URL pointing to the item's image, which is displayed to the user in the Metaframe widget.
An image should have an aspect ratio of 8 x 3, meaning that the width to height ratio should be approximately 2.67 (e.g., width = 400 px and height = 150 px). In this case, the image scales with minimal cropping at the edges, so the content remains visible. Optimum minimal resolution is 620 x 233 px (1240 x 466 px for Retina display).
The URL pointing to the image of the item in the proxy storage, which is displayed to the player in the Metaframe widget. This URL allows you to resize the image by passing the dimensions to the URL as parameters.
The item's description from the Publisher Account. Currently, only English descriptions are supported, and this information is displayed to the user in the Metaframe widget.
The item type indicates the category of claimed item.
The price of the virtual currency item in the specified currency (currency parameter). This value represents the cost of acquiring the specified amount of virtual currency. For example, if the price is 10.99 and the currency is USD, it means the cost to obtain the associated amount of virtual currency is $10.99.
The currency which prices are displayed in (USD by default). Three-letter currency code per ISO 4217.
Unique case sensitive code that user can redeem in the game to recieve the item. Contains letters and numbers.
The name of the game associated with the item. Refer to endpoints under the Game tag for additional details.
The external identifier uniquely assigned by you to represent the game. Refer to endpoints under the Game tag for additional details.
It's recommended to specify it, so that all items associated with the same game would be sorted by the game in the Metaframe widget.
The item status shows stage of item. In this case, the item status will be claimed.
Whether the virtual currency is partners' currency or Xsolla currency.
{ "item_id": "string", "item_sku": "string", "item_name": "string", "image_url": "string", "image_proxy_url": "string", "description": "string", "project_id": 0, "merchant_id": 0, "item_type": "game_key", "price": 0, "currency": "USD", "promo_code": "string", "code": "string", "game_name": "string", "external_game_id": "string", "created_at": "string", "item_status": "string", "quantity": 0, "is_external_vc": true, "platform": "steam" }
The unique identifier for the item. Specified when creating item via API call.
- Mock serverhttps://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/virtual_currency/move_to_game
- https://metaframe.xsolla.com/web/backpack/virtual_currency/move_to_game
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/virtual_currency/move_to_game \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"item_id": "string",
"user_game_id": "string"
}'The unique identifier for the item. Specified when creating item via API call.
- Mock serverhttps://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/virtual_currency/receive
- https://metaframe.xsolla.com/web/backpack/virtual_currency/receive
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/virtual_currency/receive \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"item_id": "string"
}'The unique identifier for the item. Specified when creating item via API call.
- Mock serverhttps://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/virtual_items/move_to_game
- https://metaframe.xsolla.com/web/backpack/virtual_items/move_to_game
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://xsolla.redocly.app/_mock/pt/api/backpack/web/backpack/virtual_items/move_to_game \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"item_id": "string",
"user_game_id": "string"
}'