Reference
Schemas, error codes, glossary
Glossary
Bingo and casino terms
| Term | Definition |
|---|---|
| Aggregator | A platform like Gametech (VisionLINK) that sits between casinos and game providers, handling wallet integration on the casino's behalf |
| Brand | A 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 code | The identifier of a specific game (e.g., BINGO25) |
| Host stream | Live video of a human host calling balls; embedded inside the iframe |
| Jurisdiction | The 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 line | A side bet that pays out if the player matches numbers in a specific pattern |
| Operator | Your casino, identified to us by operator |
| Replay URL | A 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 |
| Room | A shared live game multiple players join at the same time |
| Round | One 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 API | A wallet model where the game provider calls the casino's wallet in real time per transaction, rather than transferring a balance up-front |
| Settlement | The moment a round's outcome is finalised and money is paid to winners |
| Side bet | An optional extra bet placed alongside the main wager (e.g., lucky line) |
| Stake / wager | Amount bet per card per round, in the currency's smallest unit |
| Volatility | How variable wins are around the long-run RTP. Higher volatility means bigger but rarer wins |
Identifiers and integration
| Term | Definition |
|---|---|
| External session ID | The session identifier on your side. We treat (operator, externalsessionid) as the idempotency key for /gamelauncher/play |
| Session ID | The session identifier on our side, returned from /gamelauncher/play |
| Round ID | UUID, unique per player per round; not shared between players in the same room |
| Transaction ID | UUID, unique per wallet call; idempotency key |
| Launch code | A short-lived, single-use code embedded in the launch URL; exchanged once for a session token |
| Launch URL | The URL the casino loads in an iframe to start the player's session |
| Mode | DEMO (no real money) or REAL (real money) |
| Channel | One of web, mobile-web, native. Used for analytics and channel-specific layout |
Tech terms
| Term | Definition |
|---|---|
| Basic Auth | HTTP authentication scheme; credentials sent as Authorization: Basic <base64(username:password)> |
| BCP 47 | Standard 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 IP | The public IP your servers use when calling out to the internet |
| Idempotency | Property whereby calling an operation twice with the same key produces the same result, not two effects |
| iframe sandbox | The sandbox attribute on <iframe>, which restricts what an embedded page can do; relaxed via allow-* tokens |
| ISO 3166-1 alpha-2 | The two-letter country code standard (US, GB, MT, JP) |
| ISO 4217 | The international currency-code standard (USD, EUR, GBP) |
| MDX | Markdown with embedded JSX components; the format these docs are written in |
| postMessage | Browser 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" }errorcode | HTTP status | Meaning |
|---|---|---|
101 | 400 | Bad request — missing or malformed field |
101 | 500 | Server-side internal failure on /gamelauncher/play |
201 | 401 | Access denied — bad or missing Basic Auth |
206 | 404 | Game / round not found (replay only) |
500 | 500 | Internal 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:
errorcode | What we do |
|---|---|
NOT_SUFFICIENT_FUNDS | Reject card purchase, surface to player |
BET_NOT_ALLOWED | Reject card purchase, surface "stake not allowed" to player |
SESSION_NOT_FOUND | Treat 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:
| Field | Allowed values |
|---|---|
mode | DEMO, REAL |
channel | web, mobile-web, native |
language | en (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.