Utils#

Utils API v1.2.0 includes all the resources, endpoints, and methods that assist you to manage your restaurant operation.

The following sections guide you through the process allowed by this API.

Corridor Schedules#

API Reference

The Utils API enables you to manage the schedules of your corridors.

You can create, update, and obtain schedules of corridors in the platform.

Setting schedules for your corridors allows you to enable / disable them in the app according to your schedule operation.

Important

The child store uses the same schedule configuration as the parent store.

The main rules that involve managing schedules through the Utils API consist of the following:

  • The corridors are available 24-hours or according to the store schedule. Any absence of time parametrization for any day of the week or holidays for the corridors means that they always will be available for the users.

  • Once a schedule is created for any corridor, it will be available in the app at that time.

  • You can set many time intervals for a corridor, but those intervals cannot be overlapped.

  • The time interval consists of days of the week or holiday with start time and end time, that time is denoted in 24-hour format HH:mm:ss.

  • The values allowed to indicate the days programmed in the schedules are the following:

    • mon = Monday
    • tue = Tuesday
    • wed = Wednesday
    • thu = Thursday
    • fri = Friday
    • sat = Saturday
    • sun = Sunday
    • hol = holiday
  • The main properties required for schedule management through the Utils API consist:

    • store_id: The store identifier in Rappi
    • integration_id: The store identifier in the ally
    • corridor_id: The corridor identifier
    • days: scheduled days of the week when corridors or products could be available (values: mon,tue,wed,thu,fri,sat,sun,hol)
    • starts_time: a specific time for the given days, when the corridor or product begins to be available for users
    • ends_time: a specific time for the given days, when the corridor or product become unavailable to users

The following sections guide you through the process of configuring corridor schedules.

Important

In Rappi, the stores have two ids, the store_id identifier in Rappi and the integration_id identifier in the ally. There are several endpoints to manage corridor schedule information by store_id or by integration_id If you manage your own store ids, you must use the endpoints By Integration Id. If you use the store ids from Rappi you must use the endpoints By Store Id.

By Store Id#

Corridor Information#

API Reference

Use the GET corridor/stores/{storeId} endpoint to get the corridors of your Store.

To get the corridors of your store:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

[
    {
        "id": 123,
        "name": "Bebidas Calientes",
        "description": "Corredor Bebidas Calientes",
        "store_id": 999
    },
    {
        "id": 321,
        "name": "Bebidas Frias",
        "description": "Corredor Bebidas Frias",
        "store_id": 999
    }
]

Getting Corridor Schedules#

API Reference

Use the GET corridor/schedule/{corridorId}/store/{storeId} endpoint to get the schedules of your store by Corridor.

To get the corridor schedules for your store by Corridor:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "corridor_id": 321,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 1,
            "days": "mon,tue,wed,thu,fri,sat,sun,hol",
            "starts_time": "08:00:00",
            "ends_time": "20:00:00"
        }
    ]
}

Creating Corridor Schedules#

API Reference

Use the POST /corridor/schedule/{corridorId}/store/{storeId} endpoint to create the corridor schedules of your store.

To create the schedules of your corridor:

Make a POST request to the following URL, and add a JSON to the body of the request with the following objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

This is an example of JSON in request body:

{
  "schedule_details": [
    {
        "days": "mon,tue,wed,thu,fri,sat,sun",
        "starts_time": "08:00:00",
        "ends_time": "20:00:00"
    },
    {
        "days": "hol",
        "starts_time": "13:00:00",
        "ends_time": "22:00:00"
    }
  ]
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "corridor_id": 123,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 2,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "08:00:00",
            "ends_time": "20:00:00"
        },
        {
            "id": 3,
            "days": "hol",
            "starts_time": "13:00:00",
            "ends_time": "22:00:00"
        }
    ]
}

Updating Corridor Schedules#

API Reference

Use the PUT /corridor/schedule/{corridorId}/store/{storeId} endpoint to update the corridor schedules of your store.

