Credits each line by the shipped quantity (at most its open quantity), rolls the fulfillment order and order statuses up, credits the order lines, and moves the stock from the source bin (the item's, the body's, else the fulfillment order's current location when it is not the queue) through the queue in the same transaction. External fulfillment orders and skipInventoryAdjustment move no stock. Closed and canceled fulfillment orders refuse (409).
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.
