Service operations
Consumption Modes
Consumption modes define how customers can consume their orders on a given sales channel: delivery, take away, sit in, or drive. Each mode carries its own fee, reduction, preparation delay, additional information prompt (such as a table number), and notification settings. Fees and reductions are expressed in cents (250 = 2.50); delays are expressed in minutes.
Reference Values
- channelId
1(Kiosk),2(Web). Only these two channels are accepted when creating a consumption mode.- type
MODE_DELIVERY,MODE_TAKE_AWAY,MODE_SIT_IN,MODE_DRIVE- additionalInformationType
TABLE_NUMBER,COMMENT,NUMBER- flags
- Bitmask of mode options:
1(drive mode),2(e-wallet),4(send order notification emails as blind carbon copy). Defaults to0on creation (1forMODE_DRIVE); omit it unless you need to change these options.
GET/consumption_modesList Consumption Modes
Retrieve the consumption modes of a restaurant for a given sales channel, including their linked modules (such as bound delivery areas). Note that the query parameters use snake_case.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| restaurant_id | integer | Yes | The unique identifier of the restaurant (query parameter). |
| channel_id | integer | Yes | The sales channel identifier: 1 (Kiosk) or 2 (Web) (query parameter). |
Response
{
"status": 200,
"code": "consumption_modes_succeed",
"data": [
{
"consumptionModeId": 15,
"restaurantId": 200,
"brandId": 100,
"channelId": 2,
"type": "MODE_DELIVERY",
"flags": 0,
"fee": 250,
"labelFee": "Delivery fee",
"reduction": 0,
"labelReduction": null,
"delay": 30,
"additionalInformationTitle": null,
"additionalInformationType": null,
"additionalInformationValueIfSkipped": null,
"tableListChoice": null,
"additionalInformationAllowSkip": null,
"isTimeSlotModeEnabled": false,
"customerShowUpNotification": false,
"sendReminderEmailShowUpNotification": false,
"delayBeforeSendingReminderEmailShowUpNotification": 0
},
{
"consumptionModeId": 16,
"restaurantId": 200,
"brandId": 100,
"channelId": 2,
"type": "MODE_SIT_IN",
"flags": 0,
"fee": 0,
"labelFee": null,
"reduction": 0,
"labelReduction": null,
"delay": 15,
"additionalInformationTitle": "Table number",
"additionalInformationType": "TABLE_NUMBER",
"additionalInformationValueIfSkipped": null,
"tableListChoice": null,
"additionalInformationAllowSkip": false,
"isTimeSlotModeEnabled": false,
"customerShowUpNotification": false,
"sendReminderEmailShowUpNotification": false,
"delayBeforeSendingReminderEmailShowUpNotification": 0
}
]
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "consumption_modes_succeed" | Machine-readable application code for the result. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].consumptionModeId | integer | 15 | Identifier of the associated consumption mode. |
| data[].restaurantId | integer | 200 | Identifier of the restaurant. |
| data[].brandId | integer | 100 | Identifier of the brand. |
| data[].channelId | integer | 2 | Identifier of the associated channel. |
| data[].type | string | "MODE_DELIVERY" | The type value. |
| data[].flags | integer | 0 | The flags value. |
| data[].fee | integer | 250 | The fee value. |
| data[].labelFee | string | "Delivery fee" | The label fee value. |
| data[].reduction | integer | 0 | The reduction value. |
| data[].labelReduction | null | null | The label reduction value. |
| data[].delay | integer | 30 | The delay value. |
| data[].additionalInformationTitle | null | null | The additional information title value. |
| data[].additionalInformationType | null | null | The additional information type value. |
| data[].additionalInformationValueIfSkipped | null | null | The additional information value if skipped value. |
| data[].tableListChoice | null | null | The table list choice value. |
| data[].additionalInformationAllowSkip | null | null | The additional information allow skip value. |
| data[].isTimeSlotModeEnabled | boolean | false | Whether time slot mode enabled is enabled or applies. |
| data[].customerShowUpNotification | boolean | false | The customer show up notification value. |
| data[].sendReminderEmailShowUpNotification | boolean | false | The send reminder email show up notification value. |
| data[].delayBeforeSendingReminderEmailShowUpNotification | integer | 0 | The delay before sending reminder email show up notification value. |
POST/consumption_modesCreate Consumption Mode
Create a consumption mode for a restaurant on a given channel. Creation is idempotent per (restaurantId, channelId, type): if a mode of the same type was previously deleted, the same record is restored instead of a new one being created. Only channelId values 1 (Kiosk) and 2 (Web) are accepted; other values are rejected with a 400 error. Unknown fields in the request body are silently ignored.
Request Body
{
"channelId": 2,
"restaurantId": 200,
"type": "MODE_TAKE_AWAY"
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| channelId | integer | 2 | Identifier of the associated channel. |
| restaurantId | integer | 200 | Identifier of the restaurant. |
| type | string | "MODE_TAKE_AWAY" | The type value. |
Response
{
"status": 201,
"code": "consumption_mode_created",
"data": {
"consumptionModeId": 17,
"restaurantId": 200,
"brandId": 100,
"channelId": 2,
"type": "MODE_TAKE_AWAY",
"flags": 0,
"fee": 0,
"labelFee": null,
"reduction": 0,
"labelReduction": null,
"delay": 15,
"additionalInformationTitle": null,
"additionalInformationType": null,
"additionalInformationValueIfSkipped": null,
"tableListChoice": null,
"additionalInformationAllowSkip": null,
"isTimeSlotModeEnabled": false,
"customerShowUpNotification": false,
"sendReminderEmailShowUpNotification": false,
"delayBeforeSendingReminderEmailShowUpNotification": 0
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 201 | HTTP status code returned by the API. |
| code | string | "consumption_mode_created" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.consumptionModeId | integer | 17 | Identifier of the associated consumption mode. |
| data.restaurantId | integer | 200 | Identifier of the restaurant. |
| data.brandId | integer | 100 | Identifier of the brand. |
| data.channelId | integer | 2 | Identifier of the associated channel. |
| data.type | string | "MODE_TAKE_AWAY" | The type value. |
| data.flags | integer | 0 | The flags value. |
| data.fee | integer | 0 | The fee value. |
| data.labelFee | null | null | The label fee value. |
| data.reduction | integer | 0 | The reduction value. |
| data.labelReduction | null | null | The label reduction value. |
| data.delay | integer | 15 | The delay value. |
| data.additionalInformationTitle | null | null | The additional information title value. |
| data.additionalInformationType | null | null | The additional information type value. |
| data.additionalInformationValueIfSkipped | null | null | The additional information value if skipped value. |
| data.tableListChoice | null | null | The table list choice value. |
| data.additionalInformationAllowSkip | null | null | The additional information allow skip value. |
| data.isTimeSlotModeEnabled | boolean | false | Whether time slot mode enabled is enabled or applies. |
| data.customerShowUpNotification | boolean | false | The customer show up notification value. |
| data.sendReminderEmailShowUpNotification | boolean | false | The send reminder email show up notification value. |
| data.delayBeforeSendingReminderEmailShowUpNotification | integer | 0 | The delay before sending reminder email show up notification value. |
PUT/consumption_modes/{consumptionModeId}Update Consumption Mode
Update a consumption mode: fee, reduction, preparation delay, additional information prompt, and show-up notification settings. All fields are optional. Only send the documented fields below. Returns a 400 data_not_found error if the consumption mode does not exist.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| consumptionModeId | integer | Yes | The unique identifier of the consumption mode to update. |
Request Body
{
"flags": 0,
"delay": 20,
"fee": 300,
"labelFee": "Delivery fee",
"reduction": 0,
"labelReduction": null,
"additionalInformationType": "TABLE_NUMBER",
"additionalInformationTitle": "Table number",
"additionalInformationAllowSkip": true,
"additionalInformationValueIfSkipped": "N/A",
"tableListChoice": null,
"customerShowUpNotification": true,
"sendReminderEmailShowUpNotification": true,
"delayBeforeSendingReminderEmailShowUpNotification": 15
}Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| flags | integer | 0 | The flags value. |
| delay | integer | 20 | The delay value. |
| fee | integer | 300 | The fee value. |
| labelFee | string | "Delivery fee" | The label fee value. |
| reduction | integer | 0 | The reduction value. |
| labelReduction | null | null | The label reduction value. |
| additionalInformationType | string | "TABLE_NUMBER" | The additional information type value. |
| additionalInformationTitle | string | "Table number" | The additional information title value. |
| additionalInformationAllowSkip | boolean | true | The additional information allow skip value. |
| additionalInformationValueIfSkipped | string | "N/A" | The additional information value if skipped value. |
| tableListChoice | null | null | The table list choice value. |
| customerShowUpNotification | boolean | true | The customer show up notification value. |
| sendReminderEmailShowUpNotification | boolean | true | The send reminder email show up notification value. |
| delayBeforeSendingReminderEmailShowUpNotification | integer | 15 | The delay before sending reminder email show up notification value. |
Response
{
"status": 200,
"code": "consumption_mode_updated",
"data": {
"consumptionModeId": 15,
"restaurantId": 200,
"brandId": 100,
"channelId": 2,
"type": "MODE_DELIVERY",
"flags": 0,
"fee": 300,
"labelFee": "Delivery fee",
"reduction": 0,
"labelReduction": null,
"delay": 20,
"additionalInformationTitle": "Table number",
"additionalInformationType": "TABLE_NUMBER",
"additionalInformationValueIfSkipped": "N/A",
"tableListChoice": null,
"additionalInformationAllowSkip": true,
"isTimeSlotModeEnabled": false,
"customerShowUpNotification": true,
"sendReminderEmailShowUpNotification": true,
"delayBeforeSendingReminderEmailShowUpNotification": 15
}
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "consumption_mode_updated" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.consumptionModeId | integer | 15 | Identifier of the associated consumption mode. |
| data.restaurantId | integer | 200 | Identifier of the restaurant. |
| data.brandId | integer | 100 | Identifier of the brand. |
| data.channelId | integer | 2 | Identifier of the associated channel. |
| data.type | string | "MODE_DELIVERY" | The type value. |
| data.flags | integer | 0 | The flags value. |
| data.fee | integer | 300 | The fee value. |
| data.labelFee | string | "Delivery fee" | The label fee value. |
| data.reduction | integer | 0 | The reduction value. |
| data.labelReduction | null | null | The label reduction value. |
| data.delay | integer | 20 | The delay value. |
| data.additionalInformationTitle | string | "Table number" | The additional information title value. |
| data.additionalInformationType | string | "TABLE_NUMBER" | The additional information type value. |
| data.additionalInformationValueIfSkipped | string | "N/A" | The additional information value if skipped value. |
| data.tableListChoice | null | null | The table list choice value. |
| data.additionalInformationAllowSkip | boolean | true | The additional information allow skip value. |
| data.isTimeSlotModeEnabled | boolean | false | Whether time slot mode enabled is enabled or applies. |
| data.customerShowUpNotification | boolean | true | The customer show up notification value. |
| data.sendReminderEmailShowUpNotification | boolean | true | The send reminder email show up notification value. |
| data.delayBeforeSendingReminderEmailShowUpNotification | integer | 15 | The delay before sending reminder email show up notification value. |
DELETE/consumption_modes/{consumptionModeId}Delete Consumption Mode
Delete a consumption mode. This is a soft delete: creating a mode again with the same restaurantId, channelId, and type restores the same record. Note that the response status is 200, not 204.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| consumptionModeId | integer | Yes | The unique identifier of the consumption mode to delete. |
Response
{
"status": 200,
"code": "consumption_mode_deleted"
}Response Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Example | Description |
|---|---|---|---|
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "consumption_mode_deleted" | Machine-readable application code for the result. |