Prerequisites
- A Bearer token.
- To enable tracking: a carrier reference configured under Settings > Carriers. Check what’s configured with the Carrier Configurations API.
The minimum Shipment
Onlyshipment_id is required:
shipment_id must be unique across your account and cannot be changed after creation. Use a stable identifier from your own system, such as your OMS shipment ID.Enable tracking
Addtracking_number and carrier_reference so Perform.AI can retrieve events from the carrier:
carrier_referencemust be configured in Settings > Carriers — an unconfigured value rejects the whole request (4030: “carrier_reference specified in request has not been created.”).tracking_numberneeds at least 6 characters including one digit; allowed characters areA–Z a–z 0–9 _ - . /, no spaces. It is stored uppercase.- Once the Shipment has track events,
tracking_numberandcarrier_referencecan no longer be changed — get them right at creation.
Recommended enrichment
These fields aren’t required but power search, notifications, and analytics:Read the response
Success returns the identifiers Perform.AI assigned, flat underdata:
shipment_uuid — it identifies the Shipment in every other endpoint.
HTTP 299 means the Shipment was created but part of the request was skipped (an unconfigured tracking page, events without a carrier). Inspect warnings and fix with an update — don’t resend the create, that attempts a duplicate. HTTP 400 (4030) means nothing was created; fix the listed fields and resend. See responses and errors.
Common validation failures
Next steps
- Update the Shipment — replace-vs-add semantics matter.
- Retrieve its details and watch
all_eventsfill. - Receive webhooks instead of polling.