---
title: "Correct an existing shipment (add sent items) by shipment ID."
method: POST
path: "/v1/shipments/{shipmentId}/positionitems"
tags: ["Shipments V1"]
---

# Correct an existing shipment (add sent items) by shipment ID.

`POST /v1/shipments/{shipmentId}/positionitems`

## Request

- Base URL: `https://api.otto.market`
- URL: `https://api.otto.market/v1/shipments/{shipmentId}/positionitems`
- Auth: HTTP bearer

This endpoint allows to update an existing shipment with new position items. Note that this is just a correction process for shipments where position items are missing. A separate purchase receipt will be generated for the newly added position items.

## Path parameters

- `shipmentId` string, required

## Request body

- PositionItemShipmentsV1[]
  - `positionItemId` string, uuid, required: The ID of a position item of the sales order from the OTTO Market, as defined in the Order API.
  - `salesOrderId` string, uuid, required: The ID of the sales order from the OTTO Market, as defined in the Order API.
  - `returnTrackingKey` ReturnTrackingKeyShipmentsV1, required: The return tracking key for the return process. <br> **Required for parcel deliveries.** <br> **Optional for forwarder deliveries.** <br> Each position item can have its own return tracking key.
    - `carrier` 'DHL' | 'GLS' | 'HERMES', required: The carrier for the return process, which can differ from the carrier used to deliver the shipment to the customer. Please be aware that this carrier can not differ from the chosen carrier in the OPC portal.
    - `trackingNumber` string, required: The tracking number (or return tracking number) assigned by the carrier.
  - `returnAddressCarrierId` string, uuid: Unique identifier for the return address and the return carrier combination. A returnAddressCarrierId is required when a partner has multiple return addresses/carriers. This identifier can be obtained through the ReturnsWarehouse API or in the Partner-Portal. Note that all position items within the same shipment must have the same returnAddressCarrierId.

## Response `200`

OK

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `404`: Not Found
- `409`: Conflict
- `500`: Internal Server Error

---

[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)
