Create a channel's or a 3PL's fulfillment order for an order's open lines

Creates one fulfillment order for the named open order lines (each quantity at most what no open fulfillment order covers; 409 exceeds_open_quantity otherwise) and reserves its open quantity at its queue in the same transaction. An externalId an open, untouched fulfillment order of the order without an external id already covers line for line is ADOPTED (that fulfillment order takes the external id: no second fulfillment order for the same lines). An externalId already on the channel follows onDuplicate (default update; error 409 duplicate; skip answers the stored one).

Scope: fulfillment:write, channel:write or admin. A permission group made before the Channel API scopes existed grants it as fulfillment-orders:manage.

Idempotency: send Idempotency-Key; a retry with the same key replays the first answer.

Rate limit: write class, 1,200 requests per minute per tenant by default (read class 6,000). Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; a refusal is 429 rate_limited with Retry-After.

Body Params
string
required
length between 1 and 300

The order: uuid, legacy 24-hex id or ext::.

enum
required

Who fulfills it: the channel (external), the tenant, a vendor portal, a vendor adapter or a 3PL.

string
length between 1 and 255

The integration's own id for the document, unique within its channel.

enum
string
^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[0-9a-fA-F]{24})$

A uuid, or a legacy 24-hex id.

string
^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[0-9a-fA-F]{24})$

A uuid, or a legacy 24-hex id.

string
^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[0-9a-fA-F]{24})$

A uuid, or a legacy 24-hex id.

string
^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|[0-9a-fA-F]{24})$

A uuid, or a legacy 24-hex id.

enum
date-time

ISO-8601, UTC.

date-time

ISO-8601, UTC.

date-time

ISO-8601, UTC.

length ≤ 24
^[0-9]{1,14}(\.[0-9]{1,8})?$

A non-negative decimal amount in currency units ("12.50"); numbers are accepted.

preselection
object
hold
object

A manual hold: the fulfillment order is paused and releases its reservation.

boolean

Create the fulfillment order without reserving stock.

enum

What a POST does when the document already exists. Default 'update' (D7).

items
array of objects
required
length between 1 and 500
items*
string
length between 1 and 64

The order line uuid (or its 24-hex line id).

string
length between 1 and 100

The order line's externalLineId.

integer
required
1 to 1000000
string
length between 1 and 255

The channel's own fulfillment line id.

Headers
string
length between 7 and 50

Any string of 7 to 50 characters that identifies this request (an order number, a webhook id). A retry with the same key and the same body answers the first result with Idempotent-Replayed: true; the same key with a different body is 422 idempotency_key_reused; a concurrent request with the same key is 409 in_progress with Retry-After. Recommended on every write.

Responses

Language
Credentials
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json