Skip to content

注單 ​

以游標增量同步已結算注單,以及每日彙總。

相關指南:閱讀這部分的串接指南

TIP

範例使用〈認證與簽章〉的範例金鑰與時間戳計算簽章,可直接用〈簽章除錯器〉驗算。

注單增量同步 ​

GET /api/tenant/v1/bets

依寫入順序讀取已結算的注單。每一頁回傳 nextCursor,下一次呼叫原樣帶回即可從上次的位置繼續;請把游標持久化。

  • 第一次(沒有 cursor)從當月(UTC)第一筆開始,或從 from 指定的時間開始。
  • 有 cursor 時忽略 from。
  • 重算與作廢以同一個 slipId、較大的 rev 出現為新的一筆紀錄;請以 (slipId, rev) 當唯一鍵,同一 slipId 以最大的 rev 為準。
  • hasMore 為 true 時立即再讀下一頁(游標還沒追到目前的 UTC 月份時也是 true);為 false 表示已追上,稍後(例如 5–30 秒)再以 nextCursor 輪詢。
  • 重算與作廢的紀錄依發生的時間寫入,一定出現在你的游標之後,不會漏掉。
  • recSeq 只在同一個 UTC 月份內遞增,跨月重新起算。
  • 牛牛(game: niuniu)的注單多 hold(翻倍的預扣合計),payout 含退回的預扣:輸贏請一律用 winLoss(=payout − stake − hold),不要用 payout − stake 推算。

參數

參數位置型別必填說明
cursorquerystring否上一頁回應的 nextCursor(格式 yyyymm.序號)。
格式:^\d{6}\.\d+$
limitqueryinteger否每頁筆數,1–1000,預設 500。
範圍:1–1000
預設:500
fromquerystring (date-time)否沒有 cursor 時的起點,ISO-8601 時間(例如 2026-09-24T00:00:00Z),以分鐘為單位對齊。

請求範例

http
GET /api/tenant/v1/bets?cursor=202609.1024 HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: ex51afea5ebcbe22ae488641
X-Signature: e15e5d07dfda0394186395fb7417746c787626d2928ff370d99bea2883c2e46d

回應的 data

