Skip to content

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 ​

FieldTypeRequiredDescription
usernamestringyesPlayer username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).
Format: ^[A-Za-z0-9_.@-]{1,32}$
nicknamestringnoDisplay name (optional). Only used when the player is created.
currencystringnoCurrency (optional), only used when the player is created. Defaults to your tenant currency.
Format: ^[A-Za-z]{3,5}$
langstringnoGame language (optional). Defaults to the first language set in your Console, or CHT.
Values: CHT, CHS, ENG, JPN, KOR, THAI, VIET, HIND, PHP
devicestringnomobile opens the mobile layout; any other value means the desktop layout pc.
Values: pc, mobile
Default: pc
tablestringnoGo straight into this table (optional); without it the player lands in the lobby. It must be a table you have enabled.
Length: 1–…
variantstringnoPreferred baccarat variant (optional, classic / nocomm). Currently stored only; the player still picks the variant at the table.
lobbyUrlstring (uri)noYour 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?://
limitProfileIdinteger | nullnoBet-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 ​

FieldTypeRequiredDescription
urlstring (uri)yesOne-time game URL (https://<host>/Launch?t=…), valid for 60 seconds and usable once.
expiresInintegeryesSeconds until the URL expires.
Always: 60

UsernameRequest ​

FieldTypeRequiredDescription
usernamestringyesPlayer username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).
Format: ^[A-Za-z0-9_.@-]{1,32}$

LogoutResult ​

FieldTypeRequiredDescription
kickedbooleanyesAlways true.

Player ​

FieldTypeRequiredDescription
usernamestringyesUsername (with the letter case used when it was created).
nicknamestring | nullyesDisplay name.
statusstringyesactive normal; locked cannot enter the game; no_bet can enter and watch but not bet.
Values: active, locked, no_bet
currencystringyesCurrency.
balancestringyesCurrent available balance.
Format: ^-?\d{1,15}(\.\d{1,4})?$
onlinebooleanyesWhether the player is in the game right now (lobby or a table).
createdAtstring (date-time)yesUTC time, ISO-8601 with milliseconds.
lastLoginAtstring (date-time) | nullyesWhen the player last entered the game.

PlayerUpdateRequest ​

FieldTypeRequiredDescription
usernamestringyesPlayer username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).
Format: ^[A-Za-z0-9_.@-]{1,32}$
statusstringnoactive normal; locked cannot enter the game; no_bet can enter and watch but not bet.
Values: active, locked, no_bet
nicknamestring | nullnoNew display name; null or an empty string clears it.
limitProfileIdinteger | nullnoBet-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–…
passwordstringnoPassword for the public login page (/Login), 6–64 characters.
Length: 6–64

TransferRequest ​

FieldTypeRequiredDescription
usernamestringyesPlayer username, 1–32 characters (letters, digits and _ . @ -). Case-insensitive (Alice and alice are the same player).
Format: ^[A-Za-z0-9_.@-]{1,32}$
txnIdstringyesYour 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}$
amountstringyesAn 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})?$
currencystringyesMust equal the player's currency.
Format: ^[A-Za-z]{3,5}$

TransferResult ​

FieldTypeRequiredDescription
txnIdstringyesThe txnId from the request.
statusstringyesAlways done (single step; there is no pending state).
balancestringyesBalance right after this transfer; a resent txnId returns the original value.
Format: ^-?\d{1,15}(\.\d{1,4})?$
duplicatebooleanyestrue means this txnId had already been processed: the balance was not changed again and this is the original result.

TransferRecord ​

FieldTypeRequiredDescription
txnIdstringyesTransfer ID.
usernamestringyesUsername.
dirstringyesin deposit, out withdrawal, adjust manual adjustment made in the Console.
Values: in, out, adjust
amountstringyesAmount (positive).
Format: ^-?\d{1,15}(\.\d{1,4})?$
statusstringyesAlways done.
balancestring | nullyesBalance right after this transfer.
atstring (date-time)yesUTC time, ISO-8601 with milliseconds.

Balance ​

FieldTypeRequiredDescription
balancestringyesA 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})?$
currencystringyesCurrency.

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 ​

