Local prices

You can set regional prices for all items in your catalog to increase sales in countries with low purchasing power. By default, prices are set in USD. Additionally, you can configure regional restrictions.

You can add, edit, and delete regional prices in the following ways:

Note
If regional prices are not set, the payment interface uses the default price and converts it into the user’s currency based on the current exchange rate and pricing rules.

How it works

The item price is determined when the catalog is requested, depending on the user’s country. During the purchase via Pay Station, the price of an item is converted into the currency of the user’s country and includes taxes, if applicable.

Country determination

The user’s country is determined at different stages of working with the catalog and payment, as follows:

  • When requesting the item catalog, the user’s country is passed in the country parameter of the methods in the Virtual items and currency or Game keys groups.

    If the country is not specified, it is determined based on the user’s IP address. Prices for the item catalog are selected based on the user’s country.

  • When purchasing an item:

    • If you use the client methods to obtain a payment token, use them on the client side, not the server side. The country and currency in client methods are determined by the user’s IP address. Using client methods on the server side may cause incorrect currency determination and affect payment methods in the payment UI.

    • If you use the Create payment token for purchase server method, pass the country in the user.country.value parameter in the request body or the user’s IPv4 address in the X-User-Ip header. If both values are passed, user.country.value takes priority. IPv6 addresses are not supported: passing one may result in incorrect country and currency detection.

    Note
    You can pass the currency in the settings.currency parameter. This value takes precedence over the country value and affects how the payment currency is displayed. The payment methods in the payment UI are still determined by the country value in the user.country.value parameter.

Principles of price display in the item catalog

Use the same list of currencies for all items in the catalog. Prices are processed according to the following logic:

  • If at least one item has no price set for the selected country, prices for the entire item catalog in that country switch to the default currency.
  • If items have different default currencies, prices are displayed in the default currency of the first item in the catalog. If one of the items has no price in that currency, the price value null is returned for it in the catalog request response. This results in an incorrect display of the item’s price and may affect the display of the catalog as a whole.
Note

The way prices are displayed in the catalog depends on the integration format:

  • If you use a site editor, add a Store block to the page — prices will be displayed based on your regional settings.
  • If you retrieve the catalog via the API calls, each item’s price is returned in the price object, based on the country parameter or the user’s IP address.

Examples:


Note
When importing a catalog from Google Play, items are added with regional prices that you can edit. Take into account the peculiarities of data updating when reimporting the catalog.

Set up through Publisher Account when creating and editing item

Set up in your account when creating and editing item

Set up in your account when creating and editing item

Note
This guide describes how to set up regional prices for virtual items. Price settings for other item types follow the same approach.

To create a virtual item with a regional price:

  1. In your project in Publisher Account, go to the Items catalog > All items section.
  1. In your project in the account, go to the Items catalog > All items section.
  1. In your project in the account, go to the Items catalog > All items section.
  1. In your project in the account, go to the Items catalog > All items section.
  1. In your project in the account, go to the Catalog section.
  1. Click Create manually and select Virtual item from the drop-down list.
  1. In the General settings section, specify the following:
    • SKU
    • One or several groups the item should belong to (optional)
    • Name
    • Short description
    • Extended description — to add it, turn on the corresponding toggle (optional)
  1. In the Media section, upload one or more images or videos (optional) — from your device or via a link. In the store created with the Xsolla site editor, all item cards display the file marked as Main, while the remaining files are available only in item cards with a media gallery. The file marked as Main is also returned in the responses of the catalog retrieval API calls.
  1. In the Price settings section, select Paid item.
  1. Turn on the Real currency prices toggle and click Set up prices.

  2. In the window that opens, specify the currency and default price. You can replace USD with another default currency.

  3. Set up regional prices. You can do this in two ways, manually or automatically:

    • To set prices manually:
      1. Click Add local price and add prices line by line.
      1. Click Apply.
    • To set prices automatically:
      1. Click Calculate using default price. A list of countries will be generated in alphabetical order, and the price in the regional currency will be calculated for each country based on exchange rates and taxes.
      1. To remove countries for which you don’t need to set regional prices, click the minus icon to the right of the price.
      1. To modify an automatically calculated price, change the value in the corresponding row.
      1. Click Apply.
