Organization
Brands
Once you have identified your brandId (via the login response or the /oauth/me endpoint), you can retrieve detailed configuration and status information for that brand.
GET/brands/{brandId}Get Brand Details
Retrieve detailed information for a specific brand, including locale, currency, and enabled features.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "brand_succeed",
"message": "Vous pouvez accéder à cette enseigne.",
"data": {
"brandId": 100,
"brandHash": "bb10813b502b",
"name": "Innovorder Burgers",
"locale": "fr",
"currency": "EUR",
"contactPhone": "0102030405",
"contactEmail": "contact@innovorder.com",
"websiteUrl": null,
"websiteCustomCssUrl": "https://static.innovorder.fr/webcss/brand-100-custom.css",
"legalId": null,
"moduleStripeId": null,
"externalId": null,
"created_at": "2025-09-08T07:43:27.000Z",
"brandType": "COMMERCIAL_CATERING",
"note": null,
"status": null,
"options": {
"ENABLE_ORDER_DETAIL_V2": {
"optionId": 11664,
"nameValue": "ENABLE_ORDER_DETAIL_V2",
"isActivated": true,
"restaurantId": null,
"brandId": 100,
"created_at": "2025-09-08T07:43:27.000Z",
"updated_at": "2025-09-08T07:43:27.000Z",
"deleted_at": null
}
},
"hasArchivedCustomers": true,
"lowestPosVersion": "10.3.6"
}
}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 | "Vous pouvez accéder à cette enseigne." | 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.contactPhone | string | "0102030405" | The contact phone value. |
| data.contactEmail | string | "contact@innovorder.com" | The contact email value. |
| data.websiteUrl | null | null | The website url value. |
| data.websiteCustomCssUrl | string | "https://static.innovorder.fr/webcss/brand-100-custom.css" | The website custom css url value. |
| data.legalId | null | null | Identifier of the associated legal. |
| data.moduleStripeId | null | null | Identifier of the associated module stripe. |
| data.externalId | null | null | Identifier in the connected external system. |
| data.created_at | string | "2025-09-08T07:43:27.000Z" | Timestamp when this resource was created. |
| data.brandType | string | "COMMERCIAL_CATERING" | The brand type value. |
| data.note | null | null | The note value. |
| data.status | null | null | HTTP status code returned by the API. |
| data.options | object | {…} | Object containing options fields. |
| data.options.ENABLE_ORDER_DETAIL_V2 | object | {…} | Object containing enable order detail v2 fields. |
| data.options.ENABLE_ORDER_DETAIL_V2.optionId | integer | 11664 | Identifier of the associated option. |
| data.options.ENABLE_ORDER_DETAIL_V2.nameValue | string | "ENABLE_ORDER_DETAIL_V2" | The name value value. |
| data.options.ENABLE_ORDER_DETAIL_V2.isActivated | boolean | true | Whether activated is enabled or applies. |
| data.options.ENABLE_ORDER_DETAIL_V2.restaurantId | null | null | Identifier of the restaurant. |
| data.options.ENABLE_ORDER_DETAIL_V2.brandId | integer | 100 | Identifier of the brand. |
| data.options.ENABLE_ORDER_DETAIL_V2.created_at | string | "2025-09-08T07:43:27.000Z" | Timestamp when this resource was created. |
| data.options.ENABLE_ORDER_DETAIL_V2.updated_at | string | "2025-09-08T07:43:27.000Z" | Timestamp when this resource was last updated. |
| data.options.ENABLE_ORDER_DETAIL_V2.deleted_at | null | null | Timestamp when this resource was deleted, or null when it is active. |
| data.hasArchivedCustomers | boolean | true | Whether archived customers is enabled or applies. |
| data.lowestPosVersion | string | "10.3.6" | The lowest pos version value. |
Key Response Fields
- brandHash
- A public unique identifier for the brand. This is often used in public-facing APIs (like the Online Ordering API) to retrieve public configuration without authentication.
- options
- A dictionary of feature flags and configuration options enabled for this brand. Useful for frontend applications to toggle features (e.g.,
ENABLE_ORDER_DETAIL_V2). - websiteCustomCssUrl
- URL to a custom CSS file for branding web interfaces.
Public Loyalty Bootstrap
Loyalty registration pages can load the safe subset of brand configuration they need without a bearer token. Missing brands and brands without an enabled loyalty module both return the same not-found response.
GET/brands/{brandId}/loyaltyGet Public Loyalty Configuration
Returns only the public brand fields and the two allow-listed signup options consumed by the loyalty registration experience.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | Brand identifier used by the loyalty registration page. |
Response
{
"status": 200,
"code": "brand_succeed",
"message": "You can access to this brand.",
"data": {
"brandId": 42,
"brandHash": "HASH42",
"name": "Innovorder Burgers",
"currency": "EUR",
"options": {
"BIRTHDATE": {
"nameValue": "BIRTHDATE",
"value": "true"
},
"ADVANCED_SECURITY_RULES": {
"nameValue": "ADVANCED_SECURITY_RULES",
"value": "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 | "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 | 42 | Identifier of the brand. |
| data.brandHash | string | "HASH42" | The brand hash value. |
| data.name | string | "Innovorder Burgers" | The name value. |
| data.currency | string | "EUR" | ISO 4217 currency code. |
| data.options | object | {…} | Object containing options fields. |
| data.options.BIRTHDATE | object | {…} | Object containing birthdate fields. |
| data.options.BIRTHDATE.nameValue | string | "BIRTHDATE" | The name value value. |
| data.options.BIRTHDATE.value | string | "true" | The value value. |
| data.options.ADVANCED_SECURITY_RULES | object | {…} | Object containing advanced security rules fields. |
| data.options.ADVANCED_SECURITY_RULES.nameValue | string | "ADVANCED_SECURITY_RULES" | The name value value. |
| data.options.ADVANCED_SECURITY_RULES.value | string | "true" | The value value. |
Operation-Zone Status
Check whether the brand operates at least one operation-zone restaurant and retrieve the currency configured for the brand. This is useful before enabling operation-zone-specific configuration in an integration.
GET/brands/{brandId}/operation-zone-statusGet Brand Operation-Zone Status
Returns a status object even when the brand has no operation-zone restaurants. brandCurrency is null when the brand cannot be resolved or has no configured currency.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The brand to inspect. |
Response
{
"status": 200,
"code": "brand_operation_zone_status_found",
"message": "Brand operation zone status found",
"data": {
"hasOpZoneRestaurant": true,
"brandCurrency": "EUR"
}
}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_operation_zone_status_found" | Machine-readable application code for the result. |
| message | string | "Brand operation zone status found" | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.hasOpZoneRestaurant | boolean | true | Whether op zone restaurant is enabled or applies. |
| data.brandCurrency | string | "EUR" | The brand currency value. |
Update Brand
Update the general information of a brand. Only the following fields are persisted: name (required), contactPhone, contactEmail, websiteUrl, locale, currency, moduleStripeId, externalId, externalSecondId, brandType, note, status and shouldBlockTRDPaymentMethods. Any other field in the request body is silently ignored.
PUT/brands/{brandId}Update Brand
Update the general information of a brand. The name field is required (a 400 missing_parameters error is returned otherwise). Sending an empty string for externalSecondId clears the stored value, while omitting the field preserves it. Updating a brand invalidates its web ordering configuration cache.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"name": "Innovorder Burgers",
"contactPhone": "0102030405",
"contactEmail": "contact@innovorder.com",
"websiteUrl": "https://www.innovorder-burgers.com",
"locale": "fr",
"currency": "EUR",
"externalId": "EXT-BRAND-001",
"externalSecondId": "SECOND-001",
"brandType": "COMMERCIAL_CATERING",
"note": "Flagship brand",
"shouldBlockTRDPaymentMethods": false
}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 |
|---|---|---|---|
| name | string | "Innovorder Burgers" | The name value. |
| contactPhone | string | "0102030405" | The contact phone value. |
| contactEmail | string | "contact@innovorder.com" | The contact email value. |
| websiteUrl | string | "https://www.innovorder-burgers.com" | The website url value. |
| locale | string | "fr" | The locale value. |
| currency | string | "EUR" | ISO 4217 currency code. |
| externalId | string | "EXT-BRAND-001" | Identifier in the connected external system. |
| externalSecondId | string | "SECOND-001" | Identifier of the associated external second. |
| brandType | string | "COMMERCIAL_CATERING" | The brand type value. |
| note | string | "Flagship brand" | The note value. |
| shouldBlockTRDPaymentMethods | boolean | false | The should block trdpayment methods value. |
Response
{
"status": 200,
"code": "brand_update_succeed",
"data": {
"brandId": 100,
"brandHash": "bb10813b502b",
"name": "Innovorder Burgers",
"locale": "fr",
"currency": "EUR",
"contactPhone": "0102030405",
"contactEmail": "contact@innovorder.com",
"websiteUrl": "https://www.innovorder-burgers.com",
"externalId": "EXT-BRAND-001",
"brandType": "COMMERCIAL_CATERING",
"options": {
"ENABLE_ORDER_DETAIL_V2": {
"optionId": 11664,
"nameValue": "ENABLE_ORDER_DETAIL_V2",
"isActivated": true
}
},
"hasArchivedCustomers": 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 | "brand_update_succeed" | Machine-readable application code for the result. |
| 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.contactPhone | string | "0102030405" | The contact phone value. |
| data.contactEmail | string | "contact@innovorder.com" | The contact email value. |
| data.websiteUrl | string | "https://www.innovorder-burgers.com" | The website url value. |
| data.externalId | string | "EXT-BRAND-001" | Identifier in the connected external system. |
| data.brandType | string | "COMMERCIAL_CATERING" | The brand type value. |
| data.options | object | {…} | Object containing options fields. |
| data.options.ENABLE_ORDER_DETAIL_V2 | object | {…} | Object containing enable order detail v2 fields. |
| data.options.ENABLE_ORDER_DETAIL_V2.optionId | integer | 11664 | Identifier of the associated option. |
| data.options.ENABLE_ORDER_DETAIL_V2.nameValue | string | "ENABLE_ORDER_DETAIL_V2" | The name value value. |
| data.options.ENABLE_ORDER_DETAIL_V2.isActivated | boolean | true | Whether activated is enabled or applies. |
| data.hasArchivedCustomers | boolean | true | Whether archived customers is enabled or applies. |
Retrieve Brand Channels
Get the list of sales channels configured for the brand (e.g., Web, Kiosk, POS). This information is useful for filtering menus or consumption modes specific to a channel.
GET/brands/{brandId}/channelsList Channels
Retrieve all sales channels available for the brand.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "channel_succeed",
"message": "Vous avez accès à ces canaux.",
"data": {
"1": {
"channelId": 1,
"name": "kiosk",
"is_enabled": true
},
"2": {
"channelId": 2,
"name": "web",
"is_enabled": true
},
"5": {
"channelId": 5,
"name": "pos",
"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 | "channel_succeed" | Machine-readable application code for the result. |
| message | string | "Vous avez accès à ces canaux." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.1 | object | {…} | Object containing 1 fields. |
| data.1.channelId | integer | 1 | Identifier of the associated channel. |
| data.1.name | string | "kiosk" | The name value. |
| data.1.is_enabled | boolean | true | Whether enabled is enabled or applies. |
| data.2 | object | {…} | Object containing 2 fields. |
| data.2.channelId | integer | 2 | Identifier of the associated channel. |
| data.2.name | string | "web" | The name value. |
| data.2.is_enabled | boolean | true | Whether enabled is enabled or applies. |
| data.5 | object | {…} | Object containing 5 fields. |
| data.5.channelId | integer | 5 | Identifier of the associated channel. |
| data.5.name | string | "pos" | The name value. |
| data.5.is_enabled | boolean | true | Whether enabled is enabled or applies. |
Brand Options
Manage feature flags and configuration options for a brand. Options control which features are enabled or disabled across the brand (e.g., ENABLE_ORDER_DETAIL_V2, ENABLE_LOYALTY).
PUT/brands/{brandId}/optionsUpdate Brand Options
Update one or more feature flag options for a brand. Only the options provided in the request body are modified; others remain unchanged.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"options": {
"ENABLE_ORDER_DETAIL_V2": {
"isActivated": true
},
"ENABLE_LOYALTY": {
"isActivated": false
}
}
}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 |
|---|---|---|---|
| options | object | {…} | Object containing options fields. |
| options.ENABLE_ORDER_DETAIL_V2 | object | {…} | Object containing enable order detail v2 fields. |
| options.ENABLE_ORDER_DETAIL_V2.isActivated | boolean | true | Whether activated is enabled or applies. |
| options.ENABLE_LOYALTY | object | {…} | Object containing enable loyalty fields. |
| options.ENABLE_LOYALTY.isActivated | boolean | false | Whether activated is enabled or applies. |
Response
{
"status": 200,
"code": "brand_options_updated",
"message": "Options have been updated.",
"data": {
"ENABLE_ORDER_DETAIL_V2": {
"optionId": 11664,
"nameValue": "ENABLE_ORDER_DETAIL_V2",
"isActivated": true,
"brandId": 100
},
"ENABLE_LOYALTY": {
"optionId": 11665,
"nameValue": "ENABLE_LOYALTY",
"isActivated": false,
"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_options_updated" | Machine-readable application code for the result. |
| message | string | "Options have been updated." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.ENABLE_ORDER_DETAIL_V2 | object | {…} | Object containing enable order detail v2 fields. |
| data.ENABLE_ORDER_DETAIL_V2.optionId | integer | 11664 | Identifier of the associated option. |
| data.ENABLE_ORDER_DETAIL_V2.nameValue | string | "ENABLE_ORDER_DETAIL_V2" | The name value value. |
| data.ENABLE_ORDER_DETAIL_V2.isActivated | boolean | true | Whether activated is enabled or applies. |
| data.ENABLE_ORDER_DETAIL_V2.brandId | integer | 100 | Identifier of the brand. |
| data.ENABLE_LOYALTY | object | {…} | Object containing enable loyalty fields. |
| data.ENABLE_LOYALTY.optionId | integer | 11665 | Identifier of the associated option. |
| data.ENABLE_LOYALTY.nameValue | string | "ENABLE_LOYALTY" | The name value value. |
| data.ENABLE_LOYALTY.isActivated | boolean | false | Whether activated is enabled or applies. |
| data.ENABLE_LOYALTY.brandId | integer | 100 | Identifier of the brand. |
External ID Mappings
Store partner-system identifiers against Innovorder IDs, then resolve many identifiers in one request. A mapping is keyed by mappingKey and its internal numeric value; scope fields default to0 when omitted.
PUT/external_ids_mappingsBulk Upsert External ID Mappings
Creates or updates every mapping supplied in the request array. mappingKey, internalValue, and externalValue are required for every element. provider may be null or an empty string.
Request Body
[
{
"provider": "acme-pos",
"mappingKey": "product",
"internalValue": 464462,
"externalValue": "ACME-PRODUCT-42",
"restaurantId": 6801,
"channelId": 5,
"brandId": 3325
}
]Request Body Properties
Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.
| Property | Type | Required | Example | Description |
|---|---|---|---|---|
| [] | object | Not specified | {…} | Object containing fields. |
| [].provider | string | null | No | "acme-pos" | Optional source-system provider name; an empty string is also accepted. |
| [].mappingKey | string | Yes | "product" | Partner-defined mapping category, such as product or customer. |
| [].internalValue | integer | Yes | 464462 | Innovorder numeric identifier to map. |
| [].externalValue | string | Yes | "ACME-PRODUCT-42" | Identifier used by the partner system. |
| [].restaurantId | integer | No | 6801 | Optional restaurant scope. The stored default is 0 when omitted. |
| [].channelId | integer | No | 5 | Optional sales-channel scope. The stored default is 0 when omitted. |
| [].brandId | integer | No | 3325 | Optional brand scope. The stored default is 0 when omitted. |
Response
{
"status": 201,
"code": "external_ids_mappings_upsert_succeeded",
"message": "The external ids mappings has been created.",
"data": [
{
"externalIdsMappingId": 91,
"provider": "acme-pos",
"mappingKey": "product",
"internalValue": 464462,
"externalValue": "ACME-PRODUCT-42",
"restaurantId": 6801,
"channelId": 5,
"brandId": 3325,
"createdAt": "2026-07-11T09:15:00.000Z",
"updatedAt": "2026-07-11T09:15:00.000Z"
}
]
}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 | "external_ids_mappings_upsert_succeeded" | Machine-readable application code for the result. |
| message | string | "The external ids mappings has been created." | 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[].externalIdsMappingId | integer | 91 | Identifier of the associated external ids mapping. |
| data[].provider | string | "acme-pos" | The provider value. |
| data[].mappingKey | string | "product" | The mapping key value. |
| data[].internalValue | integer | 464462 | The internal value value. |
| data[].externalValue | string | "ACME-PRODUCT-42" | The external value value. |
| data[].restaurantId | integer | 6801 | Identifier of the restaurant. |
| data[].channelId | integer | 5 | Identifier of the associated channel. |
| data[].brandId | integer | 3325 | Identifier of the brand. |
| data[].createdAt | string | "2026-07-11T09:15:00.000Z" | Timestamp when this resource was created. |
| data[].updatedAt | string | "2026-07-11T09:15:00.000Z" | Timestamp when this resource was last updated. |
GET/external_ids_mappingsResolve External IDs
Resolves comma-separated Innovorder numeric IDs to external identifiers for one mapping key. The current implementation accepts provider but does not use it to filter the lookup.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| mappingKey | string | Yes | Mapping category to resolve. |
| internalValues | string | Yes | Comma-separated Innovorder numeric IDs, for example 464462,464463. |
| provider | string | No | Accepted optional provider value; it is not currently applied as a lookup filter. |
Response
{
"status": 200,
"code": "external_ids_mappings_search_succeeded",
"message": "The external ids mappings have been found.",
"data": {
"464462": "ACME-PRODUCT-42",
"464463": "ACME-PRODUCT-43"
}
}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 | "external_ids_mappings_search_succeeded" | Machine-readable application code for the result. |
| message | string | "The external ids mappings have been found." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.464462 | string | "ACME-PRODUCT-42" | The 464462 value. |
| data.464463 | string | "ACME-PRODUCT-43" | The 464463 value. |
Brand Legal Information
Manage the legal information registered for the brand (company registration, tax details, publication director and webmaster contacts). The read endpoint is publicly readable, but we recommend always calling it with an authenticated token. Note the singular /brand/ prefix on the update endpoint.
GET/brands/{brandId}/legalGet Brand Legal Information
Retrieve the legal information of the brand. The data field is null if no legal information has ever been registered for this brand. The nested address object is nullable.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Response
{
"status": 200,
"code": "brand_legal_succeed",
"data": {
"legalId": 42,
"socialReason": "Innovorder Burgers SAS",
"organizationType": "SAS",
"capital": "50000",
"commerceRegistryCity": "Paris",
"siren": "123456789",
"taxNumber": "FR12345678901",
"industryClassificationCode": "5610A",
"publicationDirectorName": "Jean Dupont",
"publicationDirectorFunction": "CEO",
"webmasterName": "Tech Team",
"webmasterEmail": "tech@innovorder.com",
"address": {
"addressId": 731240,
"locality": "Paris",
"postalCode": "75001",
"lat": 48.868,
"lng": 2.329
}
}
}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_legal_succeed" | Machine-readable application code for the result. |
| data | object | {…} | Endpoint-specific response payload. |
| data.legalId | integer | 42 | Identifier of the associated legal. |
| data.socialReason | string | "Innovorder Burgers SAS" | The social reason value. |
| data.organizationType | string | "SAS" | The organization type value. |
| data.capital | string | "50000" | The capital value. |
| data.commerceRegistryCity | string | "Paris" | The commerce registry city value. |
| data.siren | string | "123456789" | The siren value. |
| data.taxNumber | string | "FR12345678901" | The tax number value. |
| data.industryClassificationCode | string | "5610A" | The industry classification code value. |
| data.publicationDirectorName | string | "Jean Dupont" | The publication director name value. |
| data.publicationDirectorFunction | string | "CEO" | The publication director function value. |
| data.webmasterName | string | "Tech Team" | The webmaster name value. |
| data.webmasterEmail | string | "tech@innovorder.com" | The webmaster email value. |
| data.address | object | {…} | Object containing address fields. |
| data.address.addressId | integer | 731240 | Identifier of the associated address. |
| 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. |
PUT/brand/{brandId}/legalUpdate Legal Information
Create or update the legal information for a brand. Includes company details, tax info, and webmaster contact.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The unique identifier of the brand. |
Request Body
{
"socialReason": "Innovorder SAS",
"organizationType": "SAS",
"capital": 50000,
"commerceRegistryCity": "Paris",
"siren": "123456789",
"taxNumber": "FR12345678901",
"industryClassificationCode": "5610A",
"publicationDirectorName": "Jean Dupont",
"publicationDirectorFunction": "CEO",
"webmasterName": "Tech Team",
"webmasterEmail": "tech@innovorder.com",
"address": {
"lat": 48.8566,
"lng": 2.3522
}
}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 |
|---|---|---|---|
| socialReason | string | "Innovorder SAS" | The social reason value. |
| organizationType | string | "SAS" | The organization type value. |
| capital | integer | 50000 | The capital value. |
| commerceRegistryCity | string | "Paris" | The commerce registry city value. |
| siren | string | "123456789" | The siren value. |
| taxNumber | string | "FR12345678901" | The tax number value. |
| industryClassificationCode | string | "5610A" | The industry classification code value. |
| publicationDirectorName | string | "Jean Dupont" | The publication director name value. |
| publicationDirectorFunction | string | "CEO" | The publication director function value. |
| webmasterName | string | "Tech Team" | The webmaster name value. |
| webmasterEmail | string | "tech@innovorder.com" | The webmaster email value. |
| address | object | {…} | Object containing address fields. |
| address.lat | number | 48.8566 | The lat value. |
| address.lng | number | 2.3522 | The lng value. |
Response
{
"status": 200,
"code": "brand_legal_update_succeed",
"message": "Brand's legal has been successfully updated.",
"data": {
"legalId": 42,
"socialReason": "Innovorder SAS",
"organizationType": "SAS",
"capital": 50000,
"siren": "123456789",
"taxNumber": "FR12345678901"
}
}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_legal_update_succeed" | Machine-readable application code for the result. |
| message | string | "Brand's legal has been successfully updated." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.legalId | integer | 42 | Identifier of the associated legal. |
| data.socialReason | string | "Innovorder SAS" | The social reason value. |
| data.organizationType | string | "SAS" | The organization type value. |
| data.capital | integer | 50000 | The capital value. |
| data.siren | string | "123456789" | The siren value. |
| data.taxNumber | string | "FR12345678901" | The tax number value. |
Payment, Modules & Social Networks
The payment configuration, module configuration and social network links of a brand are documented on the Brand Configuration page.
Brand Groups
Role Requirement
This section applies only to users with the brandGroup role.
Brand Groups allow for the organization of multiple brands under a single entity (e.g., a holding company). The workflow for a Brand Group user is:
- Retrieve the list of brands in the group.
- Select a brand to manage.
- Generate a brand-specific access token ("Switch Context").
- Use the new token for all subsequent Brand/Menu/Order operations.
1. List Brands
GET/brand_groups/{brandGroupId}/brandsGet Brands in Group
Retrieve all brands associated with the specified brand group. Each entry is a full brand record; only a subset of fields is shown below.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandGroupId | integer | Yes | The unique identifier of the brand group (from /oauth/me). |
Response
{
"status": 200,
"code": "brand_group_brand_listed",
"message": "Brand group brands have been found.",
"data": {
"brands": [
{
"brandId": 100,
"name": "Innovorder Burgers",
"currency": "EUR"
},
{
"brandId": 101,
"name": "Innovorder Sushi",
"currency": "EUR"
}
]
}
}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_group_brand_listed" | Machine-readable application code for the result. |
| message | string | "Brand group brands have been found." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.brands | array | […] | List of brands entries. |
| data.brands[] | object | {…} | Object containing brands fields. |
| data.brands[].brandId | integer | 100 | Identifier of the brand. |
| data.brands[].name | string | "Innovorder Burgers" | The name value. |
| data.brands[].currency | string | "EUR" | ISO 4217 currency code. |
2. Switch Context (Generate Token)
GET/brand_groups/{brandId}/userGet Brand Token
Generate a new accessToken scoped to the specific brand. The token authenticates a dedicated brand-role user (internally called the "guest brand" user) that is automatically provisioned on first call, allowing the Brand Group user to operate on that specific brand. The target brand must belong to the brand group of the caller (403 otherwise).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| brandId | integer | Yes | The target brand ID. |
Response
{
"status": 200,
"code": "guest_brand_token_generated_successfully",
"message": "Guest brand login token generated successfully.",
"data": {
"accessToken": "eyJhbGciOiJIUzI1..."
}
}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 | "guest_brand_token_generated_successfully" | Machine-readable application code for the result. |
| message | string | "Guest brand login token generated successfully." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.accessToken | string | "eyJhbGciOiJIUzI1..." | The access token value. |