Skip to main content
POST
Create a shipment order from the specified origin location. The destination is automatically determined based on the location’s configuration.

Request

Body parameters

string
required
Origin test location UUID. The location must be active and within your API key’s access context. Use List Locations to find available location IDs.
string
Optional appointment UUID to link this shipment to at creation time. The appointment must be within your API key’s access context. The link surfaces inline as an entry in the shipment’s appointments array, and conversely as an entry in the appointment’s shipments array. To link additional appointments after creation, or remove the initial link, use Attach Appointments to Shipment and Detach Appointments from Shipment.
string
required
Pickup date in YYYY-MM-DD format (e.g., 2026-04-15), interpreted in the origin location’s timezone. Must be a weekday (Monday–Friday), today or in the future. Same-day pickups are not available after 16:00 Europe/Berlin.
string
required
Earliest pickup time in HH:MM format (e.g., 09:00), interpreted as wall-clock time in the origin location’s timezone. Must be between 09:00 and 19:00.
string
required
Latest pickup time in HH:MM format (e.g., 12:00), interpreted as wall-clock time in the origin location’s timezone. Must be between 09:00 and 19:00. The window (pickup_time_till - pickup_time_from) must be at least 2 hours.
integer
default:"1"
Number of packages. Defaults to 1.
number
default:"1"
Weight in kg. Defaults to 1.
string
Instructions for the courier at pickup (consignor remarks). When omitted, the pickup address’s stored remarks are used (or none if the address has none). Maximum 128 characters.
string
Optional internal notes. Maximum 128 characters.

Response

On success, the API returns 201 Created with the new shipment.
string
required
Shipment reference identifier (e.g., P2604151234).
string
required
Shipment lifecycle status. One of pending, in_transit, delivered, fault, or cancelled.
string
required
Logistics provider. One of go, dhl, or tof.
string
External tracking number from the logistics provider. May be null.
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 a status (free-form provider-sourced label) and time (ISO 8601). Empty array immediately after creation; populated by the hourly sync as the provider reports events.
ShipmentAppointmentLink[]
required
Appointments linked to this shipment, oldest-link first. Each entry is { id, added_at }; cross-reference each id against Get Appointment. Contains the appointment passed via appointment_id (if any) immediately after creation.
string
required
Creation timestamp (ISO 8601).
string
Last update timestamp (ISO 8601). May be null.

Error responses