> For the complete documentation index, see [llms.txt](https://docs.tebex.io/developers/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tebex.io/developers/unity-engine/faq.md).

# FAQ

<details>

<summary>What is Tebex?</summary>

Tebex is a payments and monetization platform designed for game developers. Our Unity SDK lets you embed a fully functional in-game store without requiring your own payment infrastructure.&#x20;

Tebex handles payment processing, currencies, VAT, gift cards, coupons, and subscriptions. You focus on what to sell and what happens when a player buys it.

</details>

<details>

<summary>Does Tebex support subscriptions?</summary>

Yes! In addition to one-time purchases (such as for consumables, DLC, and cosmetics), we support both recurring subscriptions as well as tiered memberships.

</details>

<details>

<summary>Do you include a pre-built UI?</summary>

Yes, we include both a **Store Browser** and **In-Game Cart** to render your store and a player's cart dynamically in-game. This uses no external dependencies and can be drawn on the `Canvas` you specify.

</details>

<details>

<summary>Can I use the API without the pre-built UI components?</summary>

Yes. `HeadlessApi` is a standalone class. You can call it directly to build your own UI:

```csharp
var api = HeadlessApi.GetInstance(new UnityHeadlessAdapter(), "your-public-token");

await api.GetAllCategoriesIncludingPackagesAsync(
    onSuccess: categories => { /* populate your own UI */ },
    onApiError: err => Debug.LogError(err.detail),
    onServerError: err => Debug.LogError(err.Body)
);
```

</details>

<details>

<summary>Do I need a backend/API to use Tebex?</summary>

No backend is required for the purchase or fulfillment flow.&#x20;

The Headless API and all `TebexUnity` components included with our SDK work entirely from the Unity client using your store's public token. See [Implementation Guide](/developers/unity-engine/implementation-guide.md)for more details.

If your game implements private servers and can run commands, we provide a **Plugin API** and example plugin that fulfils these commands. See [Plugin API](https://docs.tebex.io/plugin/) for more information.

Tebex can also send webhooks for various events to endpoints you control. See [Webhooks](/developers/webhooks/overview.md) for further detail.

</details>

<details>

<summary>What are the two API types and when do I use them?</summary>

**Headless API** is for browsing the store's available packages, creating baskets, and checking out the user. For most Unity games, Headless API will suffice.

**Plugin API** is intended for dedicated servers that need to deliver player rewards.

</details>

<details>

<summary>Is there a demo scene I can reference?</summary>

Yes, open the scene at `Assets/Tebex/Veilborn/Veilborn.unity`.&#x20;

This is a complete example store built around a fantasy game theme ("Veilborn") that demonstrates the `StoreBrowser`, `InGameCart`, and `Deliverables` components of the Unity SDK working together, along with QR code checkout.

</details>

<details>

<summary>Are there any dependencies?</summary>

There are no external dependencies for our Unity SDK. JSON encoding uses Unity's internal tooling.&#x20;

</details>

<details>

<summary>How do I get my public token?</summary>

Login to your store at <https://creator.tebex.io/>, select **Integrations > API Keys**. Your **Public Token** is displayed on this page.

Quick link: <https://creator.tebex.io/developers/api-keys>

</details>

<details>

<summary>Can I add Tebex to an existing scene?</summary>

Yes! Adding Tebex can be done in just a few steps:

1. Create a `Canvas` in your scene (or use an existing one).
2. Add the `StoreBrowser` component to a `GameObject` on that canvas.
3. Assign your **Store Public Key** in the Inspector.
4. Assign a `TMP_FontAsset` and any branding textures you want to use.
5. Optionally attach an `InGameCart` component and link it to `StoreBrowser`.
6. Press Play - the SDK fetches your store data automatically.

</details>

<details>

<summary>Does payment happen inside the game?</summary>

Payment does not happen inside the game.&#x20;

When the player is ready to check out, the SDK opens the `basket.links.checkout` URL in the player's browser (or displays it as a QR code for mobile checkout).&#x20;

Tebex's hosted page handles all payment collection. After payment, the basket's `complete` flag is set to `true`, and the `Deliverables` component detects this via polling.

This approach means you are never handling card numbers or payment data inside Unity.

</details>

<details>

<summary>How do I know when a player has paid, so I can give them their reward?</summary>

Use the `Deliverables` component. Register a callback for each package you sell:

```csharp
deliverables.RegisterDeliverableAction(myPackage, (boughtPackage) => {
    // Award the item/currency/perk here
});
```

`Deliverables` polls the basket every few seconds. When `basket.complete` is `true`, it fires every registered callback for the purchased packages.

</details>

<details>

<summary>Is it safe to include my store's public token in the game client?</summary>

Yes. The public token is designed to be client-visible. It only allows reading store data and managing baskets - it cannot access financial data, ban players, or modify your store.

{% hint style="warning" %}
**Never ship the Plugin API secret key in a game client.** The secret key is for server-to-API use only.
{% endhint %}

</details>
