Data models
Data structures shared by the endpoints.
Username
Type: string
Player username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).
Format: ^[A-Za-z0-9_.@-]{1,32}$
TxnId
Type: string
Your transfer ID, 1–64 characters (letters, digits and _ . : -), used as the idempotency key. Keep it unique across your whole tenant (never reuse it for another player).
Format: ^[A-Za-z0-9_.:-]{1,64}$
Amount
Type: string
A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").
Format: ^-?\d{1,15}(\.\d{1,4})?$
PositiveAmount
Type: string
An amount greater than 0 as a decimal string with at most 4 decimals, for example "1000" or "99.5". Send a string, not a floating-point number.
Format: ^\d{1,15}(\.\d{1,4})?$
UsdAmount
Type: string
A USD amount as a decimal string with at most 6 decimals (accumulated internally in millionths of a dollar).
Format: ^-?\d{1,12}(\.\d{1,6})?$
Currency
Type: string
Currency code (3–5 letters, case-insensitive, for example TWD, USD, USDT).
Format: ^[A-Za-z]{3,5}$
Lang
Type: string
Game language — CHT Traditional Chinese, CHS Simplified Chinese, ENG English, JPN Japanese, KOR Korean, THAI Thai, VIET Vietnamese, HIND Hindi, PHP Filipino (case-insensitive).
Values: CHT, CHS, ENG, JPN, KOR, THAI, VIET, HIND, PHP
Date
Type: string
A date YYYY-MM-DD.
Format: ^\d{4}-\d{2}-\d{2}$
DateTime
Type: string (date-time)
UTC time, ISO-8601 with milliseconds.
Cursor
Type: string
Bet sync cursor (yyyymm.sequence). Treat it as opaque; store it and send it back unchanged.
Format: ^\d{6}\.\d+$
RoundId
Type: string
Round ID (26-character upper-case ULID).
Format: ^[0-9A-Z]{26}$
TableId
Type: string
Table ID, for example S01 (see GET /tables).
Length: 1–…
Game
Type: string
Game: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).
Values: baccarat, dragontiger, holdem, niuniu
Variant
Type: string
Variant: baccarat classic (5% commission on banker wins) or nocomm (no commission; banker winning with 6 pays half, with Super Six). For dragon tiger use the table's variants. Texas Hold'em: casino (player vs dealer, Casino Hold'em), thbp (player vs dealer, Texas Hold'em Bonus Poker) or nlhe (player vs player, no-limit). Niu Niu: standard.
LimitProfileId
Type: integer | null
Bet-limit profile ID: one of your own profiles (Console "Bet-limit profiles") or a platform template, in the player's currency, otherwise INVALID_PARAMETER. null goes back to the default. Profiles are per game: a profile only applies to tables of its game, and other games use the default.
Range: 1–…
PlayerStatus
Type: string
active normal; locked cannot enter the game; no_bet can enter and watch but not bet.
Values: active, locked, no_bet
ErrorCode
Type: string
Error code. See "Error codes" for the full list.
Values: UNAUTHORIZED, IP_NOT_ALLOWED, TENANT_SUSPENDED, RATE_LIMITED, PAYLOAD_TOO_LARGE, INVALID_JSON, NOT_FOUND, INTERNAL_ERROR, INVALID_PARAMETER, INVALID_USERNAME, INVALID_CURRENCY, CURRENCY_NOT_ENABLED, INVALID_AMOUNT, INVALID_CURSOR, CURRENCY_MISMATCH, PLAYER_NOT_FOUND, PLAYER_LOCKED, PLAYER_LIMIT, TXN_CONFLICT, INSUFFICIENT_BALANCE, TXN_NOT_FOUND, ROUND_NOT_FOUND, QUOTA_EXCEEDED, ACCOUNT_LOCKED
LaunchRequest
| Field | Type | Required | Description |
|---|---|---|---|
username | string | yes | Player username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).Format: ^[A-Za-z0-9_.@-]{1,32}$ |
nickname | string | no | Display name (optional). Only used when the player is created. |
currency | string | no | Currency (optional), only used when the player is created. Defaults to your tenant currency. Format: ^[A-Za-z]{3,5}$ |
lang | string | no | Game language (optional). Defaults to the first language set in your Console, or CHT.Values: CHT, CHS, ENG, JPN, KOR, THAI, VIET, HIND, PHP |
device | string | no | mobile opens the mobile layout; any other value means the desktop layout pc.Values: pc, mobileDefault: pc |
table | string | no | Go straight into this table (optional); without it the player lands in the lobby. It must be a table you have enabled. Length: 1–… |
variant | string | no | Preferred baccarat variant (optional, classic / nocomm). Currently stored only; the player still picks the variant at the table. |
lobbyUrl | string (uri) | no | Your site's URL (optional, http or https). In the current version the "Back to site" button uses the Console setting "Branding & login → Return-to-lobby URL"; this parameter is stored for per-launch overrides in a later version. Format: ^https?:// |
limitProfileId | integer | null | no | Bet-limit profile ID: one of your own profiles (Console "Bet-limit profiles") or a platform template, in the player's currency, otherwise INVALID_PARAMETER. null goes back to the default. Profiles are per game: a profile only applies to tables of its game, and other games use the default.Range: 1–… |
LaunchResult
| Field | Type | Required | Description |
|---|---|---|---|
url | string (uri) | yes | One-time game URL (https://<host>/Launch?t=…), valid for 60 seconds and usable once. |
expiresIn | integer | yes | Seconds until the URL expires. Always: 60 |
UsernameRequest
| Field | Type | Required | Description |
|---|---|---|---|
username | string | yes | Player username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).Format: ^[A-Za-z0-9_.@-]{1,32}$ |
LogoutResult
| Field | Type | Required | Description |
|---|---|---|---|
kicked | boolean | yes | Always true. |
Player
| Field | Type | Required | Description |
|---|---|---|---|
username | string | yes | Username (with the letter case used when it was created). |
nickname | string | null | yes | Display name. |
status | string | yes | active normal; locked cannot enter the game; no_bet can enter and watch but not bet.Values: active, locked, no_bet |
currency | string | yes | Currency. |
balance | string | yes | Current available balance. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
online | boolean | yes | Whether the player is in the game right now (lobby or a table). |
createdAt | string (date-time) | yes | UTC time, ISO-8601 with milliseconds. |
lastLoginAt | string (date-time) | null | yes | When the player last entered the game. |
PlayerUpdateRequest
| Field | Type | Required | Description |
|---|---|---|---|
username | string | yes | Player username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).Format: ^[A-Za-z0-9_.@-]{1,32}$ |
status | string | no | active normal; locked cannot enter the game; no_bet can enter and watch but not bet.Values: active, locked, no_bet |
nickname | string | null | no | New display name; null or an empty string clears it. |
limitProfileId | integer | null | no | Bet-limit profile ID: one of your own profiles (Console "Bet-limit profiles") or a platform template, in the player's currency, otherwise INVALID_PARAMETER. null goes back to the default. Profiles are per game: a profile only applies to tables of its game, and other games use the default.Range: 1–… |
password | string | no | Password for the public login page (/Login), 6–64 characters.Length: 6–64 |
TransferRequest
| Field | Type | Required | Description |
|---|---|---|---|
username | string | yes | Player username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).Format: ^[A-Za-z0-9_.@-]{1,32}$ |
txnId | string | yes | Your transfer ID, 1–64 characters (letters, digits and _ . : -), used as the idempotency key. Keep it unique across your whole tenant (never reuse it for another player).Format: ^[A-Za-z0-9_.:-]{1,64}$ |
amount | string | yes | An amount greater than 0 as a decimal string with at most 4 decimals, for example "1000" or "99.5". Send a string, not a floating-point number.Format: ^\d{1,15}(\.\d{1,4})?$ |
currency | string | yes | Must equal the player's currency. Format: ^[A-Za-z]{3,5}$ |
TransferResult
| Field | Type | Required | Description |
|---|---|---|---|
txnId | string | yes | The txnId from the request. |
status | string | yes | Always done (single step; there is no pending state). |
balance | string | yes | Balance right after this transfer; a resent txnId returns the original value.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
duplicate | boolean | yes | true means this txnId had already been processed: the balance was not changed again and this is the original result. |
TransferRecord
| Field | Type | Required | Description |
|---|---|---|---|
txnId | string | yes | Transfer ID. |
username | string | yes | Username. |
dir | string | yes | in deposit, out withdrawal, adjust manual adjustment made in the Console.Values: in, out, adjust |
amount | string | yes | Amount (positive). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
status | string | yes | Always done. |
balance | string | null | yes | Balance right after this transfer. |
at | string (date-time) | yes | UTC time, ISO-8601 with milliseconds. |
Balance
| Field | Type | Required | Description |
|---|---|---|---|
balance | string | yes | A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").Format: ^-?\d{1,15}(\.\d{1,4})?$ |
currency | string | yes | Currency. |
Zone
Type: string
Bet zone. Baccarat: B banker, P player, T tie, BP banker pair, PP player pair, S6 Super Six (no-commission). Dragon tiger: D dragon, TG tiger, T tie, ST suited tie; big/small/odd/even (only on tables where you turn it on in Console Table settings): DB dragon big, DS dragon small, DO dragon odd, DE dragon even, TB tiger big, TS tiger small, TO tiger odd, TE tiger even. Texas Hold'em: player vs dealer Casino Hold'em ANTE ante, CALL call (2× the ante), AAB AA bonus; player vs dealer Texas Hold'em Bonus ANTE ante, FLOP flop bet (2× the ante), TURN turn bet (1× the ante), RIVER river bet (1× the ante), BONUS bonus bet; player vs player POT (everything put into the pot in the hand; return is the uncalled part given back). Niu Niu (each one bets that this player hand beats the banker): P1E player 1 equal, P1D player 1 double, P2E player 2 equal, P2D player 2 double, P3E player 3 equal, P3D player 3 double.
Values: B, P, T, BP, PP, S6, D, TG, ST, DB, DS, DO, DE, TB, TS, TO, TE, ANTE, CALL, AAB, FLOP, TURN, RIVER, BONUS, POT, P1E, P1D, P2E, P2D, P3E, P3D
BetLeg
| Field | Type | Required | Description |
|---|---|---|---|
zone | string | yes | Bet zone. Baccarat: B banker, P player, T tie, BP banker pair, PP player pair, S6 Super Six (no-commission). Dragon tiger: D dragon, TG tiger, T tie, ST suited tie; big/small/odd/even (only on tables where you turn it on in Console Table settings): DB dragon big, DS dragon small, DO dragon odd, DE dragon even, TB tiger big, TS tiger small, TO tiger odd, TE tiger even. Texas Hold'em: player vs dealer Casino Hold'em ANTE ante, CALL call (2× the ante), AAB AA bonus; player vs dealer Texas Hold'em Bonus ANTE ante, FLOP flop bet (2× the ante), TURN turn bet (1× the ante), RIVER river bet (1× the ante), BONUS bonus bet; player vs player POT (everything put into the pot in the hand; return is the uncalled part given back). Niu Niu (each one bets that this player hand beats the banker): P1E player 1 equal, P1D player 1 double, P2E player 2 equal, P2D player 2 double, P3E player 3 equal, P3D player 3 double.Values: B, P, T, BP, PP, S6, D, TG, ST, DB, DS, DO, DE, TB, TS, TO, TE, ANTE, CALL, AAB, FLOP, TURN, RIVER, BONUS, POT, P1E, P1D, P2E, P2D, P3E, P3D |
amount | string | yes | Stake. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
return | string | yes | Amount returned (stake + net win; a push returns the stake; 0 when lost). For a Niu Niu double bet it also includes the returned hold. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
hold | string | no | Niu Niu double bets only (P1D, P2D, P3D): the extra amount held from the balance when the bet was placed (stake × 2 by default); the unused part is included in return.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
mult | integer | no | Niu Niu double bets only: the multiplier actually applied — the player hand's multiplier when the player wins, the banker hand's when the player loses (by default ×1 for No Bull to Bull 6, ×2 for Bull 7–9, ×3 for Niu Niu); 0 when refunded.Range: 0–10 |
NiuniuHands
Type: map<string, integer>
Niu Niu hand rank per hand, keyed B banker and P1–P3 players 1–3: 0 No Bull, 1–9 Bull 1–9, 10 Niu Niu, 11 Five Face Bull, 12 Bomb, 13 Five Small Bull (11–13 only at tables with special hands turned on). An incomplete result only has the hands that are known.
keys: B, P1, P2, P3
NiuniuWinners
Type: map<string, string>
Niu Niu outcome of each player hand against the banker: P the player wins, B the banker wins (there are no ties).
keys: P1, P2, P3
ResultCode
| Field | Type | Required | Description |
|---|---|---|---|
code | string | yes | Result code (one hexadecimal character, see "Tables and round results"); an empty string for a void round without a result. For Texas Hold'em it is this player's outcome of the hand: player vs dealer player_wins, dealer_wins, tie, dealer_not_qualified (Casino Hold'em only), fold; player vs player win, split, lose, fold; void when the hand was voided. For Niu Niu it is 5 characters [outcome][banker][player 1][player 2][player 3]: the first is a bit mask of the winning player hands (player 1 = 1, player 2 = 2, player 3 = 4, added up: 0–7), followed by each hand's rank (0–9, A Niu Niu, B Five Face Bull, C Bomb, D Five Small Bull, - unknown), for example 5893A. |
cardInfo | string | yes | Card string (12 characters for baccarat, 4 for dragon tiger, see "Tables and round results"); an empty string when there is no result. For Texas Hold'em it is board|this player's two hole cards|the dealer's two cards (space-separated card codes; the dealer part only at player-vs-dealer tables), for example AS KD 7H 7C 2S|AH 7D|QS 3C. For Niu Niu it is first card|banker|player 1|player 2|player 3 (each hand's 5 cards in slot order 1–5, space-separated), for example 7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D. |
hands | map<string, integer> | no | Niu Niu only: each hand's rank (B, P1, P2, P3 → 0–13), so you do not need to decode the result code. Absent on voided slips (status: void).keys: B, P1, P2, P3 |
winners | map<string, string> | no | Niu Niu only: the outcome of each player hand against the banker (P1, P2, P3 → P player wins, B banker wins). Absent on voided slips (status: void).keys: P1, P2, P3 |
BetRecord
| Field | Type | Required | Description |
|---|---|---|---|
recSeq | integer | yes | Write sequence (increases within a UTC month). |
slipId | string | yes | Slip ID. All of a player's bets in one round form one slip. Recalculations and voids keep the same slipId. |
rev | integer | yes | Revision. The highest rev of a slipId is final.Range: 1–… |
status | string | yes | settled first settlement; recalculated recalculated after a result correction; void voided (stakes refunded in full; for Niu Niu together with the hold).Values: settled, recalculated, void |
username | string | yes | Username. |
currency | string | yes | Currency. |
tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
game | string | yes | Game: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).Values: baccarat, dragontiger, holdem, niuniu |
variant | string | yes | Variant: baccarat classic (5% commission on banker wins) or nocomm (no commission; banker winning with 6 pays half, with Super Six). For dragon tiger use the table's variants. Texas Hold'em: casino (player vs dealer, Casino Hold'em), thbp (player vs dealer, Texas Hold'em Bonus Poker) or nlhe (player vs player, no-limit). Niu Niu: standard. |
roundId | string | yes | Round ID; for Texas Hold'em the hand ID. Format: ^[0-9A-Z]{26}$ |
shoe | string | yes | Shoe number; an empty string for Texas Hold'em (no shoe). Niu Niu uses a fresh deck every round, so this is the session (a new one every 60 rounds by default). |
round | integer | yes | Round number within the shoe; for Texas Hold'em the hand number at this table; for Niu Niu the round number within the session. |
bets | BetLeg[] | yes | Stake and return per bet zone. |
bets[].zone | string | yes | Bet zone. Baccarat: B banker, P player, T tie, BP banker pair, PP player pair, S6 Super Six (no-commission). Dragon tiger: D dragon, TG tiger, T tie, ST suited tie; big/small/odd/even (only on tables where you turn it on in Console Table settings): DB dragon big, DS dragon small, DO dragon odd, DE dragon even, TB tiger big, TS tiger small, TO tiger odd, TE tiger even. Texas Hold'em: player vs dealer Casino Hold'em ANTE ante, CALL call (2× the ante), AAB AA bonus; player vs dealer Texas Hold'em Bonus ANTE ante, FLOP flop bet (2× the ante), TURN turn bet (1× the ante), RIVER river bet (1× the ante), BONUS bonus bet; player vs player POT (everything put into the pot in the hand; return is the uncalled part given back). Niu Niu (each one bets that this player hand beats the banker): P1E player 1 equal, P1D player 1 double, P2E player 2 equal, P2D player 2 double, P3E player 3 equal, P3D player 3 double.Values: B, P, T, BP, PP, S6, D, TG, ST, DB, DS, DO, DE, TB, TS, TO, TE, ANTE, CALL, AAB, FLOP, TURN, RIVER, BONUS, POT, P1E, P1D, P2E, P2D, P3E, P3D |
bets[].amount | string | yes | Stake. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].return | string | yes | Amount returned (stake + net win; a push returns the stake; 0 when lost). For a Niu Niu double bet it also includes the returned hold. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].hold | string | no | Niu Niu double bets only (P1D, P2D, P3D): the extra amount held from the balance when the bet was placed (stake × 2 by default); the unused part is included in return.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].mult | integer | no | Niu Niu double bets only: the multiplier actually applied — the player hand's multiplier when the player wins, the banker hand's when the player loses (by default ×1 for No Bull to Bull 6, ×2 for Bull 7–9, ×3 for Niu Niu); 0 when refunded.Range: 0–10 |
stake | string | yes | Total stake (for Niu Niu, without the hold). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
hold | string | no | Niu Niu only: the total hold on double bets (the sum of bets[].hold; 0 without double bets). A double bet can lose more than its stake (up to 3× by default), so this amount is held from the balance on top of the stake when the bet is placed, and the unused part is returned with the payout at settlement (included in payout).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
validStake | string | yes | Valid (effective) stake, with banker/player hedges and pushes removed by the rules. Niu Niu: the stake for equal bets and stake × the multiplier actually applied (bets[].mult) for double bets; refunded bets do not count.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
rolling | string | yes | Rolling (lost stakes; Super Six excluded). Niu Niu: the amount lost (a lost double bet loses stake × the banker hand's multiplier). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
payout | string | yes | Total payout (stake included); for Niu Niu it also includes the returned hold. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
winLoss | string | yes | Player win/loss = payout − stake (positive means the player won); for Niu Niu payout − stake − hold. Always reconcile with this field.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
delta | string | yes | What this revision changed on the player's balance: payout for the first settlement; the payout difference for a recalculation (may be negative); stake (plus the hold for Niu Niu) minus the earlier payout for a void.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
result | ResultCode | yes | |
result.code | string | yes | Result code (one hexadecimal character, see "Tables and round results"); an empty string for a void round without a result. For Texas Hold'em it is this player's outcome of the hand: player vs dealer player_wins, dealer_wins, tie, dealer_not_qualified (Casino Hold'em only), fold; player vs player win, split, lose, fold; void when the hand was voided. For Niu Niu it is 5 characters [outcome][banker][player 1][player 2][player 3]: the first is a bit mask of the winning player hands (player 1 = 1, player 2 = 2, player 3 = 4, added up: 0–7), followed by each hand's rank (0–9, A Niu Niu, B Five Face Bull, C Bomb, D Five Small Bull, - unknown), for example 5893A. |
result.cardInfo | string | yes | Card string (12 characters for baccarat, 4 for dragon tiger, see "Tables and round results"); an empty string when there is no result. For Texas Hold'em it is board|this player's two hole cards|the dealer's two cards (space-separated card codes; the dealer part only at player-vs-dealer tables), for example AS KD 7H 7C 2S|AH 7D|QS 3C. For Niu Niu it is first card|banker|player 1|player 2|player 3 (each hand's 5 cards in slot order 1–5, space-separated), for example 7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D. |
result.hands | map<string, integer> | no | Niu Niu only: each hand's rank (B, P1, P2, P3 → 0–13), so you do not need to decode the result code. Absent on voided slips (status: void).keys: B, P1, P2, P3 |
result.winners | map<string, string> | no | Niu Niu only: the outcome of each player hand against the banker (P1, P2, P3 → P player wins, B banker wins). Absent on voided slips (status: void).keys: P1, P2, P3 |
rake | string | no | Texas Hold'em only: the rake taken from this player in the hand (player-vs-player tables; 0 at player-vs-dealer tables).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
onsite | boolean | no | Texas Hold'em only: an on-site seat (a guest at the table-owner's studio, registered by the dealer on the tablet, outside the wallet; username is "現場 #seat"). |
hand | object | no | Texas Hold'em only: a summary of the hand (the full hand history is in Console "Texas Hold'em records"). |
hand.handId | string | yes | Hand ID (same as roundId). |
hand.no | integer | yes | Hand number at this table (same as round). |
hand.outcome | string | yes | This player's outcome (same as result.code). |
hand.cards | string | yes | Board and the cards this player showed (same as result.cardInfo). |
placedAt | string (date-time) | yes | UTC time, ISO-8601 with milliseconds. |
settledAt | string (date-time) | yes | When this revision was settled (or recalculated, or voided). |
BetPage
| Field | Type | Required | Description |
|---|---|---|---|
items | BetRecord[] | yes | |
items[].recSeq | integer | yes | Write sequence (increases within a UTC month). |
items[].slipId | string | yes | Slip ID. All of a player's bets in one round form one slip. Recalculations and voids keep the same slipId. |
items[].rev | integer | yes | Revision. The highest rev of a slipId is final.Range: 1–… |
items[].status | string | yes | settled first settlement; recalculated recalculated after a result correction; void voided (stakes refunded in full; for Niu Niu together with the hold).Values: settled, recalculated, void |
items[].username | string | yes | Username. |
items[].currency | string | yes | Currency. |
items[].tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
items[].game | string | yes | Game: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).Values: baccarat, dragontiger, holdem, niuniu |
items[].variant | string | yes | Variant: baccarat classic (5% commission on banker wins) or nocomm (no commission; banker winning with 6 pays half, with Super Six). For dragon tiger use the table's variants. Texas Hold'em: casino (player vs dealer, Casino Hold'em), thbp (player vs dealer, Texas Hold'em Bonus Poker) or nlhe (player vs player, no-limit). Niu Niu: standard. |
items[].roundId | string | yes | Round ID; for Texas Hold'em the hand ID. Format: ^[0-9A-Z]{26}$ |
items[].shoe | string | yes | Shoe number; an empty string for Texas Hold'em (no shoe). Niu Niu uses a fresh deck every round, so this is the session (a new one every 60 rounds by default). |
items[].round | integer | yes | Round number within the shoe; for Texas Hold'em the hand number at this table; for Niu Niu the round number within the session. |
items[].bets | BetLeg[] | yes | Stake and return per bet zone. |
items[].bets[].zone | string | yes | Bet zone. Baccarat: B banker, P player, T tie, BP banker pair, PP player pair, S6 Super Six (no-commission). Dragon tiger: D dragon, TG tiger, T tie, ST suited tie; big/small/odd/even (only on tables where you turn it on in Console Table settings): DB dragon big, DS dragon small, DO dragon odd, DE dragon even, TB tiger big, TS tiger small, TO tiger odd, TE tiger even. Texas Hold'em: player vs dealer Casino Hold'em ANTE ante, CALL call (2× the ante), AAB AA bonus; player vs dealer Texas Hold'em Bonus ANTE ante, FLOP flop bet (2× the ante), TURN turn bet (1× the ante), RIVER river bet (1× the ante), BONUS bonus bet; player vs player POT (everything put into the pot in the hand; return is the uncalled part given back). Niu Niu (each one bets that this player hand beats the banker): P1E player 1 equal, P1D player 1 double, P2E player 2 equal, P2D player 2 double, P3E player 3 equal, P3D player 3 double.Values: B, P, T, BP, PP, S6, D, TG, ST, DB, DS, DO, DE, TB, TS, TO, TE, ANTE, CALL, AAB, FLOP, TURN, RIVER, BONUS, POT, P1E, P1D, P2E, P2D, P3E, P3D |
items[].bets[].amount | string | yes | Stake. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].bets[].return | string | yes | Amount returned (stake + net win; a push returns the stake; 0 when lost). For a Niu Niu double bet it also includes the returned hold. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].bets[].hold | string | no | Niu Niu double bets only (P1D, P2D, P3D): the extra amount held from the balance when the bet was placed (stake × 2 by default); the unused part is included in return.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].bets[].mult | integer | no | Niu Niu double bets only: the multiplier actually applied — the player hand's multiplier when the player wins, the banker hand's when the player loses (by default ×1 for No Bull to Bull 6, ×2 for Bull 7–9, ×3 for Niu Niu); 0 when refunded.Range: 0–10 |
items[].stake | string | yes | Total stake (for Niu Niu, without the hold). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].hold | string | no | Niu Niu only: the total hold on double bets (the sum of bets[].hold; 0 without double bets). A double bet can lose more than its stake (up to 3× by default), so this amount is held from the balance on top of the stake when the bet is placed, and the unused part is returned with the payout at settlement (included in payout).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].validStake | string | yes | Valid (effective) stake, with banker/player hedges and pushes removed by the rules. Niu Niu: the stake for equal bets and stake × the multiplier actually applied (bets[].mult) for double bets; refunded bets do not count.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].rolling | string | yes | Rolling (lost stakes; Super Six excluded). Niu Niu: the amount lost (a lost double bet loses stake × the banker hand's multiplier). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].payout | string | yes | Total payout (stake included); for Niu Niu it also includes the returned hold. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].winLoss | string | yes | Player win/loss = payout − stake (positive means the player won); for Niu Niu payout − stake − hold. Always reconcile with this field.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].delta | string | yes | What this revision changed on the player's balance: payout for the first settlement; the payout difference for a recalculation (may be negative); stake (plus the hold for Niu Niu) minus the earlier payout for a void.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].result | ResultCode | yes | |
items[].result.code | string | yes | Result code (one hexadecimal character, see "Tables and round results"); an empty string for a void round without a result. For Texas Hold'em it is this player's outcome of the hand: player vs dealer player_wins, dealer_wins, tie, dealer_not_qualified (Casino Hold'em only), fold; player vs player win, split, lose, fold; void when the hand was voided. For Niu Niu it is 5 characters [outcome][banker][player 1][player 2][player 3]: the first is a bit mask of the winning player hands (player 1 = 1, player 2 = 2, player 3 = 4, added up: 0–7), followed by each hand's rank (0–9, A Niu Niu, B Five Face Bull, C Bomb, D Five Small Bull, - unknown), for example 5893A. |
items[].result.cardInfo | string | yes | Card string (12 characters for baccarat, 4 for dragon tiger, see "Tables and round results"); an empty string when there is no result. For Texas Hold'em it is board|this player's two hole cards|the dealer's two cards (space-separated card codes; the dealer part only at player-vs-dealer tables), for example AS KD 7H 7C 2S|AH 7D|QS 3C. For Niu Niu it is first card|banker|player 1|player 2|player 3 (each hand's 5 cards in slot order 1–5, space-separated), for example 7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D. |
items[].result.hands | map<string, integer> | no | Niu Niu only: each hand's rank (B, P1, P2, P3 → 0–13), so you do not need to decode the result code. Absent on voided slips (status: void).keys: B, P1, P2, P3 |
items[].result.winners | map<string, string> | no | Niu Niu only: the outcome of each player hand against the banker (P1, P2, P3 → P player wins, B banker wins). Absent on voided slips (status: void).keys: P1, P2, P3 |
items[].rake | string | no | Texas Hold'em only: the rake taken from this player in the hand (player-vs-player tables; 0 at player-vs-dealer tables).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
items[].onsite | boolean | no | Texas Hold'em only: an on-site seat (a guest at the table-owner's studio, registered by the dealer on the tablet, outside the wallet; username is "現場 #seat"). |
items[].hand | object | no | Texas Hold'em only: a summary of the hand (the full hand history is in Console "Texas Hold'em records"). |
items[].hand.handId | string | yes | Hand ID (same as roundId). |
items[].hand.no | integer | yes | Hand number at this table (same as round). |
items[].hand.outcome | string | yes | This player's outcome (same as result.code). |
items[].hand.cards | string | yes | Board and the cards this player showed (same as result.cardInfo). |
items[].placedAt | string (date-time) | yes | UTC time, ISO-8601 with milliseconds. |
items[].settledAt | string (date-time) | yes | When this revision was settled (or recalculated, or voided). |
nextCursor | string | yes | Bet sync cursor (yyyymm.sequence). Treat it as opaque; store it and send it back unchanged.Format: ^\d{6}\.\d+$ |
hasMore | boolean | yes | true means there may be another page; read it right away. |
PlayerDaySummary
| Field | Type | Required | Description |
|---|---|---|---|
username | string | yes | Username. |
slips | integer | yes | Number of slips (voided ones included). |
stake | string | yes | Total stake (voided slips excluded). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
validStake | string | yes | A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").Format: ^-?\d{1,15}(\.\d{1,4})?$ |
rolling | string | yes | A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").Format: ^-?\d{1,15}(\.\d{1,4})?$ |
payout | string | yes | Total payout (stake included). Niu Niu slips count as stake + win/loss, without the returned hold (a slip's own payout includes the hold).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
winLoss | string | yes | A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").Format: ^-?\d{1,15}(\.\d{1,4})?$ |
rake | string | no | Total rake from Texas Hold'em player-vs-player tables (0 for other games).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
BetSummary
| Field | Type | Required | Description |
|---|---|---|---|
date | string | yes | A date YYYY-MM-DD.Format: ^\d{4}-\d{2}-\d{2}$ |
timezone | string | yes | Tenant time zone (IANA, for example Asia/Taipei). |
players | PlayerDaySummary[] | yes | |
players[].username | string | yes | Username. |
players[].slips | integer | yes | Number of slips (voided ones included). |
players[].stake | string | yes | Total stake (voided slips excluded). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
players[].validStake | string | yes | A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").Format: ^-?\d{1,15}(\.\d{1,4})?$ |
players[].rolling | string | yes | A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").Format: ^-?\d{1,15}(\.\d{1,4})?$ |
players[].payout | string | yes | Total payout (stake included). Niu Niu slips count as stake + win/loss, without the returned hold (a slip's own payout includes the hold).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
players[].winLoss | string | yes | A player amount as a decimal string with at most 4 decimals. Responses drop trailing zeros (for example "100", "0.95", "1000.5").Format: ^-?\d{1,15}(\.\d{1,4})?$ |
players[].rake | string | no | Total rake from Texas Hold'em player-vs-player tables (0 for other games).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
BaccaratResult
Baccarat result (the same shape as in the GFI data-source interface).
| Field | Type | Required | Description |
|---|---|---|---|
cards | map<string, string> | no | Cards by position P1 B1 P2 B2 P3 B3 (undealt cards omitted); cards look like AS, 10H, QD.keys: P1, B1, P2, B2, P3, B3 |
player | integer | yes | Range: 0–9 |
banker | integer | yes | Range: 0–9 |
winner | string | yes | Values: P, B, T |
playerPair | boolean | yes | |
bankerPair | boolean | yes | |
cardCount | integer | no | Range: 4–6 |
DragonTigerResult
Dragon tiger result (the same shape as in the GFI data-source interface).
| Field | Type | Required | Description |
|---|---|---|---|
cards | object | no | |
cards.D | string | yes | Format: ^(A|[2-9]|10|J|Q|K)[SHDC]$ |
cards.T | string | yes | Format: ^(A|[2-9]|10|J|Q|K)[SHDC]$ |
winner | string | yes | Values: D, T, TIE |
NiuniuResult
Niu Niu result (the same shape as in the GFI data-source interface). The authoritative outcome is the result code code, which the platform recomputes from the cards.
| Field | Type | Required | Description |
|---|---|---|---|
cards | map<string, string> | no | Cards by position — F first card, B-1 to B-5 banker, P1-1 to P1-5 player 1, P2-1 to P2-5 player 2, P3-1 to P3-5 player 3 (21 cards in a complete result); cards look like AS, 10H, QD.keys: F, B-1, B-2, B-3, B-4, B-5, P1-1, P1-2, P1-3, P1-4, P1-5, P2-1, P2-2, P2-3, P2-4, P2-5, P3-1, P3-2, P3-3, P3-4, P3-5 |
hands | map<string, integer> | no | Niu Niu hand rank per hand, keyed B banker and P1–P3 players 1–3: 0 No Bull, 1–9 Bull 1–9, 10 Niu Niu, 11 Five Face Bull, 12 Bomb, 13 Five Small Bull (11–13 only at tables with special hands turned on). An incomplete result only has the hands that are known.keys: B, P1, P2, P3 |
winners | map<string, string> | yes | Niu Niu outcome of each player hand against the banker: P the player wins, B the banker wins (there are no ties).keys: P1, P2, P3 |
Round
| Field | Type | Required | Description |
|---|---|---|---|
roundId | string | yes | Round ID (26-character upper-case ULID). Format: ^[0-9A-Z]{26}$ |
tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
shoe | string | yes | Shoe number; for Niu Niu the session. |
round | integer | yes | Round number within the shoe; for Niu Niu within the session. |
status | string | yes | settled; void; disputed (a correction or void arrived outside the guardrails after settlement, so the original result and amounts stand).Values: settled, void, disputed |
code | string | null | yes | Result code (one hexadecimal character for baccarat and dragon tiger; 5 characters for Niu Niu, for example 5893A). |
cardInfo | string | null | yes | Card string (for Niu Niu first card|banker|player 1|player 2|player 3). |
result | BaccaratResult | DragonTigerResult | NiuniuResult | null | yes | Structured result (baccarat, dragon tiger or Niu Niu); null when there is none. |
complete | boolean | null | yes | true when all cards are known; false when the data source only gave the outcome and points (for Niu Niu, each hand's outcome, possibly with its rank). |
rev | integer | yes | Result revision (1 for the first result, +1 per correction; a void also adds 1). |
openedAt | string (date-time) | null | yes | When betting opened. |
settledAt | string (date-time) | null | yes | When the round was first settled. |
Table
| Field | Type | Required | Description |
|---|---|---|---|
tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
game | string | yes | Game: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).Values: baccarat, dragontiger, holdem, niuniu |
variants | string[] | yes | Variants offered at this table. |
name | map<string, string> | yes | Table name per language, keyed by language code (CHT, CHS, ENG…). |
status | string | yes | open; maintenance (for example the data source is down).Values: open, maintenance |
betSeconds | integer | yes | Default betting time in seconds. |
enabled | boolean | yes | Whether you have enabled this table. |
provider | object | no | Only on tables another merchant shares with you (cross-merchant sharing): the provider. Your players use your bet limits and you settle with them as usual; the table counts towards your table count. |
provider.name | string | yes | Provider name. |
TableList
| Field | Type | Required | Description |
|---|---|---|---|
tables | Table[] | yes | |
tables[].tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
tables[].game | string | yes | Game: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).Values: baccarat, dragontiger, holdem, niuniu |
tables[].variants | string[] | yes | Variants offered at this table. |
tables[].name | map<string, string> | yes | Table name per language, keyed by language code (CHT, CHS, ENG…). |
tables[].status | string | yes | open; maintenance (for example the data source is down).Values: open, maintenance |
tables[].betSeconds | integer | yes | Default betting time in seconds. |
tables[].enabled | boolean | yes | Whether you have enabled this table. |
tables[].provider | object | no | Only on tables another merchant shares with you (cross-merchant sharing): the provider. Your players use your bet limits and you settle with them as usual; the table counts towards your table count. |
tables[].provider.name | string | yes | Provider name. |
TableToggleRequest
| Field | Type | Required | Description |
|---|---|---|---|
tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
TableToggleResult
| Field | Type | Required | Description |
|---|---|---|---|
tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
enabled | boolean | yes | Enabled after the call. |
used | integer | yes | Tables enabled now. |
quota | integer | null | yes | Table quota of your plan; null on the paid plan (no limit). |
Account
| Field | Type | Required | Description |
|---|---|---|---|
plan | string | yes | Plan: free (demo) or paid.Values: free, paid |
state | string | yes | Account state, see "Billing". Values: FREE, PAID, GRACE, DOWNGRADED, SUSPENDED, CLOSED |
balanceUsd | string | yes | Prepaid credit balance (can be negative). Format: ^-?\d{1,12}(\.\d{1,6})?$ |
tablesUsed | integer | yes | Tables enabled. |
tablesQuota | integer | null | yes | Table quota; null on the paid plan. |
streamGbMonth | string | yes | Streaming used this month (UTC), in GB with 3 decimals. |
avgDailyUsd7d | string | yes | Average daily cost over the last 7 days. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
daysLeft | integer | null | yes | Estimated days the credit will last at the current cost; null when there is no cost. |
graceUntil | string (date-time) | null | yes | End of the grace period (only in GRACE). |
UsageDay
| Field | Type | Required | Description |
|---|---|---|---|
day | string | yes | A date YYYY-MM-DD.Format: ^\d{4}-\d{2}-\d{2}$ |
tableDays | number | yes | Billable table-days that day. |
streamGb | string | yes | Streaming used (GB, 3 decimals). |
streamSource | string | yes | Where the streaming number comes from: cdn (CDN totals by tag), client (player reports) or estimate.Values: cdn, client, estimate |
tableFeeUsd | string | yes | Table fee. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
streamFeeUsd | string | yes | Streaming fee. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
UsageList
| Field | Type | Required | Description |
|---|---|---|---|
days | UsageDay[] | yes | |
days[].day | string | yes | A date YYYY-MM-DD.Format: ^\d{4}-\d{2}-\d{2}$ |
days[].tableDays | number | yes | Billable table-days that day. |
days[].streamGb | string | yes | Streaming used (GB, 3 decimals). |
days[].streamSource | string | yes | Where the streaming number comes from: cdn (CDN totals by tag), client (player reports) or estimate.Values: cdn, client, estimate |
days[].tableFeeUsd | string | yes | Table fee. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
days[].streamFeeUsd | string | yes | Streaming fee. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
Statement
| Field | Type | Required | Description |
|---|---|---|---|
period | string | yes | Period YYYY-MM.Format: ^\d{4}-\d{2}$ |
openingUsd | string | yes | Opening balance. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
chargesUsd | string | yes | Total charges (negative). Format: ^-?\d{1,12}(\.\d{1,6})?$ |
paymentsUsd | string | yes | Total payments and credits. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
closingUsd | string | yes | Closing balance. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
StatementList
| Field | Type | Required | Description |
|---|---|---|---|
statements | Statement[] | yes | |
statements[].period | string | yes | Period YYYY-MM.Format: ^\d{4}-\d{2}$ |
statements[].openingUsd | string | yes | Opening balance. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
statements[].chargesUsd | string | yes | Total charges (negative). Format: ^-?\d{1,12}(\.\d{1,6})?$ |
statements[].paymentsUsd | string | yes | Total payments and credits. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
statements[].closingUsd | string | yes | Closing balance. Format: ^-?\d{1,12}(\.\d{1,6})?$ |
WebhookEnvelope
The body shared by every webhook; data depends on the event.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | Delivery ID (same as X-Elite-Delivery); unchanged across automatic retries, new when the platform resends manually. |
event | string | yes | Event name. Values: bet.settled, round.corrected, round.voided, player.kicked, account.grace, account.downgraded, account.restored, account.topup, account.low_balance, test |
companyCode | string | yes | Company code of the tenant the event belongs to (…-SBX for a sandbox tenant). |
createdAt | string (date-time) | yes | When this delivery was built (updated on every retry). |
data | object | yes | Event content; see each event. |
WebhookRound
Round information in round events.
| Field | Type | Required | Description |
|---|---|---|---|
roundId | string | yes | Round ID (26-character upper-case ULID). Format: ^[0-9A-Z]{26}$ |
tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
shoe | string | null | yes | Shoe number (a string); for Niu Niu the session. |
round | integer | null | yes | Round number within the shoe; for Niu Niu within the session. |
rev | integer | yes | The result revision of this event; data.bets only holds slips of this revision.Range: 1–… |
resultCode | string | null | yes | Result code (one hexadecimal character for baccarat and dragon tiger; 5 characters for Niu Niu); null for a void round without a result. |
cardInfo | string | null | yes | Card string (for Niu Niu first card|banker|player 1|player 2|player 3); null for a void round without a result. |
settledAt | string (date-time) | null | yes | When the round was first settled (or voided). |
RoundEventData
data of bet.settled, round.corrected and round.voided.
| Field | Type | Required | Description |
|---|---|---|---|
round | WebhookRound | yes | Round information in round events. |
round.roundId | string | yes | Round ID (26-character upper-case ULID). Format: ^[0-9A-Z]{26}$ |
round.tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
round.shoe | string | null | yes | Shoe number (a string); for Niu Niu the session. |
round.round | integer | null | yes | Round number within the shoe; for Niu Niu within the session. |
round.rev | integer | yes | The result revision of this event; data.bets only holds slips of this revision.Range: 1–… |
round.resultCode | string | null | yes | Result code (one hexadecimal character for baccarat and dragon tiger; 5 characters for Niu Niu); null for a void round without a result. |
round.cardInfo | string | null | yes | Card string (for Niu Niu first card|banker|player 1|player 2|player 3); null for a void round without a result. |
round.settledAt | string (date-time) | null | yes | When the round was first settled (or voided). |
bets | BetRecord[] | yes | Your players' slips for this round and revision, exactly the same shape as GET /bets items. |
bets[].recSeq | integer | yes | Write sequence (increases within a UTC month). |
bets[].slipId | string | yes | Slip ID. All of a player's bets in one round form one slip. Recalculations and voids keep the same slipId. |
bets[].rev | integer | yes | Revision. The highest rev of a slipId is final.Range: 1–… |
bets[].status | string | yes | settled first settlement; recalculated recalculated after a result correction; void voided (stakes refunded in full; for Niu Niu together with the hold).Values: settled, recalculated, void |
bets[].username | string | yes | Username. |
bets[].currency | string | yes | Currency. |
bets[].tableId | string | yes | Table ID, for example S01 (see GET /tables).Length: 1–… |
bets[].game | string | yes | Game: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).Values: baccarat, dragontiger, holdem, niuniu |
bets[].variant | string | yes | Variant: baccarat classic (5% commission on banker wins) or nocomm (no commission; banker winning with 6 pays half, with Super Six). For dragon tiger use the table's variants. Texas Hold'em: casino (player vs dealer, Casino Hold'em), thbp (player vs dealer, Texas Hold'em Bonus Poker) or nlhe (player vs player, no-limit). Niu Niu: standard. |
bets[].roundId | string | yes | Round ID; for Texas Hold'em the hand ID. Format: ^[0-9A-Z]{26}$ |
bets[].shoe | string | yes | Shoe number; an empty string for Texas Hold'em (no shoe). Niu Niu uses a fresh deck every round, so this is the session (a new one every 60 rounds by default). |
bets[].round | integer | yes | Round number within the shoe; for Texas Hold'em the hand number at this table; for Niu Niu the round number within the session. |
bets[].bets | BetLeg[] | yes | Stake and return per bet zone. |
bets[].bets[].zone | string | yes | Bet zone. Baccarat: B banker, P player, T tie, BP banker pair, PP player pair, S6 Super Six (no-commission). Dragon tiger: D dragon, TG tiger, T tie, ST suited tie; big/small/odd/even (only on tables where you turn it on in Console Table settings): DB dragon big, DS dragon small, DO dragon odd, DE dragon even, TB tiger big, TS tiger small, TO tiger odd, TE tiger even. Texas Hold'em: player vs dealer Casino Hold'em ANTE ante, CALL call (2× the ante), AAB AA bonus; player vs dealer Texas Hold'em Bonus ANTE ante, FLOP flop bet (2× the ante), TURN turn bet (1× the ante), RIVER river bet (1× the ante), BONUS bonus bet; player vs player POT (everything put into the pot in the hand; return is the uncalled part given back). Niu Niu (each one bets that this player hand beats the banker): P1E player 1 equal, P1D player 1 double, P2E player 2 equal, P2D player 2 double, P3E player 3 equal, P3D player 3 double.Values: B, P, T, BP, PP, S6, D, TG, ST, DB, DS, DO, DE, TB, TS, TO, TE, ANTE, CALL, AAB, FLOP, TURN, RIVER, BONUS, POT, P1E, P1D, P2E, P2D, P3E, P3D |
bets[].bets[].amount | string | yes | Stake. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].bets[].return | string | yes | Amount returned (stake + net win; a push returns the stake; 0 when lost). For a Niu Niu double bet it also includes the returned hold. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].bets[].hold | string | no | Niu Niu double bets only (P1D, P2D, P3D): the extra amount held from the balance when the bet was placed (stake × 2 by default); the unused part is included in return.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].bets[].mult | integer | no | Niu Niu double bets only: the multiplier actually applied — the player hand's multiplier when the player wins, the banker hand's when the player loses (by default ×1 for No Bull to Bull 6, ×2 for Bull 7–9, ×3 for Niu Niu); 0 when refunded.Range: 0–10 |
bets[].stake | string | yes | Total stake (for Niu Niu, without the hold). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].hold | string | no | Niu Niu only: the total hold on double bets (the sum of bets[].hold; 0 without double bets). A double bet can lose more than its stake (up to 3× by default), so this amount is held from the balance on top of the stake when the bet is placed, and the unused part is returned with the payout at settlement (included in payout).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].validStake | string | yes | Valid (effective) stake, with banker/player hedges and pushes removed by the rules. Niu Niu: the stake for equal bets and stake × the multiplier actually applied (bets[].mult) for double bets; refunded bets do not count.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].rolling | string | yes | Rolling (lost stakes; Super Six excluded). Niu Niu: the amount lost (a lost double bet loses stake × the banker hand's multiplier). Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].payout | string | yes | Total payout (stake included); for Niu Niu it also includes the returned hold. Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].winLoss | string | yes | Player win/loss = payout − stake (positive means the player won); for Niu Niu payout − stake − hold. Always reconcile with this field.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].delta | string | yes | What this revision changed on the player's balance: payout for the first settlement; the payout difference for a recalculation (may be negative); stake (plus the hold for Niu Niu) minus the earlier payout for a void.Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].result | ResultCode | yes | |
bets[].result.code | string | yes | Result code (one hexadecimal character, see "Tables and round results"); an empty string for a void round without a result. For Texas Hold'em it is this player's outcome of the hand: player vs dealer player_wins, dealer_wins, tie, dealer_not_qualified (Casino Hold'em only), fold; player vs player win, split, lose, fold; void when the hand was voided. For Niu Niu it is 5 characters [outcome][banker][player 1][player 2][player 3]: the first is a bit mask of the winning player hands (player 1 = 1, player 2 = 2, player 3 = 4, added up: 0–7), followed by each hand's rank (0–9, A Niu Niu, B Five Face Bull, C Bomb, D Five Small Bull, - unknown), for example 5893A. |
bets[].result.cardInfo | string | yes | Card string (12 characters for baccarat, 4 for dragon tiger, see "Tables and round results"); an empty string when there is no result. For Texas Hold'em it is board|this player's two hole cards|the dealer's two cards (space-separated card codes; the dealer part only at player-vs-dealer tables), for example AS KD 7H 7C 2S|AH 7D|QS 3C. For Niu Niu it is first card|banker|player 1|player 2|player 3 (each hand's 5 cards in slot order 1–5, space-separated), for example 7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D. |
bets[].result.hands | map<string, integer> | no | Niu Niu only: each hand's rank (B, P1, P2, P3 → 0–13), so you do not need to decode the result code. Absent on voided slips (status: void).keys: B, P1, P2, P3 |
bets[].result.winners | map<string, string> | no | Niu Niu only: the outcome of each player hand against the banker (P1, P2, P3 → P player wins, B banker wins). Absent on voided slips (status: void).keys: P1, P2, P3 |
bets[].rake | string | no | Texas Hold'em only: the rake taken from this player in the hand (player-vs-player tables; 0 at player-vs-dealer tables).Format: ^-?\d{1,15}(\.\d{1,4})?$ |
bets[].onsite | boolean | no | Texas Hold'em only: an on-site seat (a guest at the table-owner's studio, registered by the dealer on the tablet, outside the wallet; username is "現場 #seat"). |
bets[].hand | object | no | Texas Hold'em only: a summary of the hand (the full hand history is in Console "Texas Hold'em records"). |
bets[].hand.handId | string | yes | Hand ID (same as roundId). |
bets[].hand.no | integer | yes | Hand number at this table (same as round). |
bets[].hand.outcome | string | yes | This player's outcome (same as result.code). |
bets[].hand.cards | string | yes | Board and the cards this player showed (same as result.cardInfo). |
bets[].placedAt | string (date-time) | yes | UTC time, ISO-8601 with milliseconds. |
bets[].settledAt | string (date-time) | yes | When this revision was settled (or recalculated, or voided). |
PlayerKickedData
data of player.kicked.
| Field | Type | Required | Description |
|---|---|---|---|
username | string | yes | Username. |
reason | string | yes | logged_out: POST /player/logout; locked: POST /player/update set locked.Values: logged_out, locked |
at | string (date-time) | yes | UTC time, ISO-8601 with milliseconds. |
UsdCents
Type: string
A USD amount rounded to cents, always 2 decimals (for example "496.83").
Format: ^-?\d+\.\d{2}$
AccountStateData
data of account.grace, account.downgraded and account.restored.
| Field | Type | Required | Description |
|---|---|---|---|
from | string | yes | Previous account state. Values: FREE, PAID, GRACE, DOWNGRADED, SUSPENDED, CLOSED |
to | string | yes | New account state. Values: PAID, GRACE, DOWNGRADED |
balanceUsd | string | yes | A USD amount rounded to cents, always 2 decimals (for example "496.83").Format: ^-?\d+\.\d{2}$ |
graceUntil | string (date-time) | null | yes | End of the grace period (when entering it). |
actor | string | yes | Who triggered it: system (automatic) or an operator. |
AccountTopupData
data of account.topup.
| Field | Type | Required | Description |
|---|---|---|---|
amountUsd | string | yes | A USD amount rounded to cents, always 2 decimals (for example "496.83").Format: ^-?\d+\.\d{2}$ |
balanceUsd | string | yes | A USD amount rounded to cents, always 2 decimals (for example "496.83").Format: ^-?\d+\.\d{2}$ |
ref | string | yes | Payment reference (for example the gateway transaction ID or the USDT transaction hash). |
AccountLowBalanceData
data of account.low_balance.
| Field | Type | Required | Description |
|---|---|---|---|
balanceUsd | string | yes | A USD amount rounded to cents, always 2 decimals (for example "496.83").Format: ^-?\d+\.\d{2}$ |
avgDailyUsd | string | yes | Average daily cost over the last 7 days. Format: ^-?\d+\.\d{2}$ |
daysLeft | integer | yes | Estimated days the credit will last at the current cost. |
TestEventData
data of test.
| Field | Type | Required | Description |
|---|---|---|---|
message | string | yes | Always: elite webhook test |