Skip to content
v0.3

order.shipment.create

Split an order into another parcel: move the given quantities of order items out of a parcel that has not been dispatched yet and into a new one, optionally from a different warehouse. Quantities are validated against what the source parcel still holds — asking for more is refused with exceeds_remaining and both numbers. The new parcel’s estimated delivery date is stamped here and never recalculated.

  • Scope: order.write
  • System: no
  • Reachable from: POST /v1/commands/order.shipment.create (tenant credential) · MCP tool order.shipment.create · SDK client.call('order.shipment.create', …)
  • Events: shipment.created
{
"properties": {
"from_shipment_id": {
"minLength": 1,
"type": "string"
},
"items": {
"items": {
"properties": {
"order_item_id": {
"minLength": 1,
"type": "string"
},
"qty": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"order_item_id",
"qty"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"order_id": {
"minLength": 1,
"type": "string"
},
"warehouse_id": {
"minLength": 1,
"type": "string"
}
},
"required": [
"order_id",
"items"
],
"type": "object"
}
{
"additionalProperties": false,
"properties": {
"estimated_delivery_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"order_id": {
"type": "string"
},
"shipment_id": {
"type": "string"
}
},
"required": [
"order_id",
"shipment_id",
"estimated_delivery_date"
],
"type": "object"
}

validation_failed (400) · unauthorized (401) · forbidden (403) · conflict (409) · internal (500)