Skip to content
innovorder
⌘K

Organization

Brands

System map · Brand hierarchy
Brand
Restaurants
Channels

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

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_succeed"Machine-readable application code for the result.
messagestring"Vous pouvez accéder à cette enseigne."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.brandIdinteger100Identifier of the brand.
data.brandHashstring"bb10813b502b"The brand hash value.
data.namestring"Innovorder Burgers"The name value.
data.localestring"fr"The locale value.
data.currencystring"EUR"ISO 4217 currency code.
data.contactPhonestring"0102030405"The contact phone value.
data.contactEmailstring"contact@innovorder.com"The contact email value.
data.websiteUrlnullnullThe website url value.
data.websiteCustomCssUrlstring"https://static.innovorder.fr/webcss/brand-100-custom.css"The website custom css url value.
data.legalIdnullnullIdentifier of the associated legal.
data.moduleStripeIdnullnullIdentifier of the associated module stripe.
data.externalIdnullnullIdentifier in the connected external system.
data.created_atstring"2025-09-08T07:43:27.000Z"Timestamp when this resource was created.
data.brandTypestring"COMMERCIAL_CATERING"The brand type value.
data.notenullnullThe note value.
data.statusnullnullHTTP status code returned by the API.
data.optionsobject{…}Object containing options fields.
data.options.ENABLE_ORDER_DETAIL_V2object{…}Object containing enable order detail v2 fields.
data.options.ENABLE_ORDER_DETAIL_V2.optionIdinteger11664Identifier of the associated option.
data.options.ENABLE_ORDER_DETAIL_V2.nameValuestring"ENABLE_ORDER_DETAIL_V2"The name value value.
data.options.ENABLE_ORDER_DETAIL_V2.isActivatedbooleantrueWhether activated is enabled or applies.
data.options.ENABLE_ORDER_DETAIL_V2.restaurantIdnullnullIdentifier of the restaurant.
data.options.ENABLE_ORDER_DETAIL_V2.brandIdinteger100Identifier of the brand.
data.options.ENABLE_ORDER_DETAIL_V2.created_atstring"2025-09-08T07:43:27.000Z"Timestamp when this resource was created.
data.options.ENABLE_ORDER_DETAIL_V2.updated_atstring"2025-09-08T07:43:27.000Z"Timestamp when this resource was last updated.
data.options.ENABLE_ORDER_DETAIL_V2.deleted_atnullnullTimestamp when this resource was deleted, or null when it is active.
data.hasArchivedCustomersbooleantrueWhether archived customers is enabled or applies.
data.lowestPosVersionstring"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

NameTypeRequiredDescription
brandIdintegerYesBrand identifier used by the loyalty registration page.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_succeed"Machine-readable application code for the result.
messagestring"You can access to this brand."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.brandIdinteger42Identifier of the brand.
data.brandHashstring"HASH42"The brand hash value.
data.namestring"Innovorder Burgers"The name value.
data.currencystring"EUR"ISO 4217 currency code.
data.optionsobject{…}Object containing options fields.
data.options.BIRTHDATEobject{…}Object containing birthdate fields.
data.options.BIRTHDATE.nameValuestring"BIRTHDATE"The name value value.
data.options.BIRTHDATE.valuestring"true"The value value.
data.options.ADVANCED_SECURITY_RULESobject{…}Object containing advanced security rules fields.
data.options.ADVANCED_SECURITY_RULES.nameValuestring"ADVANCED_SECURITY_RULES"The name value value.
data.options.ADVANCED_SECURITY_RULES.valuestring"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

NameTypeRequiredDescription
brandIdintegerYesThe brand to inspect.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_operation_zone_status_found"Machine-readable application code for the result.
messagestring"Brand operation zone status found"Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.hasOpZoneRestaurantbooleantrueWhether op zone restaurant is enabled or applies.
data.brandCurrencystring"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

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Request Body

