Route the order's open lines into fulfillment orders

Routes every open order line that no open fulfillment order covers (manual warehouse pin, the channel routing rules, the channel's own fulfillment orders in the body, else default routing), one fulfillment order per route, reserves the open quantity in the same transaction, and answers the fulfillment orders it created (201 created). Nothing left to route: 200 unchanged, nothing written. Fulfillment orders disabled on the channel: 200 skipped. Held fulfillment orders (postage balance, test order, awaiting payment, manual) are born paused with the hold recorded. Send {} when there is nothing to add.

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.

Path Params
string
required
length between 1 and 300

The uuid, a legacy 24-hex id, or ext:: (URL-encoded).

Body Params
boolean

Create the fulfillment orders without reserving stock.

hold
object

A manual hold: every fulfillment order this call creates is born paused with it.

fulfillmentOrders
array of objects
length between 1 and 50

The channel's own fulfillment orders, one route each (closed and canceled ones are recorded, not routed); used when no routing rule routes the order.

fulfillmentOrders
string
required
length between 1 and 255

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

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
length between 1 and 255

The channel's own location for this fulfillment order, sent when that location maps to no Kentro warehouse: the fulfillment order routes external (the channel fulfills it from a location Kentro does not fulfill from). warehouseId wins when both are sent; with neither, the fulfillment order also routes external.

date-time

ISO-8601, UTC.

enum

The channel's job status (default open). open, scheduled, paused, in-progress and incomplete are work: the open quantity is routed, reserved as for any new fulfillment order, and the job status recorded (only open and in-progress are shippable from the queue). closed and canceled are records of what the channel already settled: the fulfillment order is written with the channel's lines and progress, never routed, never reserved, no stock moved. A record whose external id the order already carries changes nothing.

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

The order line's externalLineId.

integer
required
0 to 1000000

0 names a line the channel no longer fulfills on this fulfillment order (an order edit removed it): nothing is routed or recorded for it.

integer
0 to 1000000

Units of this line the channel reports already fulfilled, at most quantity (default 0). Recorded on the fulfillment-order line as the channel reports it, without moving stock; only the rest is routed and reserved.

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