批量撤销订单
接口描述
按系统订单 ID 批量撤销订单。
HTTP请求
DELETE /fapi/v1/batchOrders (HMAC SHA256)
请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderIdList | JSON LIST | NO | 系统订单 ID(UUID 字符串)的 JSON 数组,如 ["3fa42833-...","1692e583-..."] |
| timestamp | LONG | YES | 时间戳 |
本接口不支持按用户自定义 ID 撤单 —— 不接受
origClientOrderIdList。如果省略 orderIdList(或其无法解析为 JSON
数组),请求会成功并返回空数组;不会撤销任何订单。
响应示例
[
{
"orderId": "3fa42833-9508-4061-8d80-b68563dcd521",
"symbol": "BTCUSDT",
"status": "CANCELED",
"clientOrderId": "3fa42833-9508-4061-8d80-b68563dcd521",
"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
}
]
注意
- 响应中每个元素对应一笔成功撤销的订单。指向终态订单
(
FILLED/CANCELED/REJECTED)的 ID、不存在的 ID、以及无法 解析为 UUID 的 ID 都会从响应中省略 —— 不会产生错误元素。 - 每个响应元素中的
clientOrderId始终等于该订单的 UUID —— 用户提交的newClientOrderId不会在这里回显。 - 列表里的每个
orderId既可以是普通 resting 单,也可以是通过POST /fapi/v1/order下的触发单(STOP*/TAKE_PROFIT*); 撤单路径会自动识别类型并将触发单路由到触发服务。 - 被撤销订单对应的冻结保证金会释放回可用余额。
代码示例
cURL
API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
ID_LIST='["3fa42833-9508-4061-8d80-b68563dcd521","1692e583-1067-4a55-8ef2-73833eb31537"]'
QUERY_STRING="symbol=BTCUSDT&orderIdList=${ID_LIST}×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/batchOrders?${QUERY_STRING}&signature=${SIGNATURE}"
Python
import time, hmac, hashlib, requests, json
from urllib.parse import quote
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api.prex.world"
def sign(msg: str) -> str:
return hmac.new(API_SECRET.encode(), msg.encode(), hashlib.sha256).hexdigest()
# Batch cancel multiple orders by orderIdList
order_ids = [
"3fa42833-9508-4061-8d80-b68563dcd521",
"1692e583-1067-4a55-8ef2-73833eb31537",
]
ts = int(time.time() * 1000)
id_list_str = json.dumps(order_ids, separators=(',', ':'))
encoded = quote(id_list_str)
qs = f"symbol=BTCUSDT&orderIdList={encoded}×tamp={ts}"
sig = sign(qs)
resp = requests.delete(
f"{BASE_URL}/fapi/v1/batchOrders?{qs}&signature={sig}",
headers={"X-MBX-APIKEY": API_KEY},
)
print(resp.json())