Up to 100 entries, each a shipment the caller already made of one shippable fulfillment order, recorded through the shipments create unit (rows, credits, stock move, facts and legacy messages in one transaction per entry). items default to every open line of the fulfillment order. Non-atomic by default: each entry is its own transaction and the answer carries one result per entry (a shipment, or the error that refused it; the request itself answers 200). atomic: true (at most 25 entries) runs one transaction, all or nothing: the first refusal answers its error with the entry index. A fulfillment order that is not in the queue is 409 fulfillment_order_not_shippable. Never buys a label.
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.
