# 下单

### 描述

:::tip

ACK 仅表示请求被成功接受，请使用 [WebSocket order](/zh-CN/docs/uta/websocket/private/Order-Channel) 推送来确认订单的实际状态。

:::

该接口支持现货、杠杆、合约以及 Reality（rToken）股票下单，并可以自定义包括价格、数量和订单类型等参数

- Reality（rToken）限频<br/>
  用户级：默认 5次/秒/UID，白名单用户 30次/秒/UID（可联系 BD/RM 申请）。

- 合约交易<br/>
  合约单向持仓下只减仓订单，如果已经存在减仓单并且减仓单数量已经等于仓位数量，或者你新下的减仓单大于仓位剩余数量，会自动把之前减仓单取消，重新下新的减仓单，此时返回的信息
  orderId会为 null，建议一定要传clientOid
- 杠杆交易<br/>
  杠杆下单会自动借贷
- 订单检查
    - 合约：Price下单价格要满足价格乘数priceMultiplier的倍数，并且符合pricePrecision小数位。qty要满足大于minOrderAmount并且满足sizeMultiplier的倍数
    - 现货：price要满足小数位。qty下单数量必须要大于 minOrderAmount
- 开仓逻辑
    - 双向持仓
      开多： side=buy & posSide=long<br/>
      开空：side=sell & posSide=short<br/>
      平多：side=sell & posSide=long<br/>
      平空：side=buy & posSide=short<br/>
    - 单向持仓
      开多 side:buy<br/>
      开空 side:sell<br/>
      平多 side:sell reduceOnly:yes<br/>
      平空 side:buy reduceOnly:yes
- 订单持有上限:
    - 合约: USDT合约/币本位合约/USDC合约所有交易对加起来一共最多支持400个订单
    - 现货: 现货/杠杆所有交易对最多支持400订单
- ClientOid 校验规则: <br/>
  请确保您的 clientOid 满足正则表达式 `^[0-9A-Za-z_:#\\-+\\s]{1,32}$`
- 请求监控:将针对您的 API 请求进行统计监控，当单日 (UTC 0点 - UTC 24点)
  单账号（母账号和子账号整体运算）订单总数超过一定上限，平台将保留提醒、警告，以及进行必要性限制的权利。
  使用API的客户预设接收本条款并负有配合调整的义务。
- 下单出现错误 `{ "code":"40762", "msg":"The order size is greater than the max open size", "requestTime":1627293504612 }` <br/>两种原因
    - 账户余额不足
    -
    当前交易对当前杠杆仓位梯度已满，具体仓位梯度请参考 <a href='https://www.bitget.com/zh-CN/trade-info/position-gear?symbolId=BTCUSDT_UMCBL'>
    仓位档位说明</a>
- 注意：操作订单时出现以下错误，请用clientOid查询订单详情，以确认操作的最终结果<br/>

- **币本位合约说明**:<br/>
    - <u>新币本位业务线symbol格式为"XXXUSD_CM"，例如BTCUSD交易对在币本位合约的格式为BTCUSD_CM</u>
    - 新币本位暂时不支持修改订单，ADL，策略单，预设止盈止损

```json title="错误码示例"
{ "code": "40010", "msg": "Request timed out", "id": 1666268894074, "event":"error" }
{ "code": "40725", "msg": "service return an error", "id": 1666268894071, "event":"error" }
{ "code": "45001", "msg": "Unknown error", "id": 1666268894071, "event":"error" }
```

<div className="api-aligning">

```json title="请求示例"
{
  "op": "trade",
  "id": "1750034396082",
  "category": "spot",
  "topic": "place-order",
  "requestTime": "1750034396082",
  "args": [
    {
      "orderType": "limit",
      "price": "100",
      "qty": "0.1",
      "side": "buy",
      "symbol": "BTCUSDT",
      "timeInForce": "gtc",
    }
  ]
}
```

### 请求参数