欄位型別說明
itemsBetRecord[]
items[].recSeqinteger寫入序號(同一個 UTC 月份內遞增)。
items[].slipIdstring注單 ID:一位玩家在一局的所有下注為一張注單。重算與作廢沿用同一個 slipId。
items[].revinteger版次。同一 slipId 以最大的 rev 為準。
範圍:1–…
items[].statusstringsettled 首次結算;recalculated 結果修正後重算;void 作廢(全額退回本金;牛牛連同預扣)。
可能的值:settled、recalculated、void
items[].usernamestring玩家帳號。
items[].currencystring幣別。
items[].tableIdstring桌號,例如 S01(見 GET /tables)。
長度:1–…
items[].gamestring遊戲:baccarat 百家樂、dragontiger 龍虎、holdem 德州撲克、niuniu 牛牛。
可能的值:baccarat、dragontiger、holdem、niuniu
items[].variantstring玩法:百家樂 classic(傳統,莊贏抽 5%)、nocomm(免佣,莊 6 點贏賠一半、有超級六);龍虎的玩法以桌檯的 variants 為準;德州撲克 casino(玩家對荷官,Casino Hold'em)、thbp(玩家對荷官,Texas Hold'em Bonus Poker)、nlhe(玩家對玩家,無限注);牛牛 standard。
items[].roundIdstring局 ID;德州撲克為這一手的 ID(handId)。
格式:^[0-9A-Z]{26}$
items[].shoestring靴號;德州撲克沒有靴,為空字串;牛牛每局一副新牌,這裡是場次(預設每 60 局換一場)。
items[].roundinteger本靴第幾局;德州撲克為這張桌的第幾手;牛牛為本場次第幾局。
items[].betsBetLeg[]各投注區的本金與退回。
items[].bets[].zonestring投注區。百家樂:B 莊、P 閒、T 和、BP 莊對、PP 閒對、S6 超級六(免佣)。龍虎:D 龍、TG 虎、T 和、ST 同花和;大小單雙(您在 Console 桌檯設定開啟的桌才有):DB 龍大、DS 龍小、DO 龍單、DE 龍雙、TB 虎大、TS 虎小、TO 虎單、TE 虎雙。德州撲克:玩家對荷官 Casino Hold'em ANTE 底注、CALL 跟注(2 倍底注)、AAB AA 邊注;玩家對荷官 Texas Hold'em Bonus ANTE 底注、FLOP 翻牌注(2 倍底注)、TURN 轉牌注(1 倍底注)、RIVER 河牌注(1 倍底注)、BONUS 紅利注;玩家對玩家 POT(這手投入底池的合計,return 為沒被跟注退回的部分)。牛牛(都是押那一家閒贏莊):P1E 閒一平倍、P1D 閒一翻倍、P2E 閒二平倍、P2D 閒二翻倍、P3E 閒三平倍、P3D 閒三翻倍。
可能的值: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[].amountstring本金。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].bets[].returnstring退回金額(本金+淨贏;和局退回本金;輸為 0)。牛牛翻倍格另含退回的預扣。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].bets[].holdstring只有牛牛翻倍格(P1D、P2D、P3D):這一格下注時另外預扣的金額(預設為本金 × 2),沒用到的部分已含在 return。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].bets[].multinteger只有牛牛翻倍格:實際套用的倍數。閒贏為閒家牌型的倍數、閒輸為莊家牌型的倍數(預設 無牛~牛6 ×1、牛7~牛9 ×2、牛牛 ×3);退款為 0。
範圍:0–10
items[].stakestring本金合計(牛牛不含預扣)。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].holdstring只有牛牛:翻倍的預扣合計(各翻倍格的 bets[].hold 相加;沒有押翻倍時為 0)。翻倍可能輸超過本金(預設最多本金的 3 倍),所以下注時除了本金,另外從餘額預扣這筆金額,結算時把沒用到的部分連同派彩一起退回(含在 payout)。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].validStakestring有效投注(莊閒對押、和局等依規則扣除)。牛牛:平倍為本金、翻倍為本金 × 實際倍數(bets[].mult),退款的格子不算。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].rollingstring洗碼量(輸掉的注,超級六不計)。牛牛為輸掉的金額(翻倍輸的是本金 × 莊家牌型的倍數)。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].payoutstring派彩合計(含本金);牛牛另含退回的預扣。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].winLossstring玩家輸贏 = payout − stake(正數玩家贏);牛牛為 payout − stake − hold。對帳請一律用這個欄位。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].deltastring這一版對玩家餘額的入帳差額:首次結算為 payout;重算為新舊派彩差(可為負);作廢為本金(牛牛再加預扣)減去先前的派彩。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].resultResultCode
items[].result.codestring結果碼(一個十六進位字元,格式見〈桌檯與局結果〉);作廢且沒有結果時為空字串。德州撲克為這位玩家這手的結果:玩家對荷官 player_wins、dealer_wins、tie、dealer_not_qualified(只有 Casino Hold'em)、fold;玩家對玩家 win、split、lose、fold;作廢 void。牛牛為 5 個字元 [勝負][莊][閒一][閒二][閒三]:第一個字元是閒家贏的位元(閒一 1、閒二 2、閒三 4 相加,0–7),之後是各家的牌型(0–9、A 牛牛、B 五花牛、C 炸彈、D 五小牛、- 不知道),例如 5893A。
items[].result.cardInfostring牌面字串(百家樂 12 字元、龍虎 4 字元,格式見〈桌檯與局結果〉);沒有結果時為空字串。德州撲克為 公牌|這位玩家的兩張底牌|荷官的兩張(空白分隔的牌面代碼,荷官只有玩家對荷官桌才有),例如 AS KD 7H 7C 2S|AH 7D|QS 3C。牛牛為 頭牌|莊|閒一|閒二|閒三(每家 5 張依 1–5 的順序,空白分隔),例如 7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D。
items[].result.hands對應表<string, integer>只有牛牛:各家的牌型代碼(B、P1、P2、P3 → 0–13),不必自己解結果碼。作廢(status: void)的注單沒有這個欄位。
鍵:B、P1、P2、P3
items[].result.winners對應表<string, string>只有牛牛:每一家閒對莊的輸贏(P1、P2、P3 → P 閒贏、B 莊贏)。作廢(status: void)的注單沒有這個欄位。
鍵:P1、P2、P3
items[].rakestring只有德州撲克:這手歸這位玩家的抽水(玩家對玩家桌;玩家對荷官桌為 0)。
格式:^-?\d{1,15}(\.\d{1,4})?$
items[].onsiteboolean只有德州撲克:現場座位(開桌商戶的現場客人,荷官在平板登記、不走錢包;username 為「現場
items[].handobject只有德州撲克:這一手的結果摘要(完整手牌紀錄在 Console「德州撲克紀錄」)。
items[].hand.handIdstring這一手的 ID(同 roundId)。
items[].hand.nointeger這張桌的第幾手(同 round)。
items[].hand.outcomestring這位玩家的結果(同 result.code)。
items[].hand.cardsstring公牌與這位玩家亮出的牌(同 result.cardInfo)。
items[].placedAtstring (date-time)UTC 時間,ISO-8601 含毫秒。
items[].settledAtstring (date-time)這一版的結算(或重算、作廢)時間。
nextCursorstring注單同步游標(yyyymm.序號)。請視為不透明字串,原樣保存與帶回。
格式:^\d{6}\.\d+$
hasMorebooleantrue 表示可能還有下一頁,請立即再讀。

回應範例

json
{
  "ok": true,
  "data": {
    "items": [
      {
        "recSeq": 1024,
        "slipId": "01K5Y0B8Z6R2M4N7P9Q3S5T8VW.7H3KQ2XA",
        "rev": 1,
        "status": "settled",
        "username": "alice",
        "currency": "TWD",
        "tableId": "S01",
        "game": "baccarat",
        "variant": "nocomm",
        "roundId": "01K5Y0B8Z6R2M4N7P9Q3S5T8VW",
        "shoe": "260924-03",
        "round": 12,
        "bets": [
          {
            "zone": "B",
            "amount": "10000",
            "return": "15000"
          },
          {
            "zone": "S6",
            "amount": "1000",
            "return": "13000"
          }
        ],
        "stake": "11000",
        "validStake": "6000",
        "rolling": "0",
        "payout": "28000",
        "winLoss": "17000",
        "delta": "28000",
        "result": {
          "code": "1",
          "cardInfo": "122334424000"
        },
        "placedAt": "2026-09-24T03:00:41.120Z",
        "settledAt": "2026-09-24T03:01:20.480Z"
      }
    ],
    "nextCursor": "202609.1024",
    "hasMore": false
  }
}

德州撲克(玩家對荷官、玩家對玩家)

json
{
  "ok": true,
  "data": {
    "items": [
      {
        "recSeq": 2048,
        "slipId": "01K62H3P9R8Q7M6N5B4V3C2X1Z.9K2LM4QP",
        "rev": 1,
        "status": "settled",
        "username": "alice",
        "currency": "TWD",
        "tableId": "H01",
        "game": "holdem",
        "variant": "casino",
        "roundId": "01K62H3P9R8Q7M6N5B4V3C2X1Z",
        "shoe": "",
        "round": 318,
        "bets": [
          {
            "zone": "ANTE",
            "amount": "100",
            "return": "200"
          },
          {
            "zone": "CALL",
            "amount": "200",
            "return": "400"
          },
          {
            "zone": "AAB",
            "amount": "50",
            "return": "0"
          }
        ],
        "stake": "350",
        "validStake": "350",
        "rolling": "350",
        "payout": "600",
        "winLoss": "250",
        "delta": "600",
        "result": {
          "code": "player_wins",
          "cardInfo": "AS KD 7H 7C 2S|AH 7D|QS 3C"
        },
        "rake": "0",
        "onsite": false,
        "hand": {
          "handId": "01K62H3P9R8Q7M6N5B4V3C2X1Z",
          "no": 318,
          "outcome": "player_wins",
          "cards": "AS KD 7H 7C 2S|AH 7D|QS 3C"
        },
        "placedAt": "2026-09-27T08:12:03.410Z",
        "settledAt": "2026-09-27T08:13:10.020Z"
      },
      {
        "recSeq": 2049,
        "slipId": "01K62H9A1B2C3D4E5F6G7H8J9K.3Q7XK2PL",
        "rev": 1,
        "status": "settled",
        "username": "bob",
        "currency": "TWD",
        "tableId": "H02",
        "game": "holdem",
        "variant": "nlhe",
        "roundId": "01K62H9A1B2C3D4E5F6G7H8J9K",
        "shoe": "",
        "round": 77,
        "bets": [
          {
            "zone": "POT",
            "amount": "400",
            "return": "0"
          }
        ],
        "stake": "400",
        "validStake": "400",
        "rolling": "400",
        "payout": "740",
        "winLoss": "340",
        "delta": "740",
        "result": {
          "code": "win",
          "cardInfo": "QS QH 5D 9C 2H|QD JC"
        },
        "rake": "40",
        "onsite": false,
        "hand": {
          "handId": "01K62H9A1B2C3D4E5F6G7H8J9K",
          "no": 77,
          "outcome": "win",
          "cards": "QS QH 5D 9C 2H|QD JC"
        },
        "placedAt": "2026-09-27T08:20:41.000Z",
        "settledAt": "2026-09-27T08:22:05.300Z"
      }
    ],
    "nextCursor": "202609.2049",
    "hasMore": false
  }
}

牛牛(平倍、翻倍與預扣)

json
{
  "ok": true,
  "data": {
    "items": [
      {
        "recSeq": 3072,
        "slipId": "01K65N7Q2W4E6R8T0Y1V3J5K7P.7H3KQ2XA",
        "rev": 1,
        "status": "settled",
        "username": "alice",
        "currency": "TWD",
        "tableId": "N01",
        "game": "niuniu",
        "variant": "standard",
        "roundId": "01K65N7Q2W4E6R8T0Y1V3J5K7P",
        "shoe": "260928-01",
        "round": 7,
        "bets": [
          {
            "zone": "P1E",
            "amount": "1000",
            "return": "1950"
          },
          {
            "zone": "P2D",
            "amount": "500",
            "return": "500",
            "hold": "1000",
            "mult": 2
          },
          {
            "zone": "P3E",
            "amount": "500",
            "return": "975"
          },
          {
            "zone": "P3D",
            "amount": "1000",
            "return": "5850",
            "hold": "2000",
            "mult": 3
          }
        ],
        "stake": "3000",
        "hold": "3000",
        "validStake": "5500",
        "rolling": "1000",
        "payout": "9275",
        "winLoss": "3275",
        "delta": "9275",
        "result": {
          "code": "5893A",
          "cardInfo": "7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D",
          "hands": {
            "B": 8,
            "P1": 9,
            "P2": 3,
            "P3": 10
          },
          "winners": {
            "P1": "P",
            "P2": "B",
            "P3": "P"
          }
        },
        "placedAt": "2026-09-28T06:30:12.300Z",
        "settledAt": "2026-09-28T06:30:51.640Z"
      }
    ],
    "nextCursor": "202609.3072",
    "hasMore": false
  }
}

錯誤碼

錯誤碼HTTP意義
INVALID_CURSOR400cursor 格式錯誤。
INVALID_PARAMETER400缺少必要欄位,或欄位格式、值不正確;message 會指出是哪個欄位。

所有端點另外都可能回傳共通錯誤(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。

每日每玩家彙總 ​

GET /api/tenant/v1/bets/summary

指定日期(依你的租戶時區)每位玩家的注單彙總,只計每張注單的最新版本,作廢注單的本金不計入 stake。適合做每日對帳。

  • 最多回傳 1,000 位玩家(依輸贏排序)。
  • 德州撲克的現場座位(注單 onsite: true)不是你的會員,不列入彙總;要看現場座位請查注單。
  • 牛牛的注單在彙總的 payout 以「本金+輸贏」計入,不含退回的預扣(與其他遊戲的算法一致);注單本身的 payout 則含退回的預扣。

參數

參數位置型別必填說明
datequerystring是日期 YYYY-MM-DD(租戶時區),必須是存在的日期。
格式:^\d{4}-\d{2}-\d{2}$

請求範例

http
GET /api/tenant/v1/bets/summary?date=2026-09-24 HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: exff72e1c4c7919a1f829231
X-Signature: 319627c263a261afc9c99a4ba68b1d781ffe994bc6cc6b7770c1705598f05acf

回應的 data

欄位型別說明
datestring日期 YYYY-MM-DD。
格式:^\d{4}-\d{2}-\d{2}$
timezonestring租戶時區(IANA,例如 Asia/Taipei)。
playersPlayerDaySummary[]
players[].usernamestring玩家帳號。
players[].slipsinteger注單數(含作廢)。
players[].stakestring本金合計(不含作廢)。
格式:^-?\d{1,15}(\.\d{1,4})?$
players[].validStakestring玩家金額,十進位字串,最多 4 位小數;回應會去掉小數尾端的 0(例如 "100"、"0.95"、"1000.5")。
格式:^-?\d{1,15}(\.\d{1,4})?$
players[].rollingstring玩家金額,十進位字串,最多 4 位小數;回應會去掉小數尾端的 0(例如 "100"、"0.95"、"1000.5")。
格式:^-?\d{1,15}(\.\d{1,4})?$
players[].payoutstring派彩合計(含本金)。牛牛的注單以「本金+輸贏」計入,不含退回的預扣(注單本身的 payout 含預扣)。
格式:^-?\d{1,15}(\.\d{1,4})?$
players[].winLossstring玩家金額,十進位字串,最多 4 位小數;回應會去掉小數尾端的 0(例如 "100"、"0.95"、"1000.5")。
格式:^-?\d{1,15}(\.\d{1,4})?$
players[].rakestring德州撲克玩家對玩家桌的抽水合計(其他遊戲為 0)。
格式:^-?\d{1,15}(\.\d{1,4})?$

回應範例

json
{
  "ok": true,
  "data": {
    "date": "2026-09-24",
    "timezone": "Asia/Taipei",
    "players": [
      {
        "username": "alice",
        "slips": 42,
        "stake": "52000",
        "validStake": "31500",
        "rolling": "18000",
        "payout": "55200",
        "winLoss": "3200",
        "rake": "0"
      }
    ]
  }
}

錯誤碼

錯誤碼HTTP意義
INVALID_PARAMETER400缺少必要欄位,或欄位格式、值不正確;message 會指出是哪個欄位。

所有端點另外都可能回傳共通錯誤(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。

elite 租戶整合 API v1