To update the schedules of your corridor:

Make PUT request to following URL, and set JSON to body request with this objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

This is an example of JSON in request body:

{
  "schedule_details": [
    {
        "id": 2,
        "days": "mon,tue,wed,thu,fri,sat,sun",
        "starts_time": "10:00:00",
        "ends_time": "16:00:00"
    }
  ]
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "corridor_id": 123,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 2,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Deleting Corridor Schedules#

API Reference

Use the DELETE /corridor/schedule/{corridorId}/store/{storeId}/{corridorScheduleId} endpoint to delete the corridor schedules of your store.

To delete the schedules of your corridor:

Make DELETE request to following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}/{corridorScheduleId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "corridor_id": 123,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 2,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Note

The list in schedule_details represents the schedules that still persist in your corridor.

By Integration Id#

Corridor Information#

API Reference

Use the GET corridor/integration/{integrationId} endpoint to get the corridors of your Store.

To get the corridors of your store:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

[
    {
        "id": 123,
        "name": "Bebidas Calientes",
        "description": "Corredor Bebidas Calientes",
        "integration_id": "888"
    },
    {
        "id": 321,
        "name": "Bebidas Frias",
        "description": "Corredor Bebidas Frias",
        "integration_id": "888"
    }
]

Getting Corridor Schedules#

API Reference

Use the GET corridor/schedule/{corridorId}/integration/{integrationId} endpoint to get the schedules of your store by Corridor.

To get the corridor schedules for your store by Corridor:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "corridor_id": 321,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 1,
            "days": "mon,tue,wed,thu,fri,sat,sun,hol",
            "starts_time": "08:00:00",
            "ends_time": "20:00:00"
        }
    ]
}

Creating Corridor Schedules#

API Reference

Use the POST /corridor/schedule/{corridorId}/integration/{integrationId} endpoint to create the corridor schedules of your store.

To create the schedules of your corridor:

Make a POST request to the following URL, and add a JSON to the body of the request with the following objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "corridor_id": 123,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 2,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "08:00:00",
            "ends_time": "20:00:00"
        },
        {
            "id": 3,
            "days": "hol",
            "starts_time": "13:00:00",
            "ends_time": "22:00:00"
        }
    ]
}

Updating Corridor Schedules#

API Reference

Use the PUT /corridor/schedule/{corridorId}/integration/{integrationId} endpoint to update the corridor schedules of your store.

To update the schedules of your corridor:

Make PUT request to following URL, and set JSON to body request with this objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "corridor_id": 123,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 2,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Deleting Corridor Schedules#

API Reference

Use the DELETE /corridor/schedule/{corridorId}/integration/{integrationId}/{corridorProductScheduleId} endpoint to delete the corridor schedules of your store.

To delete the schedules of your corridor:

Make DELETE request to following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}/{corridorProductScheduleId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "corridor_id": 123,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 2,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Note

The list in schedule_details represents the schedules that still persist in your corridor.

Product Schedules#

API Reference

The Utils API enables you to manage the schedules of your products.

You can create, update, and obtain schedules of products in the platform.

Setting schedules for your products allows you to enable / disable them in the app according to your schedule operation.

Important

The child store uses the same schedule configuration as the parent store.

The main rules that involve managing schedules through the Utils API consist of the following:

  • The products are available 24-hours or according to the store/corridor schedule. Any absence of time parametrization for any day of the week or holidays for the products means that they always will be available for the users.

  • Once a schedule is created for any product, it will be available in the app at that time.

  • You can set many time intervals for a product, but those intervals cannot be overlapped.

  • The time interval consists of days of the week or holiday with start time and end time, that time is denoted in 24-hour format HH:mm:ss.

  • The values allowed to indicate the days programmed in the schedules are the following:

    • mon = Monday
    • tue = Tuesday
    • wed = Wednesday
    • thu = Thursday
    • fri = Friday
    • sat = Saturday
    • sun = Sunday
    • hol = holiday
  • Any schedule created for a product has higher priority than the corridor schedule. If only one product is available in a specific time interval, the corridor that contains it will also be available regardless of not having a schedule in the same time interval.

  • The main properties required for schedule management through the Utils API consist:

    • store_id: The store identifier in Rappi
    • integration_id: The store identifier in the ally
    • corridor_id: The corridor identifier
    • product_id: The product identifier in Rappi
    • sku: The product identifier in the ally
    • days: scheduled days of the week when corridors or products could be available (values: mon,tue,wed,thu,fri,sat,sun,hol)
    • starts_time: a specific time for the given days, when the corridor or product begins to be available for users
    • ends_time: a specific time for the given days, when the corridor or product become unavailable to users

The following sections guide you through the process of configuring product schedules.

Important

We have the possibility to manage the product schedule information by product_id (product identifier in Rappi) or by sku (product identifier in the ally) If you manage your own product ids, you must use the endpoints By Sku. If you use the ids from Rappi you must use the endpoints By Product Id.

By Product Id#

Product Information#

API Reference

Use the GET product/corridor/{corridorId}/store/{storeId} endpoint to get the products of your Store By corridor.

To get the products of your store by Corridor:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/product/corridor/{corridorId}/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

[
    {
        "product_id": 789,
        "name": "Americano Caliente 16 oz",
        "description": "16 oz. Espresso con agua caliente.",
        "corridor_id": 123,
        "store_id": 999
    },
    {
        "product_id": 987,
        "name": "Americano Caliente 20 oz",
        "description": "20 oz. Espresso con agua caliente.",
        "corridor_id": 123,
        "store_id": 999
    }
]

Getting Product Schedules#

API Reference

Use the GET product/schedule/{productId}/corridor/{corridorId}/store/{storeId} endpoint to get the schedules of your product by store and corridor.

To get the schedules for your product by a corridor:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "product_id": 789,
    "corridor_id": 123,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 4,
            "days": "mon,tue,wed,thu,fri,sat,sun,hol",
            "starts_time": "08:00:00",
            "ends_time": "23:00:00"
        }
    ]
}

Creating Product Schedules#

API Reference

Use the POST product/schedule/{productId}/corridor/{corridorId}/store/{storeId} endpoint to create the schedules of your product by store and corridor.

To create the schedules for your product by a corridor:

Make a POST request to the following URL, and add a JSON to the body of the request with the following objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

This is an example of JSON in request body:

{
  "schedule_details": [
    {
        "days": "mon,tue,wed,thu,fri,sat,sun",
        "starts_time": "08:00:00",
        "ends_time": "20:00:00"
    },
    {
        "days": "hol",
        "starts_time": "13:00:00",
        "ends_time": "22:00:00"
    }
  ]
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "product_id": 789,
    "corridor_id": 123,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 5,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "08:00:00",
            "ends_time": "20:00:00"
        },
        {
            "id": 6,
            "days": "hol",
            "starts_time": "13:00:00",
            "ends_time": "22:00:00"
        }
    ]
}

Updating Product Schedules#

API Reference

Use the PUT product/schedule/{productId}/corridor/{corridorId}/store/{storeId} endpoint to update the schedules of your product by store and corridor.

To update the schedules for your product by a corridor:

Make PUT request to following URL, and set JSON to body request with this objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

This is an example of JSON in request body:

