NAV Navbar
python javascript
  • 介绍
  • 认证
  • 公开接口
  • 行情
  • 币币账户与资产
  • 订单
  • OTC
  • 杠杆
  • 错误代码
  • 介绍

    通过了解以下信息,您可以方便的使用 FCoin 提供的 API 来接入 FCoin 交易平台。

    认证

    请注意以下为伪代码, 执行下面的代码进行用户验证:

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    

    FCoin 使用 API key 和 API secret 进行验证,请访问 设置中心,并注册成为开发者,获取 API key 和 API secret。

    FCoin 的 API 请求,除公开的 API 外都需要携带 API key 以及签名

    访问限制

    目前访问频率为每个用户 100次 / 10秒,未来会按照业务区分访问频率限制。

    API 签名

    签名前准备的数据如下:

    HTTP_METHOD + HTTP_REQUEST_URI + TIMESTAMP + POST_BODY

    连接完成后,进行 Base64 编码,对编码后的数据进行 HMAC-SHA1 签名,并对签名进行二次 Base64 编码,各部分解释如下:

    HTTP_METHOD

    GET, POST, DELETE, PUT 需要大写

    HTTP_REQUEST_URI

    https://api.fcoin.com/v2/ 为 v2 API 的请求前缀

    后面再加上真正要访问的资源路径,如 orders?param1=value1,最终即 https://api.fcoin.com/v2/orders?param1=value1

    对于请求的 URI 中的参数,需要按照按照字母表排序!

    即如果请求的 URI 为 https://api.fcoin.com/v2/orders?c=value1&b=value2&a=value3,则进行签名时,应先将请求参数按照字母表排序,最终进行签名的 URI 为 https://api.fcoin.com/v2/orders?a=value3&b=value2&c=value1, 请注意,原请求 URI 中的三个参数顺序为 c, b, a,排序后为 a, b, c

    TIMESTAMP

    访问 API 时的 UNIX EPOCH 时间戳,需要和服务器之间的时间差少于 30 秒

    POST_BODY

    如果是 POST 请求,POST 请求数据也需要被签名,签名规则如下:

    所有请求的 key 按照字母顺序排序,然后进行 url 参数化,并使用 & 连接。

    如果请求数据为:

    {
      "username": "username",
      "password": "passowrd"
    }
    

    则先将 key 按照字母排序,然后进行 url 参数化,即:

    password=password
    username=username
    

    因为 p 在字母表中的排序在 u 之前,所以 password 要放在 username 之前,然后使用 & 进行连接,即:

    password=password&username=username
    

    完整示例

    对于如下的请求:

    POST https://api.fcoin.com/v2/orders
    
    {
      "type": "limit",
      "side": "buy",
      "amount": "100.0",
      "price": "100.0",
      "symbol": "btcusdt"
    }
    
    timestamp: 1523069544359
    

    签名前的准备数据如下:

    POSThttps://api.fcoin.com/v2/orders1523069544359amount=100.0&price=100.0&side=buy&symbol=btcusdt&type=limit
    

    进行 Base64 编码,得到:

    UE9TVGh0dHBzOi8vYXBpLmZjb2luLmNvbS92Mi9vcmRlcnMxNTIzMDY5NTQ0MzU5YW1vdW50PTEwMC4wJnByaWNlPTEwMC4wJnNpZGU9YnV5JnN5bWJvbD1idGN1c2R0JnR5cGU9bGltaXQ=
    

    拷贝在申请 API Key 时获得的秘钥(API SECRET),下面的签名结果采用 3600d0a74aa3410fb3b1996cca2419c8 作为示例,

    对得到的结果使用秘钥进行 HMAC-SHA1 签名,并对二进制结果进行 Base64 编码,得到:

    DeP6oftldIrys06uq3B7Lkh3a0U=
    

    即生成了用于向 API 服务器进行验证的最终签名

    说明

    可以使用开发者工具(暂未开放)进行在线联调测试。

    公开接口

    查询服务器时间

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    server_time = api.server_time()
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let serverTime = api.serverTime();
    

    响应结果如下:

    {
      "status": 0,
      "data": 1523430502977
    }
    

    此 API 用于获取服务器时间。

    HTTP Request

    GET https://api.fcoin.com/v2/public/server-time

    查询可用币种

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    currencies = api.currencies()
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let currencies = api.currencies();
    

    响应结果如下:

    {
      "status": 0,
      "data": [
        "btc",
        "eth"
      ]
    }
    

    此 API 用于获取可用币种。

    HTTP Request

    GET https://api.fcoin.com/v2/public/currencies

    查询可用交易对

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    symbols = api.symbols()
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let symbols = api.symbols();
    

    响应结果如下:

    {
      "status": 0,
      "data": [
        {
          "name": "btcusdt",
          "base_currency": "btc",
          "quote_currency": "usdt",
          "price_decimal": 2,
          "amount_decimal": 4
        },
        {
          "name": "ethusdt",
          "base_currency": "eth",
          "quote_currency": "usdt",
          "price_decimal": 2,
          "amount_decimal": 4
        }
      ]
    }
    

    此 API 用于获取可用交易对。

    HTTP Request

    GET https://api.fcoin.com/v2/public/symbols

    或者,推荐使用下面接口 GET https://www.fcoin.com/openapi/v2/symbols

    行情

    行情概述

    行情是一个全公开的 API, 当前同时提供了 HTTP 和 WebSocket 的 API. 为确保可以更及时的获得行情, 推荐使用 WebSocket 进行接入. 为尽可能行情的实时性能, 当前公开部分只能获取最近一段时间的行情

    所有 HTTP 请求的 URL base 为: https://api.fcoin.com/v2/market

    所有 WebSocket 请求的 URL 为: wss://api.fcoin.com/v2/ws

    下文会统一术语:

    WebSocket 首次建立连接

    连接成功服务器会发送一个欢迎信息

    连接成功后服务器返回信息:

    {
      "type":"hello",
      "ts":1523693784042
    }
    
    • ts: 推送服务器当前的时间.

    WebSocket 连接保持 - heartbeat

    # WebSocket 向服务端发送 ping 维持心跳
    import time
    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    now_ms = int(time.time())
    api.market.ping(now_ms)
    

    WebSocket 客户端和 WebSocket 服务器建立连接之后,推荐 WebSocket Client 每隔 30s(这个频率可能会变化) 向服务器发起一次 ping 请求,如果服务器长时间没有接收到客户端的 ping 请求将会主动断开连接(300s)。

    WebSocket 请求

    发送 ping 指令: {"cmd":"ping","args":[$client_ts],"id":"$client_id"}

    ping 指令请求示例:

    {"cmd":"ping","args":[1540557696867],"id":"sample.client.id"}
    

    ping 指令成功服务器返回:

    {
      "id":"sample.client.id",
      "type":"ping",
      "ts":1523693784042,
      "gap":112
    }
    
    • gap: 推送服务器处理此语句的时间和客户端传输的时间差.
    • ts: 推送服务器当前的时间.

    WebSocket 订阅

    发送 sub 指令: {"cmd":"sub","args":["$topic", ...],"id":"$client_id"}

    sub 指令请求示例(单 topic):

    {"cmd":"sub","args":["ticker.ethbtc"]}
    

    sub 指令请求示例(多 topic):

    {"cmd":"sub","args":["ticker.ethbtc", "ticker.btcusdt"]}
    

    订阅成功的响应结果如下:

    {
      "type": "topics",
      "topics": ["ticker.ethbtc", "ticker.btcusdt"]
    }
    

    订阅失败的响应结果如下:

    {
      "id":"invalid_topics_sample",
      "status":41002,
      "msg":"invalid sub topic, xxx.M1.xxx"
    }
    

    获取 ticker 数据

    为了使得 ticker 信息组足够小和快, 我们强制使用了列表格式.

    ticker 列表对应字段含义说明:

    [
      "最新成交价",
      "最近一笔成交的成交量",
      "最大买一价",
      "最大买一量",
      "最小卖一价",
      "最小卖一量",
      "24小时前成交价",
      "24小时内最高价",
      "24小时内最低价",
      "24小时内基准货币成交量, 如 btcusdt 中 btc 的量",
      "24小时内计价货币成交量, 如 btcusdt 中 usdt 的量"
    ]
    

    HTTP 请求

    GET https://api.fcoin.com/v2/market/ticker/$symbol

    # 获取 ticker 数据
    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    api.market.get_ticker("ethbtc")
    

    HTTP 请求响应结果如下:

    {
      "status": 0,
      "data": {
        "type": "ticker.btcusdt",
        "seq": 680035,
        "ticker": [
          7140.890000000000000000,
          1.000000000000000000,
          7131.330000000,
          233.524600000,
          7140.890000000,
          225.495049866,
          7140.890000000,
          7140.890000000,
          7140.890000000,
          1.000000000,
          7140.890000000000000000
        ]
      }
    }
    

    WebSocket 订阅

    发送 sub 指令,topic: ticker.$symbol (请参考 WebSocket 订阅)

    # 订阅 ticker 数据
    import fcoin
    
    fcoin_ws = fcoin.init_ws()
    topics = ["ticker.ethbtc", "ticker.btcusdt"]
    fcoin_ws.handle(print)
    fcoin_ws.sub(topics)
    

    WebSocket 订阅的通知消息结果如下:

    {
      "type": "ticker.btcusdt",
      "seq": 680035,
      "ticker": [
        7140.890000000000000000,
        1.000000000000000000,
        7131.330000000,
        233.524600000,
        7140.890000000,
        225.495049866,
        7140.890000000,
        7140.890000000,
        7140.890000000,
        1.000000000,
        7140.890000000000000000
      ]
    }
    

    获取最新的深度明细

    HTTP 请求

    GET https://api.fcoin.com/v2/market/depth/$level/$symbol

    $level 包含的种类(大小写敏感):

    类型 说明
    L20 20 档行情深度.
    L150 150 档行情深度.

    其中 L20 的推送时间会略早于 L150, 推送频次会略多于 L150, 看具体的压力和情况. 此处请按需使用.

    HTTP 请求响应结果如下:

    {
      "status":0,
      "data":{
        "type": "depth.L20.ethbtc",
        "ts": 1523619211000,
        "seq": 120,
        "bids": [0.000100000, 1.000000000, 0.000010000, 1.000000000],
        "asks": [1.000000000, 1.000000000]
      }
    }
    

    WebSocket 订阅

    # WebSocket 订阅深度明细
    import fcoin
    
    fcoin_ws = fcoin.init_ws()
    topics = ["depth.L20.ethbtc", "depth.L150.btcusdt"]
    fcoin_ws.handle(print)
    fcoin_ws.sub(topics)
    
    // WebSocket 订阅深度明细
    const fcoin = require('fcoin');
    
    let fcoin_ws = fcoin.init_ws()
    topics = ["depth.L20.ethbtc", "depth.L150.btcusdt"]
    fcoin_ws.handle(print)
    fcoin_ws.sub(topics)
    

    发送 sub 指令,topic: depth.$level.$symbol (请参考 WebSocket 订阅)

    WebSocket 订阅的通知消息结果如下:

    {
      "type": "depth.L20.ethbtc",
      "ts": 1523619211000,
      "seq": 120,
      "bids": [0.000100000, 1.000000000, 0.000010000, 1.000000000],
      "asks": [1.000000000, 1.000000000]
    }
    

    bids 和 asks 对应的数组一定是偶数条目, 买(卖)1价, 买(卖)1量, 依次往后排列.

    获取最新的成交明细

    通过对比其中的成交 id 大小才能决定是否是更新的成交.{trade id} 需要注意, 常规由于 trade 到 transaction 过程的存在, 公开行情的成交 id 并不实际对应清算系统中的成交 id. 即使成交是一条记录, 也无法保证最新成交在重新获取时候 id 永远保持一致.

    PS: 历史行情中, 是可以保证成交 id 保持恒定. {transaction id} 此处只作为行情更新通知, 不应依赖归档使用.

    # WebSocket 请求获取最近的成交明细
    import fcoin
    
    fcoin_ws = fcoin.init_ws()
    topic = "trade.ethbtc"
    limit = 3
    args = [topic, limit]
    fcoin_ws.req(args, rep_handler)
    
    # WebSocket 订阅最近的成交明细
    import fcoin
    
    fcoin_ws = fcoin.init_ws()
    topics = ["trade.ethbtc", "trade.btcusdt"]
    fcoin_ws.handle(print)
    fcoin_ws.sub(topics)
    

    HTTP 请求

    GET https://api.fcoin.com/v2/market/trades/$symbol

    查询参数(HTTP 请求)

    参数 默认值 描述
    before 查询某个 id 之前的 Trade
    limit 默认为 20 条

    WebSocket 请求

    发送 req 指令: {"cmd":"req", "args":["$topic", limit],"id":"$client_id"}

    WebSocket 请求成功的响应结果如下:

    {
      "id":null,
      "ts":1523693400329,
      "data":[
        {
          "amount":1.000000000,
          "ts":1523419946174,
          "id":76000,
          "side":"sell",
          "price":4.000000000
        },
        {
          "amount":1.000000000,
          "ts":1523419114272,
          "id":74000,
          "side":"sell",
          "price":4.000000000
        },
        {
          "amount":1.000000000,
          "ts":1523415182356,
          "id":71000,
          "side":"sell",
          "price":3.000000000
        }
      ]
    }
    

    WebSocket 订阅

    发送 sub 指令,topic: trade.$symbol (请参考 WebSocket 订阅)

    WebSocket 订阅的通知消息结果如下:

    {
      "type":"trade.ethbtc",
      "id":76000,
      "amount":1.000000000,
      "ts":1523419946174,
      "side":"sell",
      "price":4.000000000
    }
    

    获取 Candle 信息

    HTTP 请求

    GET https://api.fcoin.com/v2/market/candles/$resolution/$symbol

    查询参数(HTTP 请求)

    参数 默认值 描述
    before 查询某个 id 之前的 Candle
    limit 默认为 20 条

    $resolution 包含的种类(大小写敏感):

    类型 说明
    M1 1 分钟
    M3 3 分钟
    M5 5 分钟
    M15 15 分钟
    M30 30 分钟
    H1 1 小时
    H4 4 小时
    H6 6 小时
    D1 1 日
    W1 1 周
    MN 1 月

    WebSocket 请求

    发送 req 指令: {"cmd":"req","args":["$topic",limit,before],"id":"$client_id"}

    WebSocket 请求成功的响应结果如下:

    {
      "id":"candle.M1.btcusdt",
      "data":[
        {
          "id":1540809840,
          "seq":24793830600000,
          "high":6491.74,
          "low":6489.24,
          "open":6491.24,
          "close":6490.07,
          "count":26,
          "base_vol":8.2221,
          "quote_vol":53371.531286
        },
        {
          "id":1540809900,
          "seq":24793879800000,
          "high":6490.47,
          "low":6487.62,
          "open":6490.09,
          "close":6487.62,
          "count":23,
          "base_vol":10.8527,
          "quote_vol":70430.840624
        }
      ]
    }
    

    Weboskcet 订阅

    发送 sub 指令,topic: candle.$resolution.$symbol (请参考 WebSocket 订阅)

    # WebSocket 订阅 candle 数据
    import fcoin
    
    fcoin_ws = fcoin.init_ws()
    topics = ["candle.M1.ethbtc"]
    fcoin_ws.handle(print)
    fcoin_ws.sub(topics)
    

    WebSocket 订阅的通知消息结果如下:

    {
      "type":"candle.M1.ethbtc",
      "id":1523691480,
      "seq":11400000,
      "open":2.000000000,
      "close":2.000000000,
      "high":2.000000000,
      "low":2.000000000,
      "count":0,
      "base_vol":0,
      "quote_vol":0
    }
    

    获取所有的ticker数据

    HTTP 请求

    GET https://api.fcoin.com/v2/market/all-tickers

    查询参数(HTTP 请求)

    币币账户与资产

    查询交易账户的资产列表。

    此api用于查询交易账户的资产

    HTTP Request

    GET https://api.fcoin.com/v2/accounts/balance

    查询我的钱包的资产列表。

    此api用于查询我的钱包的资产

    HTTP Request

    GET https://api.fcoin.com/v2/assets/accounts/balance

    响应结果

    {
      'status': 0,
      'data': [
        {
          'currency': 'btc',                        币种名称
          'available': '0.000000000000000000',      可用
          'frozen': '0.000000000000000000',         冻结
          'demand_deposit': '0.000000000000000000', 理财资产
          'lock_deposit': '0.000000000000000000',   锁仓资产
          'balance': '0.000000000000000000'         总资产
        },
        {
          'currency': 'eth',
          'available': '0.000000000000000000',
          'frozen': '0.000000000000000000',
          'demand_deposit': '0.000000000000000000',
          'lock_deposit': '0.000000000000000000',
          'balance': '0.000000000000000000'
        },
        ...
    }
    

    从我的钱包划转到交易账户

    此接口用于从我的钱包将资产划转到交易账户

    HTTP Request

    POST https://api.fcoin.com/v2/assets/accounts/assets-to-spot

    请求参数

    参数 默认值 描述
    currency 币种名称
    amount 数量

    请求示例:

    {
      "currency": "btc",
      "amount": 1
    }
    

    响应结果

    {
      "data": null,
      "status": "ok"
    }
    

    从交易账户划转到我的钱包

    此接口用于从交易账户将资产划转到我的钱包

    HTTP Request

    POST https://api.fcoin.com/v2/accounts/spot-to-assets

    请求参数

    参数 默认值 描述
    currency 币种名称
    amount 数量

    请求示例:

    {
      "currency": "btc",
      "amount": 1
    }
    

    响应结果

    {
      "data": null,
      "status": "ok"
    }
    

    订单

    订单模型说明

    订单模型由以下属性构成:

    属性 类型 含义解释
    id String 订单 ID
    symbol String 交易对
    side String 交易方向(buy, sell
    type String 订单类型(limit,market,ioc,fok
    price String 下单价格
    amount String 下单数量
    state String 订单状态
    executed_value String 已成交
    filled_amount String 成交量
    fill_fees String 手续费
    created_at Long 创建时间
    source String 来源

    订单状态说明:

    属性 含义解释
    submitted 已提交
    partial_filled 部分成交
    partial_canceled 部分成交已撤销
    filled 完全成交
    canceled 已撤销
    pending_cancel 撤销已提交

    创建新的订单

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    order_create_param = fcoin.order_create_param('btcusdt', 'buy', 'limit', '8000.0', '1.0', 'main')
    api.orders.create(order_create_param)
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let orderCreateParam = fcoin.orderCreateParam('btcusdt', 'buy', 'limit', '8000.0', '1.0', 'main');
    let orders = api.orders.create(orderCreateParam);
    

    响应结果如下:

    {
      "status": 0,
      "data": "9d17a03b852e48c0b3920c7412867623"
    }
    

    此 API 用于创建新的订单。

    HTTP Request

    POST https://api.fcoin.com/v2/orders

    请求参数

    参数 默认值 描述
    symbol 交易对
    side 交易方向
    type 订单类型
    price 价格
    amount 下单量
    exchange 交易区
    account_type 账户类型(币币交易不需要填写,杠杆交易:margin)

    查询订单列表

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    api.orders.get()
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let orders = api.orders.get();
    

    响应结果如下:

    {
      "status": 0,
      "data": [
        {
          "id": "string",
          "symbol": "string",
          "type": "limit",
          "side": "buy",
          "price": "string",
          "amount": "string",
          "state": "submitted",
          "executed_value": "string",
          "fill_fees": "string",
          "filled_amount": "string",
          "created_at": 0,
          "source": "web"
        }
      ]
    }
    

    此 API 用于查询订单列表。

    HTTP Request

    GET https://api.fcoin.com/v2/orders

    查询参数

    参数 默认值 描述
    symbol 交易对,必填
    states 订单状态,只支持单状态查询:submitted,partial_filled,partial_canceled,filled,canceled,必填
    before 查询某个时间戳之前的订单
    after 查询某个时间戳之后的订单
    limit 每页的订单数量,默认为 20 条,最大100
    account_type 杠杆:margin

    获取指定订单

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    api.orders.get('9d17a03b852e48c0b3920c7412867623')
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let max = api.orders.get('9d17a03b852e48c0b3920c7412867623');
    

    响应结果如下:

    {
      "status": 0,
      "data": {
        "id": "9d17a03b852e48c0b3920c7412867623",
        "symbol": "string",
        "type": "limit",
        "side": "buy",
        "price": "string",
        "amount": "string",
        "state": "submitted",
        "executed_value": "string",
        "fill_fees": "string",
        "filled_amount": "string",
        "created_at": 0,
        "source": "web"
      }
    }
    

    此 API 用于返回指定的订单详情。

    HTTP Request

    GET https://api.fcoin.com/v2/orders/{order_id}

    URL 参数

    参数 描述
    order_id 订单 ID

    申请撤销订单

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    api.orders.submit_cancel(2)
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let max = api.orders.submitCancel(2);
    

    响应结果如下:

    {
      "status": 0,
      "msg": "string",
      "data": true
    }
    

    此 API 用于撤销指定订单,订单撤销过程是异步的,即此 API 的调用成功代表着订单已经进入撤销申请的过程,需要等待撮合的进一步处理,才能进行订单的撤销确认。

    HTTP Request

    POST https://api.fcoin.com/v2/orders/{order_id}/submit-cancel

    URL 参数

    参数 解释
    order_id 订单 ID

    查询指定订单的成交记录

    import fcoin
    
    api = fcoin.authorize('key', 'secret', timestamp)
    api.orders.get('9d17a03b852e48c0b3920c7412867623').match_results()
    
    const fcoin = require('fcoin');
    
    let api = fcoin.authorize('key', 'secret', timestamp);
    let max = api.orders.get('9d17a03b852e48c0b3920c7412867623').matchResults();
    

    响应结果如下:

    {
      "status": 0,
      "data": [
        {
          "price": "string",
          "fill_fees": "string",
          "filled_amount": "string",
          "side": "buy",
          "type": "limit",
          "created_at": 0
        }
      ]
    }
    

    此 API 用于获取指定订单的成交记录

    HTTP Request

    GET https://api.fcoin.com/v2/orders/{order_id}/match-results

    URL 参数

    参数 解释
    order_id 订单 ID

    订单错误代码

    错误代码 含义解释
    2000 账户错误

    OTC

    OTC 资产转入

    此API用于将交易账户或资产账户的资产转入到OTC账户。

    HTTP Request

    POST https://api.fcoin.com/v2/broker/otc/assets/transfer/in

    请求参数

    参数 默认值 描述
    amount 划转数量
    currency 币种名称:usdt、btc、eth
    source_account_type 资产来源账户类型: exchange: 交易账户; assets: 资产账户
    target_account_type 目标账户类型: otc: 法币账户

    请求示例:

    {
      "amount": 1,
      "currency": "btc",
      "source_account_type": "exchange",
      "target_account_type": "otc"
    }
    

    响应结果

    {
      "data": null,
      "status": "ok"
    }
    

    OTC资产转出

    此API用于将OTC账户资产转入到交易账户或资产账户。

    HTTP Request

    POST https://api.fcoin.com/v2/broker/otc/assets/transfer/out

    请求参数

    参数 默认值 描述
    amount 划转数量
    currency 币种名称:usdt、btc、eth
    source_account_type 资产来源账户类型:otc: 法币账户
    target_account_type 目标账户类型: exchange: 交易账户; assets: 资产账户

    请求示例:

    {
      "amount": 1,
      "currency": "btc",
      "source_account_type": "otc",
      "target_account_type": "exchange"
    }
    

    响应结果

    {
      "data": null,
      "status": "ok"
    }
    

    OTC订单

    创建新的订单

    此API用于创建一个新的OTC订单。

    HTTP Request

    POST https://api.fcoin.com/v2/broker/otc/suborders

    请求参数

    参数 默认值 描述
    amount 交易数量
    delegation_order_id 委托单id

    请求示例:

    {
      "amount": 1,
      "delegation_order_id": "St5_OiSE5YQiy4lxkQhq8w"
    }
    

    响应结果

    {
      "err_code": "",
      "err_msg": "",
      "status": "ok",
      "data": 4064224473046529
    }
    

    查询OTC订单列表

    此API用于查询订单列表。

    HTTP Request

    GET https://api.fcoin.com/v2/broker/otc/suborders

    请求参数

    参数 默认值 描述
    id 最后一次分页的id
    page_size 每页记录数
    delegation_order_id 委托单id
    states 订单状态。 1 confirmed 已确认;2 buyer_appeal 买方申诉中;3 seller_appeal 卖方申诉中;4 paid 买家已付款;5 released 卖家已放币;6 filled 已成交;7 cancelled 已撤销;8 timeout 超时撤销;9 system_cancelled 系统撤销(余额不足)

    响应结果

    {
      "err_code": "",
      "err_msg": "",
      "status": "ok",
      "data": {
        "content": [
          {
            "id": "4064224473046529",
            "currency": "usdt",
            "legal_currency": "cny",
            "direction": "buy",
            "type": "normal",
            "price": "7.00",
            "amount": "100.000000",
            "total_price": "700.00",
            "start_at": 1546614090132,
            "created_at": 1546614090135,
            "state": "confirmed"
          },
          {
            "id": "3214937639915529",
            "currency": "usdt",
            "legal_currency": "cny",
            "direction": "buy",
            "type": "normal",
            "price": "7.70",
            "amount": "100.000000",
            "total_price": "770.00",
            "start_at": 1546421969839,
            "created_at": 1546421969842,
            "state": "filled"
          }
        ],
        "current_elements": 2,
        "has_prev": true,
        "has_next": false,
        "next_page_id": 3214937639915529
      }
    }
    

    查询订单详情

    此API用于查询订单详情。

    HTTP Request

    GET https://api.fcoin.com/v2/broker/otc/suborders/{id}

    请求参数

    参数 默认值 描述
    id 订单id

    响应结果

    {
      "status": "ok",
      "data": {
        "id": "4064224473046529",
        "currency": "usdt",
        "legal_currency": "cny",
        "direction": "buy",
        "type": "normal",
        "price": "7.00",
        "amount": "100.000000",
        "payment_method": "wechat_pay",
        "total_price": "700.00",
        "start_at": 1546614090132,
        "paid_at": 1546614126421,
        "finished_at": 1546614470679,
        "created_at": 1546614090135,
        "release_begin_at": 1546614294160,
        "buyer_user_id": "hXD7rALO-p899HLEG6OGCA",
        "seller_user_id": "U_g-dtTE_B8Q2eQYa4a8Bw",
        "state": "filled",
        "first_name": "Tim",
        "last_name": "im"
      }
    }
    

    订单确认支付

    此API用于确认支付。

    HTTP Request

    POST https://api.fcoin.com/v2/broker/otc/suborders/{id}/pay_confirm

    请求参数

    参数 默认值 描述
    id 订单id
    payment_method 支付方式。 1 alipay 支付宝;2 wechat_pay 微信;3 bank_card_pay 银行卡

    响应结果

    {
      "err_code": "",
      "err_msg": "",
      "status": "ok"
    }
    

    买家取消订单

    此API用于买家取消订单。

    HTTP Request

    POST https://api.fcoin.com/v2/broker/otc/suborders/{id}/cancel

    请求参数

    参数 默认值 描述
    id 订单id

    响应结果

    {
      "err_code": "",
      "err_msg": "",
      "status": "ok"
    }
    

    查询卖家支付方式

    此API用于下订单后,查询卖家的支付方式。

    HTTP Request

    GET https://api.fcoin.com/v2/broker/otc/suborders/{id}/payments

    请求参数

    参数 默认值 描述
    id 订单id

    响应结果

    {
      "status": "ok",
      "data": [
        {
          "payment_method": "alipay",
          "first_name": "first_name",
          "last_name": "last_name",
          "bank_name": null,
          "bank_branch_name": null,
          "account": "alipay_account",
          "account_image_key": "551c9c2d6bad417fb4aa171bcc6b861d.jpg",
          "account_image_read_url": "***"
        },
        {
          "payment_method": "wechat_pay",
          "first_name": "first_name",
          "last_name": "last_name",
          "bank_name": null,
          "bank_branch_name": null,
          "account": "wechat_pay_account",
          "account_image_key": "e5b20c5af24232f11ec4ce187f7c6998.jpg",
          "account_image_read_url": "***"
        },
        {
          "payment_method": "bank_card_pay",
          "first_name": "first_name",
          "last_name": "last_name",
          "bank_name": "A银行",
          "bank_branch_name": "A银行XX支行",
          "account": "bank_card_pay_account",
          "account_image_key": "e5b20c5af24232f11ec4ce187f7c6998.jpg",
          "account_image_read_url": "***"
        }
      ]
    }
    

    获取OTC账户信息

    HTTP请求

    GET https://api.fcoin.com/v2/broker/otc/users

    请求参数

    响应结果

    {
        "status": "ok",
        "data": {
            "user_id": "Hff9R282Ty8wDa5Xb8AaLg",                #用户ID
            "nickname": "isfulei",                              #昵称
            "merchant": true,                                   #是否是商家
            "margin_amount": "1.00000000",                      #保证金数量
            "total_transaction": 0,                             #总成交数
            "recent_transaction": 0,                            #近期成交数
            "total_release_time": "0",                          #总放行时间(分钟)
            "average_release_time": "0",                        #平均放行时间(分钟)
            "recent_success_transaction_ratio": "0",            #近期成交率
            "register_at": 1,                                   #注册时间
            "remark": "备注",                                    #备注
            "bind_email": true,                                 #是否绑定邮箱
            "bind_phone": true,                                 #是否绑定手机
            "kyc": true,                                        #是否KYC
            "enable_otc": true,                                 #是否是OTC用户
            "set_payment_method": false,                        #是否设置了支付方式
            "set_assets_password": false,                       #是否设置了资金密码
            "binding_google_auth": false,                       #是否绑定了GA
            "phone": "86-13000000000",                          #联系电话
            "first_name": fu,                                   #first name
            "last_name": lei,                                   #last name
            "email": "mock_user@fcoin.com"                      #邮箱
        }
    

    查询OTC账户所有币种余额

    请求

    GET https://api.fcoin.com/v2/broker/otc/users/me/balances

    请求参数

    响应结果

    {
        "status": "ok",
        "data": {
            "summary": "0.00000000",                   # 折合btc的数量
            "balances": [
                {
                    "currency": "btc",                 # 币种名称
                    "available_amount": 20.3202023,    # 可用数量
                    "frozen_amount": 32093.3223        # 冻结数量
                },
                {
                    "currency": "eth",
                    "available_amount": 20.3202023,
                    "frozen_amount": 32093.3223
                }
            ]
        }
    }            
    

    获取OTC账户指定币种余额

    请求url

    GET https://api.fcoin.com/v2/broker/otc/users/me/balance

    请求参数

    参数 默认值 描述
    currency 币种名称,如:btc/eth/usdt

    响应结果

    {
        "status": "ok",
        "data": {
            "summary": "0.00000000",                  # 折合btc的数量
            "balances": [
                {
                    "currency": "btc",               # 币种名称
                    "available_amount": 20.3202023,  # 可用数量
                    "frozen_amount": 32093.3223      # 冻结数量
                }
            ]
        }
    }             
    

    OTC 委托单

    属性 含义
    SUBMITTED 已提交
    CONFIRMED 已确认
    PARTIAL_FILLED 部分成交
    PARTIAL_CANCELED 部分成交(已撤单)
    FILLED 完全成交
    CANCELED 已撤销
    SYSTEM_CANCELED 系统撤销(余额不足)

    创建otc委托单

    POST https://api.fcoin.com//v2/broker/otc/delegation_orders/submit-v3

    请求参数:

        {
                "amount": 0,                    总数量
                "currency": "string",           支持OTC的币种名称 BTC; ETH; USDT
                "direction": "string",          买卖方向:  buy 买; sell 卖
                "legal_currency": "string",     法币币种   cny 人民币
                "max_limit": 0,                 最大买/卖金额
                "min_limit": 0,                 最小买/卖金额
                "payment_method_ids": "string"  支付方式ID,可从支付方式的api中获取ID,添加多种支付方式用","隔开 
                "price": 0,                     价格
                "remark": "string"              备注
        }
    

    响应结果

        {
            "status": "ok",
            "data": "string"                    委托单id
        }
    

    查询指定委托单

    HTTP Request

    GET https://api.fcoin.com/v2/broker/otc/delegation_orders/{delegation_order_id}

    请求参数

    参数 默认值 描述
    delegation_order_id 订单ID

    响应结果

        {
         "amount": 0,                       总数量
        "canceled_at": 0,                   委托单被撤销时间
        "currency": "string",               数字货币名称
        "direction": "string",              买卖方向
        "filled_amount": 0,                 已经完成的数量
        "finished_at": 0,                   委托单完成时间
        "id": 0,                            委托单ID
        "legal_currency": "string",         法币币种名称
        "max_limit": 0,                     最大买/卖金额
        "min_limit": 0,                     最小买/卖金额
        "payment_methods": [                支付方式
          "string"
        ],
        "price": 0,                         单价
        "processing_amount": 0,             处理中的数量
        "remark": "string",                 委托单备注
        "state": "string",                  委托单状态
        "total_amount": 0,                  总金额
        "type": "string",                   委托单类型
        "unprocessed_amount": 0             未处理的数量
        }
    

    撤销otc委托单

    HTTP Request

    POST https://api.fcoin.com/v2/broker/otc/delegation_orders/{delegation_order_id}/cancel

    请求参数

    参数 默认值 描述
    delegation_order_id 订单ID

    查询当前用户委托单

    HTTP Request

    GET https://api.fcoin.com/v2/broker/otc/delegation_orders/me

    请求参数

    参数 默认值 描述
    has_prev 是否包含前一页,该参数由前端控制,原样返回
    id 最后一次分页的ID
    page_size integer 请求数量,1-40
    states 委托单状态 1 trading 交易中;2 filled 已成交;3 partial_filled 部分成交;4 canceled 已撤销

    响应结果

    
        {
            "content": [
            {
                "amount": 0,                        总数量
                "created_at": 0,                    创建时间
                "currency": "string",               数字货币名称
                "direction": "string",              买卖方向
                "filled_amount": 0,                 已经完成的数量
                "id": 0,                            委托单ID
                "legal_currency": "string",         法币币种名称
                "max_limit": 0,                     最大买/卖金额
                "min_limit": 0,                     最小买/卖金额
                "payment_methods": [                支付方式
                "string"
                ],
                "price": 0,                         单价
                "processing_amount": 0,             处理中的数量
                "state": "string",                  委托单状态 submited 已提交;confirmed 已确认; partial_filled 部分                                     成交;partial_canceled 部分成交(已撤单) filled 完全成交;                                              canceled 已撤销; system_canceled 系统撤销(余额不足)
                "total_amount": 0,                  总金额
                "unprocessed_amount": 0             未处理的数量
                "next_refresh_at"                       下一次刷新时间
                "refresh_at"                        刷新时间
            }
            ],
            "current_elements": 0, 查询结果集数量
            "has_next": true,      是否包含下一页
            "has_prev": true,      是否包含前一页,该参数由前端控制,原样返回
            "next_page_id": "string" 下一页查询条件ID
        }
    
    

    刷新委托单

    POST https://api.fcoin.com/v2/broker/otc/delegation_orders/{delegation_order_id}/refresh

    请求参数

    参数 默认值 描述
    delegation_order_id 委托单ID

    响应结果

    {
      "data": null,
      "status": "ok"
    }
    
    

    otc支付方式

    获取全部支付方式信息

    GET https://api.fcoin.com/v2/broker/otc/payments

    请求参数

    响应结果

       {
        "status":"ok",
        "data":[
            {
                "payment_id":"ToMuTRjhCbrxv37JVMh05w",   支付方式ID
                "payment_method":"alipay",               支付方式 alipay 支付宝;wechat_pay 微信;bank_card_pay 银行卡
                "first_name":"firstName",                名
                "last_name":"lastName",                  姓
                "bank_name":"",                          开户银行(微信、支付宝请忽略此字段)
                "bank_branch_name":"",                   开户支行名称(微信、支付宝请忽略此字段)
                "account":"",                            账户
                "state":"enabled",                       状态 enabled 启用; disabled 停用
                "account_image_key":"imageKey.jpg",      账户图片地址,如二维码
                "account_image_read_url":""              账户图片可读地址(无效)
            },
            {
                "payment_id":"DedERVnG8GbKps57Di84mA",
                "payment_method":"wechat_pay",
                "first_name":"firstName",
                "last_name":"lastName",
                "bank_name":"",
                "bank_branch_name":"",
                "account":"",
                "state":"enabled",
                "account_image_key":"imageKey.jpg",
                "account_image_read_url":""              
            }
        ]
    }
    

    获取指定支付方式信息

    GET https://api.fcoin.com/v2/broker/otc/payments/{payment_id}

    请求参数

    payment_id : 支付方式ID

    响应结果

       {
        "status":"ok",
        "data":{
                "payment_id":"ToMuTRjhCbrxv37JVMh05w",   支付方式ID
                "payment_method":"alipay",               支付方式 alipay 支付宝;wechat_pay 微信;bank_card_pay 银行卡
                "first_name":"firstName",                名
                "last_name":"lastName",                  姓
                "bank_name":"",                          开户银行(微信、支付宝请忽略此字段)
                "bank_branch_name":"",                   开户支行名称(微信、支付宝请忽略此字段)
                "account":"",                            账户
                "state":"enabled",                       状态 enabled 启用; disabled 停用
                "account_image_key":"",                  账户图片地址,如二维码
                "account_image_read_url":""              账户图片可读地址
            }
    }
    

    杠杆

    杠杆账户资产转入

    此API用于将交易账户或资产账户的资产转入到杠杆账户。

    HTTP Request

    POST https://api.fcoin.com/v2/broker/leveraged/assets/transfer/in

    请求参数

    参数 默认值 描述
    amount 划转数量
    currency 币种名称:usdt、btc、eth
    source_account_type 资产来源账户类型: exchange: 交易账户; assets: 资产账户
    target_account_type 目标账户类型: leveraged_btcusdt、leveraged_ethusdt、leveraged_eosusdt、leveraged_xrpusdt

    请求示例:

    {
      "amount": 1,
      "currency": "btc",
      "source_account_type": "exchange",
      "target_account_type": "leveraged_btcusdt"
    }
    

    响应结果

    {
      "data": null,
      "status": "ok"
    }
    

    杠杆账户资产转出

    此API用于将杠杆账户资产转入到交易账户或资产账户。

    HTTP Request

    POST https://api.fcoin.com/v2/broker/leveraged/assets/transfer/out

    请求参数

    参数 默认值 描述
    amount 划转数量
    currency 币种名称:usdt、btc、eth、eos、xrp
    source_account_type 资产来源账户类型: leveraged_btcusdt、leveraged_ethusdt、leveraged_eosusdt、leveraged_xrpusdt
    target_account_type 目标账户类型: exchange: 交易账户; assets: 资产账户

    请求示例:

    {
      "amount": 1,
      "currency": "btc",
      "source_account_type": "leveraged_btcusdt",
      "target_account_type": "exchange"
    }
    

    响应结果

    {
      "data": null,
      "status": "ok"
    }
    

    查询指定杠杆账户的信息

    请求url

    GET https://api.fcoin.com/v2/broker/leveraged_accounts/account

    请求参数

    参数 默认值 描述
    account_type 杠杆账户类型:btcusdt/ethusdt

    响应结果

    {
        "status": "ok",
        "data": {
            "open": true,                                    #是否已经开通该类型杠杆账户. true:已开通;false:未开通
            "leveraged_account_type": "btcusdt",             #杠杆账户类型
            "base": "btc",                                   #基准币种
            "quote": "usdt",                                 #计价币种
            "available_base_currency_amount": "1001.00",     #可用的基准币种资产
            "frozen_base_currency_amount": "0",              #冻结的基准币种资产
            "available_quote_currency_amount": "100100",     #可用的计价币种资产
            "frozen_quote_currency_amount": "0",             #冻结的计价币种资产
            "available_base_currency_loan_amount": "2.000",  #可借的基准币种数量
            "available_quote_currency_loan_amount": "300.000",#可借的计价币种数量
            "blow_up_price": null,                           #爆仓价
            "risk_rate": "0.90",                             #爆仓风险率
            "state": "open",                                  #账户状态. close 已关闭;open 已开通-未发生借贷;normal 已借贷-风险率正常;blow_up 已爆仓;overrun 已穿仓", allowableValues = "close,open,normal,blow_up,overrun")
            "base_currency_unpaid_amount":"1",                #基准币种累计待还款数量(包含利息)
            "quote_currency_unpaid_amount":"2"                #计价币种累计待还款数量(包含利息)
        }
    }
    

    查询所有杠杆账户的信息

    请求url

    GET https://api.fcoin.com/v2/broker/leveraged_accounts

    请求参数

    响应结果

    {
        "status": "ok",
        "data": [
            {
                "open": true,                                    #是否已经开通该类型杠杆账户. true:已开通;false:未开通
                "leveraged_account_type": "btcusdt",             #杠杆账户类型
                "base": "btc",                                   #基准币种
                "quote": "usdt",                                 #计价币种
                "available_base_currency_amount": "1001.00",     #可用的基准币种资产
                "frozen_base_currency_amount": "0",              #冻结的基准币种资产
                "available_quote_currency_amount": "100100",     #可用的计价币种资产
                "frozen_quote_currency_amount": "0",             #冻结的计价币种资产
                "available_base_currency_loan_amount": "2.000",  #可借的基准币种数量
                "available_quote_currency_loan_amount": "300.000",#可借的计价币种数量
                "blow_up_price": null,                           #爆仓价
                "risk_rate": "0.90",                             #爆仓风险率
                "state": "open",                                 #账户状态. close 已关闭;open 已开通-未发生借贷;normal 已借贷-风险率正常;blow_up 已爆仓;overrun 已穿仓"
                "base_currency_unpaid_amount":"1",                #基准币种累计待还款数量(包含利息)
                "quote_currency_unpaid_amount":"2"                #计价币种累计待还款数量(包含利息)
            }
        ]
    }
    

    杠杆借贷和还款

    下借款单

    POST https://api.fcoin.com/v2/broker/leveraged/loans

    请求参数

    参数 默认值 描述
    account_type 杠杆账户类型:btcusdt/ethusdt
    amount 借款数量
    currency 借款币种名称
    loan_type 借款类型. normal 正常借款(指定借款数量); all 全部(把剩余资产全部用来借款)

    响应结果

            {
            "amount": 0,                借款数量
            "created_at": 0,            账单生成时间
            "currency": "string",       借款币种名称
            "finished_at": 0,           还款完成时间
            "interest": 0,              总利息
            "interest_rate": 0,         借款利率
            "interest_start_at": 0,     计息开始时间
            "last_repayment_at": 0,     最后一次还款时间
            "loan_bill_id": 0,          借贷账单ID
            "next_interest_at": 0,      下一次计息时间
            "state": "string",          账单状态. submitted 已提交; 2 confirmed 已确认; 5 finished 还款完成
            "unpaid_amount": 0,         未还款数量
            "unpaid_interest": 0,       未还利息
            "unpaid_total_amount": 0    待还款总数量 (未还款数量+未还利息)
            }
    
    

    自定义查询杠杆借贷记录

    GET https://api.fcoin.com/v2/broker/leveraged/loans

    请求参数

    参数 默认值 描述
    has_prev 是否包含前一页,该参数由前端控制,原样返回
    id 最后一次分页的ID
    page_size 请求数量,1-40
    account_type 借款账户类型 BTCUSDT ETHUSDT
    skip_finish false 是否忽略已完成状态的借款单,默认不忽略

    响应结果

            {
            "content": [
                {
                "amount": 0,                借款数量
                "created_at": 0,            账单生成时间
                "currency": "string",       借款币种名称
                "finished_at": 0,           还款完成时间
                "interest": 0,              总利息
                "interest_rate": 0,         借款利率
                "interest_start_at": 0,     计息开始时间
                "last_repayment_at": 0,     最后一次还款时间
                "loan_bill_id": 0,          借贷账单ID
                "next_interest_at": 0,      下一次计息时间
                "state": "string",          账单状态. submitted 已提交; 2 confirmed 已确认; 5 finished 还款完成
                "unpaid_amount": 0,         未还款数量
                "unpaid_interest": 0,       未还利息
                "unpaid_total_amount": 0    待还款总数量 (未还款数量+未还利息)
            }
            ],
            "current_elements": 0,          查询结果集数量
            "has_next": true,               是否包含下一页
            "has_prev": true,               是否包含前一页,该参数由前端控制,原样返回
            "next_page_id": "string"        下一页查询条件ID
        }
    

    查询指定杠杆借贷详情

    GET https://api.fcoin.com/v2/broker/leveraged/loans/{leveraged_loan_id}

    请求参数

    参数 默认值 描述
    leveraged_loan_id 借贷账单ID

    响应结果

    
         {
                    "amount": 0,                借款数量
                    "created_at": 0,            账单生成时间
                    "currency": "string",       借款币种名称
                    "finished_at": 0,           还款完成时间
                    "interest": 0,              总利息
                    "interest_rate": 0,         借款利率
                    "interest_start_at": 0,     计息开始时间
                    "last_repayment_at": 0,     最后一次还款时间
                    "loan_bill_id": 0,          借贷账单ID
                    "next_interest_at": 0,      下一次计息时间
                    "state": "string",          账单状态. submitted 已提交; 2 confirmed 已确认; 5 finished 还款完成
                    "unpaid_amount": 0,         未还款数量
                    "unpaid_interest": 0,       未还利息
                    "unpaid_total_amount": 0    待还款总数量 (未还款数量+未还利息)
            }
    

    杠杆借款单还款

    POST https://api.fcoin.com/v2/broker/leveraged/repayments/{loan_bill_id}

    请求参数

    参数 默认值 描述
    loan_bill_id 借款单编号
      body
      {
       "amount": 0  还款数量
      } 
    

    响应结果

    还款单ID

    错误代码

    错误代码 含义解释
    400 Bad Request -- 错误的请求
    401 Unauthorized -- API key 或者签名,时间戳有误
    403 Forbidden -- 禁止访问
    404 Not Found -- 未找到请求的资源
    405 Method Not Allowed -- 使用的 HTTP 方法不适用于请求的资源
    406 Not Acceptable -- 请求的内容格式不是 JSON
    429 Too Many Requests -- 请求受限,请降低请求频率
    500 Internal Server Error -- 服务内部错误,请稍后再进行尝试
    503 Service Unavailable -- 服务不可用,请稍后再进行尝试