Coupons

How it works

Coupon campaigns are a marketing tool designed to attract potential users to your product and drive sales. When a user redeems a coupon, they receive one or more bonus items. The following items can be used as rewards:

  • virtual currency packages
  • game keys
  • virtual items
  • bundles

A coupon contains a unique code. To redeem a coupon, the user should enter the code within the game client or a game’s store, including the Web Shop.

Key features:

  • Setting the total number of redemptions within a campaign.
  • Setting the number of redemptions per user within a campaign.
  • Multiple generation of codes for coupons.
  • Applying regional restrictions for campaigns and items linked to a coupon.
Note
To set up regional restrictions for a campaign, contact us at igs@xsolla.com.

Limitations:

  • If game keys are used as a bonus item, the key will be sent to the user via email or to the entitlement system after redemption. If the campaign runs out of keys, the user will not be able to redeem the coupon.
  • If regional restrictions are applied to a coupon campaign, users from those regions won’t be able to redeem the coupon.
  • If a coupon includes at least one bonus item with a regional restriction, a user from that region won’t be able to receive the item using this coupon.
  1. Example: A shield and sword are offered as a bonus with the coupon. The shield has a regional restriction and is available for purchase only in the US. If a user outside the US enters the coupon code, an error will be returned in the response to the Verify promotion code or Redeem coupon code calls. The user will not be able to obtain any of the items from the coupon.
Note

You can also set up promo codes promotions for your store.

Key differences:

  • A coupon allows a user to receive only bonus items. A promo code can provide bonus items, a discount on a specific item, or a discount on the entire cart.

  • Promo codes are redeemed during a purchase (at checkout), whereas coupons are redeemed after the user enters and applies the code.

User flow:

  1. An authorized user goes to the store.
  2. The user enters the coupon code.
  3. Xsolla returns a list of available bonus items for the coupon (optional).
  4. The user selects bonuses (optional).
  5. The user redeems the coupon.
  6. The items linked to the coupon are credited to the user in the same way as a regular purchase.

Set up coupon campaign

Prerequisites

Before setting up a coupon campaign, you must configure the items that will be issued as bonuses.

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.

Set up in Publisher Account

To create a new coupon campaign:

  1. In your project in Publisher Account, go to the LiveOps > Promotions section.
  2. On the Promotions tab, click Create promotion.
  1. Specify main promotion parameters:
    1. Specify Promotion name.
    1. In the Promotion type drop-down list, select Coupon.
    1. In the External ID field, specify a promotion ID used for managing promotions via API calls.
    1. In the Select bonus items drop-down list, select the type of an item to be granted to a user upon coupon redemption.
Note
An item type is available for selection only if at least one item of that type has been created in your project.

    1. Select the items to be granted to a user upon coupon redemption.
    1. For virtual items, specify the quantity for each item.
    1. For game keys, specify when the platform will be determined:
      • To pre-assign a specific platform (e.g., Steam), select Select DRM during code generation from the Type of DRM selection drop-down list. Then, select the platform from the DRM drop-down list.
      • To let the user choose, select Player selects DRM at redemption from the Type of DRM selection drop-down list.

Note

You can select different types of items as bonuses. To switch between different item types, use the Select bonus items field. Information about all selected items is displayed in the List of bonus items area.

    1. Click Next.
  1. Configure coupon redemption limits:
    1. To limit the total number of coupon redemptions across all users within a campaign, set the Limit total number of coupon redemptions toggle to On and specify the maximum number of redemptions.
    1. To limit the number of coupons a single user can redeem within a campaign, set the Limit total number of redemptions per user toggle to On and specify the maximum number of redemptions per user.
    1. To limit the number of times any unique coupon code can be redeemed across all users, set the Limit number of unique coupon code redemptions toggle to On and specify the maximum number of redemptions for the coupon.
    1. Click Next.
  1. Specify the campaign’s validity period: a time zone, start date, and end date. To create a campaign without an end date, check the No end date box.
  2. Click Next.
  3. Review the campaign settings.
  4. Click Save and exit.

To add coupon codes to a campaign:

  1. In your project in Publisher Account, go to the LiveOps > Promotions section.
  2. In the row with coupon promotion, click ••• and choose Edit promotion in the drop-down list.
  1. Go to the Codes tab.
  2. To generate codes automatically:
    1. In the Code string format drop-down list, select Auto-generated.
    1. Specify the number of codes to generate and click Generate.
  1. To add codes manually:
    1. In the Code string format drop-down list, select Manually entered.
    1. Enter the coupon code and click Create.
    1. Repeat the previous step to add the required number of codes.
  1. Download a CSV file with the codes (optional).