| 参数名               | 参数类型               | 是否必须 | 描述                                                                                                                                                                                                                                                     | 
|:------------------|:-------------------|------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| op                | String             | 是    | 操作: <br/> `trade` 交易                                                                                                                                                                                                                                   |
| id                | String             | 是    | 请求标识                                                                                                                                                                                                                                                   |
| topic             | String             | 是    | 频道名: <br/> `place-order` 下单                                                                                                                                                                                                                            |
| category          | String             | 是    | 业务线（必须小写）<br/>`spot`现货交易<br/>`margin` 杠杆交易<br/> `usdt-futures` U本位合约<br/>`coin-futures` 币本位合约<br/>`usdc-futures` USDC合约                                                                                                                                     |
| apiCode           | String             | 否    | API返佣标识                                                                                                                                                                                                                                                |
| requestTime       | String             | 否    | 请求时间（客户端时间戳）<br/>用于与 `receiveWindow` 比对时间差值<br/>不传则 `receiveWindow` 参数无效                                                                                                                                                                                    |
| args              | List&lt;Object&gt; | 是    | 请求订阅的频道列表                                                                                                                                                                                                                                              |
| &gt; symbol       | String             | 是    | 交易对名称                                                                                                                                                                                                                                                  |
| &gt; [orderType](/zh-CN/docs/uta/enum#ordertype)    | String             | 是    | 订单类型 <br/>`limit` : 限价<br/> `market` : 市价                                                                                                                                                                                                              |
| &gt; qty          | String             | 是    | 下单数量<br/> - 现货<br/> 市价买单，单位为quote coin<br/>限价及市价卖单，单位为base coin <br/> USDT/USDC合约： <br/> 单位为**base coin**  <br/> 币本位合约： <br/> 单位为 **<u>quote coin</u>**                                                                                                |
| &gt; price        | String             | 否    | 下单价格<br/>订单类型为限价单`limit`时，该字段必填<br/>订单类型为市价单`market`时，该字段失效                                                                                                                                                                                            |
| &gt; side         | String             | 是    | 下单方向<br/>`buy`: 买<br/>`sell`: 卖                                                                                                                                                                                                                        |
| &gt; posSide      | String             | 否    | 交易方向<br/>`long` 多仓<br/>`short` 空仓<br/>只限于合约传此参数 其他忽略<br/>用于合约双向持仓                                                                                                                                                                                      |
| &gt; timeInForce  | String             | 否    | [订单执行策略](https://www.bitget.com/zh-CN/support/articles/12560603818004) <br/> `gtc`: 普通订单, 订单会一直有效，直到被成交或者取消<br/>`ioc`: 无法立即成交的部分就撤销<br/>`fok`: 无法全部立即成交就撤销 <br/> `post_only`: 只做maker <br/>[`rpi`](https://www.bitget.com/zh-CN/support/articles/12560603867770): 零售价格优化订单，为零售订单流提供价格优化的非显示限价单。仅限拥有RPI做市商权限的账户使用。<br/>订单类型为限价单limit时必填，若省略则默认为gtc<br/>订单类型为市价单market时，该字段失效，系统会按照ioc执行 |
| &gt; reduceOnly   | String             | 否    | 是否只减仓<br/>`YES`是<br/>`NO`否<br/>默认值为`NO`; 仅适用于买卖单向持仓模式下                                                                                                                                                                                                 |
| &gt; clientOid    | String             | 否    | 自定义订单ID<br/>需满足正则表达式 `^[0-9A-Za-z_:#\-+\s]{1,32}$`，即 1-32 个字符，可包含大小写字母、数字、下划线(_)、连字符(-)、加号(+)、冒号(:)、井号(#)和空格                                                                                                                                                                                                                                                |
| &gt; stpMode      | String             | 否    | [STP（自成交预防）模式](https://www.bitget.com/zh-CN/support/articles/12560603812732)<br/>`none`：不比较双方用户ID，订单正常成交，不触发STP（默认值）<br/>`cancel_taker`：检测到自成交时，取消taker（吃单方）订单，maker（挂单方）订单保留在订单簿中 <br/>`cancel_maker`：检测到自成交时，取消maker（挂单方）订单，taker（吃单方）订单继续执行 <br/>`cancel_both`：检测到自成交时，taker和maker订单都取消<br/>STP判定以taker订单自身携带的`stpMode`为准，不看maker订单原有的`stpMode`设置                                                                                                                                  |
| &gt; tpTriggerBy  | String             | 否    | 预设止盈触发类型<br/>`market`市场价格<br/>`mark`标记价格<br/>如不填写，默认值为`market`市场价格<br/>该字段仅针对合约业务线`usdt-futures`，`coin-futures`及`usdc-futures`生效                                                                                                                       |
| &gt; slTriggerBy  | String             | 否    | 预设止损触发类型<br/>`market`市场价格<br/>`mark`标记价格<br/>如不填写，默认值为`market`市场价格<br/>该字段仅针对合约业务线`usdt-futures`，`coin-futures`及`usdc-futures`生效                                                                                                                       |
| &gt; takeprofit   | String             | 否    | 预设止盈触发价格                                                                                                                                                                                                                                               |
| &gt; stoploss     | String             | 否    | 预设止损触发价格                                                                                                                                                                                                                                               |
| &gt; tpOrderType  | String             | 否    | 止盈触发的策略单类型<br/>`limit` 限价单<br/>`market` 市价单                                                                                                                                                                                                            |
| &gt; slOrderType  | String             | 否    | 止损触发的策略单类型<br/>`limit` 限价单<br/>`market` 市价单                                                                                                                                                                                                            |
| &gt; tpLimitPrice | String             | 否    | 止盈策略单执行价格<br/>仅限价单`tpOrderType=limit`时有效，市价单忽略该参数                                                                                                                                                                                                      |
| &gt; slLimitPrice | String             | 否    | 止损策略单执行价格<br/>仅限价单`slOrderType=limit`时有效，市价单忽略该参数                                                                                                                                                                                                      |
| &gt; marginMode      | String             | 否    | 保证金模式<br/>`crossed` 全仓<br/>`isolated` 逐仓<br/>不传默认为全仓<br/>仅适用于合约                                                                                                                                                                                           |
| &gt; autoBorrow      | String             | 否    | 自动借币开关<br/>`yes` 开启<br/>`no` 关闭（默认）<br/>仅用于现货下单。开启后，若得到币不支持借贷、消耗币支持借贷，则在消耗币可用余额不足时，系统将自动借入消耗币，补足委托所需金额。 |
| &gt; receiveWindow   | String             | 否    | 有效窗口期（订单TTL机制）<br/>单位为毫秒，有效范围：[10, 60000]<br/>不填则不设置有效期，订单长期有效直至撤单或成交<br/>注意：`receiveWindow` 仅在同时传入 `requestTime` 时生效                                                                                                                                    |

</div>


<div className="api-aligning">

```json title="响应示例"
{
  "event": "trade",
  "id": "1750034396082",
  "category": "spot",
  "topic": "place-order",
  "args": [
    {
      "symbol": "BTCUSDT",
      "orderId": "xxxxxxxx",
      "clientOid": "xxxxxxxx",
      "cTime": "1750034397008",
      "receiveTime": "1750034396998123",
      "pushTime": "1750034397076456"
    }
  ],
  "code": "0",
  "msg": "success",
  "connId": "xxxxxxxxxx",
  "rateLimit": [
    {
      "limit": "10",
      "remaining": "9"
    }
  ],
  "ts": "1750034397076"
}
```

### 响应参数说明

| 返回字段              | 参数类型               | 字段说明                                                                                                               |
|:------------------|:-------------------|:-------------------------------------------------------------------------------------------------------------------|
| event             | String             | 事件<br/>`trade` 交易<br/>`error`参数错误                                                                                  |
| id                | String             | 请求标识                                                                                                               |
| topic             | String             | 频道名<br/>`place-order`下单                                                                                            |
| category          | String             | 业务线 <br/>`spot`现货交易<br/>`margin` 杠杆交易<br/> `usdt-futures` U本位合约<br/>`coin-futures` 币本位合约<br/>`usdc-futures` USDC合约 |
| args              | List&lt;Object&gt; | 订单列表                                                                                                               |
| &gt; symbol       | String             | 交易对名称，如`BTCUSDT`                                                                                                   |
| &gt; orderId      | String             | 订单ID                                                                                                               |
| &gt; clientOid    | String             | 自定义订单ID                                                                                                            |
| &gt; cTime        | String             | 订单创建时间 <br/>Unix毫秒时间戳                                                                                              |
| &gt; receiveTime  | String             | 网关接收时间 <br/>Unix微秒时间戳                                                                                             |
| &gt; pushTime     | String             | 网关推送时间 <br/>Unix微秒时间戳                                                                                             |
| code              | String             | 状态码                                                                                                                |
| msg               | String             | 状态消息                                                                                                               |
| connId            | String             | 连接ID                                                                                                               |
| rateLimit         | Array              | 限频余额数组                                                                                                             |
| &gt; limit        | String             | 该维度限额                                                                                                              |
| &gt; remaining    | String             | 剩余可用次数                                                                                                             |
| ts                | String             | 时间戳                                                                                                                |

</div>

































