> ## Documentation Index
> Fetch the complete documentation index at: https://docs.playstarters.io/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ

> Common questions about integrating with the PlayStarters aggregator: API keys, wallet callbacks, currencies, and going live.

Common questions about integrating your casino site with the PlayStarters aggregator. If you can't find the answer here, see the [Troubleshooting guide](/support/troubleshooting) or [contact the support team](/support/contact).

<AccordionGroup>
  <Accordion title="What does PlayStarters actually provide?">
    PlayStarters is an **iGaming aggregator**. We give your casino site a single integration point to access a catalog of games from many providers. We do **not** provide a player-facing site, KYC, payments, licensing, or back-office tooling — those remain on your side.

    Your side owns: the player accounts and wallet, the casino site UI, payments, KYC/AML, licensing, and CRM.

    PlayStarters owns: the games catalog, provider relationships, game session orchestration, and the wallet callback protocol.
  </Accordion>

  <Accordion title="How do I get API credentials?">
    [Contact the PlayStarters team](https://www.playstarters.io/en/contact). After onboarding you receive:

    * An **Operator API key** (format `ps_<your_api_key>`) for calling the Operator API.
    * A **wallet key** — this is your same API key. PlayStarters sends it as a `Bearer` token when calling your wallet callback endpoint.
    * The **base URL** for the Operator API.

    Store both keys in a secrets manager or environment variables. Never commit them to source control.
  </Accordion>

  <Accordion title="What do I have to build on my side?">
    Two things:

    1. **Backend calls to PlayStarters** — call `/operator/providers`, `/operator/games`, and `/operator/launch` to populate your lobby and start game sessions.
    2. **A wallet callback endpoint** — a single `POST` endpoint we call to read balances and process `BET`, `WIN`, and `VOID` transactions. See the [Seamless Wallet Overview](/api/wallet/overview).

    Everything else (player accounts, deposits, withdrawals, lobby UI, KYC, responsible gaming) stays on your side.
  </Accordion>

  <Accordion title="What currencies are supported?">
    The currency on each game session is whatever you pass as `currency` in [`POST /operator/launch`](/api/operator/launch), as long as the game supports it. Use ISO 4217 codes (e.g. `EUR`, `USD`, `BRL`).

    Talk to your account manager about specific currency support per provider.
  </Accordion>

  <Accordion title="How are bet, win, and void transactions correlated?">
    Each transaction has a unique `requestId`. `WIN` and `VOID` calls include a `parentTransactionId` referencing the `requestId` of the original `BET`, so you can group them into a single game round.
  </Accordion>

  <Accordion title="What happens if my wallet endpoint is slow or down?">
    PlayStarters will retry failed calls. To stay safe:

    * Respond within a few seconds, ideally under 1 second.
    * Implement [idempotency](/api/wallet/idempotency) keyed on `requestId` so retries don't double-debit or double-credit the player.
    * Reject `BET` with `400` and `{ "msg": "Insufficient user credit" }` only when the player truly lacks funds — never for transient errors. Other errors will be retried.
  </Accordion>

  <Accordion title="Is there a sandbox environment?">
    Yes. Your sandbox base URL and credentials are provided during onboarding. Use the sandbox to test your wallet callback end-to-end before switching to production.
  </Accordion>

  <Accordion title="How do I report issues or request a new provider?">
    See the [Contact](/support/contact) page. When reporting an issue, include your operator ID, the affected endpoint, the `requestId` from the call, the timestamp (with timezone), and the request/response payloads with secrets redacted.
  </Accordion>
</AccordionGroup>