{
  "schedule_details": [
    {
        "id": 5,
        "days": "mon,tue,wed,thu,fri,sat,sun",
        "starts_time": "10:00:00",
        "ends_time": "16:00:00"
    }
  ]
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "product_id": 789,
    "corridor_id": 123,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 5,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Deleting Product Schedules#

API Reference

Use the DELETE product/schedule/{productId}/corridor/{corridorId}/store/{storeId}/{corridorProductScheduleId} endpoint to delete the schedules of your product by store and corridor.

To delete the schedules for your product by a corridor:

Make DELETE request to following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}/{corridorProductScheduleId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "product_id": 789,
    "corridor_id": 123,
    "store_id": 999,
    "schedule_details": [
        {
            "id": 5,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Note

The list in schedule_details represents the schedules that still persist in your product.

By Sku#

Sku Information#

API Reference

Use the GET sku/corridor/{corridorId}/integration/{integrationId} endpoint to get the skus of your Store By corridor.

To get the sku list of your store by Corridor:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/sku/corridor/{corridorId}/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

[
    {
        "sku": 987,
        "name": "Americano Caliente 16 oz",
        "description": "16 oz. Espresso con agua caliente.",
        "corridor_id": 123,
        "integration_id": "888"
    },
    {
        "sku": 988,
        "name": "Americano Caliente 20 oz",
        "description": "20 oz. Espresso con agua caliente.",
        "corridor_id": 123,
        "integration_id": "888"
    }
]

Getting Product Schedules#

API Reference

Use the GET sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId} endpoint to get the schedules of your product by store and corridor.

To get the schedules for your product by a corridor:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "sku": 987,
    "corridor_id": 123,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 4,
            "days": "mon,tue,wed,thu,fri,sat,sun,hol",
            "starts_time": "08:00:00",
            "ends_time": "23:00:00"
        }
    ]
}

Creating Product Schedules#

API Reference

Use the POST sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId} endpoint to create the schedules of your product by store and corridor.

To create the schedules for your product by a corridor:

Make a POST request to the following URL, and add a JSON to the body of the request with the following objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

This is an example of JSON in request body:

{
  "schedule_details": [
    {
        "days": "mon,tue,wed,thu,fri,sat,sun",
        "starts_time": "08:00:00",
        "ends_time": "20:00:00"
    },
    {
        "days": "hol",
        "starts_time": "13:00:00",
        "ends_time": "22:00:00"
    }
  ]
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "sku": 987,
    "corridor_id": 123,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 5,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "08:00:00",
            "ends_time": "20:00:00"
        },
        {
            "id": 6,
            "days": "hol",
            "starts_time": "13:00:00",
            "ends_time": "22:00:00"
        }
    ]
}

Updating Product Schedules#

API Reference

Use the PUT sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId} endpoint to update the schedules of your product by store and corridor.

To update the schedules for your product by a corridor:

Make PUT request to following URL, and set JSON to body request with this objects.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

This is an example of JSON in request body:

{
  "schedule_details": [
    {
        "id": 5,
        "days": "mon,tue,wed,thu,fri,sat,sun",
        "starts_time": "10:00:00",
        "ends_time": "16:00:00"
    }
  ]
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
    "sku": 987,
    "corridor_id": 123,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 5,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Deleting Product Schedules#

API Reference

Use the DELETE sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId}/{corridorProductScheduleId} endpoint to delete the schedules of your product by store and corridor.

To delete the schedules for your product by a corridor:

Make DELETE request to following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId}/{corridorProductScheduleId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "sku": 987,
    "corridor_id": 123,
    "integration_id": "888",
    "schedule_details": [
        {
            "id": 5,
            "days": "mon,tue,wed,thu,fri,sat,sun",
            "starts_time": "10:00:00",
            "ends_time": "16:00:00"
        }
    ]
}

Note

The list in schedule_details represents the schedules that still persist in your product.

Store Hours#

API Reference

Utils API allows you to manage your store hours.

You can create, update and get store hours on the platform.

Important

Each store uses its own scheduling settings.

