Slots
Slot games inside a bingo room, and the wallet calls each spin makes
Rolling out. Slots run in our sandbox today and are not yet live in production. We switch them on per room. Details on this page may still change before go-live; we'll list changes in the changelog.
Some of our bingo rooms also offer slot games. They open inside the same game
iframe, next to the bingo game. There is no separate launch, no separate
gamecode and no separate embed: the player launches the bingo game as usual
and can spin from there.
What changes for you is the wallet traffic: every spin is its own small round
with its own roundid.
What you need to do
- Nothing in your launch or embed. Same
/gamelauncher/play, same launch URL, same iframe. - Make sure your wallet accepts the spin calls below. In particular, a
roundidthat is not a plain UUID, and a player who has a bingo round and spins open at the same time. - Tell us which slot games and stakes you want in which rooms. We switch them on per room.
Wallet calls per spin
Each spin makes exactly one /debit, then exactly one /credit, even when
the spin wins nothing. The credit is what closes the spin. If the spin fails
before its result is drawn, we send a /reverse instead of the credit.
POST /debit { round: slots:A, trans: T1, debit: 50, ended: false }
POST /credit { round: slots:A, trans: T2, credit: 0, ended: true }
→ spin slots:A closedThe /debit for a spin:
{
"playerid": "player_42",
"sessionid": "<our-session-id>",
"externalsessionid": "<your-session-id>",
"gamecode": "live-bingo",
"currency": "EUR",
"roundid": "slots:0f8c5a4e-6d3b-5c1a-9e2f-7b4d8a1c3e5f",
"transid": "<uuid>",
"debitamount": 50,
"reason": "REGULAR",
"roundstarted": true,
"roundended": false,
"autoplay": true
}| Field | For a spin |
|---|---|
roundid | slots: followed by a UUID (42 characters). New for every spin |
transid | A UUID. Fixed per spin and step, so a retry of the same step always reuses it |
gamecode | The bingo game the player launched. Slots don't have their own game code |
reason | Always REGULAR. Free cards don't apply to slots |
debitamount | The bet for this one spin |
autoplay | true when the player's autospin placed this bet. Left out otherwise (never sent as false). For your support team only; it doesn't change the bet or the odds |
The /credit and /reverse for a spin use the same shape as for bingo (see
Direct integration): the credit has
roundstarted: false and roundended: true; the reverse has
originaltransid set to the spin's debit and roundended: true.
A spin can be open while the same player's bingo round is open, on the
same session. You may see a bingo round and one or more spins open for one
player at the same time. Each one closes on its own roundid.
When things go wrong
- You decline the bet (a 4xx, or a response with an
errorcode): the spin stops and we don't send a reverse, because nothing was taken.NOT_SUFFICIENT_FUNDS,BET_LIMIT_REACHEDandGAMING_LIMIT_REACHEDshow the player a matching message. - The debit gets a server error or times out: we send a
/reversefor it, with the usual 3 attempts. - The spin stops before its result is drawn (for example, our side is
interrupted): a background job reverses it. It only picks up spins older
than 25 seconds, so this
/reversecan arrive well after the debit. It can also arrive for a debit you never received, because we can't tell whether the debit reached you before the interruption. If that reverse fails or is refused, we keep resending it in the background (see retries). - Once the result is drawn, the spin always pays. If the
/creditstill fails after its 3 attempts, a background job retries the same credit, with the sametransid, about every 2 minutes until your wallet accepts it. This includes a credit you refused. So a spin's credit can arrive minutes late, and you will see the sametransidmore than once. Be idempotent ontransid: return the original success for a repeat, never an error, or we'll keep retrying. - The player token is older than 1 hour: spins are refused. The bingo game can keep running on its open connection, but the player needs a fresh launch URL to spin again.
Stakes and limits
- Bets are per spin. Each room has its own list of slot stakes per currency. If we haven't set slot stakes for a currency, the room's per-card bingo stakes are used.
- The room's win cap applies. If a room has a maximum win per currency, a spin's win is capped at it.
Call volume
Opening the slot panel sends one /getbalance. Each spin sends one /debit
and one /credit. With autospin on, that is a debit and a credit every few
seconds for each spinning player, on top of normal bingo traffic. Size your
wallet for it.
Replays
Send the spin's roundid (including the slots: part) to
POST /gamelauncher/replay. The
replay shows each screen the player saw, the bet, the win, and whether the
spin was autospun.
Only finished spins can be replayed. A spin that failed, or is still in
progress, returns errorcode: 206 ("Game not found"). Slot spins are not
listed in the replay dashboard yet; open them
with /gamelauncher/replay.
Payout rate (RTP)
Each slot game's payout rate is set per room. Ask us for the RTP statement for the slot games in your rooms before go-live.