简体中文

一、API简介

欢迎使用API,此API文档将描述量化投资资金调拨关联API接口详情以及接入、验签说明。

二、接入说明

2.1 接入URLs

REST API

2.2 限频规则

限频规则针对接口进行限频,目前每个接口访问限制为1s内10次

用户可根据Http Header中的信息调整访问策略

三、签名认证

3.1 签名说明

API 请求在通过 internet 传输的过程中极有可能被篡改,为了确保请求未被更改,除公共接口(基础信息,行情数据)外的私有接口均必须使用您的 API Key 做签名认证,以校验参数或参数值在传输途中是否发生了更改。(编码集统一 "UTF-8")

一个合法的请求由以下几部分组成:

3.2 签名步骤

规范要计算签名的请求因为使用 HmacSHA256进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以发起资金调拨请求为例进行说明:

请求的API key与密钥对参考如下:

AccessKeyId: e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx

AccessSecret: 1KFjiTRVlGSyzoNIEXIx8boXe7njFmjeHwiK4kKkEOY=

资金调拨发起请求的URL如下:

1. 请求方法(GET 或 POST),后面添加换行符 “\n”

POST\n

2. 添加小写的访问地址,后面添加换行符 “\n”

api.satsresearch.com\n

3. 访问方法的路径,后面添加换行符 “\n”

/api/v1/transferFunds\n

4. 按照ASCII码的顺序对参数名进行排序。例如,下面是请求参数的原始顺序,进行过编码后

AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxxSignatureMethod=HmacSHA256SignatureVersion=1Timestamp=1662022581951

使用 UTF-8 编码,且进行了 URI 编码,十六进制字符必须大写,如 “:” 会被编码为 “%3A” ,空格被编码为 “%20”。

经过排序之后

AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx

SignatureMethod=HmacSHA256

SignatureVersion=1

Timestamp=1662022581951

5. 按照以上顺序,将各参数使用字符 “&” 连接

AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=1&Timestamp=16620225819511

6. 组成最终的要进行签名计算的字符串如下

POST\n

api.satsresearch.com\n

/api/v1/transferFunds\n

AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=1&Timestamp=1662022581951

7. 用上一步里生成的 “请求字符串” 和你的密钥 (Secret Key) 生成一个数字签名

1KFjiTRVlGSyzoNIEXIx8boXe7njFmjeHwiK4kKkEOY=

  1. 将上一步得到的请求字符串和密钥作为两个参数,调用HmacSHA256验签函数获得验签信息。
  2. 将此验签信息用base-64编码,得到的值作为此次接口调用的数字签名。

8. 将生成的数字签名加入到请求的路径参数里

最终,发送到服务器的 API 请求应该为

https://api.satsresearch.com/api/v1/transferFunds?AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=1&Timestamp=1662022581951&Signature=d5qMEazCAgwpLyUyhwsmIUYZytfzgPjBO6ykluyjzi4=

四、业务枚举

交易所枚举(ExchangeEnum)

枚举值 说明 备注
binance 币安交易所
bingx bingx交易所
coinex coinex交易所
bybit bybit交易所
okx okx交易所
crypto crypto.com交易所
bitget bitget交易所
huobi huobi交易所 新英文名htx
gate gate交易所
kucoin kucoin交易所
phemex phemex交易所

账户类型枚举(AccountTypeEnum)

交易所 枚举值 备注
binance 经典账户: Spot, Margin, USDT-M, Coin-M 统一账户: Spot, Margin 默认为Spot,托管子账户暂不支持
bingx Funding、USDT-M 默认为资金账户
coinex Spot、USDT-M 默认为Spot
bybit 经典账户: Spot, Funding, USDT-M, Coin-M 统一账户: Funding, Trading, Coin-M 默认为Funding
okx Funding, Trading 默认为Funding
bitmex 默认统一账户,无需传参
crypto 默认统一账户,无需传参
bitget Spot, Margin, USDT-M, USDC-M, Coin-M 默认为Spot
huobi Spot, USDT-M, Coin-M-Swap,Coin-M-Futures 默认为Spot,Coin-M-Swap为币本位永续,Coin-M-Futures为币本位交割
gate Spot, USDT-M, USDT-M-Futures 默认为Spot,USDT-M为U本位永续,USDT-M-FuturesU本位交割
kucoin Spot, USDT-M, Margin,Funding 默认为Spot
phemex Spot, Margin, USDT-M 默认为Spot

toSubAccoun和fromSubAccount字段值说明

交易所 说明
binance 子账户邮箱
bingx 子账户UID
coinex 子账户账号名
bybit 子账户UID
okx 子账户登录名
bitmex 子账户ID
crypto 子账户UUID
bitget 子账户UID
huobi 子账户UID
gate 子账户UID
kucoin 子账户UserId
phemex 子账户UID

