# Cancel pending order (TRADE)

## HTTP Request

```http
DELETE /v1/order
```

## Request Weight

1 (1 against `ORDERS`)

## Request Parameters

| Name | Type | Mandatory | Description |
| - | - | - | - |
| `login` | LONG | YES | |
| `orderId` | LONG | conditional | Send this or `origClientOrderId` (`-1128` if both or neither). |
| `origClientOrderId` | STRING | conditional | The `newClientOrderId` the order was placed with. See [Known limitations](/known-limitations.md#modify--cancel--query-by-origclientorderid-does-not-find-a-pending-order). |
| `newClientOrderId` | STRING | NO | Idempotency key **for this cancel**. A retry with the same id returns the stored outcome instead of `-2013`. |
| `recvWindow`, `timestamp`, `signature` | | | |

## Response Example

```json
{
  "login": 100123,
  "clientOrderId": "bot-002-cancel",
  "origClientOrderId": "bot-002",
  "orderId": 44412350,
  "symbol": "XAUUSD",
  "side": "BUY",
  "type": "BUY_LIMIT",
  "volume": "0.10",
  "status": "CANCELED",
  "mt5RetCode": 10009,
  "transactTime": 1789012400500
}
```

`clientOrderId` is this cancel's own id (yours, or a generated one); `origClientOrderId` is the id the
order was placed with. The call waits up to 5 seconds for the trade server and answers `ACCEPTED` if
the cancel is not confirmed by then.

Cancelling an order that does not exist, has already filled, or has already been cancelled is
`-2013`. Without a `newClientOrderId`, cancelling is idempotent in effect but not in reporting: the
second call reports `-2013`, not `CANCELED`.

> **Pre-release:** cancels currently fail on the trade server — see
> [Known limitations](/known-limitations.md#cancelling-a-pending-order-currently-fails-on-the-trade-server).
