Keys sale restrictions

How it works

You can limit the number of game keys that a user can purchase.

To correctly display the number of keys available to the user, we recommend setting authentication via Xsolla Login. For an unauthorized user, the available number of keys will return to the original value each time the game catalog is opened.

If the user has reached the specified limit, additional keys will not be available for purchase and an error with the code 0401-1421 is returned. In this case, you need to display information to the user about reaching the purchase limit.

You can display the maximum available number and remaining number of game keys that is available to the user.

As keys are sold, you will be notified by email when there are 25%, 10%, and 0% uploaded keys left in each package. You will be notified if you have one of the following roles in Publisher Account:

  • developer
  • owner

Only a project owner can change roles in Publisher Account in the Company settings > Users section.


Xsolla ensures the limits are not exceeded and prevents users from purchasing more game keys than the set limit.

When opening the payment interface and paying for a game key, all unpaid orders with this key become invalid.

Example: the user can open the payment form for a game key with a purchase restriction in several browser tabs until the key has been purchased. This automatically results in the creation of multiple orders for the same game key. After purchasing a game key in one tab, Xsolla will void all unpaid orders with the same key.

Who can use it

Partners who have Buy Button integrated and the Game Keys module enabled.

How to get it

To set a purchase limit when creating a game key package in Publisher Account, switch the Limit number of times one user can buy game key toggle to On and specify the number of times the key that can be purchased.

You can use the methods of the Catalog subsection from the Game keys method group to get information about game keys.

In the response, you will receive the following information in addition to information about the game key:

  • the maximum number of game keys a user can buy
  • the remaining number of game keys available for the user to purchase

Response example:

Full screen
Small screen

  "sku": "game_1",
  "name": "Game name",
  "groups": [
      "external_id": "all",
      "name": "All games"
      "external_id": "Xsolla",
      "name": "Xsolla games"
  "type": "game_key",
  "description": "Game description",
  "image_url": "",
  "attributes": {
    "$ref": "../components/examples/client-attribute-game-horror.yaml#/value"
  "is_free": false,
  "price": {
    "amount": "30.5",
    "amount_without_discount": "30.5",
    "currency": "USD"
  "virtual_prices": [],
  "can_be_bought": true,
  "drm_name": "Steam",
  "drm_sku": "steam",
  "has_keys": true,
  "is_pre_order": true,
  "release_date": "2020-08-11T10:00:00+03:00",
  "limits": {
    "per_user": {
        "total": 5,
        "available": 5
    "per_item": null
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.
Rate this page
Rate this page
Is there anything we can improve?

Don’t want to answer

Thank you for your feedback!
Last updated: January 22, 2024

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!