跳到主要内容

撤销订单

接口描述

撤销一个活跃订单。

HTTP请求

DELETE /fapi/v1/order (HMAC SHA256)

请求权重

1

请求参数

名称类型是否必需描述
symbolSTRINGYES交易对
orderIdLONGNO系统订单 ID
origClientOrderIdSTRINGNO用户自定义 ID
timestampLONGYES时间戳

响应示例

{
"clientOrderId": "testOrder2",
"cumQty": "0",
"cumQuote": "0",
"executedQty": "0",
"orderId": 2254222045,
"origQty": "10",
"origType": "TRAILING_STOP_MARKET",
"price": "0",
"reduceOnly": false,
"side": "SELL",
"positionSide": "BOTH",
"status": "CANCELED",
"stopPrice": "0",
"closePosition": false,
"symbol": "BTCUSDT",
"timeInForce": "GTC",
"type": "TRAILING_STOP_MARKET",
"activatePrice": "9020",
"priceRate": "0.3",
"updateTime": 1566818724722,
"workingType": "CONTRACT_PRICE",
"priceProtect": false
}

命中的 orderId 或 origClientOrderId 必须填其一。

注意

  • 撤销父订单会级联撤销其挂着的 TP/SL trigger 单trigger_orders), 在同一事务内将 trigger 单状态改为 cancelled
  • 被撤销订单占用的冻结保证金会释放回 available_balance
  • 也可以直接以 trigger_orderorderId 调用本接口撤销 trigger 单。 失败的 4 种情形(已触发 / 已撤销 / 父仓位已平 / 非本人订单)会返回 不同错误码,方便前端给出对应提示。

代码示例

cURL

API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
QUERY_STRING="symbol=BTCUSDT&orderId=2254222045&timestamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "${QUERY_STRING}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $2}')

curl -s -X DELETE \
-H "X-MBX-APIKEY: ${API_KEY}" \
"https://api-sepolia.ztdx.io/fapi/v1/order?${QUERY_STRING}&signature=${SIGNATURE}"

Python

import time, hmac, hashlib, requests

API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api.ztdx.io"

def sign(params: str) -> str:
return hmac.new(API_SECRET.encode(), params.encode(), hashlib.sha256).hexdigest()

def signed_delete(path, params={}):
params["timestamp"] = int(time.time() * 1000)
qs = "&".join(f"{k}={v}" for k, v in params.items())
params["signature"] = sign(qs)
return requests.delete(f"{BASE_URL}{path}", params=params, headers={"X-MBX-APIKEY": API_KEY})

# Cancel an order by orderId
resp = signed_delete("/fapi/v1/order", params={
"symbol": "BTCUSDT",
"orderId": "2254222045"
})
print(resp.json())