使用Binance API下卖单时遭遇400 Bad Request错误求助
排查Binance期货API 400 Bad Request卖单错误
以下是针对你遇到的问题的具体排查方向:
1. 移除无效的leverage参数
Binance期货下单接口(fapi/v1/order)不支持在下单时传入leverage参数,杠杆需要通过单独的接口fapi/v1/leverage提前设置。你当前请求中包含了leverage=20,这会被判定为非法参数,直接导致400错误。
解决方案:删除请求参数中的leverage字段,先调用杠杆设置接口完成杠杆配置,再提交下单请求。
2. 验证参数精度合规性
确认以下参数是否符合BTCUSDT永续合约的精度要求:
- 价格精度:BTCUSDT永续合约的最小价格变动单位为
0.1,你的价格29978.30符合要求,但建议简化为29978.3(避免多余的小数位)。 - 数量精度:BTCUSDT永续合约的最小下单数量为
0.001,你的quantity=0.002符合要求,这一点没问题。
3. 检查签名生成逻辑
确保签名生成过程完全符合Binance要求:
- 签名需要对**所有请求参数(包括
timestamp)**进行HMAC SHA256加密,且参数需按ASCII字母顺序排序。 - 如果你之前的签名包含了无效的
leverage参数,即使删除该参数后,也要重新生成签名,避免签名与实际参数不匹配。 - 确认
timestamp与Binance服务器时间差不超过5000ms,时间不同步会导致签名验证失败。
4. 确认API权限与账户状态
- 检查你的API Key是否开启了期货交易权限(在Binance后台API管理页面勾选“期货”权限)。
- 确认账户已开通BTCUSDT永续合约交易权限(需在Binance网页端完成合约交易的风险评估与开通流程)。
5. 核对请求头与参数格式
- 确保请求头中的
X-MBX-TIMESTAMP值与请求参数中的timestamp完全一致。 - 所有参数需使用
application/x-www-form-urlencoded格式提交,避免JSON格式(Binance期货下单接口不接受JSON请求体)。
内容的提问来源于stack exchange,提问作者David Santiago
相关产品推荐
相关产品推荐

