Skip to content
innovorder
⌘K

Service operations

Pickup

Pickup schedules define the time windows during which a restaurant accepts orders for pickup (or delivery). Each schedule entry specifies a day of the week, a start and end time (in minutes from midnight), and optional ordering quotas per consumption mode.

Reference Values

day
Day of week: MON, TUE, WED, THU, FRI, SAT, SUN
consumptionMode
"1" (Delivery), "2" (Take Away), "3" (Sit In), "4" (Drive)
start / end
Time in minutes from midnight (e.g., 690 = 11:30, 840 = 14:00).

GET/restaurants/{restaurantId}/pickup_schedules/Get Pickup Schedules

Retrieve all pickup schedules for a restaurant. Optionally filter by day of the week. This endpoint is publicly accessible (guests and customers can call it).

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.
daystringNoFilter by day of week. Values: MON, TUE, WED, THU, FRI, SAT, SUN (query parameter).

Response

json
{
  "status": 200,
  "code": "schedule_succeed",
  "message": "You can access to these schedules.",
  "data": {
    "modelId": 200,
    "pickupSchedules": [
      {
        "pickupScheduleId": 1001,
        "restaurantId": 200,
        "day": "MON",
        "start": 690,
        "end": 840,
        "orderingQuotas": [
          {
            "consumptionMode": "2",
            "orderingQuota": 50
          }
        ]
      },
      {
        "pickupScheduleId": 1002,
        "restaurantId": 200,
        "day": "MON",
        "start": 1080,
        "end": 1320,
        "orderingQuotas": [
          {
            "consumptionMode": "1",
            "orderingQuota": 30
          },
          {
            "consumptionMode": "2",
            "orderingQuota": 40
          }
        ]
      }
    ]
  }
}
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"schedule_succeed"Machine-readable application code for the result.
messagestring"You can access to these schedules."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.modelIdinteger200Identifier of the associated model.
data.pickupSchedulesarray[…]List of pickup schedules entries.
data.pickupSchedules[]object{…}Object containing pickup schedules fields.
data.pickupSchedules[].pickupScheduleIdinteger1001Identifier of the associated pickup schedule.
data.pickupSchedules[].restaurantIdinteger200Identifier of the restaurant.
data.pickupSchedules[].daystring"MON"The day value.
data.pickupSchedules[].startinteger690The start value.
data.pickupSchedules[].endinteger840The end value.
data.pickupSchedules[].orderingQuotasarray[…]List of ordering quotas entries.
data.pickupSchedules[].orderingQuotas[]object{…}Object containing ordering quotas fields.
data.pickupSchedules[].orderingQuotas[].consumptionModestring"2"The consumption mode value.
data.pickupSchedules[].orderingQuotas[].orderingQuotainteger50The ordering quota value.

POST/restaurants/{restaurantId}/pickup_schedules/Replace Pickup Schedules

Replace all pickup schedules for a restaurant. The existing schedules are deleted and the provided list is created. Schedules must not overlap for the same day and time range.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.

Request Body

json
{
  "pickupSchedules": [
    {
      "day": "MON",
      "start": 690,
      "end": 840,
      "orderingQuotas": [
        {
          "consumptionMode": "2",
          "orderingQuota": 50
        }
      ]
    },
    {
      "day": "MON",
      "start": 1080,
      "end": 1320,
      "orderingQuotas": [
        {
          "consumptionMode": "1",
          "orderingQuota": 30
        },
        {
          "consumptionMode": "2",
          "orderingQuota": 40
        }
      ]
    },
    {
      "day": "TUE",
      "start": 690,
      "end": 840,
      "orderingQuotas": []
    }
  ]
}
Request Body Properties

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