FieldTypeRequiredDescription
zonestringyesBet 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
amountstringyesStake.
Format: ^-?\d{1,15}(\.\d{1,4})?$
returnstringyesAmount 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})?$
holdstringnoNiu 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})?$
multintegernoNiu 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 ​

FieldTypeRequiredDescription
codestringyesResult 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.
cardInfostringyesCard 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.
handsmap<string, integer>noNiu 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
winnersmap<string, string>noNiu 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 ​

FieldTypeRequiredDescription
recSeqintegeryesWrite sequence (increases within a UTC month).
slipIdstringyesSlip ID. All of a player's bets in one round form one slip. Recalculations and voids keep the same slipId.
revintegeryesRevision. The highest rev of a slipId is final.
Range: 1–…
statusstringyessettled 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
usernamestringyesUsername.
currencystringyesCurrency.
tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
gamestringyesGame: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).
Values: baccarat, dragontiger, holdem, niuniu
variantstringyesVariant: 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.
roundIdstringyesRound ID; for Texas Hold'em the hand ID.
Format: ^[0-9A-Z]{26}$
shoestringyesShoe 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).
roundintegeryesRound number within the shoe; for Texas Hold'em the hand number at this table; for Niu Niu the round number within the session.
betsBetLeg[]yesStake and return per bet zone.
bets[].zonestringyesBet 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[].amountstringyesStake.
Format: ^-?\d{1,15}(\.\d{1,4})?$
bets[].returnstringyesAmount 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[].holdstringnoNiu 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[].multintegernoNiu 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
stakestringyesTotal stake (for Niu Niu, without the hold).
Format: ^-?\d{1,15}(\.\d{1,4})?$
holdstringnoNiu 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})?$
validStakestringyesValid (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})?$
rollingstringyesRolling (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})?$
payoutstringyesTotal payout (stake included); for Niu Niu it also includes the returned hold.
Format: ^-?\d{1,15}(\.\d{1,4})?$
winLossstringyesPlayer 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})?$
deltastringyesWhat 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})?$
resultResultCodeyes
result.codestringyesResult 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.cardInfostringyesCard 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.handsmap<string, integer>noNiu 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.winnersmap<string, string>noNiu 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
rakestringnoTexas 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})?$
onsitebooleannoTexas 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").
handobjectnoTexas Hold'em only: a summary of the hand (the full hand history is in Console "Texas Hold'em records").
hand.handIdstringyesHand ID (same as roundId).
hand.nointegeryesHand number at this table (same as round).
hand.outcomestringyesThis player's outcome (same as result.code).
hand.cardsstringyesBoard and the cards this player showed (same as result.cardInfo).
placedAtstring (date-time)yesUTC time, ISO-8601 with milliseconds.
settledAtstring (date-time)yesWhen this revision was settled (or recalculated, or voided).

BetPage ​

