Skip to content

fatbtc/fatbtc-api-rest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 

Repository files navigation

fatbtc-api-rest

FatBTC Rest Api

Api Docs in English: https://github.com/fatbtc/fatbtc-api-rest/blob/master/README_en.md

Java版示例:https://github.com/fatbtc/fatbtc-api-rest/tree/master/master/java/fatbtc-api-rest-java

注意事项

  • 1.apiKey和apiSecret可从FatBTC申请的

  • 2.返回数据:

      所有接口返回数据格式都为  {"status":1, "msg":"success", data:""}
      
      1. status: 状态码, 1表示成功 其他表示失败 
      
      2. msg/message: 提示信息   
      	success: 成功  
      	ILLEGAL_TIMESTAMP_FORMAT: 时间戳格式错误  
      	ILLEGAL_SIGN_TYPE: 签名方法错误  
      	ILLEGAL_API_KEY: APIKey错误  
      	ILLEGAL_SIGN: 签名错误  
      	ILLEGAL_TIMESTAMP: 时间戳错误  
      	STOP_EX: 暂停服务   
      	ILLEGAL_IP: IP地址不正确    
      	API_NO_PRIVILEGE: APIKey没有该权限   
      	ILLEGAL_SYMBOL: 交易对不存在   
      	ILLEGAL_TRADE_PAIR: 交易对不存在或未启用
      	ILLEGAL_VOLUME: 订单数量不正确
      	ILLEGAL_PRICE: 订单价格不正确
      	ILLEGAL_PRICE_TYPE: 订单价格类型不正确(limit market)
      	ILLEGAL_O_TYPE: 订单类型不正确(buy sell)
      	ILLEGAL_SOURCE: 订单来源不正确(api web app)
      	LITTLE_THAN_MIN_BUY_VOLUME: 数量低于最低买入数量
      	LITTLE_THAN_MIN_SELL_VOLUME: 数量低于最低卖出数量
      	STOP_BUY_EX: 暂停买入
      	STOP_SELL_EX: 暂停卖出
      	ILLEGAL_PRICE_PRECISION: 价格小数位不准确
      	ILLEGAL_VOLUME_PRECISION: 数量小数位不准确
      	NO_SUFFICIENT_FUNDS: 余额不足
      	ILLEGAL_CURRENCY: 虚拟币不存在
      	CANNOT_WITHDRAW: 当前币种暂停提现
      	ILLEGAL_ADDRESS: 提现地址错误
      	ILLEGAL_WITHDRAW_AMOUNT: 提现数量有误
      	WITHDRAW_AMOUNT_MIN_THAN_MIN: 提现数量低于最小提现额度
      	NOT_AUTH_IDENTITY: 未实名认证
      	WITH_DRAW_THAN_MAX_V1: 超过24小时V1认证级别最大提现额度
      	WITH_DRAW_THAN_MAX_V2: 超过24小时V2认证级别最大提现额度
      	ORDER_DOES_NOT_EXIST: 订单不存在或订单号错误 
      	MARKET_ORDER_CANNOT_BE_CANCELLED: 市价单不需要取消
      	ORDER_IS_DONE_OR_CANCELED: 订单已取消或已完成
      
      3. data: 数据, 详见接口说明 
    
  • 3.本示例内url前缀为:https://www.fatbtc.com (建议中国大陆用户使用https://www.fatbtc.us)

  • 4.接口说明中涉及到的签名及签名方法(apikey、timestamp、signType和sign详见签名方法):[https://github.com/fatbtc/fatbtc-api-rest/blob/master/master/java/fatbtc-api-rest-java/src/com/fatbtc/util/MD5Util.java] MD5Util.createSign()

接口说明

  • 1.获得系统时间戳
    getSystemTimeStamp()

      url:/m/timestamp/{timestamp}
      
      method:get
      
      request:timestamp 时间戳
      
      response:{
      	"status":1,
      	"msg":"success",
      	"data":系统时间戳 
      }
      
      注意:交易请求返回 ILLEGAL_TIMESTAMP时,使用该方法返回的时间戳,带入请求参数
    
  • 2.获取系统支持的交易对
    getSymbols()

      url:/m/symbols/{site_id}/{timestamp}
      
      method:get
              
      request:
      	site_id: 1, 
      	timestamp: 时间戳
      
      response:
      {
      	"status":1,
      	"msg":"success",
      	"symbols":
      	[{
      		"symbol":交易对,
      		"base_currency":基础货币,
      		"quote_currency":计价货币,
      		"price_precision":价格小数位,
      		"volume_precision":数量小数位,
      		"taker_fee":吃单手续费费率,
      		"maker_fee":挂单手续费费率
      	}]
      }
    
  • 3.创建订单
    createOrder()

      url:/order/api/order
      
      method:post
      
      request: 
      {
      	api_key: api_key可以在用户中心中获取 ,
      	site_id: 1,
      	o_no: 订单编号,在当前交易对需唯一 ,
      	o_price_type: 价格类型:limit、market,分别代表限价单、市价单 ,
      	o_type: 订单类型:buy、sell,分别代表卖出、买入 ,
      	price: 价格,对限价单,表示买入/卖出价格,对于市价单,请填0 ,
      	sign: 使用api_secret对请求参数进行签名的结果 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	symbol: 交易对名称,如BTCCNY、LTCCNY、ETHCNY ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳,
      	volume: 数量,对限价单,表示买入/卖出数量,对于市价买单,表示买入多少计价货币(如CNY),市价卖单表示卖出多少基础货币(如BTC)
      }
      
      response:
      {
        "status": 1,
        "msg": "success",
        "data": 订单id
      }
    
  • 4.取消订单
    cancelOrder()

      url:/order/api/order
      
      method:delete
      
      request:
      {
      	api_key: api_key可以在用户中心中获取 ,
      	id: 订单ID ,
      	o_no: 订单号 ,
      	site_id: 1,
      	sign: 使用api_secret对请求参数进行签名的结果 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	symbol: 交易对名称,如BTCCNY、LTCCNY、ETHCNY ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。
      }
      
      response:
      {
        "status": 1,
        "msg": "success"
      }
    
  • 5.提现
    withdraw()

      url:/order/api/withdraw
      
      method:post
      
      request: 
      {
      	addr: 提币地址 ,
      	amount: 提币数量 ,
      	api_key: api_key可以在用户中心中获取 ,
      	site_id: 1,
      	currency: 币类型,如BTC、LTC、ETH ,
      	sign: 使用api_secret对请求参数进行签名的结果 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。
      }
      
      response:
      {
        "status": 1,
        "msg": "success",
        "data": 提现订单id
      }
    
  • 6.获得单个币资产
    getSingleCurrency()

      url:/m/api/a/account/{site_id}/{currency}/{api_key}/{timestamp}/{sign_type}/{sign}
      
      method:get
      
      request:
      	site_id: 1,
      	currency: 币类型,如BTC、LTC、ETH ,
      	api_key: api_key可以在用户中心中获取 ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	sign: 使用api_secret对请求参数进行签名的结果 ,
      	(apikey、timestamp、signType和sign详见签名方法)
      
      response: 
      {
      	"status":1,
      	"msg": "success",
      	account: {
      		available_balance: 可用余额,总余额-冻结余额 ,
      		currency: 货币代码,如BTC ,
      		frozen_balance: 冻结余额,如有挂单未成交,则有冻结余额 ,
      		total_balance: 总余额。可交易余额 = 总余额 - 冻结余额
      	}
      }
    
  • 7.获得资产列表
    getCurrencyList()

      url:/m/api/a/accounts/{site_id}/{apikey}/{timestamp}/{signType}/{sign}
      
      method:get
      
      request:
      	site_id: 1,
      	api_key: api_key可以在用户中心中获取 ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	sign: 使用api_secret对请求参数进行签名的结果 ,
      	(apikey、timestamp、signType和sign详见签名方法)
      	
      response:
      {
      	"status":1,
      	"msg": "success",
      	"accounts": [{
      		available_balance: 可用余额,总余额-冻结余额 ,
      		currency: 货币代码,如BTC ,
      		frozen_balance: 冻结余额,如有挂单未成交,则有冻结余额 ,
      		total_balance: 总余额。可交易余额 = 总余额 - 冻结余额
      	}],
      	"currencys":[{
      		c_cannot_recharge_desc_cn: 不能充值时中文描述 ,
      		c_cannot_recharge_desc_en: 不能充值时英文描述 ,
      		c_cannot_withdraw_desc_cn: 不能提现时中文描述 ,
      		c_cannot_withdraw_desc_en: 不能提现时英文描述 ,
      		c_intro_cn: 中文简要描述 ,
      		c_intro_en: 英文简要描述 ,
      		c_min_recharge: 最小充值额度 ,
      		c_min_withdraw: 最小提现额 ,
      		c_order: 排序 ,
      		c_precision: 小数位数 ,
      		can_recharge: 是否可充值 ,
      		can_withdraw: 是否可提现 ,
      		currency: 虚拟币代码 ,
      		currency_name: 虚拟币名称 ,
      		id: 虚拟币ID ,
      		is_in_eth: 是否为以太坊架构的币 ,
      		withdraw_fee: 提现手续费,分固定和百分比,详见下面的withdraw_fee_percent ,
      		withdraw_fee_max: 最高提现手续费,在百分比为1时有用,为0时,表示按百分比上不封顶 ,
      		withdraw_fee_min: 最低提现手续费,在百分比为1时有用 ,
      		withdraw_fee_percent: 提现手续费是否按百分比,0表示固定手续费,即固定为withdraw_fee,1表示提现手续费按百分比,即提现额的百分之withdraw_fee
      	}]
      }
    
  • 8.获得单个订单的交易明细(仅返回当前apikey对应数据)
    getSingleOrderDetail()

      url:/m/api/o/order/trades/{symbol}/{id}/{apikey}/{timestamp}/{signType}/{sign}
      
      method:get
      
      request:
      	symbol:交易对名称,如BTCCNY、LTCCNY、ETHCNY
      	id:交易id
      	api_key: api_key可以在用户中心中获取 ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	sign: 使用api_secret对请求参数进行签名的结果 
      	(apikey、timestamp、signType和sign详见签名方法)
      	
      response:
      {
      	"status":1,
      	"msg": "success",
      	symbol: 交易对 ,
      	timestamp: 时间戳 ,
      	total: 总记录数 ,
      	trades:[{
      		base_currency: 基础货币 如ETH ,
      		done_time: 成交时间 ,
      		fee: 成交手续费 ,
      		fee_currency: 手续费货币 ,
      		price: 成交价格 ,
      		quote_currency: 计价货币 如BTC ,
      		t_type: 订单类型:buy 买入、sell 卖出 ,
      		taker: 吃单方,取值为self(当前用户为吃单方)和opposite(对方用户为吃单方) ,
      		volume: 成交数量
      	}]
      }
    
  • 9.获得订单列表(仅返回当前apikey对应数据)
    getOrderList()

      url:/m/api/o/orders/{symbol}/{page}/{pageSize}/{status}/{apikey}/{timestamp}/{signType}/{sign}
      
      method:get
      
      request:
      	symbol:交易对名称,如BTCCNY、LTCCNY、ETHCNY
      	page:页数,从1开始,
      	pageSize:每页记录数,最大20,默认按时间倒叙排列 
      	status 0表示未完成(挂单中),1表示已完成(含已取消),2表示所有
      	api_key: api_key可以在用户中心中获取 ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	sign: 使用api_secret对请求参数进行签名的结果 
      	(apikey、timestamp、signType和sign详见签名方法)
      	
      response:
      {
      	"status":1,
      	"msg": "success",
      	symbol: 交易对 ,
      	timestamp: 时间戳 ,
      	total: 总记录数,
      	orders: [{
      		base_currency: 基础货币 ,
      		cancel_time: 撤销时间 ,
      		create_time: 创建时间 ,
      		done_amount: 已成交总额 ,
      		done_avg_price: 已成交均价 ,
      		done_fee: 已成交手续费,卖出方为计价货币,买入方为基础货币 ,
      		done_volume: 已成交数量 ,
      		fee_currency: 已成交手续费单位 ,
      		id: id ,
      		o_no: 订单号 ,
      		o_price_type: 价格类型:limit、market,即限价单、市价单 ,
      		o_status: watting 等待中,partial-done 部分成交,done 成交,partial-canceled 部分成交撤单,canceled 撤单 ,
      		o_type: 订单类型:buy、sell,即卖单、买单 ,
      		price: 价格,对限价单,表示下单时指定的价格,对于市价单,默认为0 ,
      		quote_currency: 计价货币 ,
      		source: 订单来源:api、Web、Wap、App ,
      		volume: 数量,对限价单,表示下单时指定的数量,对于市价买单,表示买多少计价货币,市价卖单表示卖多少基础货币
      	}]
      }
    
  • 10.获得已成交记录(仅返回当前apikey对应数据)
    getSuccessedOrders()

      url:/m/api/t/trades/{symbol}/{page}/{pageSize}/{apikey}/{timestamp}/{signType}/{sign}
      
      method:get
      
      request:
      	symbol:交易对名称,如BTCCNY、LTCCNY、ETHCNY
      	page:页数,从1开始,
      	pageSize:每页记录数,最大20,默认按时间倒叙排列 
      	status: 0表示未完成(挂单中),1表示已完成(含已取消),2表示所有
      	api_key: api_key可以在用户中心中获取 ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	sign: 使用api_secret对请求参数进行签名的结果 
      	(apikey、timestamp、signType和sign详见签名方法)
      
      response:
      {
      	"msg": "success",
          "status": 1,
      	symbol: 交易对 ,
      	timestamp: 时间戳 ,
      	total: 总记录数,
      	trades:[{
      		base_currency: 基础货币 如ETH ,
      		done_time: 成交时间 ,
      		fee: 成交手续费 ,
      		fee_currency: 手续费货币 ,
      		price: 成交价格 ,
      		quote_currency: 计价货币 如BTC ,
      		t_type: 订单类型:buy 买入、sell 卖出 ,
      		taker: 吃单方,取值为self(当前用户为吃单方)和opposite(对方用户为吃单方) ,
      		volume: 成交数量
      	}]
      }
    
  • 11.获得单个订单的详情(仅返回当前apikey对应数据) getOrderDetail()

      url:/m/api/o/order/detail/{symbol}/{id}/{apikey}/{timestamp}/{signType}/{sign}
      
      method:get
      
      request:
      	 symbol:交易对名称,如BTCCNY、LTCCNY、ETHCNY
      	 id:订单id
      	 api_key (string): api_key可以在用户中心中获取 ,
      	 timestamp (integer): 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。 ,
      	 sign_type (string): 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	 sign (string): 使用api_secret对请求参数进行签名的结果 ,
      	 (apikey、timestamp、signType和sign详见签名方法)
      response:
      {
      	"msg": "success",
      	"status": 1,
      	order:{
      		id: id ,
      		o_no: 订单号 ,
      		base_currency: 基础货币 ,
      		cancel_time: 撤销时间 ,
      		create_time: 创建时间 ,
      		create_time_unix: 创建时间戳 ,
      		done_amount: 已成交总额 ,
      		done_avg_price: 已成交均价 ,
      		done_fee: 已成交手续费,卖出方为计价货币,买入方为基础货币 ,
      		done_volume: 已成交数量 ,
      		fee_currency: 已成交手续费单位 ,
      		o_price_type: 价格类型:limit、market,即限价单、市价单 ,
      		o_status: watting 等待中,partial-done 部分成交,done 成交,partial-canceled 部分成交撤单,canceled 撤单 ,
      		o_type: 订单类型:buy、sell,即卖单、买单 ,
      		price: 价格,对限价单,表示下单时指定的价格,对于市价单,默认为0 ,
      		quote_currency: 计价货币 ,
      		source: 订单来源:api、Web、Wap、App ,
      		volume: 数量,对限价单,表示下单时指定的数量,对于市价买单,表示买多少计价货币,市价卖单表示卖多少基础货币
      	}
      	timestamp: timestamp
      	
      }
    
  • 12.取消全部订单
    cancelOrderAll()

      url:/order/api/order_all
      
      method:delete
      
      request:
      {
      	api_key: api_key可以在用户中心中获取 ,
      	site_id: 1,
      	sign: 使用api_secret对请求参数进行签名的结果 ,
      	sign_type: 使用api_secret对请求参数进行签名的方法,目前支持MD5、HmacSHA256,注意大小写,签名方法详见单独说明 ,
      	symbol: 交易对名称,如BTCCNY、LTCCNY、ETHCNY ,
      	timestamp: 时间戳,注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字),系统判定误差正负10秒内为合法时间戳。
      }
      
      response:
      {
        "status": 1,
        "msg": "success"
      }
    

About

FatBTC交易API Rest 版本 (FatBTC Rest Api)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages