# PUT /api/orders/{id} > Orders - Update an Order - **Endpoint:** `PUT /api/orders/{id}` - **Group:** Orders - **Since:** v1.0.0 - **Defined in:** `RestApi/Controllers/OrdersController.php` ## Headers | Field | Type | Description | | --- | --- | --- | | `authtoken` | String | Authentication token, generated from admin area | ## Parameters | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | Number | yes | Order unique ID | | `order_date` | string | no | Optional Order date to update | | `status_id` | number | no | Optional Status ID to update | | `note` | string | no | Optional Note to update | | `items` | Object[] | no | Optional replacement order lines, in the same shape GET /api/orders/:id/items returns. When present the existing lines are replaced; when absent the lines are left untouched. An empty array is rejected with a 400 instead of clearing the order. | | `items.title` | String | yes | Mandatory line title. A description is accepted instead. | | `items.description` | String | no | Optional line description | | `items.quantity` | Number | yes | Mandatory quantity, numeric | | `items.rate` | Number | yes | Mandatory unit rate, numeric | | `items.unit_type` | String | no | Optional unit type, maximum 20 characters | | `items.sort` | Number | no | Optional display order. Defaults to the array position. | | `items.item_id` | Number | no | Optional items library ID | ## Request example ```bash curl -X PUT "https://yoursite.com/index.php/api/orders/123" \ -H "authtoken: YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "items.title": "...", "items.quantity": "...", "items.rate": "..." }' ``` ## Responses ### Success - Success-Response: ```json HTTP/1.1 200 OK { "status": 200, "messages": {"success": "Order update success"} } ``` --- Part of the [REST API for RISE CRM](https://risecrm.themesic.com/apiguide/) documentation. Full page: https://risecrm.themesic.com/apiguide/orders/update-order/