跳转到主要内容

错误响应格式

所有API错误返回JSON正文:
{
  "detail": {"message": "Invalid API key", "code": "UNAUTHORIZED"}
}
验证错误包含字段级详情:
{
  "detail": [
    {
      "loc": ["body", "orders", 0, "orderStake"],
      "msg": "Input should be greater than 0",
      "type": "greater_than"
    }
  ]
}

HTTP 状态码

状态码描述
200成功
201资源已创建
204资源已删除(无内容)
400错误请求 — 参数无效
401未授权 — 缺少或无效的API密钥
403禁止 — API密钥已停用/过期,或资源属于其他客户
404未找到 — 资源不存在
409冲突 — requestUuid 重复,已在处理中
422验证错误 — 请求体验证失败
429速率限制 — 超出每分钟请求数
500内部服务器错误
503服务不可用 — 数据库或依赖服务不可用

订单拒绝原因

通过 POST /place-orders 下单时,未通过业务验证的订单会在 declinedOrders 数组中返回(不作为HTTP错误)。每个被拒绝的订单包含 declineReason
拒绝原因描述
投注额超限orderStake 高于可用博彩公司限额
投注额低于最低要求orderStake 低于博彩公司或账户的最低限额
赔率无效orderPrice 不可用或市场已暂停
无活跃账户此市场无可用的活跃博彩公司账户
货币转换失败无法在订单货币和博彩公司货币之间转换
博彩公司不可用指定的博彩公司没有此赛事/结果的赔率
requestUuid重复requestUuid 已在处理中(5分钟去重窗口)
被拒订单响应示例:
{
  "status": "declined",
  "acceptedOrders": [],
  "declinedOrders": [
    {
      "requestUuid": "fb5f2dd9-c855-4ba9-8ef9-4c2278ca2f1d",
      "fixtureId": "id1000000861624412",
      "outcomeId": 161,
      "declineReason": "Order stake 15000.00 USD exceeds available limit 5000.00 USD"
    }
  ]
}

常见错误

身份验证 (401)

缺少或无效的API密钥。
# 缺少头 → 401 {"detail": {"message": "Missing X-API-Key header", "code": "UNAUTHORIZED"}}
curl https://v2.55-tech.com/accounts

# 无效密钥 → 401 {"detail": {"message": "Invalid API key", "code": "UNAUTHORIZED"}}
curl -H "X-API-Key: wrong-key" https://v2.55-tech.com/accounts

禁止访问 (403)

两种情况下返回:
  • API密钥已停用或过期 — 密钥存在但已禁用或超过有效期
  • 客户不匹配 — 尝试访问属于其他客户的资源
{"detail": {"message": "API key is inactive", "code": "FORBIDDEN"}}
{"detail": {"message": "API key has expired", "code": "FORBIDDEN"}}
{"detail": {"message": "Access denied to this order", "code": "FORBIDDEN"}}

重复请求 (409)

requestUuid 在过去5分钟内已使用。
{"detail": "Duplicate request - requestUuid already in-flight"}

验证错误 (422)

请求体包含无效数据。检查 loc 字段以找到问题路径:
{
  "detail": [
    {
      "loc": ["body", "orders", 0, "fixtureId"],
      "msg": "Field required",
      "type": "missing"
    }
  ]
}

速率限制 (429)

超出您API密钥的每分钟请求数。默认限制:60/分钟。
{"detail": "Rate limit exceeded"}
实施指数退避:重试前等待1秒、2秒、4秒等。

可靠性模式

ABP 实施了多种可靠性机制,可能影响您的集成:

熔断器

每博彩公司熔断器防止级联故障。如果某个博彩公司出现问题,针对该博彩公司的订单可能被拒绝,直到熔断器恢复。 连续失败后打开,自动测试恢复,博彩公司成功响应后恢复正常运行。

紧急模式

在罕见情况下,系统可能在维护或上游问题期间临时暂停订单处理。emergency WebSocket频道广播状态变更。

订单过期

订单默认 expiresAt 为创建后5秒。如果在此窗口内未下注,订单状态变为 EXPIRED。可设置自定义 expiresAt 用于更长时效的订单。