Skip to content
innovorder
⌘K

Restaurant estate

Restaurants

System map · Restaurant estate
Brand
Restaurant
Devices

Get the list of all restaurants associated with a specific brand. This is typically the next step after identifying the brand to get specific restaurant IDs.

GET/brands/{brandId}/restaurantsList Restaurants

Retrieve all restaurants belonging to the specified brand.

Parameters

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Response

json
{
  "status": 200,
  "code": "restaurant_succeed",
  "data": [
    {
      "restaurantId": 200,
      "name": "Innovorder Burgers Paris",
      "contactPhone": "+33 1 23 45 67 89",
      "brandId": 100,
      "address": {
        "addressId": 731239,
        "locality": "Paris",
        "postalCode": "75001",
        "streetNumber": "10",
        "route": "Rue de la Paix",
        "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"restaurant_succeed"Machine-readable application code for the result.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].restaurantIdinteger200Identifier of the restaurant.
data[].namestring"Innovorder Burgers Paris"The name value.
data[].contactPhonestring"+33 1 23 45 67 89"The contact phone value.
data[].brandIdinteger100Identifier of the brand.
data[].addressobject{…}Object containing address fields.
data[].address.addressIdinteger731239Identifier of the associated address.
data[].address.localitystring"Paris"The locality value.
data[].address.postalCodestring"75001"The postal code value.
data[].address.streetNumberstring"10"The street number value.
data[].address.routestring"Rue de la Paix"The route value.
data[].address.latnumber48.868The lat value.
data[].address.lngnumber2.329The lng value.

Restaurant Details

Retrieve the full record of a single restaurant, including its address, tags, restaurant family associations, feature options and operation zone summary.

GET/restaurants/{restaurantId}Get Restaurant Details

Retrieve the complete record of a restaurant. The response includes the address (nullable), restaurantTags, brandRestaurantFamilies, the feature options of the restaurant, and the operationZone summary (null when the brand does not use operation zones). Any authenticated user can call this endpoint.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant (numeric).

Response

json
{
  "status": 200,
  "code": "restaurant_succeed",
  "message": "You can access to these restaurants.",
  "data": {
    "restaurantId": 200,
    "name": "Innovorder Burgers Paris",
    "brandId": 100,
    "contactPhone": "+33123456789",
    "contactEmail": "paris@innovorder.com",
    "externalId": null,
    "address": {
      "addressId": 731239,
      "locality": "Paris",
      "postalCode": "75001",
      "streetNumber": "10",
      "route": "Rue de la Paix",
      "lat": 48.868,
      "lng": 2.329
    },
    "restaurantTags": [
      {
        "value": "downtown"
      }
    ],
    "brandRestaurantFamilies": [
      {
        "brandRestaurantFamilyId": 1
      }
    ],
    "options": {
      "ENABLE_ORDER_DETAIL_V2": {
        "optionId": 11664,
        "nameValue": "ENABLE_ORDER_DETAIL_V2",
        "isActivated": true
      }
    },
    "operationZone": null
  }
}
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"restaurant_succeed"Machine-readable application code for the result.
messagestring"You can access to these restaurants."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.restaurantIdinteger200Identifier of the restaurant.
data.namestring"Innovorder Burgers Paris"The name value.
data.brandIdinteger100Identifier of the brand.
data.contactPhonestring"+33123456789"The contact phone value.
data.contactEmailstring"paris@innovorder.com"The contact email value.
data.externalIdnullnullIdentifier in the connected external system.
data.addressobject{…}Object containing address fields.
data.address.addressIdinteger731239Identifier of the associated address.
data.address.localitystring"Paris"The locality value.
data.address.postalCodestring"75001"The postal code value.
data.address.streetNumberstring"10"The street number value.
data.address.routestring"Rue de la Paix"The route value.
data.address.latnumber48.868The lat value.
data.address.lngnumber2.329The lng value.
data.restaurantTagsarray[…]List of restaurant tags entries.
data.restaurantTags[]object{…}Object containing restaurant tags fields.
data.restaurantTags[].valuestring"downtown"The value value.
data.brandRestaurantFamiliesarray[…]List of brand restaurant families entries.
data.brandRestaurantFamilies[]object{…}Object containing brand restaurant families fields.
data.brandRestaurantFamilies[].brandRestaurantFamilyIdinteger1Identifier of the associated brand restaurant family.
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.operationZonenullnullThe operation zone value.

Restaurant Legal Information

Manage the legal information of a restaurant (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.

Operation Zones

When the brand uses operation zones, the legal information returned and updated by these endpoints is the one of the primary operation zone of the restaurant - it is shared by all restaurants of that zone, not necessarily the historical legal record of the restaurant itself.

GET/restaurants/{restaurantId}/legalGet Restaurant Legal Information

Retrieve the legal information of the restaurant. The data field is null if no legal information exists. The nested address object is nullable.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.

Response

json
{
  "status": 200,
  "code": "restaurant_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"restaurant_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/restaurants/{restaurantId}/legalUpdate Restaurant Legal Information

Create or update the legal information of the restaurant. All body fields are optional strings. If googlePlaceId is provided, the legal address is resolved through Google Places and created or updated accordingly. If no legal record exists yet, it is created. Note: changing siren, taxNumber or industryClassificationCode triggers a notification to the POS devices of the restaurant.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.

Request Body

json
{
  "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",
  "googlePlaceId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ"
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
socialReasonstring"Innovorder Burgers SAS"The social reason value.
organizationTypestring"SAS"The organization type value.
capitalstring"50000"The 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.
googlePlaceIdstring"ChIJD7fiBh9u5kcRYJSMaMOCCwQ"Identifier of the associated google place.

Response

json
{
  "status": 200,
  "code": "restaurant_legal_update_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"restaurant_legal_update_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.

Restaurant Management

Manage restaurants within a brand: update restaurant details, find the closest restaurant for web ordering, and retrieve restaurant data in various formats.

PUT/brand/{brandId}/restaurants/{restaurantId}Update Restaurant

Update the details of a restaurant including its address, contact information, tags, and family associations.

Parameters

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.
restaurantIdintegerYesThe unique identifier of the restaurant.

Request Body

json
{
  "name": "Innovorder Burgers Paris Centre",
  "contactEmail": "paris-centre@innovorder.com",
  "contactName": "Jean Dupont",
  "contactPhone": "+33123456789",
  "address": {
    "lat": 48.8566,
    "lng": 2.3522
  },
  "externalId": "EXT-REST-001",
  "imageUrl": "https://static.innovorder.fr/images/restaurant-200.jpg",
  "restaurantTags": [
    {
      "value": "downtown"
    }
  ],
  "brandRestaurantFamilies": [
    1,
    2
  ]
}
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 Paris Centre"The name value.
contactEmailstring"paris-centre@innovorder.com"The contact email value.
contactNamestring"Jean Dupont"The contact name value.
contactPhonestring"+33123456789"The contact phone value.
addressobject{…}Object containing address fields.
address.latnumber48.8566The lat value.
address.lngnumber2.3522The lng value.
externalIdstring"EXT-REST-001"Identifier in the connected external system.
imageUrlstring"https://static.innovorder.fr/images/restaurant-200.jpg"The image url value.
restaurantTagsarray[…]List of restaurant tags entries.
restaurantTags[]object{…}Object containing restaurant tags fields.
restaurantTags[].valuestring"downtown"The value value.
brandRestaurantFamiliesarray[…]List of brand restaurant families entries.
brandRestaurantFamilies[]integer1The brand restaurant families value.

Response

json
{
  "status": 200,
  "code": "restaurant_update_succeed",
  "message": "Restaurant has been successfully updated.",
  "data": {
    "restaurantId": 200,
    "name": "Innovorder Burgers Paris Centre",
    "contactEmail": "paris-centre@innovorder.com",
    "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"restaurant_update_succeed"Machine-readable application code for the result.
messagestring"Restaurant has been successfully updated."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.restaurantIdinteger200Identifier of the restaurant.
data.namestring"Innovorder Burgers Paris Centre"The name value.
data.contactEmailstring"paris-centre@innovorder.com"The contact email value.
data.brandIdinteger100Identifier of the brand.

GET/brand/{brandId}/restaurants/closestFind Closest Restaurant

Find the closest restaurants to a given location, sorted by distance. Used by web ordering to suggest the nearest restaurant.

Parameters

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.
latnumberYesLatitude of the user location (query parameter).
lngstringNoLongitude of the user location (query parameter).
consumption_modestringYesThe desired consumption mode, e.g., "delivery", "eat_in", "take_away" (query parameter).
accept_closed_restaurantsbooleanNoWhether to include closed restaurants in results (query parameter).

Response

json
{
  "status": 200,
  "code": "closest_restaurant_succeeded",
  "message": "The closest restaurant to this location has been successfully found.",
  "data": [
    {
      "restaurantId": 200,
      "name": "Innovorder Burgers Paris Centre",
      "distance": 0.45
    },
    {
      "restaurantId": 201,
      "name": "Innovorder Burgers Chatelet",
      "distance": 1.2
    }
  ]
}
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"closest_restaurant_succeeded"Machine-readable application code for the result.
messagestring"The closest restaurant to this location has been successfully found."Human-readable result message. Do not use this value for program logic.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].restaurantIdinteger200Identifier of the restaurant.
data[].namestring"Innovorder Burgers Paris Centre"The name value.
data[].distancenumber0.45The distance value.

GET/restaurantsGet All Restaurants (User Scope)

Retrieve all restaurants accessible to the authenticated user. Results are scoped based on the user role (admin sees all, brand user sees brand restaurants, restaurant user sees linked restaurants).

Parameters

NameTypeRequiredDescription
externalIdstringNoFilter by external ID (query parameter).
brandExternalIdstringNoFilter by brand external ID (query parameter).

Response

json
{
  "status": 200,
  "code": "restaurant_succeed",
  "data": [
    {
      "restaurantId": 200,
      "name": "Innovorder Burgers Paris",
      "brandId": 100,
      "contactPhone": "+33123456789",
      "address": {
        "locality": "Paris",
        "postalCode": "75001"
      }
    }
  ]
}
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"restaurant_succeed"Machine-readable application code for the result.
dataarray[…]Endpoint-specific response payload.
data[]object{…}Endpoint-specific response payload.
data[].restaurantIdinteger200Identifier of the restaurant.
data[].namestring"Innovorder Burgers Paris"The name value.
data[].brandIdinteger100Identifier of the brand.
data[].contactPhonestring"+33123456789"The contact phone value.
data[].addressobject{…}Object containing address fields.
data[].address.localitystring"Paris"The locality value.
data[].address.postalCodestring"75001"The postal code value.

GET/restaurants/v2/listGet Restaurants V2 (Paginated)

Retrieve restaurants with pagination, search, and sorting capabilities. Returns a total count alongside the results.

Parameters

NameTypeRequiredDescription
searchstringNoSearch term to filter restaurants by name (query parameter).
sortBystringNoColumn to sort by (default: "restaurantId") (query parameter).
sortDirectionstringNoSort direction: "asc" or "desc" (query parameter).
offsetintegerNoNumber of records to skip (default: 0) (query parameter).
limitintegerNoMaximum number of records to return (default: 10) (query parameter).

Response

json
{
  "status": 200,
  "code": "restaurant_succeed",
  "data": {
    "meta": {
      "total": 42
    },
    "restaurants": [
      {
        "restaurantId": 200,
        "name": "Innovorder Burgers Paris",
        "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"restaurant_succeed"Machine-readable application code for the result.
dataobject{…}Endpoint-specific response payload.
data.metaobject{…}Object containing meta fields.
data.meta.totalinteger42Total number of matching records.
data.restaurantsarray[…]List of restaurants entries.
data.restaurants[]object{…}Object containing restaurants fields.
data.restaurants[].restaurantIdinteger200Identifier of the restaurant.
data.restaurants[].namestring"Innovorder Burgers Paris"The name value.
data.restaurants[].brandIdinteger100Identifier of the brand.

PUT/restaurants/{restaurantId}/shifts_closure_hourUpdate Shift Closure Hour

Update the last shift closure hour for a restaurant. The hour defines when the business day ends for reporting purposes.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.

Request Body

json
{
  "hour": "23:30",
  "salesSystem": "pos"
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
hourstring"23:30"The hour value.
salesSystemstring"pos"The sales system value.

Response

json
{
  "status": 200,
  "code": "restaurant_last_shift_closure_hour_updated",
  "message": "Shift closure hour updated."
}
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"restaurant_last_shift_closure_hour_updated"Machine-readable application code for the result.
messagestring"Shift closure hour updated."Human-readable result message. Do not use this value for program logic.

Shifts

Shifts define the recurring operating time windows of a restaurant, used for entrance fees, pricing rules and reporting boundaries. The full shift API - GET /restaurants/{restaurantId}/shifts and the /shifts CRUD endpoints - is documented in POS → Shifts.

Attendance

Daily attendance counts per channel (GET /restaurants/{restaurantId}/attendance) are documented in Orders → Retrieve Orders (Statistics & Attendance).