Organization
Brand Configuration
Payment Configuration
Manage the brand-level payment configuration: e-wallet overdraft settings and, for brands running in education mode, the daily payment limit. Amounts are expressed in cents. See the E-Wallet section for how e-wallet balances work - the overdraft configured here is what allows customer balances to go negative.
GET/brands/{brandId}/payment_configurationGet Payment Configuration
Retrieve the payment configuration of the brand. The paymentDailyLimit field is only included in the response when the education mode option is active on the brand - its absence does not mean the value is null.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "brand_payment_configuration_succeed",
"data": {
"paymentConfigurationId": 77,
"ewalletOverdraftAmount": 2000,
"useEwalletOverdraft": true,
"brandId": 100
}
}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 | "brand_payment_configuration_succeed" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.paymentConfigurationId | integer | 77 | Identifier of the associated payment configuration. |
| data.ewalletOverdraftAmount | integer | 2000 | The ewallet overdraft amount value. |
| data.useEwalletOverdraft | boolean | true | The use ewallet overdraft value. |
| data.brandId | integer | 100 | Identifier of the brand. |
Full Replacement Update
The update below behaves as a full replacement, not a partial update. Omitted fields are reset, not preserved: useEwalletOverdraft defaults to false when omitted, ewalletOverdraftAmount is forced to null unless useEwalletOverdraft is true, and paymentDailyLimit is reset to null when omitted. Always send the complete configuration.
PUT/brands/{brandId}/payment_configurationUpdate Payment Configuration
Update the payment configuration of the brand. Modifying useEwalletOverdraft or ewalletOverdraftAmount requires the CAN_MANAGE_BRAND_EWALLET_OVERDRAFT access flag on the calling user (an ACTION_NOT_ALLOWED error is returned otherwise). ewalletOverdraftAmount (cents, >= 0) is only taken into account when useEwalletOverdraft is true. If usePaymentDailyLimit is present and false, paymentDailyLimit is forced to null.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"useEwalletOverdraft": true,
"ewalletOverdraftAmount": 2000,
"usePaymentDailyLimit": true,
"paymentDailyLimit": 5000
}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 |
|---|---|---|---|
| useEwalletOverdraft | boolean | true | The use ewallet overdraft value. |
| ewalletOverdraftAmount | integer | 2000 | The ewallet overdraft amount value. |
| usePaymentDailyLimit | boolean | true | The use payment daily limit value. |
| paymentDailyLimit | integer | 5000 | The payment daily limit value. |
Response
{
"status": 200,
"code": "brand_payment_configuration_update_succeed",
"data": {
"paymentConfigurationId": 77,
"ewalletOverdraftAmount": 2000,
"useEwalletOverdraft": true,
"paymentDailyLimit": 5000,
"brandId": 100
}
}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 | "brand_payment_configuration_update_succeed" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.paymentConfigurationId | integer | 77 | Identifier of the associated payment configuration. |
| data.ewalletOverdraftAmount | integer | 2000 | The ewallet overdraft amount value. |
| data.useEwalletOverdraft | boolean | true | The use ewallet overdraft value. |
| data.paymentDailyLimit | integer | 5000 | The payment daily limit value. |
| data.brandId | integer | 100 | Identifier of the brand. |
Brand Modules
Modules hold the feature configuration of a brand for each sales channel (ordering flow, payment, style...). The brand-level configuration serves as the inherited base for all restaurants of the brand: restaurant-level module updates are merged on top of it. Use GET /brands/{brandId}/modules to discover the (moduleId, channelId) pairs configured for your brand - the moduleId 12 used in the examples below is the ordering flow module. See the Restaurant Modules page for the channel ID reference values and the restaurant-level counterpart of these endpoints.
GET/brands/{brandId}/modulesList Brand Modules
Retrieve all modules configured at brand level, grouped by channel, then category, then module name. Note that the first-level keys of the data object are channel IDs as numeric strings, not an array.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "module_succeed",
"data": {
"2": {
"ordering": {
"flow": {
"moduleId": 12,
"channelId": 2,
"brandId": 100,
"is_enabled": true,
"isOrderFollowUpEnabled": false,
"isProductFollowUpEnabled": false
}
}
},
"5": {
"ordering": {
"flow": {
"moduleId": 12,
"channelId": 5,
"brandId": 100,
"is_enabled": true
}
}
}
}
}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 | "module_succeed" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.2 | object | {…} | Object containing 2 fields. |
| data.2.ordering | object | {…} | Object containing ordering fields. |
| data.2.ordering.flow | object | {…} | Object containing flow fields. |
| data.2.ordering.flow.moduleId | integer | 12 | Identifier of the associated module. |
| data.2.ordering.flow.channelId | integer | 2 | Identifier of the associated channel. |
| data.2.ordering.flow.brandId | integer | 100 | Identifier of the brand. |
| data.2.ordering.flow.is_enabled | boolean | true | Whether enabled is enabled or applies. |
| data.2.ordering.flow.isOrderFollowUpEnabled | boolean | false | Whether order follow up enabled is enabled or applies. |
| data.2.ordering.flow.isProductFollowUpEnabled | boolean | false | Whether product follow up enabled is enabled or applies. |
| data.5 | object | {…} | Object containing 5 fields. |
| data.5.ordering | object | {…} | Object containing ordering fields. |
| data.5.ordering.flow | object | {…} | Object containing flow fields. |
| data.5.ordering.flow.moduleId | integer | 12 | Identifier of the associated module. |
| data.5.ordering.flow.channelId | integer | 5 | Identifier of the associated channel. |
| data.5.ordering.flow.brandId | integer | 100 | Identifier of the brand. |
| data.5.ordering.flow.is_enabled | boolean | true | Whether enabled is enabled or applies. |
Configuration Overwrite
The endpoint below is an upsert that overwrites the existing configuration for the given (moduleId, channelId) pair at brand level - the values you send always take precedence over the current ones. Since restaurants inherit their module configuration from the brand, this change impacts every restaurant of the brand. The web ordering configuration cache of the brand is invalidated.
POST/brands/{brandId}/modulesCreate or Update Brand Module
Create or update the configuration of a module for a channel at brand level. moduleId, channelId and module are all required (a 400 missing_parameters error is returned otherwise). The content of the module object depends on the module type.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"moduleId": 12,
"channelId": 2,
"module": {
"is_enabled": true,
"isOrderFollowUpEnabled": true
}
}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 |
|---|---|---|---|
| moduleId | integer | 12 | Identifier of the associated module. |
| channelId | integer | 2 | Identifier of the associated channel. |
| module | object | {…} | Object containing module fields. |
| module.is_enabled | boolean | true | Whether enabled is enabled or applies. |
| module.isOrderFollowUpEnabled | boolean | true | Whether order follow up enabled is enabled or applies. |
Response
{
"status": 200,
"code": "module_create_succeed",
"message": "Module has been successfully created.",
"data": {
"moduleId": 12,
"channelId": 2,
"brandId": 100,
"is_enabled": true,
"isOrderFollowUpEnabled": true
}
}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 | "module_create_succeed" | Machine-readable application code for the result. |
| message | string | "Module has been successfully created." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.moduleId | integer | 12 | Identifier of the associated module. |
| data.channelId | integer | 2 | Identifier of the associated channel. |
| data.brandId | integer | 100 | Identifier of the brand. |
| data.is_enabled | boolean | true | Whether enabled is enabled or applies. |
| data.isOrderFollowUpEnabled | boolean | true | Whether order follow up enabled is enabled or applies. |
Social Networks
Manage the social network links of a brand (Facebook, Instagram, Twitter, TripAdvisor...). These links are typically displayed on web ordering pages.
Role Requirement
The social network endpoints require a restaurant user account. Tokens with the brand role are not accepted on these routes.
GET/brands/{brandId}/social_networkGet Social Networks
Retrieve the social network links of the brand. All fields are nullable strings. The data field is null if the social network record has never been created.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "social_network_succeed",
"data": {
"facebook": "https://facebook.com/innovorderburgers",
"googleplus": null,
"instagram": "https://instagram.com/innovorderburgers",
"twitter": null,
"pinterest": null,
"linkedin": null,
"yelp": null,
"tracktl": null,
"tripAdvisor": "https://tripadvisor.com/innovorder-burgers"
}
}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 | "social_network_succeed" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.facebook | string | "https://facebook.com/innovorderburgers" | The facebook value. |
| data.googleplus | null | null | The googleplus value. |
| data.instagram | string | "https://instagram.com/innovorderburgers" | The instagram value. |
| data.twitter | null | null | The twitter value. |
| data.pinterest | null | null | The pinterest value. |
| data.linkedin | null | null | The linkedin value. |
| data.yelp | null | null | The yelp value. |
| data.tracktl | null | null | The tracktl value. |
| data.tripAdvisor | string | "https://tripadvisor.com/innovorder-burgers" | The trip advisor value. |
POST/brands/{brandId}/social_networkCreate Social Networks
Create the social network record of the brand. All fields are optional strings (URLs). Use this endpoint only once to create the record, then use PUT for subsequent updates. Invalidates the web ordering configuration cache of the brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"facebook": "https://facebook.com/innovorderburgers",
"instagram": "https://instagram.com/innovorderburgers",
"tripAdvisor": "https://tripadvisor.com/innovorder-burgers"
}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 |
|---|---|---|---|
| string | "https://facebook.com/innovorderburgers" | The facebook value. | |
| string | "https://instagram.com/innovorderburgers" | The instagram value. | |
| tripAdvisor | string | "https://tripadvisor.com/innovorder-burgers" | The trip advisor value. |
Response
{
"status": 200,
"code": "social_network_succeed",
"data": {
"facebook": "https://facebook.com/innovorderburgers",
"googleplus": null,
"instagram": "https://instagram.com/innovorderburgers",
"twitter": null,
"pinterest": null,
"linkedin": null,
"yelp": null,
"tracktl": null,
"tripAdvisor": "https://tripadvisor.com/innovorder-burgers"
}
}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 | "social_network_succeed" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.facebook | string | "https://facebook.com/innovorderburgers" | The facebook value. |
| data.googleplus | null | null | The googleplus value. |
| data.instagram | string | "https://instagram.com/innovorderburgers" | The instagram value. |
| data.twitter | null | null | The twitter value. |
| data.pinterest | null | null | The pinterest value. |
| data.linkedin | null | null | The linkedin value. |
| data.yelp | null | null | The yelp value. |
| data.tracktl | null | null | The tracktl value. |
| data.tripAdvisor | string | "https://tripadvisor.com/innovorder-burgers" | The trip advisor value. |
PUT/brands/{brandId}/social_networkUpdate Social Networks
Update the existing social network record of the brand. Same nine optional fields as the creation endpoint: facebook, googleplus, instagram, twitter, pinterest, linkedin, yelp, tracktl, tripAdvisor. Omitted fields are preserved. This endpoint fails if no social network record exists yet - create it first with POST. Invalidates the web ordering configuration cache of the brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"twitter": "https://twitter.com/innovorderburgers",
"linkedin": "https://linkedin.com/company/innovorder-burgers"
}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 |
|---|---|---|---|
| string | "https://twitter.com/innovorderburgers" | The twitter value. | |
| string | "https://linkedin.com/company/innovorder-burgers" | The linkedin value. |
Response
{
"status": 200,
"code": "social_network_update_succeed",
"data": {
"facebook": "https://facebook.com/innovorderburgers",
"googleplus": null,
"instagram": "https://instagram.com/innovorderburgers",
"twitter": "https://twitter.com/innovorderburgers",
"pinterest": null,
"linkedin": "https://linkedin.com/company/innovorder-burgers",
"yelp": null,
"tracktl": null,
"tripAdvisor": "https://tripadvisor.com/innovorder-burgers"
}
}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 | "social_network_update_succeed" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.facebook | string | "https://facebook.com/innovorderburgers" | The facebook value. |
| data.googleplus | null | null | The googleplus value. |
| data.instagram | string | "https://instagram.com/innovorderburgers" | The instagram value. |
| data.twitter | string | "https://twitter.com/innovorderburgers" | The twitter value. |
| data.pinterest | null | null | The pinterest value. |
| data.linkedin | string | "https://linkedin.com/company/innovorder-burgers" | The linkedin value. |
| data.yelp | null | null | The yelp value. |
| data.tracktl | null | null | The tracktl value. |
| data.tripAdvisor | string | "https://tripadvisor.com/innovorder-burgers" | The trip advisor value. |
Customer Groups
Retrieve the customer groups configured for a brand. For multi-brand (brand group) endpoints - listing the brands of a group and switching context to a brand - see the Brands page.
GET/brands/{brandId}/groupsGet Groups for Brand
Retrieve the customer groups configured for a specific brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "brand_groups_found",
"message": "Brand groups found",
"data": [
{
"groupId": 1,
"name": "VIP Customers",
"brandId": 100
}
]
}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 | "brand_groups_found" | Machine-readable application code for the result. |
| message | string | "Brand groups found" | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].groupId | integer | 1 | Identifier of the associated group. |
| data[].name | string | "VIP Customers" | The name value. |
| data[].brandId | integer | 100 | Identifier of the brand. |
Restaurant Families
Restaurant families allow grouping restaurants within a brand into categories (e.g., by region, concept, or type). These families are displayed on web ordering to help customers find the right restaurant.
GET/brand/{brandId}/brand_restaurant_familiesGet All Restaurant Families
Retrieve all restaurant families configured for a brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "brand_restaurant_families_found",
"message": "The brand restaurant families have been found.",
"data": [
{
"brandRestaurantFamilyId": 1,
"brandId": 100,
"name": "Paris Centre",
"position": 1,
"imageId": 501
},
{
"brandRestaurantFamilyId": 2,
"brandId": 100,
"name": "Paris Ouest",
"position": 2,
"imageId": 502
}
]
}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 | "brand_restaurant_families_found" | Machine-readable application code for the result. |
| message | string | "The brand restaurant families have been found." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].brandRestaurantFamilyId | integer | 1 | Identifier of the associated brand restaurant family. |
| data[].brandId | integer | 100 | Identifier of the brand. |
| data[].name | string | "Paris Centre" | The name value. |
| data[].position | integer | 1 | The position value. |
| data[].imageId | integer | 501 | Identifier of the associated image. |
POST/brand/{brandId}/brand_restaurant_familiesBulk Upsert Restaurant Families
Create or update multiple restaurant families in a single request. Existing families are matched by ID and updated; new ones are created.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"brandRestaurantFamilies": [
{
"name": "Paris Centre",
"position": 1,
"imageId": 501
},
{
"brandRestaurantFamilyId": 2,
"name": "Paris Ouest (updated)",
"position": 2,
"imageId": 503
}
]
}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 |
|---|---|---|---|
| brandRestaurantFamilies | array | […] | List of brand restaurant families entries. |
| brandRestaurantFamilies[] | object | {…} | Object containing brand restaurant families fields. |
| brandRestaurantFamilies[].name | string | "Paris Centre" | The name value. |
| brandRestaurantFamilies[].position | integer | 1 | The position value. |
| brandRestaurantFamilies[].imageId | integer | 501 | Identifier of the associated image. |
Response
{
"status": 200,
"code": "brand_restaurant_families_upserted",
"message": "The brand restaurant families have been upserted.",
"data": [
{
"brandRestaurantFamilyId": 3,
"brandId": 100,
"name": "Paris Centre",
"position": 1,
"imageId": 501
},
{
"brandRestaurantFamilyId": 2,
"brandId": 100,
"name": "Paris Ouest (updated)",
"position": 2,
"imageId": 503
}
]
}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 | "brand_restaurant_families_upserted" | Machine-readable application code for the result. |
| message | string | "The brand restaurant families have been upserted." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].brandRestaurantFamilyId | integer | 3 | Identifier of the associated brand restaurant family. |
| data[].brandId | integer | 100 | Identifier of the brand. |
| data[].name | string | "Paris Centre" | The name value. |
| data[].position | integer | 1 | The position value. |
| data[].imageId | integer | 501 | Identifier of the associated image. |
Web Ordering (Public)
Public endpoints used by the web ordering frontend. These endpoints do not require authentication and use the brandHash (a public brand identifier) instead of the brandId.
GET/brands/webordering-configuration/{brandHash}Get Web Ordering Configuration
Retrieve the full web ordering configuration for a brand, including brand settings, restaurant list with their modules, consumption modes, and Stripe payment configuration. Results are cached for performance.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandHash | string | Yes | The public hash identifier of the brand (found in the brand details response). |
Response
{
"status": 200,
"code": "brand_succeed",
"message": "You can access to this brand.",
"data": {
"brandId": 100,
"brandHash": "bb10813b502b",
"name": "Innovorder Burgers",
"locale": "fr",
"currency": "EUR",
"restaurants": [
{
"restaurantId": 200,
"name": "Paris Centre",
"consumptionModes": [
{
"type": "eat_in"
},
{
"type": "take_away"
}
]
}
],
"consumptionModesFlag": 3,
"stripeEnabled": true,
"isCNTRELuncheonVoucherDeclared": false
}
}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 | "brand_succeed" | Machine-readable application code for the result. |
| message | string | "You can access to this brand." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.brandId | integer | 100 | Identifier of the brand. |
| data.brandHash | string | "bb10813b502b" | The brand hash value. |
| data.name | string | "Innovorder Burgers" | The name value. |
| data.locale | string | "fr" | The locale value. |
| data.currency | string | "EUR" | ISO 4217 currency code. |
| data.restaurants | array | […] | List of restaurants entries. |
| data.restaurants[] | object | {…} | Object containing restaurants fields. |
| data.restaurants[].restaurantId | integer | 200 | Identifier of the restaurant. |
| data.restaurants[].name | string | "Paris Centre" | The name value. |
| data.restaurants[].consumptionModes | array | […] | List of consumption modes entries. |
| data.restaurants[].consumptionModes[] | object | {…} | Object containing consumption modes fields. |
| data.restaurants[].consumptionModes[].type | string | "eat_in" | The type value. |
| data.consumptionModesFlag | integer | 3 | The consumption modes flag value. |
| data.stripeEnabled | boolean | true | The stripe enabled value. |
| data.isCNTRELuncheonVoucherDeclared | boolean | false | Whether cntreluncheon voucher declared is enabled or applies. |
GET/brand/{brandHash}/restaurantsGet Web Ordering Restaurants
Retrieve all restaurants available for web ordering, including their loyalty modules, ordering schedules, tags, and restaurant family associations.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandHash | string | Yes | The public hash identifier of the brand. |
Response
{
"status": 200,
"code": "webordering_restaurants_found",
"message": "The webordering eligible restaurants have been found.",
"data": [
{
"restaurantId": 200,
"name": "Innovorder Burgers Paris",
"address": {
"locality": "Paris",
"postalCode": "75001",
"lat": 48.868,
"lng": 2.329
},
"canOrderAsAnonymous": true
}
]
}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 | "webordering_restaurants_found" | Machine-readable application code for the result. |
| message | string | "The webordering eligible restaurants have been found." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].restaurantId | integer | 200 | Identifier of the restaurant. |
| data[].name | string | "Innovorder Burgers Paris" | The name value. |
| data[].address | object | {…} | Object containing address fields. |
| data[].address.locality | string | "Paris" | The locality value. |
| data[].address.postalCode | string | "75001" | The postal code value. |
| data[].address.lat | number | 48.868 | The lat value. |
| data[].address.lng | number | 2.329 | The lng value. |
| data[].canOrderAsAnonymous | boolean | true | Whether order as anonymous is enabled or applies. |
GET/brand/{brandHash}/restaurants_familiesGet Web Ordering Restaurant Families
Retrieve the restaurant family categories available for web ordering. Used to group restaurants by geographic area or concept on the web ordering page.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandHash | string | Yes | The public hash identifier of the brand. |
Response
{
"status": 200,
"code": "webordering_restaurant_families_found",
"message": "The webordering restaurant families have been found.",
"data": [
{
"brandRestaurantFamilyId": 1,
"name": "Paris Centre",
"position": 1,
"imageId": 501,
"restaurants": [
200,
201
]
}
]
}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 | "webordering_restaurant_families_found" | Machine-readable application code for the result. |
| message | string | "The webordering restaurant families have been found." | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].brandRestaurantFamilyId | integer | 1 | Identifier of the associated brand restaurant family. |
| data[].name | string | "Paris Centre" | The name value. |
| data[].position | integer | 1 | The position value. |
| data[].imageId | integer | 501 | Identifier of the associated image. |
| data[].restaurants | array | […] | List of restaurants entries. |
| data[].restaurants[] | integer | 200 | The restaurants value. |
GET/brands/{brandId}/ewallet_consumption_modesGet E-Wallet Consumption Modes
Retrieve the available consumption modes for e-wallet payments on a brand. This is a public endpoint that does not require authentication.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "ewallet_consumption_modes_found",
"message": "Ok",
"data": [
{
"type": "eat_in",
"label": "Sur place"
},
{
"type": "take_away",
"label": "A emporter"
}
]
}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 | "ewallet_consumption_modes_found" | Machine-readable application code for the result. |
| message | string | "Ok" | Human-readable result message. Do not use this value for program logic. |
| data | array | […] | Endpoint-specific response payload. |
| data[] | object | {…} | Endpoint-specific response payload. |
| data[].type | string | "eat_in" | The type value. |
| data[].label | string | "Sur place" | The label value. |
Email Whitelisting
Manage email domain whitelisting for a brand. When enabled, only customers with email addresses matching whitelisted domains can register. Each whitelisted domain can optionally be associated with a pricing rule, entrance fee, and group.
GET/brands/{brandId}/enable_customer_email_domain_names_whitelistingGet Email Whitelisting Status
Check whether email domain name whitelisting is enabled for a brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "enable_customer_email_domain_name_whitelisted_updated",
"message": "Customer email domain names whitelisting has been updated",
"data": {
"isEnabled": true
}
}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 | "enable_customer_email_domain_name_whitelisted_updated" | Machine-readable application code for the result. |
| message | string | "Customer email domain names whitelisting has been updated" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.isEnabled | boolean | true | Whether this feature is enabled. |
PUT/brands/{brandId}/enable_customer_email_domain_names_whitelistingToggle Email Whitelisting
Enable or disable email domain name whitelisting for a brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"isEnabled": true
}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 |
|---|---|---|---|
| isEnabled | boolean | true | Whether this feature is enabled. |
Response
{
"status": 200,
"code": "enable_customer_email_domain_name_whitelisted_updated",
"message": "Customer email domain names whitelisting has been updated",
"data": {
"isEnabled": true
}
}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 | "enable_customer_email_domain_name_whitelisted_updated" | Machine-readable application code for the result. |
| message | string | "Customer email domain names whitelisting has been updated" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.isEnabled | boolean | true | Whether this feature is enabled. |
GET/brands/{brandId}/whitelisted_customer_email_domain_namesGet Whitelisted Email Domains
Retrieve the list of whitelisted email domain names for a brand, with their associated pricing rules and entrance fees.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "whitelisted_customer_email_domain_name_found",
"message": "The domain names list has been found",
"data": {
"domainNames": [
{
"emailDomainName": "university.edu",
"entranceFeeId": 201,
"pricingRuleId": 301,
"group": "students"
},
{
"emailDomainName": "company.com",
"entranceFeeId": null,
"pricingRuleId": null,
"group": "staff"
}
]
}
}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 | "whitelisted_customer_email_domain_name_found" | Machine-readable application code for the result. |
| message | string | "The domain names list has been found" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.domainNames | array | […] | List of domain names entries. |
| data.domainNames[] | object | {…} | Object containing domain names fields. |
| data.domainNames[].emailDomainName | string | "university.edu" | The email domain name value. |
| data.domainNames[].entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| data.domainNames[].pricingRuleId | integer | 301 | Identifier of the associated pricing rule. |
| data.domainNames[].group | string | "students" | The group value. |
PUT/brands/{brandId}/whitelisted_customer_email_domain_namesUpdate Whitelisted Email Domains
Replace the list of whitelisted email domain names for a brand. Each domain can be associated with an entrance fee, pricing rule, and group.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"domainNames": [
{
"emailDomainName": "university.edu",
"entranceFeeId": 201,
"pricingRuleId": 301,
"group": "students"
},
{
"emailDomainName": "company.com",
"entranceFeeId": null,
"pricingRuleId": null,
"group": "staff"
}
]
}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 |
|---|---|---|---|
| domainNames | array | […] | List of domain names entries. |
| domainNames[] | object | {…} | Object containing domain names fields. |
| domainNames[].emailDomainName | string | "university.edu" | The email domain name value. |
| domainNames[].entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| domainNames[].pricingRuleId | integer | 301 | Identifier of the associated pricing rule. |
| domainNames[].group | string | "students" | The group value. |
Response
{
"status": 200,
"code": "whitelisted_customer_email_domain_name_updated",
"message": "The domain names list has been updated",
"data": {
"domainNames": [
{
"emailDomainName": "university.edu",
"entranceFeeId": 201,
"pricingRuleId": 301,
"group": "students"
}
]
}
}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 | "whitelisted_customer_email_domain_name_updated" | Machine-readable application code for the result. |
| message | string | "The domain names list has been updated" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.domainNames | array | […] | List of domain names entries. |
| data.domainNames[] | object | {…} | Object containing domain names fields. |
| data.domainNames[].emailDomainName | string | "university.edu" | The email domain name value. |
| data.domainNames[].entranceFeeId | integer | 201 | Identifier of the associated entrance fee. |
| data.domainNames[].pricingRuleId | integer | 301 | Identifier of the associated pricing rule. |
| data.domainNames[].group | string | "students" | The group value. |