Note
When you click Calculate using default price, previously saved settings will be deleted.
Notice
If you change the default price but do not click Calculate using default price, the regional prices will remain unchanged.
  1. If you want to add a price in virtual currency, turn on the Virtual currency prices toggle and specify the values.

  2. To limit the number of items available for purchase:

    1. Turn on the toggle in the Limits section and specify the quantity.
    2. Configure the limit reset frequency. To do this, select a period from the drop-down list:
      • Daily.
      • Weekly.
      • Monthly.
      • Custom interval. The interval is calculated from the item’s display start date in the store.
      • No regular refresh.
    3. Set up the reset schedule by specifying the parameters that correspond to the selected period.
Note
By default, an item is hidden from the catalog once the purchase limit is reached. If automatic limit reset is configured, the Show item even after users reach the purchase limit checkbox lets you keep the item visible until the next reset cycle begins.
  1. To configure a display time limit for the item (optional):

    1. Turn on the toggle in the Add specific display period section.
    2. Specify the time zone and the beginning and the end of the period.

    To leave the end of the item’s display period unspecified, turn on the No end date toggle.

Note
To add another display period for the item in the catalog, click +. If an item has multiple display periods, each must have an end date. The display period ends at the last second of the specified minute. For example, if an end time is set to 12:00, the display period runs until 12:00:59.
  1. Configure attributes using one of the following options (optional):
    1. Add attributes and their values in JSON format.
    2. Manually create attributes and their values, and link them to items.
  1. If the paid item will be used in any mechanics with a random reward (e.g., loot boxes or gacha), enable the Mark as paid randomized reward toggle.
Note
This parameter may be required for games distributed in countries with legal restrictions on such mechanics.
  1. Click Create.

  2. In the window that opens, select the item status and click Continue.

The created item will appear in the All items section.

To edit prices:

  1. Open your project in Publisher Account and go to Items catalog > All items > Virtual items.
  1. Open the project in your account and go to Items catalog > All items > Virtual items.
  1. Open the project in your account and go to Items catalog > All items > Virtual items.
  1. Open the project in your account and go to Items catalog > All items > Virtual items.
  1. Open your project in the account and go to Catalog > Virtual items.
  1. Click ⋮ next to the desired item and select Edit from the drop-down list.

  2. In the Price settings section, click the edit icon under the default price.

Setting up through Publisher Account when importing prices from file

Setting up in your account when importing prices from file

Setting up in your account when importing prices from file

You can import regional prices from a file for pre-created items.

Features:

  • Upload or update regional prices for multiple items at once.
  • Support for items of all types:
    • virtual items
    • virtual currency
    • virtual currency packages
    • bundles
    • packages of game keys on a specific platform
  • Validation of uploaded data. If the file’s structure or data format does not meet the requirements, you will see a list of errors during the import.

File structure

Notice
Keep the column names in English and do not change them, otherwise this may cause errors when importing the file. The file format is CSV only.

Required file columns:

  • SKU — the item SKU for which regional prices need to be set.
  • Country — the country code in ISO 3166-1 alpha-2 format. Check the list of countries supported by Xsolla before uploading the CSV file. Filling in cells in this column is optional. You can see examples of price display if the country is not specified.
  • Currency — the currency code is in ISO 4217 format.
  • Amount — the price of the item. Use a period for decimal points.
  • IsDefault — whether this is the default price. Specify:
    • 1 — for the row with the default price. It is displayed in all countries with no regional prices.
    • 0 — for all other rows. You can also leave the cell in the IsDefault column empty.
Note

The price in the default currency must not be regional — leave the cell in the Country column empty.

EXAMPLE

Correctly filled file (several items, 3 currencies, regional prices are available).

