Record a shipment the channel or the 3PL made (create, or update by externalId)

Records what shipped for an order (orderId) or one of its fulfillment orders (fulfillmentOrderId), in one transaction: the shipping log and its lines, the fulfillment-order and order credits, and the stock moved from the source location through the warehouse queue. A shipment is a recorded fact: it is never refused for missing stock; a source that held less on record than it shipped is corrected in the same transaction and answered as an inventory_shortfall warning. Items name an order line, a fulfillment-order line, or the product the order sold; anything else is 422. An externalId already on the channel (or, without an externalId, the same tracking number on a live shipment of the order) follows onDuplicate (default update: the body is applied as a PATCH whose items are the full list; error: 409; skip: the stored shipment). Never calls a carrier.

Scope: shipments:write, channel:write or admin.

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

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

string
length between 1 and 300

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

string
length between 1 and 300

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

date-time

ISO-8601, UTC.

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 3 and 3

ISO 4217; default the order currency.

postage
object

Links a label bought through Kentro (legacy shipping/create shipmentId). The shipment records the label's carrier, service level, tracking number, estimated delivery, delivery days, rate, insurance, package, currency and third-party billing instead of the body's, as legacy did; the order records the label's shipment id, carrier and tracking number. Nothing is charged, refunded or re-billed. No label with this shipment id on the order's channel: 422 postage_not_found; a label a shipment of the channel already links: 409 postage_already_linked.

carrier
object

A Kentro carrier adapter by id (its name is the carrier name), or a carrier name.

string
length between 1 and 100
string
length between 1 and 2048
string
length between 1 and 50
integer
0 to 3650
package
object
length ≤ 24
^[0-9]{1,14}(\.[0-9]{1,8})?$

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

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

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

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

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

boolean

The rate includes duties (DDP).

thirdPartyBilling
object
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.

shipTo
object
integer
0 to 2147483647
string
length ≤ 5000
inventory
object
items
array of objects
length between 1 and 500

The shipped lines. Required, unless inventory.skipAdjustment is true: a package-only record (carrier, tracking, package, charges) on an order whose lines are already credited.

items
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 64

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

string
length between 1 and 100

The order line's externalLineId.

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
integer
required
1 to 1000000
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.

metadata
object

Keys 1 to 100 characters, values up to 1000.

enum

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

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