Note

Coupon codes are case-sensitive. For example, winter123 and WINTER123 are treated as different coupons.

You can add new codes to a campaign an unlimited number of times. However, the total number of added codes must not exceed 50,000.

If you need to upload a large number of self-generated codes, contact us at igs@xsolla.com.

To make the campaign available to users, you must activate it. To do this:

  1. In your project in Publisher Account, go to the LiveOps > Promotions section.
  2. In the row with coupon promotion, click ••• and choose Edit promotion in the drop-down list.
  3. In the drop-down list in the upper-right corner, select Activate promotion.

Set up via API

Notice
The list of parameters required when using the API calls for updating promotions doesn’t match the list of parameters returned by the API calls for retrieving promotions. When calling the API methods for updating promotions, you must pass:
  • the required parameters
  • the parameters you want to change
  • all other parameters returned by the promotion retrieval call

To set up and manage coupon campaigns via API, use the following calls:

TaskAPI call
Create a promotion with a coupon.Create coupon promotion.
Activate a promotion with a coupon.Activate coupon promotion.
Edit a promotion.Update coupon promotion with new promotion options. Promotions editing is also available for promotions with the Active status.
Deactivate a promotion with a coupon.Deactivate coupon promotion.
Set up an indefinite promotion.Create coupon promotion or Update coupon promotion. Pass the “date_end”: null parameter to the listed calls.
Delete a promotion.Delete coupon promotion.
Note
If you deactivate or delete an active promotion, it will no longer be available to users.

Set up coupon redemption in your application or website

Coupon redemption in your own UI

To allow users to redeem coupons in your application or website:

  1. Implement the following elements in your UI:

    • A field to enter the coupon code.
    • A form to display coupon rewards.
    • A button to redeem the coupon code.
  2. Implement coupon logic using the following client-side API calls:

Note
To call the Xsolla API, you can use the ready-made SDK methods for game engines and platforms:
TaskAPI call
Check if the coupon is correct.Verify promotion code.
Redeem coupon.Redeem coupon code.
Get a list of game distribution platforms to display to the user if a game key is provided as a coupon bonus.

Get coupon rewards.

If the response returns is_selectable=true, for each item with type=unit, you must display a selection form for the elements in the unit_items object. In this form, the user can select only one element for each unit type.

The type=unit parameter is passed for game keys. In this case, the user will need to select a platform.

Note
To additionally check how many more times a user can apply a coupon within a campaign, use the Get coupon limit for specified user server-side API call.
  1. Ensure that items are correctly granted to the user upon coupon redemption.
  1. If you have already implemented an in-game store in your application or on your website, no additional setup is required. Items linked to a coupon are granted to the user in the same way as a standard purchase.
Note
Game keys are sent to the user via email or to the entitlement system.

Coupon redemption on website created with Xsolla

Notice
You can only add the coupon and promo code redemption feature to websites created using the Web Shop template.

To display the code entry field on your website:

  1. Open your project in Publisher Account and go to the Storefronts > Websites section.
  2. In the Sites section, select your site and click Open Site Builder.
  3. In the main area of the builder, choose a place where you want to add a new block and click Add block.
  4. Select the Promo codes block.
  5. Customize the block appearance (optional):
    • Edit the block’s header and description text.
    • Set a custom background for the block.
    • Change the button style.
    • Edit the text for the coupon redemption button.
  6. To apply changes, publish the website:

    1. In the upper-right corner of the site builder, click Publish.
    1. Check the boxes next to the pages you want to publish.
    1. Click Publish.

Note

If site publication is not available, make sure all the conditions are met:

Was this article helpful?
Thank you!
Is there anything we can improve? Message
We’re sorry to hear that
Please explain why this article wasn’t helpful to you. Message
Thank you for your feedback!
We’ll review your message and use it to help us improve your experience.
Last updated: February 13, 2026

Found a typo or other text error? Select the text and press Ctrl+Enter.

Report a problem
We always review our content. Your feedback helps us improve it.
Provide an email so we can follow up
Thank you for your feedback!
We couldn't send your feedback
Try again later or contact us at doc_feedback@xsolla.com.