Skip to main content

Bulk Fulfill Sales Orders

POST 

/api/sales-orders/fulfill

Fulfills multiple sales orders at once by submitting each order's pending fulfillment work to the shipping provider or fulfillment service configured for its warehouse(s). This is an operator-initiated action, so warehouse auto-dispatch eligibility rules are bypassed.

Required scope: orders:write

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

Authentication: Requires Bearer token.

Request body fields (one of ids or filters is required):

  • ids (array of integers, required without filters): Sales order IDs to fulfill.
  • filters (object, required without ids): Filter set that resolves to a list of sales order IDs (same shape used by the sales-orders listing endpoint).

Behavior:

  • Orders on hold (a hold_until_date in the future) are skipped and reported in the result errors.
  • No shipment record is created at submit time — the provider's ship confirmation records the shipment later.
  • Per-order failures do not abort the batch; they are collected and returned.
  • Returns a summary with total, success, errors, and an overall status of success or error. When some orders fail, the response is returned as a warning with the per-order errors listed under warnings.

Requires permission: sales_orders.fulfill

Request

Responses

OK

Response Headers
    Content-Type