五、接口明细

5.1 资金调拨

HTTP 请求

请求参数

Name Type Required Description
clientTransferId String Y 客户自定义划转id
asset String Y 划转资产名称
fromExchange String Y 源交易所,参考交易所枚举
fromSubAccount String Y 源子账户,参考交易所枚举
fromAccountType String N 出金账户类型,参考账户类型枚举
toExchange String Y 目的交易所,参考交易所枚举
toSubAccount String Y 目的子账户,参考交易所枚举
toAccountType String N 入金账户类型,参考账户类型枚举
applyAmount Number Y 发起金额,大于10U

Response:

{
  "msg": "success",
          "code": 200,
          "data": [
    {
      "clientTransferId": "4e8c51b7-97ac-4ef1-864f-7869f13c0c6f",
      "transferId": "4e8c51b797ac4ef1864f7869f13c0c6f"
    }
  ],
          "ts": 1679903538458
}

响应数据

Name Type Required Description
clientTransferId String Y 客户自定义划转id
transferId String Y 划转记录id

5.2 查询资金调拨单个记录

HTTP 请求

请求参数

Name Type Required Description
clientTransferId String N 客户自定义划转id,与transferId二选一
transferId String N

Response:

{
    "msg": "success",
    "code": 200,
    "data": [
        {
            "clientTransferId": "4e8c51b7-97ac-4ef1-864f-7869f13c0c7f",
            "asset": "USDT",
            "fromExchange": "bingx",
            "fromSubAccount": "4665179554",
            "toExchange": "binance",
            "toSubAccount": "someacccount@binance.com",
            "applyAmount": "20",
            "realAmount": "19",
            "feeAmount": "1",
            "externalStatus": "done",
            "applyTime": 1715305243482,
            "arriveTime": null,
            "failReason": "exchange internal error."
        }
    ],
    "ts": 1715306224948
}

响应数据

Name Type Required Description
clientTransferId String Y 客户自定义划转id
transferId String Y 划转记录id
asset String Y 划转资产名称
fromExchange String Y 源交易所
fromSubAccount String Y 源账户
fromAccountType String N 出金账户类型
toExchange String Y 目的交易所
toSubAccount String Y 目的账户
toAccountType String N 入金账户类型
applyAmount String Y 发起金额
realAmount String N 实际到账金额
feeAmount String N 提币手续费金额
externalStatus String Y 状态,pending:已提交,done:已完成,fail:失败
applyTime Long Y 提交时间
arriveTime Long N 到账时间
failReason String N 失败原因

5.3 查询资金调拨历史记录

HTTP 请求

请求参数

Name Type Required Description
clientTransferId String N 客户自定义划转id
transferId String N 划转记录id
asset String N 划转资产名称
fromExchange String N 源交易所
fromSubAccount String N 源账户
fromAccountType String N 出金账户类型
toExchange String N 目的交易所
toSubAccount String N 目的账户
toAccountType String N 入金账户类型
pageSize String N 分页数据长度
pageNum String N 起始页

Response:

{
  "msg": "success",
          "code": 200,
          "data": [
    {
      "clientTransferId": "4e8c51b7-97ac-4ef1-864f-7869f13c0c7f",
      "asset": "USDT",
      "fromExchange": "bingx",
      "fromSubAccount": "4665179554",
      "toExchange": "binance",
      "toSubAccount": "someacccount@binance.com",
      "applyAmount": "20",
      "realAmount": "19",
      "feeAmount": "1",
      "externalStatus": "done",
      "applyTime": 1715305243482,
      "arriveTime": null,
      "failReason": "exchange internal error."
    }
  ],
          "ts": 1715306224948
}

响应数据

Name Type Required Description
clientTransferId String Y 客户自定义划转id
transferId String Y 划转记录id
asset String Y 划转资产名称
fromExchange String Y 源交易所
fromSubAccount String Y 源账户
fromAccountType String N 出金账户类型
toExchange String Y 目的交易所
toSubAccount String Y 目的账户
toAccountType String N 入金账户类型
applyAmount String Y 发起金额
realAmount String N 实际到账金额
feeAmount String N 提币手续费金额
externalStatus String Y 状态,pending:已提交,done:已完成,fail:失败
applyTime Long Y 提交时间
arriveTime Long N 到账时间
failReason String N 失败原因

六、错误码

错误码 状态码 描述
200 200 成功
40000 400 通用请求错误
40002 400 {0}参数非法,请检查后重试
45164 400 资金调拨记录已存在
45165 400 资金调拨accessKeyId参数非法
45166 400 不支持的资金调拨币种
45169 400 跨所资金调拨记录正在处理中
50000 500 服务端错误

七、更新说明

20240715

20240628

20240615

20240606