PropertyTypeExampleDescription
pickupSchedulesarray[…]List of pickup schedules entries.
pickupSchedules[]object{…}Object containing pickup schedules fields.
pickupSchedules[].daystring"MON"The day value.
pickupSchedules[].startinteger690The start value.
pickupSchedules[].endinteger840The end value.
pickupSchedules[].orderingQuotasarray[…]List of ordering quotas entries.
pickupSchedules[].orderingQuotas[]object{…}Object containing ordering quotas fields.
pickupSchedules[].orderingQuotas[].consumptionModestring"2"The consumption mode value.
pickupSchedules[].orderingQuotas[].orderingQuotainteger50The ordering quota value.

Response

json
{
  "status": 200,
  "code": "schedule_create_succeed",
  "message": "A schedule has been successfully added to the restaurant.",
  "data": {
    "modelId": 200,
    "pickupSchedules": [
      {
        "pickupScheduleId": 2001,
        "restaurantId": 200,
        "day": "MON",
        "start": 690,
        "end": 840,
        "orderingQuotas": [
          {
            "consumptionMode": "2",
            "orderingQuota": 50
          }
        ]
      },
      {
        "pickupScheduleId": 2002,
        "restaurantId": 200,
        "day": "MON",
        "start": 1080,
        "end": 1320,
        "orderingQuotas": [
          {
            "consumptionMode": "1",
            "orderingQuota": 30
          },
          {
            "consumptionMode": "2",
            "orderingQuota": 40
          }
        ]
      },
      {
        "pickupScheduleId": 2003,
        "restaurantId": 200,
        "day": "TUE",
        "start": 690,
        "end": 840,
        "orderingQuotas": []
      }
    ]
  }
}
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"schedule_create_succeed"Machine-readable application code for the result.
messagestring"A schedule has been successfully added to the restaurant."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.modelIdinteger200Identifier of the associated model.
data.pickupSchedulesarray[…]List of pickup schedules entries.
data.pickupSchedules[]object{…}Object containing pickup schedules fields.
data.pickupSchedules[].pickupScheduleIdinteger2001Identifier of the associated pickup schedule.
data.pickupSchedules[].restaurantIdinteger200Identifier of the restaurant.
data.pickupSchedules[].daystring"MON"The day value.
data.pickupSchedules[].startinteger690The start value.
data.pickupSchedules[].endinteger840The end value.
data.pickupSchedules[].orderingQuotasarray[…]List of ordering quotas entries.
data.pickupSchedules[].orderingQuotas[]object{…}Object containing ordering quotas fields.
data.pickupSchedules[].orderingQuotas[].consumptionModestring"2"The consumption mode value.
data.pickupSchedules[].orderingQuotas[].orderingQuotainteger50The ordering quota value.

Pickup Points

