Update Shipment Packing
PUT/api/spscommerce/fulfillments/:salesOrderFulfillment/packing
Replace the shipment's cartons. Partial packing may be saved; packing more of a line than shipped, or an empty carton, is refused with 422. Refused once packing is finalized (reopen first) or once the 856 has been sent.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Fields: cartons[] (required, may be empty) — each with lines[] (sales_order_fulfillment_line_id, quantity > 0), weight, weight_unit (LB|KG|OZ|G), length, width, height, dimension_unit (IN|CM), tracking_number.
Authentication: Requires Bearer token. Available for shipments of SPS Commerce EDI orders; other shipments return 404. Requires the sales_orders.update permission.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.