Skip to main content
PATCH
Update shipment details such as pickup schedule, package count, or notes. If any logistics-relevant fields change (pickup date, time, package count, or weight), the existing logistics order is cancelled and a new one is created automatically. Fields you omit are preserved from the existing shipment. Updated schedule fields are validated against the pickup schedule rules.
Shipments cannot be modified after pickup. Attempting to update a shipment that has already been picked up returns 409 Conflict.
A home-kit parcel already has its label printed, so only notes can change. A new pickup window or weight on a home-kit parcel returns 409 Conflict; cancel it and create a new shipment instead. To update a home-kit parcel, every linked home-kit order must be in your access context. Otherwise the call returns 403. See Access.

Request

Path parameters

string
required
Shipment reference ID (e.g., P2604154821).

Body parameters

All body parameters are optional — only include the fields you want to change.
string
New pickup date in YYYY-MM-DD format, interpreted in the origin location’s timezone.
string
New earliest pickup time in HH:MM format, interpreted as wall-clock time in the origin location’s timezone.
string
New latest pickup time in HH:MM format, interpreted as wall-clock time in the origin location’s timezone.
integer
New number of packages.
number
New weight in kg.
string
New notes or remarks. Maximum 128 characters.

Response

On success, the API returns 200 OK with the updated shipment.
string
required
Shipment reference identifier.
string
required
Shipment lifecycle status. One of pending, in_transit, delivered, fault, or cancelled.
string
required
Logistics provider. One of go, dhl_parcel, dhl_warenpost, tof, rotrunner, rapido or ups. A home-kit parcel is dhl_parcel, or dhl_warenpost when it goes abroad as Warenpost International.
string
External tracking number from the logistics provider. May be null.
string
Free-text description of what is in the parcel, as given at creation. May be null.
string
required
Who printed the label: aniva or external. Only aniva shipments accept this call.
string
Reference of the other parcel of a two-parcel consignment. null for a one-way parcel.
object
Pickup address. May be null.
object
Delivery address. Same structure as origin. May be null.
object
Scheduled pickup window. May be null.
string
Optional notes. May be null.
object[]
required
Chronological lifecycle events from the logistics provider (oldest first). Each entry has state, code, detail_code, status, description, location and time. See Get Shipment for each field. Empty array if no events observed yet.
ShipmentAppointmentLink[]
required
Appointments linked to this shipment, oldest-link first. Each entry is { id, added_at }; cross-reference each id against Get Appointment. Only the appointments in your access context are listed.
ShipmentHomeKitOrderLink[]
required
Home-kit orders linked to this shipment, oldest-link first, in the same { id, added_at } shape. Only the orders in your access context are listed. Empty array for practice parcels.
string
When the shipment was last reconciled with its carrier, as a UTC instant. null until the first sync.
string
required
Creation timestamp (ISO 8601).
string
Last update timestamp (ISO 8601). May be null.

Error responses