Reward system
How it works
The reward system allows you to encourage users to make purchases in the store using real currency. If users are part of clans, their purchases contribute value points to the entire clan.
You can create individual and clan-based reward chains and grant users rewards for purchased items. The game can include multiple reward chains of any type. Each chain can have a maximum of 31 steps. For each step, you define the number of value points required to complete it.
You can also create a personalized reward chain. Personalization allows you to display the chain only to a specific group of authorized users based on their attributes. A personalized reward chain can be designed for either an individual user or a clan.
At each step in the reward chain, a user can receive 1 to 10 rewards. A clan can also receive 1 to 10 rewards per member at each step.
You can reward users with the following item types:
- virtual items
- virtual currency
- virtual currency packages
- bundles
Set up reward system
Set up via Publisher Account
Before creating a reward chain, you need to create value points and items that users and a clan can purchase to earn value points.
To create items manually in your project in Publisher Account, go to the Items catalog > All items section. Detailed information about this and other methods for creating items is available in the Items catalog section of documentation.
To create value points:
- Open your project in Publisher Account and go to the LiveOps > Rewards section.
- Click Create value points.
- Specify the following parameters:
- Add an image (optional).
- Enter a name.
- Enter a unique SKU.
- If you create clan value points, turn on the Use as clan value points toggle. This setting can’t be changed after the value points are created.
- Assign value points: select the items and specify how many value points users receive for purchasing each item. If your store doesn’t yet contain any items yet, you can save the current settings and return to this step later.
- Click Add row to insert the desired number of items.
- Click Create value points.
To create the reward chain:
- Open your project in Publisher Account and go to the LiveOps > Rewards section.
- Click Create reward.
- Choose a chain type — Individual reward chain or Clan reward chain.
- Specify the following parameters. If you choose an individual reward chain:
- Specify the reward chain name.
- Provide a description.
- In the drop-down list, select value points.

- If you chose a clan reward chain:
- In the Clan type drop-down list, choose a type of a clan.
- Set the parameters of the clan reward chain:
- Specify the chain name.
- Provide a description.
- Specify a title for the reward chain popup header.
- Specify the tooltip text (what users need to do to earn rewards for their clan).
- Add an image (optional).
- In the drop-down list, select value points.

- Click Next.
- Click Add new step.
- Specify the following parameters:
- Name.
- Required amount of value points to claim the reward.
- Required amount of virtual items for the step.
- Click Save.
- Add the required number of steps and click Next.
If you want to personalize the reward chain:
- Turn on the Personalized reward chain toggle.
- Select one of the chain display options and click Next:
- Show reward chain to specific users. Set the personalization conditions. In this case, the chain is displayed only to authorized users who meet the specified conditions.
- Show reward chain to users who don't meet conditions. In this case, the chain is displayed only if no matching reward chain is found for the user. For example, if the user is not authorized or their attributes don’t match any personalized chain.
- Click Next.
- Specify the validity period of the reward chain.
- You can turn on the Set time limit toggle and set the expiration date and time for the reward chain.
- To automatically reset the progress in the reward chain, check the Refresh user progress after the chain ends box.
- If you want the reward chain to renew at a specific time, turn on the Make reward chain renewable toggle and specify the update schedule.

- Click Create.
- In your project in Publisher Account, go to the LiveOps tools > Rewards section.
- In the row of the desired chain, click •••, then select Activate from the drop-down list.
Set up via API
You can use calls from the Admin subsection of the Reward chains & Value points group to manage the reward system.
| Task | API call |
|---|---|
| Create value points that grant access to rewards. | Create value point. |
| Assign value points to specific items. | Set value points for items. Users will receive these points after purchasing the items. |
| Create a reward chain. | Create reward chain. |
| Create a personalized reward chain. | Create reward chain. Pass the display condition in the attribute_conditions array. |
| Whether a personalized reward chain should be shown to a user who doesn’t have the attribute defined in the condition. | Create reward chain. Pass true in the can_be_missing parameter. |
| Define a reward chain that is shown to a user if no matching personalized chain is found. | Create reward chain. Pass false in the is_always_visible parameter. |
| Activate/deactivate the reward chain. | Toggle reward chain. |
| Delete the reward chain. | Delete reward chain. |
| Resets value points and progress of all users in the reward chain. | Reset reward chain. After the reset, you can update the validity period of the reward chain and the user can progress through it again. |
Display reward system
Display via site builder
To ensure the reward system works correctly, user authentication must be configured. For unauthorized users, both individual and clan reward chains are displayed without progress. Authorized users who are not members of a clan see only their individual reward chain. Clan reward chains are displayed as unavailable.


To display reward chains on your site:
- In your project in Publisher Account, go to the Storefronts > Websites section.
- Select your site and click Open Site Builder.
- In the main area of the builder, choose a place where you want to add a new block and click Add block.
- Select Reward system block.
- In the drop-down list, select a reward chain.

