A valid request URL is required to generate request examples{
"id": "WEB-24810",
"channel": "web",
"deliveryMode": "click-and-collect",
"customer": {
"customerId": "cust-24810",
"displayName": "Camille Laurent"
},
"lines": [
{
"skuId": "f139995b359e2702f33b391acb3d42a419197a7b2c09d04c1fe6d97ecefe4feb",
"quantity": 1,
"unitPriceCents": 11900
}
],
"status": "fulfilled",
"fulfillingStoreId": "store-lyon",
"routingExplanation": {
"basis": "criterion",
"criterionIndex": 0,
"criterionKind": "stock-depth",
"runnerUpStoreId": "store-rivoli"
},
"actorId": "user-camille",
"capturedAt": "2026-07-28T10:00:00.000Z"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Advance an order
Advances an order along its lifecycle: fulfil an accepted order to fulfilled, or cancel a captured / accepted order. The order id comes from the PATH — a body orderId is ignored. Failure conditions: 400 on a malformed body; 404 for an unknown order; 422 on an illegal transition (e.g. fulfilling a still-captured, unrouted order).
A valid request URL is required to generate request examples{
"id": "WEB-24810",
"channel": "web",
"deliveryMode": "click-and-collect",
"customer": {
"customerId": "cust-24810",
"displayName": "Camille Laurent"
},
"lines": [
{
"skuId": "f139995b359e2702f33b391acb3d42a419197a7b2c09d04c1fe6d97ecefe4feb",
"quantity": 1,
"unitPriceCents": 11900
}
],
"status": "fulfilled",
"fulfillingStoreId": "store-lyon",
"routingExplanation": {
"basis": "criterion",
"criterionIndex": 0,
"criterionKind": "stock-depth",
"runnerUpStoreId": "store-rivoli"
},
"actorId": "user-camille",
"capturedAt": "2026-07-28T10:00:00.000Z"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Path Parameters
Id of the order (commande) to read or transition.
1Body
Lifecycle transition to apply: fulfil | cancel.
fulfil, cancel Response
The advanced order at its new lifecycle status.
The advanced order at its new lifecycle status.
web, marketplace, mobile-app, in-store click-and-collect, ship-from-store, endless-aisle Show child attributes
Show child attributes
Show child attributes
Show child attributes
captured, accepted, fulfilled, cancelled, rejected Show child attributes
Show child attributes

