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