Edit Shipping Details
PATCH/api/v2/sales-order-fulfillments/:salesOrderFulfillment/shipping-details
Edit an existing fulfillment's shipping details — tracking number and shipping cost. Works after the order has shipped or closed: unlike the fulfill flow it does not require an open sales order or fulfillment lines. Never changes the warehouse.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Body fields (all optional — send only what changes):
- tracking_number (string, nullable, max 255)
- cost (numeric, nullable, >= 0, < 99999.9999)
A changed cost is applied exactly like Set Fulfillment Cost: the fulfillment's Shipping Cost line on the sales order is created, updated or (for null/0) removed to match, and a changed cost requires the sales_orders.update permission. A changed cost is refused on a cancelled order or a voided fulfillment (422). Re-sending the current cost is not a change, so a tracking-only edit is never blocked by these rules.
Authentication: Requires Bearer token.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
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.
Unprocessable Entity
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.