The main rules that involve managing schedules through the Utils API consist of the following::

  • A time slot is a segment of time in which the store has operations. There can be multiple time bands in a day of operation. The time slot is made up of a starts_time and ends_time, these fields are the start time and the end time of the slot is denoted by the 24-hour format HH: mm: ss

  • Once a schedule is created for any store, it will be available in the app at that time.

  • You can set many time ranges for a store, but those ranges cannot overlap.

  • Schedule types are regular, holidays and special days.

  • The regular schedule is a set of time bands that represent the hours of operations during the week (Monday - Sunday).

  • The allowed values to indicate the days programmed in the schedules are the following:

    • mon = Monday
    • tue = Tuesday
    • wed = Wednesday
    • thu = Thursday
    • fri = Friday
    • sat = Saturday
    • sun = Sunday
  • Holidays are a set of schedules classified by day and month, which are previously configured by Rappi according to the official calendar of each country.

  • A store is taken as 24 hours if it does not have settings for any regular day and holidays.

Note

Rappi gives you the facility to have a special schedule for those days since they usually represent sales like a Sunday.

  • We know that you want to celebrate special dates, for example, your establishment's anniversary , therefore we give you the possibility to create special days and also manage the time slots for that day.

Important

It is recommended that the closing time (the last time slot of the current day) is configured based on the average cooking time of your store, this way you would avoid generating an order in the last minute before closing the establishment. In addition, you will give our RT time to collect the order.

  • The main properties required for managing schedules through the Utils API consist of:
    • store_id: The store identifier in Rappi
    • day: Scheduled day of the week when store could be available (values: mon,tue,wed,thu,fri,sat,sun,hol)
    • starts_time: A specific time for the given days, when the corridor or product begins to be available for users
    • ends_time: A specific time for the given days, when the corridor or product become unavailable to users

By store#

Regular schedule information#

API Reference

Use the endpoint GET store/schedule/{storeId} to get all the regular hours for your store.

To get your store's regular hours:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
  "storeScheduleDays": [
    {
      "day": "mon",
      "storeSchedules": [
        {
          "id": 1171828,
          "startsTime": "07:00:00",
          "endsTime": "09:00:00"
        }
      ]
    },
    {
      "day": "tue",
      "storeSchedules": [
        {
          "id": 21126084,
          "startsTime": "00:00:00",
          "endsTime": "05:00:00"
        }
      ]
    },
    {
      "day": "sun",
      "storeSchedules": [
        {
          "id": 1171833,
          "startsTime": "00:00:00",
          "endsTime": "13:00:00"
        }
      ]
    }
  ]
}

Holidays schedule information#

API Reference

Use the endpoint GET store/schedule/{storeId}/holiday to get all the holiday hours for your store.

To get your store's hours for holidays:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/holiday

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
  "storeSpecialScheduleDays": [
    {
      "id": 270,
      "name": "Festivo",
      "month": 2,
      "day": 22,
      "cityId": null,
      "storeSchedules": []
    },
    {
      "id": 10342,
      "name": "Festivo",
      "month": 3,
      "day": 15,
      "cityId": null,
      "storeSchedules": [
        {
          "id": 2334763,
          "startsTime": "00:00:00",
          "endsTime": "10:00:00"
        }
      ]
    }
  ]
}

Special days schedule information#

API Reference

Use the endpoint GET store/schedule/{storeId}/special to get all the special hours for your store.

To get your store's hours for special days:

Make a GET request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/special

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
  "storeSpecialScheduleDays": [
    {
      "id": 270,
      "name": "Daniel birthday",
      "month": 6,
      "day": 20,
      "cityId": null,
      "storeSchedules": []
    },
    {
      "id": 10342,
      "name": "Anniversary",
      "month": 3,
      "day": 15,
      "cityId": null,
      "storeSchedules": [
        {
          "id": 2334761,
          "startsTime": "00:00:00",
          "endsTime": "10:00:00"
        }
      ]
    }
  ]
}

Creating time slots for regular hours#

API Reference

Use the endpoint POST store/schedule/{storeId} to create a time slot on a regular hours day.

To create a time slot on a regular hours day of your store:

Make a POST request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "day": "mon",
    "starts_time": "08:00:00",
    "ends_time": "09:00:00"
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
  "day": "mon",
  "storeSchedules": [
    {
      "id": 21126292,
      "starts_time": "08:00:00",
      "ends_time": "09:00:00"
    }
  ]
}

Creating time slots for holidays#

API Reference

Use the endpoint POST store/schedule/{storeId}/holiday/{holidayDayId} to create a time slot on a holiday.

To create a time slot on a holiday:

Make a POST request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/holiday/{holidayDayId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

[
    {
        "startsTime": "10:00:00",
        "endsTime": "12:00:00"
    },
    {
        "startsTime": "13:00:00",
        "endsTime": "15:00:00"
    }
]

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

[
  {
    "id": 21126293,
    "startsTime": "10:00:00",
    "endsTime": "12:00:00"
  },
  {
    "id": 21126294,
    "startsTime": "13:00:00",
    "endsTime": "15:00:00"
  }
]

Creating a special day#

API Reference

Use the endpoint POST store/schedule/{storeId}/special to create a special day for your store.

To create a special day for your store

Make a POST request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/special

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "day": 10,
    "month": 10,
    "name": "Special day",
    "schedules": [
        {
            "startsTime": "09:00:00",
            "endsTime": "12:00:00"
        },
        {
            "startsTime": "15:00:00",
            "endsTime": "16:00:00"
        }
    ]
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
  "name": "Dia especial",
  "month": 11,
  "day": 10,
  "storeSchedules": [
    {
      "id": 21126295,
      "startsTime": "09:00:00",
      "endsTime": "12:00:00"
    },
    {
      "id": 21126296,
      "startsTime": "15:00:00",
      "endsTime": "16:00:00"
    }
  ]
}

Creating time slots for special days#

API Reference

Use the endpoint POST store/schedule/{storeId}/special/{specialDayId} to create a time slot on a special day.

To create a time slot on a special day:

