跳转到主要内容
除注册和登录外,每次调用都必须在 Authorization 请求头中携带 凭证:
也可使用 X-API-Key: <token> 作为替代请求头。

凭证类型

通过 POST /v1/auth/registerPOST /v1/auth/login 获取,有效期 24 小时。适用于用户需要登录的应用。除 access_token 外,您还会收到 一个刷新令牌(refresh token),无需再次输入密码即可续期会话 —— 见会话续期
企业账户可以拥有多个具有不同角色的成员 —— 见下文 企业成员
如果账户策略要求登录时进行 OTP 验证,响应会返回 otp_required: true 及一个 pending_token(而非会话):第二步在 POST /v1/auth/login/otp 使用通过 SMS/WhatsApp 收到的验证码完成。 完整流程见安全与双因素认证
您还可以提供使用 Google、Apple、Microsoft 或 Facebook 注册和登录 (免密码)—— 见社交登录

会话续期(刷新令牌)

access_token 有效期为 24 小时;refresh_tokenrt_…)可让您在 无需重新登录的情况下换取新的令牌对,有效期 30 天,每次使用自动 续期,自最初登录起最长 90 天。它是一次性的:每次兑换都会返回新的 refresh_token,旧的立即失效(轮换)。
前端必须了解的安全规则:
  • 严格轮换:兑换时,该设备之前的 access token 立即被吊销(每条链 只有一个存活的 access token)。请始终用响应中的令牌替换两个令牌。
  • 重复使用 = 被盗:如果已兑换过的刷新令牌再次被提交,该设备的整条 链(令牌和会话)将被吊销,并在 GET /v1/me/security/events 中记录 refresh_token_reuse 事件。用户必须重新登录。
  • 随会话失效:退出登录(DELETE /v1/me/sessions/{id})、 POST /v1/me/sessions/revoke-all 或修改/重置密码也会使关联的刷新 令牌失效。
  • 任何拒绝都返回 401 invalid_refresh_token —— 收到该错误时请引导用户 重新登录。
  • 请将刷新令牌保存在安全存储中(移动端使用 Keychain/Keystore;Web 端 建议内存 + 重新登录,或由您的后端使用 httpOnly Cookie)。pk_ API 密钥不使用刷新机制:它们永不过期。
在 access token 即将过期时(参考 expires_at),或在正常调用收到 401 时刷新。避免多处并行刷新:同一令牌的两次兑换同时到达时,一次 成功、另一次收到 401 且不受惩罚 —— 但兑换一个已被轮换的令牌会 吊销整条链。
链的绝对上限是自最初登录起 90 天:即使每天刷新,到达上限后刷新会返回 401,用户必须重新认证(密码、通行密钥或社交登录)。
不适用:pk_ API 密钥永不过期且没有会话。刷新仅用于人类用户的 JWT 会话。

访问级别

您的凭证(会话 JWT 或 API 密钥)操作的是您自己的账户:余额、 付款、收款、转账、加密资产、KYC/KYB 以及您自己的 webhook。如果某个 端点返回 403 account_required403 org_admin_required,说明该 操作属于其他凭证级别 —— 请联系 CBPay 团队。

您的账户资料

PATCH /v1/me 接受 display_nametax_idphonecountry (只需发送有变更的字段)。emailstatuskyc_status 不可 自行管理:由管理员处理。

企业成员

企业账户可以拥有多个各自登录、权限级别不同的用户:
在个人账户上调用 POST /v1/members 会返回 403 company_only

最佳实践

  • 将 API 密钥保存在密钥管理器中;切勿写入代码或暴露在浏览器中。
  • 每个环境/服务使用一个密钥(配上有意义的 label),以便在不中断 服务的情况下轮换。
1

零停机轮换

通过 POST /v1/api-keys 签发新密钥(使用新的 label)。
2

部署

更新您的服务以使用新密钥。
3

停用旧密钥

流量迁移完成后,请联系 CBPay 团队吊销旧密钥。
  • JWT 会话面向前端;自动化流程应始终使用 API 密钥。
最后修改于 2026年7月13日