Pickup points represent physical locations where customers can collect their orders. Each pickup point has a name and an address. They can be queried by brand (to get all pickup points across a brand's restaurants) or by individual restaurant.

GET/brands/{brandId}/pickup_pointsList Pickup Points by Brand

Retrieve all pickup points associated with a brand. This is a public endpoint and does not require authentication.

Parameters

NameTypeRequiredDescription
brandIdintegerYesThe unique identifier of the brand.

Response

json
{
  "status": 200,
  "code": "pickup_points_found",
  "message": "The pickup points have been found.",
  "data": [
    {
      "pickupPointId": 10,
      "brandId": 100,
      "restaurantId": 200,
      "addressId": 500,
      "name": "Main Entrance Counter",
      "address": "Innovorder Burgers Paris, 10 Rue de la Paix, 75002 Paris",
      "additionalInfo": "Collect orders at the main counter."
    },
    {
      "pickupPointId": 11,
      "brandId": 100,
      "restaurantId": 200,
      "addressId": 501,
      "name": "Side Door Pickup",
      "address": "Innovorder Burgers Paris, 12 Rue de la Paix, 75002 Paris",
      "additionalInfo": 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"pickup_points_found"Machine-readable application code for the result.
messagestring"The pickup points have been 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[].pickupPointIdinteger10Identifier of the associated pickup point.
data[].brandIdinteger100Identifier of the brand.
data[].restaurantIdinteger200Identifier of the restaurant.
data[].addressIdinteger500Identifier of the associated address.
data[].namestring"Main Entrance Counter"The name value.
data[].addressstring"Innovorder Burgers Paris, 10 Rue de la Paix, 75002 Paris"The address value.
data[].additionalInfostring"Collect orders at the main counter."The additional info value.

GET/restaurants/{restaurantId}/pickup_pointsList Pickup Points by Restaurant

Retrieve all pickup points for a specific restaurant.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.

Response

json
{
  "status": 200,
  "code": "pickup_points_found",
  "message": "The pickup points have been found.",
  "data": [
    {
      "pickupPointId": 10,
      "brandId": 100,
      "restaurantId": 200,
      "addressId": 500,
      "name": "Main Entrance Counter",
      "address": "Innovorder Burgers Paris, 10 Rue de la Paix, 75002 Paris",
      "additionalInfo": "Collect orders at the main counter."
    }
  ]
}
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"pickup_points_found"Machine-readable application code for the result.
messagestring"The pickup points have been 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[].pickupPointIdinteger10Identifier of the associated pickup point.
data[].brandIdinteger100Identifier of the brand.
data[].restaurantIdinteger200Identifier of the restaurant.
data[].addressIdinteger500Identifier of the associated address.
data[].namestring"Main Entrance Counter"The name value.
data[].addressstring"Innovorder Burgers Paris, 10 Rue de la Paix, 75002 Paris"The address value.
data[].additionalInfostring"Collect orders at the main counter."The additional info value.

GET/pickup_points/{pickupPointId}Get Pickup Point

Retrieves one pickup point. This endpoint is available to administrators and customers; it returns a not-found error when the identifier does not exist.

Parameters

NameTypeRequiredDescription
pickupPointIdintegerYesThe unique identifier of the pickup point.

Response

json
{
  "status": 200,
  "code": "pickup_points_found",
  "message": "The pickup points have been found.",
  "data": {
    "pickupPointId": 10,
    "brandId": 100,
    "restaurantId": 200,
    "addressId": 500,
    "name": "Main Entrance Counter",
    "address": "Innovorder Burgers Paris, 10 Rue de la Paix, 75002 Paris",
    "additionalInfo": "Collect orders at the main counter."
  }
}
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"pickup_points_found"Machine-readable application code for the result.
messagestring"The pickup points have been found."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.pickupPointIdinteger10Identifier of the associated pickup point.
data.brandIdinteger100Identifier of the brand.
data.restaurantIdinteger200Identifier of the restaurant.
data.addressIdinteger500Identifier of the associated address.
data.namestring"Main Entrance Counter"The name value.
data.addressstring"Innovorder Burgers Paris, 10 Rue de la Paix, 75002 Paris"The address value.
data.additionalInfostring"Collect orders at the main counter."The additional info value.

PUT/pickup_points/{pickupPointId}Update Pickup Point

Update the name of an existing pickup point.

Parameters

NameTypeRequiredDescription
pickupPointIdintegerYesThe unique identifier of the pickup point to update.

Request Body

json
{
  "name": "Main Entrance Counter (Updated)"
}
Request Body Properties

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

PropertyTypeExampleDescription
namestring"Main Entrance Counter (Updated)"The name value.

Response

json
{
  "status": 200,
  "code": "pickup_point_updated",
  "message": "The pickup point has been updated.",
  "data": {
    "pickupPointId": 10,
    "restaurantId": 200,
    "name": "Main Entrance Counter (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"pickup_point_updated"Machine-readable application code for the result.
messagestring"The pickup point has been updated."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.pickupPointIdinteger10Identifier of the associated pickup point.
data.restaurantIdinteger200Identifier of the restaurant.
data.namestring"Main Entrance Counter (Updated)"The name value.