Execute Post-Submission Merge
POST/api/fulfillment-orders/merge-provider/execute
Runs a post-submission cross-order merge for already-dispatched fulfillment orders. The plan is re-validated first; if it can still run, a background job cancels the absorbed orders at the shipping provider, adds their items to the master order, and then records the merge in SKU (each sales order keeps its own tracking). Returns a job handle to track progress.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Body
fulfillment_order_ids(int[], required, min 2) — the orders to merge.primary_fulfillment_order_id(int, required) — the order that survives as the master (it receives the others' items).acknowledge_label_voids(bool, optional) — set true to confirm any labels that must be voided first.
Responses
202 Accepted—data.tracked_job_log_idto poll/subscribe on.422— the merge can't run;blockerslists why.
Required permission: fulfillment_orders.administer (Fulfillment Orders → Administer) and fulfillment_orders.index (Fulfillment Orders → View). A token also needs its orders scope; the owner needs these role permissions.
Request
Responses
- 202
- 401
- 403
- 422
- 429
Accepted
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden
Response Headers
Unprocessable Content
Response Headers
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.