---
title: "Cancel specific position items of an order"
method: POST
path: "/v4/orders/{salesOrderId}/positionItems/{positionItemIds}/cancellation"
tags: ["Orders V4"]
---

# Cancel specific position items of an order

`POST /v4/orders/{salesOrderId}/positionItems/{positionItemIds}/cancellation`

## Request

- Base URL: `https://api.otto.market`
- URL: `https://api.otto.market/v4/orders/{salesOrderId}/positionItems/{positionItemIds}/cancellation`
- Auth: HTTP bearer

Allows to cancel specific position items of an order by salesOrderId and positionItemIds.<br>Note: Only position items in state PROCESSABLE can be cancelled. Position items in state CANCELLED_BY_PARTNER will be ignored. If any position item is in a different state the operation will leave the whole order unchanged and respond with a conflict error message.

## Path parameters

- `salesOrderId` string, required
- `positionItemIds` string, required

## Response `202`

The request was accepted - update will be processed asynchronously

## Other responses

- `400`: Request is invalid
- `401`: Authentication failed
- `403`: Forbidden
- `404`: Order with given salesOrderId not found or order did not contain one of the given positionItemIds
- `409`: There was a conflict while trying to cancel

## Changes

- **2026-09-01** `b1bc133112bd`: 1 info
  - for the `path` request parameter `positionItemIds`, the type was generalized from `array` to `string`

[Operation history](https://skmtc.dev/otto/apis/otto-market-api/changes/v4/orders/:salesOrderId/positionItems/:positionItemIds/cancellation/post.md)

---

[API](https://skmtc.dev/otto/apis/otto-market-api.md) - [All operations](https://skmtc.dev/otto/apis/otto-market-api/llms.txt) - [OpenAPI document](https://skmtc.dev/otto/apis/otto-market-api/revisions/cc8a74b62e87?raw)