FieldTypeRequiredDescription
itemsBetRecord[]yes
items[].recSeqintegeryesWrite sequence (increases within a UTC month).
items[].slipIdstringyesSlip ID. All of a player's bets in one round form one slip. Recalculations and voids keep the same slipId.
items[].revintegeryesRevision. The highest rev of a slipId is final.
Range: 1–…
items[].statusstringyessettled 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[].usernamestringyesUsername.
items[].currencystringyesCurrency.
items[].tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
items[].gamestringyesGame: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).
Values: baccarat, dragontiger, holdem, niuniu
items[].variantstringyesVariant: 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[].roundIdstringyesRound ID; for Texas Hold'em the hand ID.
Format: ^[0-9A-Z]{26}$
items[].shoestringyesShoe 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[].roundintegeryesRound number within the shoe; for Texas Hold'em the hand number at this table; for Niu Niu the round number within the session.
items[].betsBetLeg[]yesStake and return per bet zone.
items[].bets[].zonestringyesBet 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[].amountstringyesStake.
Format: ^-?\d{1,15}(\.\d{1,4})?$
items[].bets[].returnstringyesAmount 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[].holdstringnoNiu 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[].multintegernoNiu 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[].stakestringyesTotal stake (for Niu Niu, without the hold).
Format: ^-?\d{1,15}(\.\d{1,4})?$
items[].holdstringnoNiu 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[].validStakestringyesValid (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[].rollingstringyesRolling (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[].payoutstringyesTotal payout (stake included); for Niu Niu it also includes the returned hold.
Format: ^-?\d{1,15}(\.\d{1,4})?$
items[].winLossstringyesPlayer 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[].deltastringyesWhat 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[].resultResultCodeyes
items[].result.codestringyesResult 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.cardInfostringyesCard 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.handsmap<string, integer>noNiu 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.winnersmap<string, string>noNiu 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[].rakestringnoTexas 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[].onsitebooleannoTexas 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[].handobjectnoTexas Hold'em only: a summary of the hand (the full hand history is in Console "Texas Hold'em records").
items[].hand.handIdstringyesHand ID (same as roundId).
items[].hand.nointegeryesHand number at this table (same as round).
items[].hand.outcomestringyesThis player's outcome (same as result.code).
items[].hand.cardsstringyesBoard and the cards this player showed (same as result.cardInfo).
items[].placedAtstring (date-time)yesUTC time, ISO-8601 with milliseconds.
items[].settledAtstring (date-time)yesWhen this revision was settled (or recalculated, or voided).
nextCursorstringyesBet sync cursor (yyyymm.sequence). Treat it as opaque; store it and send it back unchanged.
Format: ^\d{6}\.\d+$
hasMorebooleanyestrue means there may be another page; read it right away.

PlayerDaySummary ​

FieldTypeRequiredDescription
usernamestringyesUsername.
slipsintegeryesNumber of slips (voided ones included).
stakestringyesTotal stake (voided slips excluded).
Format: ^-?\d{1,15}(\.\d{1,4})?$
validStakestringyesA 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})?$
rollingstringyesA 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})?$
payoutstringyesTotal 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})?$
winLossstringyesA 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})?$
rakestringnoTotal rake from Texas Hold'em player-vs-player tables (0 for other games).
Format: ^-?\d{1,15}(\.\d{1,4})?$

BetSummary ​

FieldTypeRequiredDescription
datestringyesA date YYYY-MM-DD.
Format: ^\d{4}-\d{2}-\d{2}$
timezonestringyesTenant time zone (IANA, for example Asia/Taipei).
playersPlayerDaySummary[]yes
players[].usernamestringyesUsername.
players[].slipsintegeryesNumber of slips (voided ones included).
players[].stakestringyesTotal stake (voided slips excluded).
Format: ^-?\d{1,15}(\.\d{1,4})?$
players[].validStakestringyesA 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[].rollingstringyesA 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[].payoutstringyesTotal 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[].winLossstringyesA 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[].rakestringnoTotal 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).

FieldTypeRequiredDescription
cardsmap<string, string>noCards by position P1 B1 P2 B2 P3 B3 (undealt cards omitted); cards look like AS, 10H, QD.
keys: P1, B1, P2, B2, P3, B3
playerintegeryesRange: 0–9
bankerintegeryesRange: 0–9
winnerstringyesValues: P, B, T
playerPairbooleanyes
bankerPairbooleanyes
cardCountintegernoRange: 4–6

DragonTigerResult ​

Dragon tiger result (the same shape as in the GFI data-source interface).

FieldTypeRequiredDescription
cardsobjectno
cards.DstringyesFormat: ^(A|[2-9]|10|J|Q|K)[SHDC]$
cards.TstringyesFormat: ^(A|[2-9]|10|J|Q|K)[SHDC]$
winnerstringyesValues: 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.

FieldTypeRequiredDescription
cardsmap<string, string>noCards 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
handsmap<string, integer>noNiu 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
winnersmap<string, string>yesNiu 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 ​

FieldTypeRequiredDescription
roundIdstringyesRound ID (26-character upper-case ULID).
Format: ^[0-9A-Z]{26}$
tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
shoestringyesShoe number; for Niu Niu the session.
roundintegeryesRound number within the shoe; for Niu Niu within the session.
statusstringyessettled; void; disputed (a correction or void arrived outside the guardrails after settlement, so the original result and amounts stand).
Values: settled, void, disputed
codestring | nullyesResult code (one hexadecimal character for baccarat and dragon tiger; 5 characters for Niu Niu, for example 5893A).
cardInfostring | nullyesCard string (for Niu Niu first card|banker|player 1|player 2|player 3).
resultBaccaratResult | DragonTigerResult | NiuniuResult | nullyesStructured result (baccarat, dragon tiger or Niu Niu); null when there is none.
completeboolean | nullyestrue 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).
revintegeryesResult revision (1 for the first result, +1 per correction; a void also adds 1).
openedAtstring (date-time) | nullyesWhen betting opened.
settledAtstring (date-time) | nullyesWhen the round was first settled.

