Skip to main content

List Order Shipments

GET 

/api/sales-orders/:salesOrder/fulfillments

Lists ALL shipments (SalesOrderFulfillments) for a sales order, used by the order's Fulfillment tab. Includes VOIDED shipments: a voided shipment carries a non-null voided_at (plus void_reason and voided_by) and status=canceled — it was reversed and its fulfillment order reopened, but is kept for history. The UI buckets voided shipments into a read-only "Voided" filter and excludes them from the active lifecycle counts. Each shipment exposes its fulfillment_lines, warehouse, shipping method, tracking, and provider-sync timestamps.

Required scope: orders:read

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Authentication: Requires Bearer token.

Sales-channel cross-links: each shipment exposes sales_channel_fulfillment_link — non-null only when the shipment originated from a sales channel (Shopify or Faire), discriminated by channel. For channel: "shopify" it carries a fulfillment object (deep-link to the Shopify Fulfillment detail page) and a fulfillment_orders array (deep-links to each related Shopify Fulfillment Order detail page); its link_route already includes the required ?filter[integration_instance_ids]=N query param. For channel: "faire" it carries an order object (deep-link to the Faire order detail page) and a shipments array — one entry per package, since Faire splits an order into one label per box, each with its own carrier, tracking_number, and shipping_type. Every link object has link_id, link_reference, link_type_label, and a link_route. Manual / 3PL / FBA shipments return null for this field.

Multi-parcel shipments: each shipment also exposes a parcels array — one entry per shipped carton. A single shipment can span multiple boxes, each with its own carrier tracking number; tracking_number is only the primary (first) carton, while parcels is the full deduped list with the primary first. Each entry has tracking_number, plus delivery_status and carrier when live delivery tracking is connected (otherwise null). Only the tracking numbers are exposed — there is no per-carton line-item breakdown, since carriers return tracking numbers with no item-to-carton mapping. Single-parcel shipments return a one-element parcels array.

Request

Responses

OK

Response Headers
    Content-Type