Make a POST request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/special/{specialDayId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

[
    {
        "startsTime": "12:00:00",
        "endsTime": "13:00:00"
    },
    {
        "startsTime": "21:00:00",
        "endsTime": "22:00:00"
    }
]

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

[
  {
    "id": 21126293,
    "startsTime": "12:00:00",
    "endsTime": "13:00:00"
  },
  {
    "id": 21126294,
    "startsTime": "21:00:00",
    "endsTime": "22:00:00"
  }
]

Updating time slots#

API Reference

Use the endpoint PUT store/schedule/{storeId}/{storeScheduleId} to update a time slot.

To update a time slot for your store:

Make a PUT request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/{storeScheduleId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

System returns JSON response like this:

{
    "startsTime": "07:00:00",
    "endsTime": "08:00:00"
}

Note

The values from this JSON are not real data. Ensure to replace them with your data when making API requests.

System returns JSON response like this:

{
  "day": "mon",
  "storeSchedules": [
    {
      "id": 1171828,
      "startsTime": "07:00:00",
      "endsTime": "08:00:00"
    }
  ]
}

Note

Given the ID of the time slot, the system will determine to which type of schedule it belongs, in this example, the system identified that this time slot belongs to the day Monday of the regular schedule

Deleting time slots#

API Reference

Use the endpoint DELETE store/schedule/{storeId}/{storeScheduleId} to delete a time slot.

To delete a time slot from your store:

Make a DELETE request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/{storeScheduleId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

The system does not return a response, so if you receive a 200 OK status, it means that the deletion was successful.

Deleting special days#

API Reference

Use the endpoint DELETE store/schedule/{storeId}/special/{specialDayId} to delete a special day.

To delete a special day from your store:

Make a DELETE request to the following URL.

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/schedule/{storeId}/special/{specialDayId}

{COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

The system does not return a response, so if you receive a 200 OK status, it means that the deletion was successful.

Stores status menus#

The Utils API enables you to get all the menus of a store and check out its status

Getting status of the stores menus#

API Reference

To get all the menus statuses of a store:

System returns JSON response like this:

Make a GET request to the following URL:

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/store/menu/{storeId}/details?from={from}&to={to}

  • {COUNTRY_DOMAIN}: Your Rappi Country Domain. See the list of Country Domains.

  • {storeId}: This is the identifier of your store integration.

  • {from}: This is the from date in format yyyy/MM/dd (this parameter is optional)

  • {to}: This is the end date in format yyyy/MM/dd (this parameter is optional)

In case of not sending the from or to parameters, it will show the data from a month ago to the current date

System returns JSON response like this:

[
    {
        "menu_id": "23236",
        "status": "ERROR_MA",
        "status_description": "An error has occurred in the sent menu flow.",
        "created_at": "2021-04-29 13:41:49.389",
        "updated_at": "2021-04-29 13:42:01.024",
        "error_description": "[Store: CO900113276]: Error finishing review. Code: 400 BAD_REQUEST. Message: {\"id\":400,\"message\":\"Estado inválido\",\"code\":\"partner.menu.status.invalid\"}"
    },
    {
        "menu_id": "23193",
        "status": "APPROVED",
        "status_description": "Final status when the review is approved in the partner manager portal.",
        "created_at": "2021-04-27 17:40:32.021",
        "updated_at": "2021-04-27 17:44:00.268",
        "error_description": ""
    }
]

Getting status of the store products#

API Reference

To get all the products and toppings statuses of a store:

Make a GET request to the following URL:

URL: https://{COUNTRY_DOMAIN}/api/rest-ops-utils/menu/integration/{integrationId}

System returns JSON response like this:

{
  "corridors": [
    {
      "id": "1000",
      "name": "Platos variados",
      "description": "",
      "storeId": "9000",
      "integrationId": "9000"
    }
  ],
  "products": [
    {
      "id": "10",
      "sku": "2021",
      "name": "Plato normal",
      "description": "Tiene de todo",
      "active": true,
      "isAvailable": true,
      "corridorId": "1000"
    }
  ],
  "toppingsCategories": [
    {
      "id": "20",
      "sku": null,
      "description": "Acompañamiento",
      "productId": "10",
      "toppings": [
        {
          "id": "341376951",
          "sku": "3033",
          "description": "Papas",
          "activated": true
        }
      ]
    }
  ]
}

Frequently asked questions about updating schedules#

  1. What does it mean for an aisle to have a schedule?

    It means that the aisle will be displayed in the user's app only at the configured hours.

  2. What happens if an aisle has a different schedule than the store?

    The fact that an aisle has a different schedule from the store means that the aisle will only be displayed at the configured time, for example: if your store is open from 8:00 am to 6:00 pm and you have a “Breakfast” aisle with a set time from 8:00 am to 11:30 am, the aisle will only be shown at this time, even if your store is open for longer

  3. What does it mean for a product to have a schedule?

    It means that the product will be displayed in the user's app only at the configured hours.

  4. What happens if you set different hours for the aisle and the product?

    When setting different times, the product's time prevails over the aisle time, so the aisle is enabled according to the product's time, showing only that product. For example: if the product “Orange Juice” is included in the “Breakfast” aisle, and the product's schedule is from 7:00 am to 11:30 am and the aisle's schedule is from 8:00 am to 11:30 am, then at 7:00 am the “Breakfast” aisle is enabled and shows only the “Orange Juice” product and at 8:00 am the aisle shows the other products it contains that have the same schedule.

  5. What schedule settings can be handled?

    The configuration allows the management of a calendar, that is, by days and by hours, it also includes a start time and an end time.

  6. What if aisles and products DO NOT have a set schedule?

    Their hours will be the same as the store's schedule, therefore, the entire menu will be displayed during the store's opening hours.

  7. Is it possible to update the schedule of aisles and products only for a branch store?

    Regardless if you send the information at the branch store level, the information is updated at the head store level, that is, the update is performed for the head stores, so the change is reflected both in the head store and in all branch stores associated with it

  8. Do store hours prevail over products and aisles hours?

    Store hours prevail over aisles and products hours