LivePlay Bingo Integration Docs

Reference

Schemas, error codes, glossary

Glossary

Bingo and casino terms

TermDefinition
AggregatorA platform like Gametech (VisionLINK) that sits between casinos and game providers, handling wallet integration on the casino's behalf
BrandA sub-identity within an operator (one operator may run multiple brands across different markets)
Card (bingo)One numbered grid a player has bought for a round
Game codeThe identifier of a specific game (e.g., BINGO25)
Host streamLive video of a human host calling balls; embedded inside the iframe
JurisdictionThe regulatory territory governing a player's session, e.g. MGA (Malta Gaming Authority), UKGC (UK Gambling Commission), AGCO (Ontario), Spelinspektionen (Sweden), ADM (Italy)
KYC (Know Your Customer)Identity-verification checks the casino performs on its players
Lucky lineA side bet that pays out if the player matches numbers in a specific pattern
OperatorYour casino, identified to us by operator
Replay URLA short-lived URL serving a recorded view of a past round
RNG (Random Number Generator)The certified random source we use to draw bingo balls
RoomA shared live game multiple players join at the same time
RoundOne bingo game from card purchase to result payout, inside one room
RTP (Return To Player)The long-run percentage of stakes returned to players as wins
Seamless wallet APIA wallet model where the game provider calls the casino's wallet in real time per transaction, rather than transferring a balance up-front
SettlementThe moment a round's outcome is finalised and money is paid to winners
Side betAn optional extra bet placed alongside the main wager (e.g., lucky line)
Stake / wagerAmount bet per card per round, in the currency's smallest unit
VolatilityHow variable wins are around the long-run RTP. Higher volatility means bigger but rarer wins

Identifiers and integration

TermDefinition
External session IDThe session identifier on your side. We treat (operator, externalsessionid) as the idempotency key for /gamelauncher/play
Session IDThe session identifier on our side, returned from /gamelauncher/play
Round IDUUID, unique per player per round; not shared between players in the same room
Transaction IDUUID, unique per wallet call; idempotency key
Launch codeA short-lived, single-use code embedded in the launch URL; exchanged once for a session token
Launch URLThe URL the casino loads in an iframe to start the player's session
ModeDEMO (no real money) or REAL (real money)
ChannelOne of web, mobile-web, native. Used for analytics and channel-specific layout

Tech terms

TermDefinition
Basic AuthHTTP authentication scheme; credentials sent as Authorization: Basic <base64(username:password)>
BCP 47Standard for language tags (e.g., en, en-GB, pt-BR)
CSP (Content Security Policy)Browser security policy listing which hosts a page may load resources from
Egress IPThe public IP your servers use when calling out to the internet
IdempotencyProperty whereby calling an operation twice with the same key produces the same result, not two effects
iframe sandboxThe sandbox attribute on <iframe>, which restricts what an embedded page can do; relaxed via allow-* tokens
ISO 3166-1 alpha-2The two-letter country code standard (US, GB, MT, JP)
ISO 4217The international currency-code standard (USD, EUR, GBP)
MDXMarkdown with embedded JSX components; the format these docs are written in
postMessageBrowser API for cross-origin communication between a parent page and an embedded iframe

Status / error codes

There are two surfaces with different conventions. Don't confuse them.

Launcher API errors (we return — integer codes)

{ "errorcode": 101, "errormessage": "bad request" }
errorcodeHTTP statusMeaning
101400Bad request — missing or malformed field
101500Server-side internal failure on /gamelauncher/play
201401Access denied — bad or missing Basic Auth
206404Game / round not found (replay only)
500500Internal server error on /gamelauncher/replay — safe to retry

Classify by HTTP status, not just errorcode.

Wallet errors (direct integrators return to us — string codes)

{ "errorcode": "NOT_SUFFICIENT_FUNDS", "errormessage": "balance below stake" }

Codes we currently treat specially:

errorcodeWhat we do
NOT_SUFFICIENT_FUNDSReject card purchase, surface to player
BET_NOT_ALLOWEDReject card purchase, surface "stake not allowed" to player
SESSION_NOT_FOUNDTreat as session-expired, surface to player

Any other errorcode you return is logged and treated as a generic business error. You may return codes like PLAYER_BLOCKED, PLAYER_NOT_FOUND, CURRENCY_MISMATCH, DUPLICATE_TRANSACTION, ROUND_ALREADY_CLOSED for clarity in your own logs; today they aren't specially handled, but we expect to add behaviour as the integration matures.

Note: these codes flow only from the casino to us. We never send any of these codes back. Errors we return use the integer envelope above.

iframe lifecycle events

The iframe does not currently emit any postMessage events to its parent window. There is no published event contract today. See Lifecycle signals for the full explanation.

Allowed values reference

These are values for fields you send to us in /gamelauncher/play:

FieldAllowed values
modeDEMO, REAL
channelweb, mobile-web, native
languageen (others on request)

Currency notes

We accept any ISO 4217 alphabetic currency code your operator is configured for. Amounts are always sent in the currency's smallest unit (see Money). Display aliases — showing a custom symbol or abbreviation in the player's UI rather than the raw currency code — are configured per operator on request.

Changelog

Public API changes will be tracked here once we have entries to record. Breaking changes are announced ahead of time and versioned per integrator.

On this page