Create Shipment
Creates a Shipment in your account. Only shipment_id is required; a
Shipment created without a tracking_number and carrier is an Open
Shipment — a standalone record you can complete later, or hand to the
Booking API to book with a carrier.
To have Perform.AI track the Shipment, also provide tracking_number
and carrier_reference. The carrier_reference must exist in your
account’s carrier configuration (Settings > Carriers) — an
unconfigured value blocks creation with a validation error.
Only the notification_email / notification_phone arrays subscribe
recipients to tracking notifications; the email / phone inside
address objects never do.
Authorizations
Used by every functional endpoint. Generate the token with POST /auth/oauth/token/ and send it as Authorization: Bearer {token}.
Body
Your unique identifier. Unique across the account; cannot be changed after creation. Accepts A–Z a–z 0–9 _ - ., no spaces.
50Carrier tracking number — optional, but needed (with carrier_reference) for tracking. A–Z a–z 0–9 _ - . /, no spaces, at least one digit. Stored uppercase.
6 - 50A carrier reference configured under Settings > Carriers. An unconfigured value blocks creation.
505050Attach to an existing order by its Perform.AI identifier. Preferred over order_id if both are sent.
Your order identifier. Creates the order if it doesn't exist.
50Settable only together with a new order_id.
50500500Stored lowercase.
100Recipients of tracking email notifications.
100Recipients of tracking SMS notifications, as +{country code}{number}.
30Assigns the Shipment to a tracking page for notification branding and tracking links. An unconfigured value returns a 299 warning.
50One of the Shipment's five address roles (recipient, sender, to, from, return). Provide either country or country_code. The email and phone here are contact data — they are never subscribed to tracking notifications.
One of the Shipment's five address roles (recipient, sender, to, from, return). Provide either country or country_code. The email and phone here are contact data — they are never subscribed to tracking notifications.
One of the Shipment's five address roles (recipient, sender, to, from, return). Provide either country or country_code. The email and phone here are contact data — they are never subscribed to tracking notifications.
One of the Shipment's five address roles (recipient, sender, to, from, return). Provide either country or country_code. The email and phone here are contact data — they are never subscribed to tracking notifications.
One of the Shipment's five address roles (recipient, sender, to, from, return). Provide either country or country_code. The email and phone here are contact data — they are never subscribed to tracking notifications.
Money string, e.g. 150 SGD.
Money string. Computed from shipping_costs if not provided.
Money string.
75Measurement string, e.g. 15 cm. Stored in cm.
Measurement string. Stored in cm.
Measurement string. Stored in cm.
Measurement string, e.g. 1.5 kg.
x >= 07550050050010050ISO 8601. Start of the expected delivery window.
ISO 8601. Requires expected_delivery_from.
Custom fields. Keys max 50 chars, values max 150.