Table ​

FieldTypeRequiredDescription
tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
gamestringyesGame: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).
Values: baccarat, dragontiger, holdem, niuniu
variantsstring[]yesVariants offered at this table.
namemap<string, string>yesTable name per language, keyed by language code (CHT, CHS, ENG…).
statusstringyesopen; maintenance (for example the data source is down).
Values: open, maintenance
betSecondsintegeryesDefault betting time in seconds.
enabledbooleanyesWhether you have enabled this table.
providerobjectnoOnly 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.namestringyesProvider name.

TableList ​

FieldTypeRequiredDescription
tablesTable[]yes
tables[].tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
tables[].gamestringyesGame: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).
Values: baccarat, dragontiger, holdem, niuniu
tables[].variantsstring[]yesVariants offered at this table.
tables[].namemap<string, string>yesTable name per language, keyed by language code (CHT, CHS, ENG…).
tables[].statusstringyesopen; maintenance (for example the data source is down).
Values: open, maintenance
tables[].betSecondsintegeryesDefault betting time in seconds.
tables[].enabledbooleanyesWhether you have enabled this table.
tables[].providerobjectnoOnly 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.namestringyesProvider name.

TableToggleRequest ​

FieldTypeRequiredDescription
tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…

TableToggleResult ​

FieldTypeRequiredDescription
tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
enabledbooleanyesEnabled after the call.
usedintegeryesTables enabled now.
quotainteger | nullyesTable quota of your plan; null on the paid plan (no limit).

Account ​

FieldTypeRequiredDescription
planstringyesPlan: free (demo) or paid.
Values: free, paid
statestringyesAccount state, see "Billing".
Values: FREE, PAID, GRACE, DOWNGRADED, SUSPENDED, CLOSED
balanceUsdstringyesPrepaid credit balance (can be negative).
Format: ^-?\d{1,12}(\.\d{1,6})?$
tablesUsedintegeryesTables enabled.
tablesQuotainteger | nullyesTable quota; null on the paid plan.
streamGbMonthstringyesStreaming used this month (UTC), in GB with 3 decimals.
avgDailyUsd7dstringyesAverage daily cost over the last 7 days.
Format: ^-?\d{1,12}(\.\d{1,6})?$
daysLeftinteger | nullyesEstimated days the credit will last at the current cost; null when there is no cost.
graceUntilstring (date-time) | nullyesEnd of the grace period (only in GRACE).

UsageDay ​

FieldTypeRequiredDescription
daystringyesA date YYYY-MM-DD.
Format: ^\d{4}-\d{2}-\d{2}$
tableDaysnumberyesBillable table-days that day.
streamGbstringyesStreaming used (GB, 3 decimals).
streamSourcestringyesWhere the streaming number comes from: cdn (CDN totals by tag), client (player reports) or estimate.
Values: cdn, client, estimate
tableFeeUsdstringyesTable fee.
Format: ^-?\d{1,12}(\.\d{1,6})?$
streamFeeUsdstringyesStreaming fee.
Format: ^-?\d{1,12}(\.\d{1,6})?$

UsageList ​

FieldTypeRequiredDescription
daysUsageDay[]yes
days[].daystringyesA date YYYY-MM-DD.
Format: ^\d{4}-\d{2}-\d{2}$
days[].tableDaysnumberyesBillable table-days that day.
days[].streamGbstringyesStreaming used (GB, 3 decimals).
days[].streamSourcestringyesWhere the streaming number comes from: cdn (CDN totals by tag), client (player reports) or estimate.
Values: cdn, client, estimate
days[].tableFeeUsdstringyesTable fee.
Format: ^-?\d{1,12}(\.\d{1,6})?$
days[].streamFeeUsdstringyesStreaming fee.
Format: ^-?\d{1,12}(\.\d{1,6})?$

Statement ​

FieldTypeRequiredDescription
periodstringyesPeriod YYYY-MM.
Format: ^\d{4}-\d{2}$
openingUsdstringyesOpening balance.
Format: ^-?\d{1,12}(\.\d{1,6})?$
chargesUsdstringyesTotal charges (negative).
Format: ^-?\d{1,12}(\.\d{1,6})?$
paymentsUsdstringyesTotal payments and credits.
Format: ^-?\d{1,12}(\.\d{1,6})?$
closingUsdstringyesClosing balance.
Format: ^-?\d{1,12}(\.\d{1,6})?$

StatementList ​

FieldTypeRequiredDescription
statementsStatement[]yes
statements[].periodstringyesPeriod YYYY-MM.
Format: ^\d{4}-\d{2}$
statements[].openingUsdstringyesOpening balance.
Format: ^-?\d{1,12}(\.\d{1,6})?$
statements[].chargesUsdstringyesTotal charges (negative).
Format: ^-?\d{1,12}(\.\d{1,6})?$
statements[].paymentsUsdstringyesTotal payments and credits.
Format: ^-?\d{1,12}(\.\d{1,6})?$
statements[].closingUsdstringyesClosing balance.
Format: ^-?\d{1,12}(\.\d{1,6})?$

WebhookEnvelope ​

The body shared by every webhook; data depends on the event.

FieldTypeRequiredDescription
idstringyesDelivery ID (same as X-Elite-Delivery); unchanged across automatic retries, new when the platform resends manually.
eventstringyesEvent name.
Values: bet.settled, round.corrected, round.voided, player.kicked, account.grace, account.downgraded, account.restored, account.topup, account.low_balance, test
companyCodestringyesCompany code of the tenant the event belongs to (…-SBX for a sandbox tenant).
createdAtstring (date-time)yesWhen this delivery was built (updated on every retry).
dataobjectyesEvent content; see each event.

WebhookRound ​

Round information in round events.

FieldTypeRequiredDescription
roundIdstringyesRound ID (26-character upper-case ULID).
Format: ^[0-9A-Z]{26}$
tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
shoestring | nullyesShoe number (a string); for Niu Niu the session.
roundinteger | nullyesRound number within the shoe; for Niu Niu within the session.
revintegeryesThe result revision of this event; data.bets only holds slips of this revision.
Range: 1–…
resultCodestring | nullyesResult code (one hexadecimal character for baccarat and dragon tiger; 5 characters for Niu Niu); null for a void round without a result.
cardInfostring | nullyesCard string (for Niu Niu first card|banker|player 1|player 2|player 3); null for a void round without a result.
settledAtstring (date-time) | nullyesWhen the round was first settled (or voided).

RoundEventData ​

data of bet.settled, round.corrected and round.voided.

FieldTypeRequiredDescription
roundWebhookRoundyesRound information in round events.
round.roundIdstringyesRound ID (26-character upper-case ULID).
Format: ^[0-9A-Z]{26}$
round.tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
round.shoestring | nullyesShoe number (a string); for Niu Niu the session.
round.roundinteger | nullyesRound number within the shoe; for Niu Niu within the session.
round.revintegeryesThe result revision of this event; data.bets only holds slips of this revision.
Range: 1–…
round.resultCodestring | nullyesResult code (one hexadecimal character for baccarat and dragon tiger; 5 characters for Niu Niu); null for a void round without a result.
round.cardInfostring | nullyesCard string (for Niu Niu first card|banker|player 1|player 2|player 3); null for a void round without a result.
round.settledAtstring (date-time) | nullyesWhen the round was first settled (or voided).
betsBetRecord[]yesYour players' slips for this round and revision, exactly the same shape as GET /bets items.
bets[].recSeqintegeryesWrite sequence (increases within a UTC month).
bets[].slipIdstringyesSlip ID. All of a player's bets in one round form one slip. Recalculations and voids keep the same slipId.
bets[].revintegeryesRevision. The highest rev of a slipId is final.
Range: 1–…
bets[].statusstringyessettled 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[].usernamestringyesUsername.
bets[].currencystringyesCurrency.
bets[].tableIdstringyesTable ID, for example S01 (see GET /tables).
Length: 1–…
bets[].gamestringyesGame: baccarat, dragontiger, holdem (Texas Hold'em) or niuniu (Niu Niu).
Values: baccarat, dragontiger, holdem, niuniu
bets[].variantstringyesVariant: 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[].roundIdstringyesRound ID; for Texas Hold'em the hand ID.
Format: ^[0-9A-Z]{26}$
bets[].shoestringyesShoe 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[].roundintegeryesRound number within the shoe; for Texas Hold'em the hand number at this table; for Niu Niu the round number within the session.
bets[].betsBetLeg[]yesStake and return per bet zone.
bets[].bets[].zonestringyesBet 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[].amountstringyesStake.
Format: ^-?\d{1,15}(\.\d{1,4})?$
bets[].bets[].returnstringyesAmount 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[].holdstringnoNiu 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[].multintegernoNiu 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[].stakestringyesTotal stake (for Niu Niu, without the hold).
Format: ^-?\d{1,15}(\.\d{1,4})?$
bets[].holdstringnoNiu 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[].validStakestringyesValid (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[].rollingstringyesRolling (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[].payoutstringyesTotal payout (stake included); for Niu Niu it also includes the returned hold.
Format: ^-?\d{1,15}(\.\d{1,4})?$
bets[].winLossstringyesPlayer 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[].deltastringyesWhat 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[].resultResultCodeyes
bets[].result.codestringyesResult 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.cardInfostringyesCard 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.handsmap<string, integer>noNiu 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.winnersmap<string, string>noNiu 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[].rakestringnoTexas 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[].onsitebooleannoTexas 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[].handobjectnoTexas Hold'em only: a summary of the hand (the full hand history is in Console "Texas Hold'em records").
bets[].hand.handIdstringyesHand ID (same as roundId).
bets[].hand.nointegeryesHand number at this table (same as round).
bets[].hand.outcomestringyesThis player's outcome (same as result.code).
bets[].hand.cardsstringyesBoard and the cards this player showed (same as result.cardInfo).
bets[].placedAtstring (date-time)yesUTC time, ISO-8601 with milliseconds.
bets[].settledAtstring (date-time)yesWhen this revision was settled (or recalculated, or voided).

PlayerKickedData ​

data of player.kicked.

FieldTypeRequiredDescription
usernamestringyesUsername.
reasonstringyeslogged_out: POST /player/logout; locked: POST /player/update set locked.
Values: logged_out, locked
atstring (date-time)yesUTC 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.

FieldTypeRequiredDescription
fromstringyesPrevious account state.
Values: FREE, PAID, GRACE, DOWNGRADED, SUSPENDED, CLOSED
tostringyesNew account state.
Values: PAID, GRACE, DOWNGRADED
balanceUsdstringyesA USD amount rounded to cents, always 2 decimals (for example "496.83").
Format: ^-?\d+\.\d{2}$
graceUntilstring (date-time) | nullyesEnd of the grace period (when entering it).
actorstringyesWho triggered it: system (automatic) or an operator.

AccountTopupData ​

data of account.topup.

FieldTypeRequiredDescription
amountUsdstringyesA USD amount rounded to cents, always 2 decimals (for example "496.83").
Format: ^-?\d+\.\d{2}$
balanceUsdstringyesA USD amount rounded to cents, always 2 decimals (for example "496.83").
Format: ^-?\d+\.\d{2}$
refstringyesPayment reference (for example the gateway transaction ID or the USDT transaction hash).

AccountLowBalanceData ​

data of account.low_balance.

FieldTypeRequiredDescription
balanceUsdstringyesA USD amount rounded to cents, always 2 decimals (for example "496.83").
Format: ^-?\d+\.\d{2}$
avgDailyUsdstringyesAverage daily cost over the last 7 days.
Format: ^-?\d+\.\d{2}$
daysLeftintegeryesEstimated days the credit will last at the current cost.

TestEventData ​

data of test.

FieldTypeRequiredDescription
messagestringyesAlways: elite webhook test

elite Tenant Integration API v1