Create Dropship Request
POST/api/sales-orders/:salesOrder/dropship-request
Creates a dropship request for the sales order: a purchase order is created and submitted to the supplier behind the given dropship warehouse for the selected lines, priced at supplier cost, with the sales order's shipping address as the delivery destination.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
Request body fields:
- warehouse_id (integer, required): The supplier (dropship) warehouse to order from. Must have the dropship setting enabled, otherwise the request fails with 400.
- sales_order_lines (array, required): The order lines to dropship.
- sales_order_lines.*.id (integer, required): Sales order line ID.
- sales_order_lines.*.quantity (integer, optional): Quantity to dropship. Defaults to the full line quantity; values above the line quantity are capped.
- requested_shipping_method_id (integer, optional): Mapped shipping method to request from the supplier.
- requested_shipping_method (string, optional): Free-text requested shipping method.
- supplier_notes (string, optional): Notes shown to the supplier on the purchase order.
- internal_notes (string, optional): Internal notes on the purchase order.
Behavior:
- The purchase order is linked to the sales order and submitted immediately.
- The order's pending fulfillment work for that warehouse is marked as ordered, and the order's fulfillment status is recalculated.
- The response returns the created purchase order.
Path parameters:
- salesOrder (required): Sales order ID.
Requires permission: sales_orders.fulfill
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Bad Request
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.
Unprocessable Entity
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.