Migrate from Xsolla to Stash

Learn about migrating from Xsolla to Stash

This guide covers the high level migration process so you can estimate the engineering effort required to migrate. It's assumed that you have Xsolla fully integrated into your game, which means:

  • Your game already authenticates with Xsolla in one of the specified ways.
  • Your game's backend has endpoints that grant purchases on the Xsolla web shop.
  • Optionally, your game's backend creates dynamic catalogs on Xsolla.

📘

Talk to Stash

Contact us to learn about features you only get with Stash, or to get help with estimating the level of effort for your migration.

Migrate user authentication

With Xsolla, you likely use Xsolla Login or a user ID from the game to log players in. Each option has its own migration path.

Authentication with Xsolla Login

You can integrate Stash accounts similarly to how you've integrated with Xsolla Login. Both Xsolla and Stash link player accounts using JSON Web Tokens (JWT) or an identity token that follows the OpenID standard (OIDC).

By default, Stash links game accounts to web shops using a deep link or a QR code. This simplifies the linking process because players don't need to provide their email addresses and passwords. You can use the same token with Stash that you use with Xsolla to complete authentication. The process includes:

  1. The game client authenticates with your account system and has access to the player's JWT identity token.
  2. When linking is requested on a web shop, a unique code challenge is passed to the game client using a deep link or QR code.
  3. The game client passes the identity token to Stash's servers using the code challenge passed to the game binary.

You can use our SDKs to integrate account linking. The engineering lift depends on how the authentication system is integrated in your game client. If you're familiar with the Xsolla linking procedure, it's unlikely the migration will take long.

Manual player ID entry

Using player IDs for authentication doesn't require a password. You can use the player ID from the game to log players into the web shop, so no game client changes are necessary.

Related docs:

Migrate webhooks and how you grant purchases

Both Stash and Xsolla call your game's APIs to grant players their items. The only change is to the payloads you parse. To get started, configure a webhook server in Stash:

  1. Open your project in Stash Studio.
  2. Click General settings and go to the Integrations tab.
  3. In the Webhook server field, enter the server URL that you want Stash to send requests to.

You can also configure other webhooks in Stash Studio to receive information about player actions in the web shop. If you already have an endpoint for granting purchases to players, the migration effort is minimal.

Related docs:

Migrate your catalog

You can manage your catalog in Stash Studio or work with Stash to build an API that pulls your catalog from your servers. Using an API allows you to have a unified catalog that gets dynamically displayed to each player. The migration process is slightly different depending on which method you use.

Migrate with Stash Studio

You can upload a catalog or define items manually in Stash Studio. Stash supports Xsolla JSON files and other external platforms such as Apple or Google, so there is no engineering work.

Migrate with an API

With Xsolla, you define catalogs using a batch of API calls but Stash can fetch catalogs from your game server in realtime. This means Stash calls your backend every time the web shop is rendered, which ensures that the offers served are always up to date. This also occurs when players are in the process of checking out.

The load on your system varies based on your configuration. You need to integrate a dedicated API that follows Stash's specifications so dynamic catalogs can be shown to players.

Related docs: