菜单

API 文档

BenPay DEX API 允许您通过程序化方式与我们的平台进行交互,实现自动化交易和资产管理。本指南旨在为您提供使用 API 所需的基础知识和接口说明。
对于寻求更深入技术细节、完整代码示例和高级指南的专业开发者,我们建议您直接访问我们的 开发者中心
 

快速入门

 
  1. 创建 API 密钥

在“API管理”页面创建密钥时,您需要配置以下信息:
  • API 名称: 为您的密钥设置一个易于识别的名称。
  • API 权限: 根据您的需求勾选相应权限。为安全起见,我们建议您仅授予必要的权限。权限默认为“读取”。
  • API 有效期: 选择一个合适的有效期。
  • IP 地址绑定: 为了最大限度地保障您的资产安全,强烈建议您绑定 IP 地址。您可以填写最多10个 IP 地址,并用英文逗号隔开。
⚠️ 重要提示:请立即备份您的私有密钥!
私有密钥 (Secret Key) 仅在创建时显示一次,平台不会以任何形式再次存储或展示它。请务必将其保存在安全可靠的地方。如果遗忘或泄露,您需要删除该 API 密钥并重新创建一个。
 
  1. 理解 API 权限

在创建 API 密钥时,您可以分配四种不同的权限:
  • 读取: 允许查询个人订单、余额、资产流水等私有信息。
  • 现货交易: 允许创建和取消现货订单。
  • 永续合约交易: 允许创建和取消合约订单,调整仓位设置等。
  • 资金划转: 允许在您的钱包账户、现货账户和合约账户之间进行资金划转。
 
  1. API 调用示例

您可以通过调用一个无需密钥的公开接口来测试 API 的连通性,例如获取服务器时间戳:
curl -X GET 'https://dex-api.benpay.com/v1/market/timestamp'
 
调用成功将返回服务器的毫秒级时间戳,证明您已成功连接到 BenPay DEX API 服务。
{ 
"success": true,
 "data": 1754024820000 
}
 
 

 

API 认证机制

 
为了保障您账户的安全,所有访问私有数据(如个人账户信息、交易操作等)的 API 请求都必须经过签名认证。
Base URL: https://dex-api.benpay.com
 
认证流程概览
您需要将特定的请求信息与您的 私有密钥 (Secret Key) 结合,使用 HMAC SHA256 算法生成一个唯一的签名。然后,将此签名以及您的 访问密钥 (API Key) 等信息放入请求头 (Headers) 中发送给服务器。服务器会以同样的方式生成签名并进行比对,若一致则验证通过。
 
所有需要认证的私有接口,都必须在 HTTP 请求头 (Headers) 中包含以下信息:
Header 描述 示例值
API-KEY 您的访问密钥 (Access Key)。 AAAAACcVAAABnztMqrATYmlG5XNpNnyY
API-TIMESTAMP 当前的 UTC 时间戳(毫秒)。 1751876801442
API-SIGNATURE-METHOD 签名算法,固定为 HmacSHA256。 HmacSHA256
API-SIGNATURE-VERSION 签名版本,固定为 1。 1
API-Signature 根据规则生成的动态请求签名。 aea0677b6b...
想了解完整的签名步骤和代码实现?
请访问我们的 开发者中心-签名机制,获取详细的说明和代码示例。
 

API 权限与接口分类

 

接口的认证类型

  • 公开接口 (无需签名): 所有路径以 /v1/market/ 开头的接口均为公开行情接口。任何人都可以直接调用它们来获取市场数据,无需 API 密钥和请求签名
  • 🔐 私有接口 (需要签名): 所有涉及用户个人信息、资产、交易和划转的接口均为私有接口。调用这些接口必须使用您的 API 密钥进行签名认证
 

权限与接口功能映射关系

您在“API管理”界面创建密钥时选择的权限,决定了您可以访问哪些私有接口。
您在UI界面选择的权限 对应的私有接口功能分类 (在开发者中心) 核心用途
读取 (Read) 用户接口 (GET)、现货接口 (GET)、合约接口 (GET)、出入金接口 (GET)、资金划转接口 (GET) 查询个人账户信息、订单状态、资产余额、历史记录等。
现货交易 (Spot Trading) 现货接口 (POST) 创建和取消现货订单。
永续合约交易 合约接口 (POST) 创建/取消合约订单,调整仓位和保证金等。
资金划转 资金划转接口 (POST)、出入金接口 (POST) 在不同账户间转移资金,以及执行提现操作。
 

接口分类详解

以下是各功能分类下的接口列表。如需查看完整的请求/响应参数,请访问 开发者中心 或对应的 Swagger 文档

行情接口 (公开,无需签名)

 
  • GET /v1/market/trades: 获取所有资产及交易对信息。
  • GET /v1/market/timestamp: 获取服务器时间戳。
  • GET /v1/market/ticks/{symbol}: 获取交易对最新成交数据。
  • GET /v1/market/prices: 获取所有币种的市场价格(24小时)。
  • GET /v1/market/orderBook/{symbol}: 获取指定交易对的深度订单薄。
  • GET /v1/market/indexes: 获取所有指数的最新价格。
  • GET /v1/market/indexes/{name}: 获取单个指数的历史价格。
  • GET /v1/market/indexes/indexValue: 获取单个指数的值。
  • GET /v1/market/indexPrices: 获取永续合约的最新指数价格。
  • GET /v1/market/errorCodes: 获取所有错误码。
  • GET /v1/market/bars/{symbol}/{type}: 获取指定交易对的 K 线数据。
  • GET /v1/market/positions: 获取当前所有用户未平仓头寸的总额。
 

用户接口 (私有,需签名)

 
  • GET /v1/users/me: (需读取权限) 获取您当前的登录信息。
 

现货接口 (私有,需签名)

 
  • GET /v1/spots/orders/{orderId}: (需读取权限) 根据 ID 查询订单详情。
  • GET /v1/spots/orders/{orderId}/matches: (需读取权限) 根据 ID 查询订单的成交详情。
  • GET /v1/spots/orders/open: (需读取权限) 查询您当前所有未成交的现货订单。
  • GET /v1/spots/orders/open/{orderId}: (需读取权限) 根据 ID 查询活动订单。
  • GET /v1/spots/orders/closed: (需读取权限) 按月查询历史现货订单。
  • GET /v1/spots/match/clearings: (需读取权限) 分页查询用户订单的清算记录。
  • GET /v1/spots/fee/rate: (需读取权限) 查询现货交易手续费率。
  • GET /v1/spots/balances: (需读取权限) 查询您的现货账户余额。
  • POST /v1/spots/orders: (需现货交易权限) 创建一笔新的现货订单。
  • POST /v1/spots/orders/{idOrSymbol}/cancel: (需现货交易权限) 取消指定的现货订单。
 

合约接口 (私有,需签名)

 
  • GET /v1/contracts/positions: (需读取权限) 查询您所有的合约仓位。
  • GET /v1/contracts/positions/{symbol}: (需读取权限) 根据 Symbol 查询单个仓位。
  • GET /v1/contracts/orders/{orderId}: (需读取权限) 根据订单 ID 查询订单。
  • GET /v1/contracts/orders/{orderId}/matches: (需读取权限) 查询订单成交记录。
  • GET /v1/contracts/orders/open: (需读取权限) 查询您当前所有未成交的合约订单。
  • GET /v1/contracts/orders/open/{orderId}: (需读取权限) 根据 ID 查询活动订单。
  • GET /v1/contracts/orders/closed: (需读取权限) 查询历史合约订单。
  • GET /v1/contracts/match/clearings: (需读取权限) 分页查询用户订单的清算记录。
  • GET /v1/contracts/fund/flows: (需读取权限) 分页查询用户资金流水记录。
  • GET /v1/contracts/fee/rate: (需读取权限) 查询期货交易手续费率。
  • GET /v1/contracts/clearings/positions: (需读取权限) 查询仓位清算历史记录。
  • GET /v1/contracts/balances: (需读取权限) 查询您的合约账户余额。
  • POST /v1/contracts/orders: (需永续合约交易权限) 创建一笔新的合约订单。
  • POST /v1/contracts/orders/{idOrSymbol}/cancel: (需永续合约交易权限) 取消指定的合约订单。
  • POST /v1/contracts/orders/cancel: (需永续合约交易权限) 取消全部合约订单。
  • POST /v1/contracts/positions/{symbol}/settings: (需永续合约交易权限) 设定仓位模式与杠杆。
  • POST /v1/contracts/positions/{symbol}/margin: (需永续合约交易权限) 对一个仓位调整保证金。
 

出入金接口 (私有,需签名)

 
  • GET /v1/wallet/withdraws: (需读取权限) 查询提现请求列表。
  • GET /v1/wallet/queryWithdrawById: (需读取权限) 根据 ID 查询提现请求。
  • GET /v1/wallet/flows: (需读取权限) 查询钱包账户流水信息。
  • GET /v1/wallet/deposits: (需读取权限) 查询充值日志列表。
 

资金划转接口 (私有,需签名)

 
  • GET /v1/wallet/currencyMappings: (需读取权限) 获取币种映射相关信息。
  • GET /v1/wallet/balances: (需读取权限) 查询您的钱包账户余额。
  • GET /v1/transfer/{transferId}/request: (需读取权限) 根据转账 ID 查询转账请求信息。
  • GET /v1/transfer/{transferId}/log: (需读取权限) 根据转账 ID 查询转账日志。
  • GET /v1/transfer/transfer/logs: (需读取权限) 分页查询转账日志列表。
  • POST /v1/transfer/request/wallet/to/spots: (需资金划转权限) 从钱包账户划转至现货账户。
  • POST /v1/transfer/request/spots/to/wallet: (需资金划转权限) 从现货账户划转至钱包账户。
  • POST /v1/transfer/request/wallet/to/contracts: (需资金划转权限) 从钱包账户划转至合约账户。
  • POST /v1/transfer/request/contracts/to/wallet: (需资金划转权限) 从合约账户划转至钱包账户。
 

错误码参考

 
当您的 API 请求出现问题时,响应体中 success 字段会为 false,并包含 errorerrorMessage 字段以帮助您定位问题。
 
错误响应示例:
{
"success": false, 
"data": null,
"error": "HEADER_INVALID",
"errorField": "API-TIMESTAMP",
"errorMessage": "Header API-TIMESTAMP is not accurate."
 }
 
常见错误码汇总:
errorCode errorMessage 中文说明
PARAMETER_INVALID Parameter error: the request parameter is invalid. 请求参数错误。
SIGNATURE_INVALID Signature error: the signature is invalid. 签名无效。
SIGNATURE_EXPIRED Signature error: the signature is expired. 签名已过期,请检查您的时间戳。
HEADER_INVALID Header error: the request header is invalid. 请求头无效。
AUTH_APIKEY_INVALID Authenticate error: API key is invalid. API Key 无效。
AUTH_IP_FORBIDDEN Authenticate error: IP forbidden. 当前 IP 地址未在白名单中,访问被拒绝。
ACCOUNT_NO_ENOUGH_BALANCE Account error: no enough balance. 账户余额不足。
ORDER_NOT_FOUND Order error: the specific order not found. 未找到指定的订单。
ORDER_EXCEEDED Order error: order exceeds the maximum active limit. 活动订单数量超过上限。
USER_HAS_NO_PERMISSION Permission error: user has no permission. 该 API Key 没有执行此操作的权限。
AUTH_APIKEY_INVALID Api Key not allow to request this uri. API Key不能访问此uri。
如需查看完整的错误码列表,请访问 开发者中心-错误码
 

安全与使用规范

 
请务必遵守以下安全规范,以保护您的账户和资产安全。
  • 妥善保管密钥: 您的 API 密钥(尤其是 Secret Key)拥有操作您账户的权限。请像对待密码一样保管它们,切勿泄露给任何人或在不安全的代码中硬编码。
  • 使用 IP 白名单: 强烈建议为您的每一个 API 密钥绑定固定的 IP 地址。这能极大地降低密钥泄露后被盗用的风险。
  • 遵循最小权限原则: 在创建 API 密钥时,只授予您应用所需的最小权限。例如,如果一个应用只需要查询市场数据,就不要授予它交易或划转的权限。
  • 定期更换密钥: 定期删除不再使用的旧密钥,并可以考虑周期性地更换仍在使用的密钥,以提升安全性。
  • 留意官方信息: 请勿将您的密钥信息透露给任何自称是 BenPay 官方客服的人员。
分享文章
上一个
开发者中心
下一个
链上数据与网络状态
最近修改: 2025-07-31