Incorrectly filled file (several items, 3 currencies, regional prices are available).
Error: In virtual-item-1 and bundle-1 the groups cells in the Country column aren’t empty.

When adding each new item, you must set the price in the default currency. If not specified, an error will be displayed when importing the file.

EXAMPLE

Correctly filled file (several items, 3 currencies, regional prices are available).

Incorrectly filled file (several items, 3 currencies, regional prices are available).
Error: There isn’t any default currency for virtual-item-1 and bundle-1 groups.

  • Platform — the platform SKU. It is used when setting regional prices for game keys but is not used for other items.

    Available platforms.
    Platform SKUPlatform name
    steamSteam
    playstationPlayStation
    xboxXbox
    uplayUplay
    originOrigin
    drmfreeDRM Free
    gogGOG
    epicgamesEpic Games Store
    nintendo_eshopNintendo Switch eShop
    discord_game_storeDiscord Game Store
    oculusOculus
    viveportViveport
    stadiaGoogle Stadia
Note

Game keys with the same SKU but different platforms are considered different entities. Each entity must have a price specified in the default currency.

EXAMPLE

Correctly filled file (several game keys, 3 currencies, regional prices are available, 2 platforms).

Incorrectly filled file (several game keys, 3 currencies, regional prices are available, 2 platforms).
Error 1: Incorrect grouping of game keys by SKU and Platform, resulting in nine entities being found instead of three.
Error 2: Groups 3, 4, 5, and 6 do not have a default price due to incorrect grouping.
Error 3: Group 9 will overwrite the data of group 7 because they have a full set of prices for the same entity. As a result, the game-key-2 for the playstation platform will only have a price in MYR after import.

Examples of file completion and possible errors

Examples of the correct filling of the CSV file for import:


Examples of incorrect filling of the CSV file for import:


File import

To import prices from a file:

  1. Open your project in Publisher Account.
  2. Click Items catalog in the side menu.
  1. Open the project in your account.
  2. Click Items catalog in the side menu.
  1. Open the project in your account.
  2. Click Items catalog in the side menu.
  1. Open the project in your account.
  2. Click Items catalog in the side menu.
  1. Open your project in your account.
  2. Click Catalog in the side menu.
  1. Click Import/Export and in the drop-down list in the Import block, select Prices from CSV.
Note
In the import window, you can download the file template and fill it in.
  1. Upload the file to the corresponding field in the import window.

After successful upload, regional prices for items with the specified SKUs will be updated according to the prices in the file. Previously specified prices will be deleted.

Example:

There are several prices in different currencies and several regional prices for the item in the Publisher Account. In the imported file, there is only one price in EUR. After importing the file, only one price in EUR will be specified for this item in the Publisher Account.
There are several prices in different currencies and several regional prices for the item in your account. In the imported file, there is only one price in EUR. After importing the file, only one price in EUR will be specified for this item in your account.
There are several prices in different currencies and several regional prices for the item in your account. In the imported file, there is only one price in EUR. After importing the file, only one price in EUR will be specified for this item in your account.
There are several prices in different currencies and several regional prices for the item in your account. In the imported file, there is only one price in EUR. After importing the file, only one price in EUR will be specified for this item in your account.
There are several prices in different currencies and several regional prices for the item in your account. In the imported file, there is only one price in EUR. After importing the file, only one price in EUR will be specified for this item in your account.

Additionally, you can set regional prices when importing items using the Import items via JSON file API call.

Setting up using API methods

To set up regional prices through API methods, pass an array of objects with price settings for countries:

Example of the array:

Copy
Full screen
Small screen
 1"prices": [
 2  {
 3    "amount": 100,
 4    "currency": "USD",
 5    "is_enabled": true,
 6    "is_default": true
 7  },
 8  {
 9    "amount": 200,
10    "currency": "CZK",
11    "country_iso": "CZ",
12    "is_enabled": false,
13    "is_default": false
14  }
15]
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: October 6, 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 [email protected].