Create Send Plan Drafts
POST/api/send-plans/:sendPlan/drafts
Hand a plan's lines to each network's own inbound flow. Lines are grouped into one draft per destination network and source warehouse, and drafts are created in the background (returns 202 with the pending drafts). Groups fail independently, so one network's error never blocks the others — check List Send Plan Drafts, and retry failed ones with Retry Failed Send Plan Drafts.
send-plans:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
By default the source stock is held first (all-or-nothing) so other orders cannot take it before the network draft reserves it.
Authentication: Bearer Personal Access Token with the send-plans:write scope. The token's user also needs permission to create send planner drafts.
Body fields (all optional):
- line_ids (integer[], max 20000): lines to draft. Omit to draft every line with units to send.
- networks (string[]): only these networks (amazon_fba, amazon_awd, walmart_wfs, tiktok_fbt).
- hold (boolean, default true): hold source stock before drafting.
- groups (array, max 500): only these draft groups, with the options each network's own create flow offers (see Preview Send Plan Drafts). Omit for every group the lines form.
- groups[].destination_warehouse_id (integer, required) and groups[].source_warehouse_id (integer, required): the group.
- groups[].draft_name (string, max 40): name for the network draft (Amazon's limit is 40 characters).
- groups[].append_to_draft_id (integer): add the lines to this open network draft instead of creating a new one.
- groups[].listing_skus (object): line ID → listing SKU to send under, for products with more than one listing on the network.
For a send run, every network with units must first be approved at its current quantity (see Send Run Approvals); otherwise 422 with an approvals error naming each network still to approve.
Returns 422 when the plan is not ready, is a scenario, is more than 3 days old, has nothing to draft in the selection, or a source no longer has the stock to hold.
Request
Responses
- 202
- 401
- 403
- 404
- 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 — 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 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.