- Customize the button and text colors (optional).
- To preview the chain, click Preview in the upper-right corner of the builder.

- To apply the changes, publish your site:
- In the upper-right corner of the site builder, click Publish.
- Check the boxes next to the pages you want to publish.
- Click Publish.
- There are no empty sections in the builder (marked with a red dot).
- The licensing agreement with Xsolla has been signed.
- The main page is published or selected for publication. You cannot publish child pages before the main page.
Value point display specifics in site builder
You can select multiple reward chains within a single block and choose how they are displayed — either one below the other or in tabs. You can customize the appearance of each reward chain individually.
Item cards display value points only for the reward chains that have been added to the site. However, when users purchase items, clan members receive value points for all active reward chains, regardless of whether they are displayed on the site.
Example:
You have 2 reward chains set up: one individual reward chain and one clan reward chain. The individual chain has a value point named
In the item catalog, there is an item named
When you add the Store block in the builder and select the type and group of items that contain the
- If no reward chain has been added to the site, the
Sword item will not display any value points. - If only an individual reward chain has been added and is active, the
Sword item will display 20Crystals only. - If only a clan reward chain has been added and is active, the
Sword item will display 40Magic Bubbles only. - If both an individual and a clan reward chain have been added and are active, the
Sword item will display both 20Crystals and 40Magic Bubbles .
For clan members, 40
For users without a clan, 40
Display reward chains via API
- In your application UI, implement the elements to display rewards chain steps.
- Implement the logic to work with chains using the following client-side API calls from the Reward chains & Value points group:
| Task | API call |
|---|---|
| Get the current user’s reward chains. | Get current user’s reward chains. |
| Get the current user’s value point balance. | Get current user’s value point balance. |
| Claim the current user’s step reward from a reward chain. | Claim step reward. |
| Update a current user’s clan via user attributes. | Update current user’s clan. Claims all rewards from reward chains that were not claimed for a previous clan and returns them in the response. |
| Get the list of top 10 contributors to the specific reward chain under the current user’s clan. | Get top 10 contributors to reward chain under clan. If a user doesn’t belong to a clan, the call returns an empty array. |
- Ensure that items are correctly granted to the user.
Set up user clan
If you are not using site builder, you need to pass the user’s clan in Xsolla Login the user attributes for the clan reward chain to function correctly. To do this:
Example of the attribute scheme in Login:- json
1{
2 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "additionalProperties": false,
4 "description": "JSON Schema example for user attributes. Not the actual schema.",
5 "properties": {
6
7 "clan_id": {
8 "description": "name of clan",
9 "type": "string"
10 },
11 "custom-id": {
12 "description": "custom-id of a user.",
13 "type": "number"
14 },
15 "had_ban": {
16 "description": "Whether the user was banned.",
17 "type": "boolean"
18 },
19 "last_purchase": {
20 "description": "Date of user's last purchase.",
21 "type": "string"
22 },
23 },
24 "required": [],
25 "title": "Example",
26 "type": "object"
27}
- To add or update the
clan_idattribute, use the attribute update methods and pass theattributesarray containing objects with theclan_idattribute key.
- json
1{
2 "user": {
3 "id": "1234567890",
4 "picture": "https://example.com",
5 "name": "test-name"
6 },
7 "attributes": [
8 {
9 "key": "clan_id",
10 "value": "beetles"
11 }
12 ]
13}
If you use authorization via Xsolla Login, use the Update current user’s clan API call to update the user’s clan. If the attributes contain a new clan, the user will receive any unclaimed rewards from the previous clan’s reward chain, and their clan affiliation will be updated. If the user was previously a member of a clan but is no longer part of one, their clan membership will be revoked. The response from this method includes the rewards that the user has already claimed.
Display specifics for Web Shop
After configuring the attribute schema, implement passing the user’s clan data.
If you use authentication by user ID, pass the user’s clan data in the response to the User validation webhook in Web Shop webhook during authorization:
- To add or refresh the
clan_idattribute, pass an array ofattributesobjects with theclan_idattribute key.
Example of a webhook response:
- json
1{
2 "user": {
3 "id": "1234567890",
4 "picture": "https://example.com",
5 "name": "test-name"
6 },
7 "attributes": [
8 {
9 "key": "clan_id",
10 "value": "beetles"
11 }
12 ]
13}
- If the user has left the clan and has not joined another, pass the
clan_idvalue in theremoving_keysfield.
Example of a webhook response:
- json
1{
2 "user": {
3 "id": "1234567890",
4 "picture": "https://example.com",
5 "name": "test-name"
6 },
7 "removing_keys": [
8 {
9 "key": "clan_id"
10 }
11 ]
12}
Display specifics via API
You can pass current attribute values directly during user authorization if you use the Auth by custom ID API call.
Found a typo or other text error? Select the text and press Ctrl+Enter.