Skip to content
v0.3

checkout.place_order

Turn a completed cart into an order — atomically reserves stock, freezes totalizers, creates the order (pending_payment). The order CONSUMES the cart lines; the cart itself survives with its buyer, address and preferences, ready for another purchase (one cart, many orders). Idempotent: repeating this call on the same cart while it is still empty returns the SAME order_id instead of creating a second one.

  • Scope: public
  • System: no
  • Reachable from: POST /v1/checkout/commands/checkout.place_order — an ANONYMOUS face: x-forge-store is required, no credential is sent, and it is never on /v1/commands/* · MCP tool checkout.place_order
  • Events: order.created, inventory.reserved, order.hold.applied, promotion.applied
{
"properties": {
"cart_id": {
"minLength": 1,
"type": "string"
},
"origin": {
"properties": {
"city": {
"type": "string"
},
"name": {
"type": "string"
},
"region": {
"type": "string"
}
},
"type": "object"
}
},
"required": [
"cart_id"
],
"type": "object"
}
{
"additionalProperties": false,
"properties": {
"order_id": {
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
}

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