Getting started
Core concepts
Project (partner)#
A project is your integration on the platform. It is identified by the partner id and has:
- an API key (
api_key) sent in the body of your requests and echoed back in every wallet callback; - a callback URL — your wallet endpoint;
- an IP allowlist of your server networks;
- settings: default currency and language, enabled providers and features, bet limits, RTP.
The platform owner creates the project and gives you the partner id and the API key. Your staff then work with the project in the admin panel.
Player#
A player is whoever you identify by player_id — a string of 1 to 128 characters that you choose. The platform treats player_id as an opaque key in launch, wallet callbacks, free spins, target outcomes and RTP.
For free spins and RTP management the player id must consist of printable ASCII characters without spaces (up to 128 characters).
Currency and minor units#
The platform supports four currencies, each with two decimals:
| Code | Decimals |
|---|---|
UAH | 2 |
USD | 2 |
EUR | 2 |
RUB | 2 |
Amounts appear in three forms depending on where they are used:
| Where | Form | Example for 12.50 |
|---|---|---|
Wallet callbacks (amount, balance) | JSON number in currency units | 12.50 |
Free spins (bet, total_win) | decimal string in currency units | "12.50" |
Limits (min_minor, max_minor) and the admin API | minor units as a string (1/100 of a unit) | "1250" |
Amounts have at most two decimals and at most 13 digits before the decimal point.
Session#
Launching a game creates a session bound to the player, the game, the currency and the language. The response contains meta.session_id and a link that carries the session token — give it only to that player. A session expires 2 hours after it was created; relaunching while a round is unfinished revives it so the round can be finished.
Round#
A round is one paid game cycle (a spin and everything it triggers: free games, bonus rounds, gamble). The platform tracks each round through these steps:
- the platform asks your wallet to debit the stake (
bet); - once the debit is confirmed it sends
round_infowithstatus: "start"; - the outcome is played out in the game;
- if the round pays, the platform asks your wallet to credit it (
win); - after the credit is confirmed it sends
round_infowithstatus: "finish".
If the wallet rejects a debit with INSUFFICIENT_FUNDS, the round is rejected and nothing is played. A round that was started is never dropped: a reload or relaunch continues it. Free-spin rounds follow the same flow with a bet of 0 — see Free spins.
Providers, games and modes#
Games belong to one of three provider families (endorphina, pragmatic, nolimitcity). A game is addressed by its game id (symbol in the launch request, game_id in the catalog). Each game offers a base mode (spin) and may offer others, such as bonus buy, ante bet or gamble; the optional modes can be switched on or off per provider in the project settings.
What else is attached to a player#
| Object | Purpose | Page |
|---|---|---|
| Free-spins grant | A number of spins at a fixed bet, given by the operator | Free spins |
| Target outcome | A scheduled result for one of the player's paid spins | Target outcomes |
| Personal RTP | The return-to-player level used for the player's rounds | RTP management |
| Player bet limit | A personal minimum / maximum bet per currency | Bet limits |