json
{
  "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.

PropertyTypeExampleDescription
namestring"Innovorder Burgers"The name value.
contactPhonestring"0102030405"The contact phone value.
contactEmailstring"contact@innovorder.com"The contact email value.
websiteUrlstring"https://www.innovorder-burgers.com"The website url value.
localestring"fr"The locale value.
currencystring"EUR"ISO 4217 currency code.
externalIdstring"EXT-BRAND-001"Identifier in the connected external system.
externalSecondIdstring"SECOND-001"Identifier of the associated external second.
brandTypestring"COMMERCIAL_CATERING"The brand type value.
notestring"Flagship brand"The note value.
shouldBlockTRDPaymentMethodsbooleanfalseThe should block trdpayment methods value.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_update_succeed"Machine-readable application code for the result.
dataobject{…}Endpoint-specific response payload.
data.brandIdinteger100Identifier of the brand.
data.brandHashstring"bb10813b502b"The brand hash value.
data.namestring"Innovorder Burgers"The name value.
data.localestring"fr"The locale value.
data.currencystring"EUR"ISO 4217 currency code.
data.contactPhonestring"0102030405"The contact phone value.
data.contactEmailstring"contact@innovorder.com"The contact email value.
data.websiteUrlstring"https://www.innovorder-burgers.com"The website url value.
data.externalIdstring"EXT-BRAND-001"Identifier in the connected external system.
data.brandTypestring"COMMERCIAL_CATERING"The brand type value.
data.optionsobject{…}Object containing options fields.
data.options.ENABLE_ORDER_DETAIL_V2object{…}Object containing enable order detail v2 fields.
data.options.ENABLE_ORDER_DETAIL_V2.optionIdinteger11664Identifier of the associated option.
data.options.ENABLE_ORDER_DETAIL_V2.nameValuestring"ENABLE_ORDER_DETAIL_V2"The name value value.
data.options.ENABLE_ORDER_DETAIL_V2.isActivatedbooleantrueWhether activated is enabled or applies.
data.hasArchivedCustomersbooleantrueWhether 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

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"channel_succeed"Machine-readable application code for the result.
messagestring"Vous avez accès à ces canaux."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.1object{…}Object containing 1 fields.
data.1.channelIdinteger1Identifier of the associated channel.
data.1.namestring"kiosk"The name value.
data.1.is_enabledbooleantrueWhether enabled is enabled or applies.
data.2object{…}Object containing 2 fields.
data.2.channelIdinteger2Identifier of the associated channel.
data.2.namestring"web"The name value.
data.2.is_enabledbooleantrueWhether enabled is enabled or applies.
data.5object{…}Object containing 5 fields.
data.5.channelIdinteger5Identifier of the associated channel.
data.5.namestring"pos"The name value.
data.5.is_enabledbooleantrueWhether 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

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Request Body

json
{
  "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.

PropertyTypeExampleDescription
optionsobject{…}Object containing options fields.
options.ENABLE_ORDER_DETAIL_V2object{…}Object containing enable order detail v2 fields.
options.ENABLE_ORDER_DETAIL_V2.isActivatedbooleantrueWhether activated is enabled or applies.
options.ENABLE_LOYALTYobject{…}Object containing enable loyalty fields.
options.ENABLE_LOYALTY.isActivatedbooleanfalseWhether activated is enabled or applies.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_options_updated"Machine-readable application code for the result.
messagestring"Options have been updated."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.ENABLE_ORDER_DETAIL_V2object{…}Object containing enable order detail v2 fields.
data.ENABLE_ORDER_DETAIL_V2.optionIdinteger11664Identifier of the associated option.
data.ENABLE_ORDER_DETAIL_V2.nameValuestring"ENABLE_ORDER_DETAIL_V2"The name value value.
data.ENABLE_ORDER_DETAIL_V2.isActivatedbooleantrueWhether activated is enabled or applies.
data.ENABLE_ORDER_DETAIL_V2.brandIdinteger100Identifier of the brand.
data.ENABLE_LOYALTYobject{…}Object containing enable loyalty fields.
data.ENABLE_LOYALTY.optionIdinteger11665Identifier of the associated option.
data.ENABLE_LOYALTY.nameValuestring"ENABLE_LOYALTY"The name value value.
data.ENABLE_LOYALTY.isActivatedbooleanfalseWhether activated is enabled or applies.
data.ENABLE_LOYALTY.brandIdinteger100Identifier 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

json
[
  {
    "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.

PropertyTypeRequiredExampleDescription
[]objectNot specified{…}Object containing fields.
[].providerstring | nullNo"acme-pos"Optional source-system provider name; an empty string is also accepted.
[].mappingKeystringYes"product"Partner-defined mapping category, such as product or customer.
[].internalValueintegerYes464462Innovorder numeric identifier to map.
[].externalValuestringYes"ACME-PRODUCT-42"Identifier used by the partner system.
[].restaurantIdintegerNo6801Optional restaurant scope. The stored default is 0 when omitted.
[].channelIdintegerNo5Optional sales-channel scope. The stored default is 0 when omitted.
[].brandIdintegerNo3325Optional brand scope. The stored default is 0 when omitted.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger201HTTP status code returned by the API.
codestring"external_ids_mappings_upsert_succeeded"Machine-readable application code for the result.
messagestring"The external ids mappings has been created."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].externalIdsMappingIdinteger91Identifier of the associated external ids mapping.
data[].providerstring"acme-pos"The provider value.
data[].mappingKeystring"product"The mapping key value.
data[].internalValueinteger464462The internal value value.
data[].externalValuestring"ACME-PRODUCT-42"The external value value.
data[].restaurantIdinteger6801Identifier of the restaurant.
data[].channelIdinteger5Identifier of the associated channel.
data[].brandIdinteger3325Identifier of the brand.
data[].createdAtstring"2026-07-11T09:15:00.000Z"Timestamp when this resource was created.
data[].updatedAtstring"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

NameTypeRequiredDescription
mappingKeystringYesMapping category to resolve.
internalValuesstringYesComma-separated Innovorder numeric IDs, for example 464462,464463.
providerstringNoAccepted optional provider value; it is not currently applied as a lookup filter.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"external_ids_mappings_search_succeeded"Machine-readable application code for the result.
messagestring"The external ids mappings have been found."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.464462string"ACME-PRODUCT-42"The 464462 value.
data.464463string"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

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_legal_succeed"Machine-readable application code for the result.
dataobject{…}Endpoint-specific response payload.
data.legalIdinteger42Identifier of the associated legal.
data.socialReasonstring"Innovorder Burgers SAS"The social reason value.
data.organizationTypestring"SAS"The organization type value.
data.capitalstring"50000"The capital value.
data.commerceRegistryCitystring"Paris"The commerce registry city value.
data.sirenstring"123456789"The siren value.
data.taxNumberstring"FR12345678901"The tax number value.
data.industryClassificationCodestring"5610A"The industry classification code value.
data.publicationDirectorNamestring"Jean Dupont"The publication director name value.
data.publicationDirectorFunctionstring"CEO"The publication director function value.
data.webmasterNamestring"Tech Team"The webmaster name value.
data.webmasterEmailstring"tech@innovorder.com"The webmaster email value.
data.addressobject{…}Object containing address fields.
data.address.addressIdinteger731240Identifier of the associated address.
data.address.localitystring"Paris"The locality value.
data.address.postalCodestring"75001"The postal code value.
data.address.latnumber48.868The lat value.
data.address.lngnumber2.329The 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

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Request Body

json
{
  "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.

PropertyTypeExampleDescription
socialReasonstring"Innovorder SAS"The social reason value.
organizationTypestring"SAS"The organization type value.
capitalinteger50000The capital value.
commerceRegistryCitystring"Paris"The commerce registry city value.
sirenstring"123456789"The siren value.
taxNumberstring"FR12345678901"The tax number value.
industryClassificationCodestring"5610A"The industry classification code value.
publicationDirectorNamestring"Jean Dupont"The publication director name value.
publicationDirectorFunctionstring"CEO"The publication director function value.
webmasterNamestring"Tech Team"The webmaster name value.
webmasterEmailstring"tech@innovorder.com"The webmaster email value.
addressobject{…}Object containing address fields.
address.latnumber48.8566The lat value.
address.lngnumber2.3522The lng value.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_legal_update_succeed"Machine-readable application code for the result.
messagestring"Brand's legal has been successfully updated."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.legalIdinteger42Identifier of the associated legal.
data.socialReasonstring"Innovorder SAS"The social reason value.
data.organizationTypestring"SAS"The organization type value.
data.capitalinteger50000The capital value.
data.sirenstring"123456789"The siren value.
data.taxNumberstring"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:

  1. Retrieve the list of brands in the group.
  2. Select a brand to manage.
  3. Generate a brand-specific access token ("Switch Context").
  4. 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

NameTypeRequiredDescription
brandGroupIdintegerYesThe unique identifier of the brand group (from /oauth/me).

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"brand_group_brand_listed"Machine-readable application code for the result.
messagestring"Brand group brands have been found."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.brandsarray[…]List of brands entries.
data.brands[]object{…}Object containing brands fields.
data.brands[].brandIdinteger100Identifier of the brand.
data.brands[].namestring"Innovorder Burgers"The name value.
data.brands[].currencystring"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

NameTypeRequiredDescription
brandIdintegerYesThe target brand ID.

Response

json
{
  "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.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"guest_brand_token_generated_successfully"Machine-readable application code for the result.
messagestring"Guest brand login token generated successfully."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.accessTokenstring"eyJhbGciOiJIUzI1..."The access token value.