Skip to content

3.1 注单查询 API

http
GET /api/v1/exchange/report/bets

多条件分页查询交易所订单及其关联的提交(trade)。数据来源为历史库,可能有数秒同步延迟,保留最近 6 个月数据。请求须带入 HMAC 验证 Header

TIP

本 API 限流 100 次 / 分钟(per api_key),超过返回 code:10060

请求参数(Query String)

TIP

时间区间二选一:order_start_time/end_time(下单时间)或 settlement_start_time/end_time(结算时间),至少提供一组,跨度不超过 90 天

字段必填类型说明
order_start_time / order_end_timeTRUEstring下单时间区间(start_time ≥,end_time ≤),RFC3339 UTC,例如 2026-05-19T00:00:00Z;若已提供结算时间区间则可省略
settlement_start_time / settlement_end_time条件*string结算时间区间(start_time ≥,end_time ≤),RFC3339 UTC;若已提供下单时间区间则可省略
langFALSEstringLANGUAGE_ZH_CN / LANGUAGE_EN(默认英文)
order_idFALSEstring挂单号
trade_idFALSEstring撮合单号,筛选包含此撮合单的挂单
idempotency_keyFALSEstring幂等键
player_external_id / player_nameFALSEstring玩家 ID / 名称
sport_id / tournament_id / event_id / market_id / outcome_idFALSEstring赛事 / 联赛筛选
sideFALSEstringEXCHANGE_SIDE_BACK / EXCHANGE_SIDE_LAY
statusFALSEstring订单状态(见枚举
settlement_statusFALSEstring结算状态筛选(见枚举
currencyFALSEstring筛选币种,须与该代理绑定币种一致;见支援币种列表
page / page_sizeTRUEinteger分页,page 从 1 起,默认 1;page_size 默认 10,最大 200,传入 ≤0 或 >200 自动回退为 10

响应 data

data 包含 items[](订单)及分页字段。金额字段:usd_ 前缀为美元,无前缀为玩家币种。

json
{
  "code": 0,
  "message": "success",
  "data": {
    "items": [
      {
        "order_id": "019e0000-0000-0000-0000-000000000000",
        "idempotency_key": "00000000-0000-0000-0000-000000000000",
        "player_id": "00000000-0000-0000-0000-000000000000",
        "player_external_id": "player1",
        "player_name": "player1_name",
        "agent_id": "00000000-0000-0000-0000-000000000001",
        "agent_name": "agent_demo",
        "sport_id": "sr:sport:1",
        "sport_name": "足球",
        "tournament_id": "sr:tournament:16",
        "tournament_name": "World Cup",
        "event_id": "sr:match:00000000",
        "event_name": "Team A vs Team B",
        "event_start_time": "2026-06-13T01:00:00Z",
        "market_id": "1",
        "market_name": "Match Winner",
        "outcome_id": "1",
        "outcome_name": "Team A",
        "home_competitor_id": "sr:competitor:0001",
        "home_competitor": "Team A",
        "away_competitor_id": "sr:competitor:0002",
        "away_competitor": "Team B",
        "home_score": "1",
        "away_score": "0",
        "period_home_score": "1",
        "period_away_score": "0",
        "match_status": "6",
        "event_status": "1",
        "source_odds": "1.9",
        "source_back_odds": "1.9",
        "source_lay_odds": "2.23",
        "source_active": true,
        "side": "EXCHANGE_SIDE_BACK",
        "odds": "1.91",
        "currency": "EUR",
        "mid_rate": "0.86",
        "stake": "85",
        "usd_stake": "98.83",
        "deducted_amount": "85",
        "usd_deducted_amount": "98.83",
        "usd_filled": "98.83",
        "usd_unmatched": "0",
        "status": "EXCHANGE_ORDER_STATUS_FILLED",
        "trades": [
          {
            "account_id": "00000000-0000-0000-0000-000000000000",
            "name": "player1_name",
            "event_id": "sr:match:00000000",
            "market_id": "1",
            "outcome_id": "1",
            "order_id": "019e0000-0000-0000-0000-000000000000",
            "trade_id": "00000000-0000-0000-0000-000000000070",
            "side": "back",
            "role": "taker",
            "odds": "1.91",
            "usd_stake": "98.83",
            "usd_matched_delta": "98.83",
            "matched_delta": "85",
            "currency": "EUR",
            "mid_rate": "0.86",
            "fx_base": "85",
            "fx_usd_base": "98.83",
            "settlement_status": "EXCHANGE_TRADE_SETTLEMENT_STATUS_SETTLED",
            "settlement_result": "EXCHANGE_TRADE_SETTLEMENT_RESULT_WIN",
            "usd_settlement_pnl": "89.94",
            "usd_net_pnl": "85.44",
            "usd_commission": "4.50",
            "settlement_pnl": "77.35",
            "net_pnl": "73.48",
            "commission": "3.87",
            "commission_rate": "0.05",
            "status": "accepted",
            "trade_time": "2026-06-12T04:01:59Z",
            "settled_time": "2026-06-13T04:33:09Z"
          }
        ],
        "total_pnl": "73.48",
        "order_time": "2026-06-12T04:01:59Z",
        "updated_at": "2026-06-13T04:33:09Z",
        "client_ip": "0.0.0.0",
        "device_type": "PC",
        "device_id": "00000000000000000000000000000000",
        "url": "https://backoffice.example.com/#/orders?order_id=019e0000-0000-0000-0000-000000000000&key=xxxx&exp=0000000000"
      }
    ],
    "total": 6,
    "page": 1,
    "page_size": 20,
    "total_pages": 1
  }
}

items[] 字段

字段类型说明
order_idstring挂单号,属唯一值
idempotency_keystring幂等键
player_idstring平台内部玩家 UUID
player_external_idstring玩家 ID(商户侧)
player_namestring玩家名称
agent_idstring平台内部代理 UUID
agent_namestring代理名称
sport_idstring运动 ID
sport_namestring运动名称
tournament_idstring联赛 ID
tournament_namestring联赛名称
event_idstring赛事 ID
event_namestring赛事名称
event_start_timestring赛事开始时间(RFC3339 UTC)
market_idstring市场 ID
market_namestring市场名称
outcome_idstring投注选项 ID
outcome_namestring投注选项名称
specifiersstring市场参数(如 hcp=1.25);无参数市场为空字符串
extended_specifiersstring延伸市场参数;variant 类型市场才有
home_competitor_id / away_competitor_idstring主 / 客队 ID
home_competitor / away_competitorstring主 / 客队名称
home_score / away_scorestring主 / 客队当前比分;进行中或已结束赛事才回传
period_home_score / period_away_scorestring当前节 / 半场比分;进行中或已结束赛事才回传
match_statusstring比赛状态码
event_statusstring赛事状态码(见枚举
source_oddsstring来源参考赔率(欧洲赔率)
source_back_oddsstring来源 Back 赔率(欧洲赔率)
source_lay_oddsstring来源 Lay 赔率(欧洲赔率)
source_activeboolean市场是否活跃
sidestring投注方向(EXCHANGE_SIDE_*)
oddsstring成交赔率(欧洲赔率,小数字符串)
currencystring玩家货币
mid_ratestring下单时汇率(1 USD = mid_rate 玩家货币)
stakestring下注金额(玩家货币)
usd_stakestring下注金额(USD)
deducted_amountstring实际扣款(玩家货币)
usd_deducted_amountstring实际扣款(USD)
usd_filledstring已撮合金额(USD)
usd_unmatchedstring未撮合金额(USD)
statusstring订单状态(见枚举
cancel_causestring取消原因;仅 status = CANCELLED / PARTIAL_CANCELLED 时回传
tradesarray该订单的提交列表;仅含已撮合记录,若无任何撮合则为空数组
total_pnlstring该订单最终净利(玩家货币,已扣佣金),见公式;结算完成前不回传
order_timestring下单时间(RFC3339 UTC)
updated_atstring最后更新时间(RFC3339 UTC)
client_ipstring下单时客户端 IP
device_typestring装置类型(如 PC)
device_idstring装置识别码
urlstring后台注单详情页链接

trades[] 字段

一张挂单可拆分为多笔撮合,每次成功撮合则产生一笔 trade。

字段类型说明
account_idstring玩家账户 UUID(同 player_id)
namestring玩家名称
event_idstring赛事 ID
market_idstring市场 ID
specifiersstring市场参数(variant 类型市场才有)
outcome_idstring投注选项 ID
order_idstring所属挂单号,属唯一值
trade_idstring撮合单号,属唯一值
sidestring方向 back / lay;决定盈亏正负号
rolestring角色 maker / taker;决定 commission_rate
oddsstring提交赔率(欧洲赔率)
usd_stakestring下注金额(USD)
usd_matched_deltastring本次撮合金额(USD)
matched_deltastring本次撮合金额(玩家货币)
currencystring玩家货币
mid_ratestring汇率(1 USD = mid_rate 玩家货币)
fx_basestring该订单最大曝险(玩家货币),与订单层级 deducted_amount 一致
fx_usd_basestring该订单最大曝险(USD),与 usd_deducted_amount 一致
settlement_statusstring结算状态(见枚举
settlement_resultstring结算结果(见枚举
usd_settlement_pnlstring结算盈亏(USD),见公式;结算前不回传
usd_net_pnlstring结算净利(USD,已扣佣金),见公式;结算前不回传
usd_commissionstring佣金(USD),见公式
settlement_pnlstring结算盈亏(玩家货币),见公式;结算前不回传
net_pnlstring结算净利(玩家货币,已扣佣金),见公式;结算前不回传
commissionstring佣金(玩家货币),见公式
commission_ratestring佣金率;taker = 0.05,maker = 0.03
void_reasonstring作废原因;仅 settlement_result = VOID 时回传
statusstring提交状态(accepted)
trade_timestring提交时间(RFC3339 UTC)
settled_timestring结算时间(RFC3339 UTC),结算前不回传

金额计算公式

TIP

所有玩家货币金额 = 对应 USD 金额 × mid_rate;USD 玩家 mid_rate = 1,数值相等。

结算盈亏 usd_settlement_pnl

情境公式
back 赢usd_matched_delta × (odds − 1)
back 输−usd_matched_delta
lay 赢 / 输与对手方 back 相反,= −back_pnl
push / 全废(void_factor = 1)0
半废(void_factor = 0.5)上述结果 ÷ 2
dead heat盈利方结果 × dead_heat_factor,输方不变

佣金 usd_commission

仅对盈利方收取:usd_settlement_pnl > 0 时 = usd_settlement_pnl × commission_rate,否则为 0。

净利 usd_net_pnl

usd_net_pnl = usd_settlement_pnlusd_commission

玩家货币换算

settlement_pnl = usd_settlement_pnl × mid_rate

commission = usd_commission × mid_rate

net_pnl = settlement_pnlcommission

订单总净利 total_pnl

total_pnl = Σ 该订单所有 matched 提交之 net_pnl(玩家货币)

枚举

订单状态 status(前缀 EXCHANGE_ORDER_STATUS_)

说明资金状态
PENDING已下单,等待引擎确认已扣款
OPEN引擎确认,挂单中,等待撮合已扣款
PARTIALLY_FILLED部分撮合已扣款
FILLED全部撮合已扣款
CANCELLED取消(无任何撮合)全额退款
PARTIAL_CANCELLED取消(已撮合部分保留,剩余退款)未交易部分退款
FAILED下单失败,引擎拒绝全额退款

结算状态 settlement_status(前缀 EXCHANGE_TRADE_SETTLEMENT_STATUS_)

说明
PENDING待结算
SETTLED已结算
VOIDED已作废

结算结果 settlement_result(前缀 EXCHANGE_TRADE_SETTLEMENT_RESULT_)

说明
UNSPECIFIED尚未结算
WIN全赢
HALF_WIN半赢
PUSH平局退款
HALF_LOSE半输
LOSE全输
VOID作废

赛事状态 event_status

英文标签说明
0not_started比赛已排期,尚未开始
1live比赛正在进行中
2suspended比赛被暂停
3ended比赛已结束
4closed比赛结果已确认

提交状态组合说明

status / settlement_status / settlement_result 三个字段组合的业务含义:

statussettlement_statussettlement_result业务含义
pendingPENDINGUNSPECIFIED撮合中
acceptedPENDINGUNSPECIFIED已撮合,等待赛事结算
acceptedSETTLEDWIN已结算,赢
acceptedSETTLEDHALF_WIN已结算,赢半(如让盘 0.25)
acceptedSETTLEDPUSH已结算,平局退款
acceptedSETTLEDHALF_LOSE已结算,输半
acceptedSETTLEDLOSE已结算,输
acceptedVOIDEDVOID注单作废退款
rejectedPENDINGUNSPECIFIED撮合失败退款

BFX EXCHANGE · BE THE GAME CHANGER