撤销订单
接口描述
撤销一个活跃订单。
HTTP请求
DELETE /fapi/v1/order (HMAC SHA256)
请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderId | STRING | NO | 系统订单 ID(UUID) |
| origClientOrderId | STRING | NO | 用户自定义订单 ID |
| timestamp | LONG | YES | 时间戳 |
响应示例
{
"orderId": "3fa42833-9508-4061-8d80-b68563dcd521",
"symbol": "BTCUSDT",
"status": "CANCELED",
"clientOrderId": "testOrder2",
"price": "60000",
"avgPrice": "0",
"origQty": "0.01",
"executedQty": "0",
"cumQuote": "0",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"side": "BUY",
"positionSide": "BOTH",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"updateTime": 1774330265238,
"time": 1774330191022
}
orderId 或 origClientOrderId 必须填 其一。
注意
- 任何不可撤销的订单都返回
-2011。这涵盖所有情形:订单已处于 终态(FILLED/CANCELED/REJECTED)、触发单已触发或已过期、 或订单已不在撮合引擎中(与成交发生竞态)。orderId/origClientOrderId无法定位到任何订单时返回-2013。 - 如果该订单本身是触发单(通过
POST /fapi/v1/order下的STOP*/TAKE_PROFIT*),撤单请求会转发到触发服务。没有级联撤销 —— 撤销一笔普通订单绝不会连带撤销任何其他订单。 - 撤单不是单一事务:撮合引擎移除、订单状态更新和保证金释放是 相互独立的步骤。
- 被撤销订单未成交余量对应的冻结保证金会释放回可用余额。
代码示例
cURL
API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
QUERY_STRING="symbol=BTCUSDT&orderId=3fa42833-9508-4061-8d80-b68563dcd521×tamp=${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.prex.world/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.prex.world"
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": "3fa42833-9508-4061-8d80-b68563dcd521"
})
print(resp.json())