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 game in Stash Studio.
  2. Navigate to Settings > Webhooks.
  3. Click + Add Webhook to create a webhook.

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 work with Stash to use your existing APIs or to build a new 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.

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: