桌檯與局
桌檯清單、以 API 啟用或停用桌檯(受方案配額限制),以及查詢單局結果。
相關指南:閱讀這部分的串接指南
TIP
範例使用〈認證與簽章〉的範例金鑰與時間戳計算簽章,可直接用〈簽章除錯器〉驗算。
查詢局結果
GET /api/tenant/v1/rounds/{roundId}
已結算(或作廢、爭議)的一局:結果碼、牌面、點數與修正版次。尚未結算的局回 ROUND_NOT_FOUND。
roundId是 26 個字元的大寫 ULID(注單的roundId);格式不符時回NOT_FOUND(找不到端點)。
參數
| 參數 | 位置 | 型別 | 必填 | 說明 |
|---|---|---|---|---|
roundId | path | string | 是 | 局 ID(26 字元大寫 ULID)。 格式: ^[0-9A-Z]{26}$ |
請求範例
GET /api/tenant/v1/rounds/01K5Y0B8Z6R2M4N7P9Q3S5T8VW HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: ex0f611c801aa08d65821fe5
X-Signature: b2e8e4652361cb5569e2db5ce643a7a7f9068baa376bfe7fd41166795049d633回應的 data
| 欄位 | 型別 | 說明 |
|---|---|---|
roundId | string | 局 ID(26 字元大寫 ULID)。 格式: ^[0-9A-Z]{26}$ |
tableId | string | 桌號,例如 S01(見 GET /tables)。長度:1–… |
shoe | string | 靴號;牛牛為場次。 |
round | integer | 本靴第幾局;牛牛為本場次第幾局。 |
status | string | settled 已結算;void 作廢;disputed 爭議局(結算後收到超出護欄的修正或作廢,維持原結果、不動金額)。可能的值: settled、void、disputed |
code | string | null | 結果碼(百家樂、龍虎為一個十六進位字元;牛牛為 5 個字元,例如 5893A)。 |
cardInfo | string | null | 牌面字串(牛牛為 頭牌|莊|閒一|閒二|閒三)。 |
result | BaccaratResult | DragonTigerResult | NiuniuResult | null | 結構化結果(百家樂、龍虎或牛牛);沒有結果時為 null。 |
complete | boolean | null | true 表示有完整牌面;false 表示資料源只提供了輸贏與點數(牛牛為各家輸贏,可能附牌型)。 |
rev | integer | 結果版次(第一次結果為 1,每次修正 +1;作廢也會 +1)。 |
openedAt | string (date-time) | null | 開放下注時間。 |
settledAt | string (date-time) | null | 首次結算時間。 |
回應範例
百家樂:莊 6 點勝
{
"ok": true,
"data": {
"roundId": "01K5Y0B8Z6R2M4N7P9Q3S5T8VW",
"tableId": "S01",
"shoe": "260924-03",
"round": 12,
"status": "settled",
"code": "1",
"cardInfo": "122334424000",
"result": {
"cards": {
"P1": "2C",
"B1": "4H",
"P2": "3D",
"B2": "2S",
"P3": "10S"
},
"player": 5,
"banker": 6,
"winner": "B",
"playerPair": false,
"bankerPair": false
},
"complete": true,
"rev": 1,
"openedAt": "2026-09-24T03:00:30.012Z",
"settledAt": "2026-09-24T03:01:20.480Z"
}
}牛牛:莊牛8,閒一、閒三贏
{
"ok": true,
"data": {
"roundId": "01K65N7Q2W4E6R8T0Y1V3J5K7P",
"tableId": "N01",
"shoe": "260928-01",
"round": 7,
"status": "settled",
"code": "5893A",
"cardInfo": "7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D",
"result": {
"cards": {
"F": "7H",
"B-1": "KS",
"B-2": "QD",
"B-3": "10C",
"B-4": "3S",
"B-5": "5H",
"P1-1": "4C",
"P1-2": "6D",
"P1-3": "JS",
"P1-4": "9C",
"P1-5": "KH",
"P2-1": "2D",
"P2-2": "8S",
"P2-3": "QC",
"P2-4": "AH",
"P2-5": "2C",
"P3-1": "7D",
"P3-2": "3H",
"P3-3": "KD",
"P3-4": "5C",
"P3-5": "5D"
},
"hands": {
"B": 8,
"P1": 9,
"P2": 3,
"P3": 10
},
"winners": {
"P1": "P",
"P2": "B",
"P3": "P"
}
},
"complete": true,
"rev": 1,
"openedAt": "2026-09-28T06:30:05.010Z",
"settledAt": "2026-09-28T06:30:51.640Z"
}
}錯誤碼
| 錯誤碼 | HTTP | 意義 |
|---|---|---|
ROUND_NOT_FOUND | 404 | 這一局不存在,或尚未結算。 |
NOT_FOUND | 404 | unknown endpoint:方法與路徑不存在(例如用 GET 呼叫 POST 端點,或局 ID 不是 26 字元大寫 ULID)。table not found:啟用或停用的桌號不存在。 |
所有端點另外都可能回傳共通錯誤(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。
桌檯清單
GET /api/tenant/v1/tables
你可以選的桌檯:平台桌、你自己建的桌,以及其他商戶提供給你的桌(有 provider;平台開放跨商戶提供、提供者核准並把你列為對象時才會出現),以及你是否已啟用(enabled)。玩家只看得到你已啟用的桌。
請求範例
GET /api/tenant/v1/tables HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: exfe6fa2bddbdf8319ac6b88
X-Signature: 8f3157bbe143fb81ed69dd409de7b32bdb5a3cc30b42f18b58e1c880a39b09a3回應的 data
| 欄位 | 型別 | 說明 |
|---|---|---|
tables | Table[] | |
tables[].tableId | string | 桌號,例如 S01(見 GET /tables)。長度:1–… |
tables[].game | string | 遊戲:baccarat 百家樂、dragontiger 龍虎、holdem 德州撲克、niuniu 牛牛。可能的值: baccarat、dragontiger、holdem、niuniu |
tables[].variants | string[] | 這張桌提供的玩法。 |
tables[].name | 對應表<string, string> | 各語系的桌名,鍵為語系代碼(CHT、CHS、ENG…)。 |
tables[].status | string | open 開放;maintenance 維護中(資料源中斷等)。可能的值: open、maintenance |
tables[].betSeconds | integer | 預設下注秒數。 |
tables[].enabled | boolean | 你是否已啟用這張桌。 |
tables[].provider | object | 只有其他商戶提供給你的桌(跨商戶提供)才有:提供者。玩家用你的限紅、錢照舊由你結算,使用這張桌也算進你的桌數。 |
tables[].provider.name | string | 提供者名稱。 |
回應範例
{
"ok": true,
"data": {
"tables": [
{
"tableId": "S01",
"game": "baccarat",
"variants": [
"classic",
"nocomm"
],
"name": {
"CHT": "模擬百家樂 1",
"CHS": "模拟百家乐 1",
"ENG": "Sim Baccarat 1"
},
"status": "open",
"betSeconds": 20,
"enabled": true
},
{
"tableId": "S03",
"game": "dragontiger",
"variants": [
"classic"
],
"name": {
"CHT": "模擬龍虎",
"CHS": "模拟龙虎",
"ENG": "Sim Dragon Tiger"
},
"status": "open",
"betSeconds": 20,
"enabled": false
},
{
"tableId": "N01",
"game": "niuniu",
"variants": [
"standard"
],
"name": {
"CHT": "模擬牛牛 N01",
"CHS": "模拟牛牛 N01",
"ENG": "Sim Niu Niu N01"
},
"status": "open",
"betSeconds": 15,
"enabled": true
},
{
"tableId": "STUDIO-B1",
"game": "baccarat",
"variants": [
"classic",
"nocomm"
],
"name": {
"CHT": "旗艦攝影棚 B1",
"ENG": "Studio B1"
},
"status": "open",
"betSeconds": 20,
"enabled": true,
"provider": {
"name": "旗艦娛樂"
}
}
]
}
}錯誤碼
沒有端點專屬的錯誤碼。
所有端點另外都可能回傳共通錯誤(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。
啟用桌檯
POST /api/tenant/v1/tables/enable
讓玩家看得到並可以進入這張桌,規則與 Console「桌檯選擇」相同。
- 免費方案最多啟用配額內的桌數(預設 2),超過回
QUOTA_EXCEEDED。 - 付費方案沒有配額,啟用當天起開始計費(每桌每月 100 USD,依日按比例從預付額度扣)。
- 帳戶停權時回
ACCOUNT_LOCKED。已啟用的桌再次啟用不會出錯。
請求本文(application/json)
| 欄位 | 型別 | 必填 | 說明 |
|---|---|---|---|
tableId | string | 是 | 桌號,例如 S01(見 GET /tables)。長度:1–… |
請求範例
POST /api/tenant/v1/tables/enable HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: exe402a4d70d5b26f9ff7ecb
X-Signature: 4fe5abf3732be5a21a02bc5e38589ee2fec4761489dfcefd4080cc5985be9d6d
Content-Type: application/json
{"tableId":"S01"}回應的 data
| 欄位 | 型別 | 說明 |
|---|---|---|
tableId | string | 桌號,例如 S01(見 GET /tables)。長度:1–… |
enabled | boolean | 操作後是否啟用。 |
used | integer | 目前已啟用的桌數。 |
quota | integer | null | 方案可啟用的桌數;付費方案為 null(不限)。 |
回應範例
{
"ok": true,
"data": {
"tableId": "S01",
"enabled": true,
"used": 2,
"quota": 2
}
}錯誤碼
| 錯誤碼 | HTTP | 意義 |
|---|---|---|
INVALID_PARAMETER | 400 | 缺少必要欄位,或欄位格式、值不正確;message 會指出是哪個欄位。 |
NOT_FOUND | 404 | unknown endpoint:方法與路徑不存在(例如用 GET 呼叫 POST 端點,或局 ID 不是 26 字元大寫 ULID)。table not found:啟用或停用的桌號不存在。 |
QUOTA_EXCEEDED | 409 | 已啟用的桌數達到免費方案配額(預設 2 桌)。 |
ACCOUNT_LOCKED | 409 | 帳戶已停權或關閉,不能啟用桌檯。 |
所有端點另外都可能回傳共通錯誤(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。
停用桌檯
POST /api/tenant/v1/tables/disable
玩家立即看不到、也進不去這張桌;付費方案從次日起不再計這張桌的桌費(停用當天仍計一天)。
請求本文(application/json)
| 欄位 | 型別 | 必填 | 說明 |
|---|---|---|---|
tableId | string | 是 | 桌號,例如 S01(見 GET /tables)。長度:1–… |
請求範例
POST /api/tenant/v1/tables/disable HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: ex6856b510b474ee6e5809b2
X-Signature: 4cf44c20f65e287a06f5d8a0a73a4e4144fef2ff5358c344a9cd921899043ffc
Content-Type: application/json
{"tableId":"S01"}回應的 data
| 欄位 | 型別 | 說明 |
|---|---|---|
tableId | string | 桌號,例如 S01(見 GET /tables)。長度:1–… |
enabled | boolean | 操作後是否啟用。 |
used | integer | 目前已啟用的桌數。 |
quota | integer | null | 方案可啟用的桌數;付費方案為 null(不限)。 |
回應範例
{
"ok": true,
"data": {
"tableId": "S01",
"enabled": false,
"used": 1,
"quota": 2
}
}錯誤碼
| 錯誤碼 | HTTP | 意義 |
|---|---|---|
INVALID_PARAMETER | 400 | 缺少必要欄位,或欄位格式、值不正確;message 會指出是哪個欄位。 |
NOT_FOUND | 404 | unknown endpoint:方法與路徑不存在(例如用 GET 呼叫 POST 端點,或局 ID 不是 26 字元大寫 ULID)。table not found:啟用或停用的桌號不存在。 |
所有端點另外都可能回傳共通錯誤(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。