Error
A valid request URL is required to generate request examples{
"id": "OMS-CAP-1",
"channel": "web",
"deliveryMode": "click-and-collect",
"customer": {
"customerId": "cust-oms-1",
"displayName": "Order Tester"
},
"lines": [
{
"skuId": "f139995b359e2702f33b391acb3d42a419197a7b2c09d04c1fe6d97ecefe4feb",
"quantity": 1,
"unitPriceCents": 4500
}
],
"status": "captured",
"fulfillingStoreId": null,
"routingExplanation": null,
"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
}
}Orders
Capture an order (commande)
Captures an omnichannel order (commande) from a channel into the captured state, attributed to the actor, with no fulfilling store yet (201). This is the entry point of the OMS write loop — route it next. Failure conditions: 400 on a malformed body; 409 when the order id already exists.
POST
/
v1
/
orders
Error
A valid request URL is required to generate request examples{
"id": "OMS-CAP-1",
"channel": "web",
"deliveryMode": "click-and-collect",
"customer": {
"customerId": "cust-oms-1",
"displayName": "Order Tester"
},
"lines": [
{
"skuId": "f139995b359e2702f33b391acb3d42a419197a7b2c09d04c1fe6d97ecefe4feb",
"quantity": 1,
"unitPriceCents": 4500
}
],
"status": "captured",
"fulfillingStoreId": null,
"routingExplanation": null,
"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.
Body
application/json
Minimum string length:
1Available options:
web, marketplace, mobile-app, in-store Available options:
click-and-collect, ship-from-store, endless-aisle Show child attributes
Show child attributes
Minimum array length:
1Show child attributes
Show child attributes
Response
The captured order (state captured, no fulfilling store).
The captured order (state captured, no fulfilling store).
Available options:
web, marketplace, mobile-app, in-store Available options:
click-and-collect, ship-from-store, endless-aisle Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
captured, accepted, fulfilled, cancelled, rejected Show child attributes
Show child attributes

