# Update an order item (/api/orders/update-order-item)

`POST https://api.comecero.com/api/v1/orders/{order_id}/items/{item_id}`

Changes `fulfilled` or `meta` on one line of an order. Use it to mark a digital or service item delivered when you fulfil it yourself. When the last open item is marked fulfilled, the order becomes fulfilled, any pending (authorized) payment is captured (money moves) and the `order:fulfilled` event fires. For physical goods, create a shipment instead: it marks items fulfilled for you. Needs a secret or trusted token. Limited tokens get `403`.

## Parameters

- `order_id` (path, required): The order id.
- `item_id` (path, required): The item id within the order.
- `expand` (query): Comma-separated child objects to return in full instead of as a URL, for example `customer,payments`. Use dot notation for nested objects (`items.product`), up to four levels deep. A single object takes up to 12 paths; a list takes up to 2, applied to every item. Extra paths are dropped without an error. See [Expanding objects](https://docs.comecero.com/docs/basic-concepts/expanding-objects).

Request body: the `order_item_request` schema.

Responses: 200, 400, 401, 403, 404, 500.

Full schemas: operation `update_order_item` in /openapi.json.