--- title: "Set up your webshop" description: "A Tokenz webshop is a store for your game that Tokenz hosts. Players buy items there, Tokenz takes the payment, and your game server grants the items. You..." source: "https://docs.tokenz.one/en/v2/checkout/webshop" api_version: "v2" locale: "en" version_status: "current" docs_stage: "prod" --- # Set up your webshop A Tokenz webshop is a store for your game that Tokenz hosts. Players buy items there, Tokenz takes the payment, and your game server grants the items. You build the shop in the dashboard without writing a storefront. Set everything up in Test mode first and make a test purchase. Then go live from one checklist. It copies your shop and order endpoint from Test; products and the player ID check you set up again in Live. ## Before you start The switch at the top right of the dashboard moves between Test and Live. Test and Live keep separate products, shops and webhook endpoints, so what you set up in Test doesn't change your Live shop. Test purchases use [test cards](https://docs.tokenz.one/en/v2/checkout/testing#complete-a-successful-test-payment) and never charge anyone. Your game server does two jobs for the webshop: - **Deliver orders.** Tokenz sends each paid order to an endpoint on your server, and your server grants the items. - **Check player IDs.** Before a player pays, Tokenz asks your server whether the player ID they typed exists, so the items reach a real account. You can try the shop before your server does either. See [No server yet?](https://docs.tokenz.one/en/v2/checkout/webshop#no-server-yet). ## 1. Add products Switch to Test mode and open **Shop** > **Products**. Create items one by one, or import your catalog from a file. See [Import products](https://docs.tokenz.one/en/v2/product/import). Products you publish are on sale in the shop. A draft stays out of it. ## 2. Build the shop Open **Shop** > **Builder** and select **Edit Webshop**. Choose the shop's address, then add your logo, colours and text in each language you sell in. The preview beside the editor shows the shop as players will see it. Players type their player ID before they pay. Under **Player ID help**, tell them where the game shows it: a sentence or two, with a screenshot if it helps. Players open it from the help icon in the Player ID field. When the shop is ready, select **Publish**. Publishing in Test doesn't make the shop public; it makes it ready for a test purchase. ## 3. Set up delivery On **Shop** > **Builder**, select **Set up delivery**. The **Delivery** page sets up how orders reach your game server. 1. Under **Where orders go**, enter the HTTPS address on your server that should receive orders, and select **Save endpoint**. 2. Copy the signing secret. Tokenz shows it once, when the endpoint is saved. Your server uses it to check that each order comes from Tokenz. See [Secure your webhook endpoint](https://docs.tokenz.one/en/v2/checkout/webhooks-get-started#3.-secure-your-webhook-endpoint). 3. Select **Send test event**. Tokenz sends a sample paid order, and your server should answer within 5 seconds. The endpoint receives every order, refund and dispute event. Each paid order arrives as an `order.succeeded` event that names the player in `playerId` and lists the items with their SKUs. Grant the items to that player, and take them back on `refund.created`. The events are described in [Webhooks](https://docs.tokenz.one/en/v2/checkout/webhooks#types-of-events). Someone else building the endpoint? Under **Hand off to your developer**, select **Copy setup brief**. The brief lists the endpoint, its events and your products, with a sample order. It leaves out the signing secret, so send that separately. ### No server yet? In Test mode, the **Delivery** page offers **Use the Tokenz test server**. It accepts every Test order and delivers nothing to your game. Until you set a Test validation URL, a Test preview also accepts any player ID without checking it. So you can make a test purchase before writing any server code. When your server is ready, enter its address instead. ## 4. Check player IDs Tokenz checks player IDs at a validation URL on your server, separate from the endpoint that receives orders. Open **Settings** > **Developers** > **User validation**, or select **Open User validation** on the **Delivery** page. Test and Live each have their own URL and signing secret, so set this up in Test mode first: 1. Select **Set up validation**, enter the HTTPS address on your server, and save it. 2. Copy the signing secret. Tokenz shows it once, when it is generated. 3. Enter a real player ID and select **Send test validation** to check that your server answers. Tokenz then sends a `user.validation` request to that URL when a player types their ID, before they pay. After a `true` answer from your Live URL, Tokenz may reuse it for a few minutes without calling you, so don't rely on this check to block an account at once. See [Reused answers](https://docs.tokenz.one/en/v2/checkout/webhooks#player-id-check-reuse). Until a Test URL is set, a Test preview accepts any player ID, so set it once your server can answer. ```json { "id": "9f8d3c2b-1a4e-4f6d-8b0c-2e5a7d9f1c34", "object": "user.validation", "createdAt": "2026-07-22T09:15:00Z", "test": true, "credentials": { "type": "playerId", "playerId": "player-42931" } } ``` Answer with HTTP `200` and whether the player exists: ```json { "valid": true } ``` - Return `200` whether the player exists or not. Tokenz reads any other status as an outage, and the player can't buy. - Answer within 3 seconds. Otherwise the player can't pay and is asked to try again. - Return only `valid`. Whoever typed the ID can read your answer, so send nothing else about the player. - When `test` is `true`, check the ID against your test players. - Verify the `Tokenz-Signature` header as you do for orders, but with the validation URL's signing secret. The full request and answer are described in [Player ID checks](https://docs.tokenz.one/en/v2/checkout/webhooks#player-id-checks). ## 5. Make a test purchase On **Shop** > **Builder**, select **Open preview**. It opens your shop as last published in Test. Buy an item with a [test card](https://docs.tokenz.one/en/v2/checkout/testing#complete-a-successful-test-payment), then check that your server granted it. The order also shows in **Orders** while the dashboard is in Test mode. ## 6. Go live Switch the dashboard to Live and open **Shop** > **Builder**. The **Go Live** list shows what Live still needs, with a button beside each item: | Item | What to do | | --- | --- | | Agreement | Sign it with **Activate Account** at the top of the page. Tokenz checks the agreement before Live payments start. A project is covered by its organization's agreement. | | Products on sale in Live | Live has its own products. Select **Add products** and create or import them again in Live. | | Shop | Select **Copy from Test** to replace your Live draft with the shop published in Test. | | Order endpoint | If Test sends orders to your own server, select **Use for Live** to send Live orders there too. Live gets its own signing secret, shown once. Otherwise select **Set up** and enter your server's address. | | Player ID check | Live has its own validation URL. Select **Set up** to open **User validation** in Live, enter your server's address, and copy the Live signing secret. | **Activate Webshop** becomes available once every item is ready. Activating publishes your Live shop, and players can reach it at its address. ## Need help? [Contact Tokenz support](https://tokenz.one/en/support) and include your shop's address.