Categorías

El recurso de Categoría permite la interacción con las categorías en los menús de la tienda.

La siguiente tabla describe los recursos disponibles de Categoría:

Recurso de CategoríasDescripción del Endpoint
GET v1/stores/{store_id}/categoriesRecupera las categorías de una tienda por su ID.
POST v1/stores/{store_id}/categoriesCrea o actualiza las categorías por ID de tienda.
DELETE v1/stores/{store_id}/categoriesElimina las categorías por ID de tienda.
GET v1/stores/{store_id}/categories/{category_id}Recupera la categoría especificada con todas sus relaciones de información.

GET Categorías por ID de Tienda

Este endpoint recupera la lista de categorías disponibles en una tienda específica.

URL del Endpoint

Utiliza esta URL para hacer una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories

{NEW_DOMAIN}: Este es el dominio de tu país en Rappi. Consulta la lista de dominios por país.

Propiedades del Endpoint

Este recurso tiene las siguientes propiedades:

Formatos de respuestaJSON
Requisitos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros

ParámetroTipoRequeridoDescripción
store_idintIdentificador único de la tienda cuyo menú se está solicitando.

Este parámetro se usa para especificar de qué tienda se debe recuperar el menú. El store_id debe ser un número entero válido que represente una tienda registrada en el sistema.

Códigos de Estado

Estos son los posibles códigos de estado de la respuesta para este endpoint:

Ejemplo de Solicitud

Este es un ejemplo de una solicitud de API utilizando este endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{store_id}/categories

Este es un ejemplo de la solicitud:


String storeId = "232"; String urlString = "hhttps://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/categories"; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Accept", "application/json"); connection.setRequestProperty("x-authorization", "Bearer YOUR_TOKEN"); int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { StringBuilder response = new StringBuilder(); String responseLine; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } System.out.println("Response body: " + response.toString()); }



Respuesta de Ejemplo "Éxito 200"

Este es un ejemplo de la respuesta "Éxito 200":

{ "id": 9, "sku": "abc", "store_id": 232, "title": "Bebidas", "last_updated": "2025-02-19T17:19:50.78726Z", "items": [], "menus": [], "schedules": [ { "days_of_week": "fri", "time_periods": [ { "start_time": "12:00", "end_time": "10:00" } ] }

POST Crear o Actualizar Categorías por ID de Tienda

Este endpoint permite crear o actualizar categorías en una tienda específica.

URL del Endpoint

Utiliza esta URL para hacer una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories

{NEW_DOMAIN}: Este es el dominio de tu país en Rappi. Consulta la lista de dominios por país.

Propiedades del Endpoint

Este recurso tiene las siguientes propiedades:

Formatos de respuestaJSON
Requisitos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

ParámetroTipoObligatorioDescripción
store_idintEl identificador único de la tienda cuyo menú se está modificando.

Notas Importantes

Descripción de los Campos de Solicitud

CampoTipoObligatorioDescripción
idintIdentificador de la categoría en el menú de la tienda.
skustringNoIdentificador SKU (Stock Keeping Unit) de la categoría.
store_idintIdentificador de la tienda en la aplicación de Rappi.
titlestringNombre o título de la categoría.
itemsarrayNoLista de elementos dentro de esta categoría
items[].idintSiID del elemento en la categoría
items[].skustringNoSKU del elemento en la categoría
items[].indexintSiPosición del elemento en la categoría
items[].menu_typestringTipo de menú al que pertenece el elemento
menusarrayNoLista de menús asociados
menus[].idintSiId del menu
menus[].menu_typestringTipo de menú (ej. "DEFAULT")
menus[].indexintSiPosición del menú
menus[].is_category_activebooleanIndica si la categoría está activa en este menú
schedulesarrayNoLista de horarios que definen la disponibilidad de la categoría.
schedules[].days_of_weekstringDías de la semana en que el horario está activo (por ejemplo, "fri").
schedules[].time_periodsarrayLista de periodos de tiempo dentro del horario.
schedules[].time_periods[].start_timestringHora de inicio del horario en formato HH:MM.
schedules[].time_periods[].end_timestringHora de finalización del horario en formato HH:MM.

Códigos de Estado

Estos son los posibles códigos de estado de la respuesta para este endpoint:

Ejemplo de Solicitud

Este es un ejemplo de una solicitud de API utilizando este endpoint:

POST https://api.dev.rappi.com/restaurants/menu/v1/stores/900159641/categories

Este es un ejemplo de la solicitud:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = "[{\"id\": 99, \"sku\": \"abc\", \"store_id\": 232, \"title\": \"Bebidas22\", \"last_updated\": \"2025-02-19T17:19:50.78726Z\", \"items\": [], \"menus\": [], \"schedules\": [{\"id\": 182, \"days_of_week\": \"fri\", \"time_periods\": [{\"id\": 378, \"start_time\": \"12:00\", \"end_time\": \"10:00\"}]}]}]"; RequestBody body = RequestBody.create(json, MediaType.get("application/json")); Request request = new Request.Builder() .url("https://api.dev.rappi.com/restaurants/menu/v1/stores/232/categories") .addHeader("Content-Type", "application/json") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .post(body) .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } } }



Respuesta de Ejemplo "Éxito 200"

Este es un ejemplo de la respuesta "Éxito 200":

{ "message": "Your request has been accepted." }

DELETE Eliminar Categorías por ID de Tienda

Este endpoint permite eliminar múltiples categorías de una tienda proporcionando sus identificadores.

URL del Endpoint

Utiliza esta URL para hacer una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories

{NEW_DOMAIN}: Este es el dominio de tu país en Rappi. Consulta la lista de dominios por país.

Propiedades del Endpoint

Este recurso tiene las siguientes propiedades:

Formatos de respuestaJSON
Requisitos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

ParámetroTipoObligatorioDescripción
store_idintEl identificador único de la tienda cuyo menú está siendo modificado.

Códigos de Estado

Estos son los posibles códigos de estado de la respuesta para este endpoint:

Ejemplo de Solicitud

La solicitud debe enviarse en formato JSON con un array de IDs de categorías a eliminar. Este es un ejemplo de una solicitud de API utilizando este endpoint:

DELETE https://api.dev.rappi.com/restaurants/menu/v1/stores/900152558/categories

Este es un ejemplo de la solicitud:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = "{\"ids\": [1, 2, 22]}"; RequestBody body = RequestBody.create(json, MediaType.get("application/json")); Request request = new Request.Builder() .url("https://api.dev.rappi.com/restaurants/menu/v1/stores/232/categories") .delete(body) .addHeader("Content-Type", "application/json") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .build(); try (Response response = client.newCall(request).execute()) { System.out.println(response.body().string()); } } }



OBTENER Categoría por ID de Tienda

Este endpoint se utiliza para recuperar los detalles de una categoría específica de una tienda.

URL del Endpoint

Utiliza esta URL para hacer una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{store_id}/categories/{category_id}

{NEW_DOMAIN}: Este es el dominio de tu país en Rappi. Consulta la lista de dominios por país.

Propiedades del Endpoint

Este recurso tiene las siguientes propiedades:

Formatos de respuestaJSON
Requisitos de autenticaciónToken

Parámetros:

Este endpoint tiene los siguientes parámetros

ParámetroTipoObligatorioDescripción
store_idintEl identificador único de la tienda cuyo menú está siendo consultado.
category_idintEl identificador único de la categoría solicitada.

Este parámetro se utiliza para especificar el menú de qué tienda debe recuperarse. El store_id debe ser un número entero válido que represente una tienda registrada en el sistema.

Códigos de Estado

Estos son los posibles códigos de estado de la respuesta para este endpoint:

Ejemplo de Solicitud

Este es un ejemplo de una solicitud de API utilizando este endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{store_id}/categories/{category_id}

Este es un ejemplo de la solicitud:


String storeId = "232"; String categoryId = "10" String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/categories/" + categoryId}; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Accept", "application/json"); connection.setRequestProperty("x-authorization", "Bearer YOUR_TOKEN"); int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode); try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { StringBuilder response = new StringBuilder(); String responseLine; while ((responseLine = br.readLine()) != null) { response.append(responseLine.trim()); } System.out.println("Response body: " + response.toString()); }



Respuesta de Ejemplo "Éxito 200"

Este es un ejemplo de la respuesta "Éxito 200":

{ "id": 10, "sku": "abc", "store_id": 232, "title": "Platos Fuertes", "last_updated": "2025-01-10T15:40:31.464312Z", "items": [], "menus": [], "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri,sat,sun,hol", "time_periods": [ { "start_time": "18:08", "end_time": "22:39" } ] } ] }

Esta tabla describe los objetos contenidos en el ejemplo de respuesta:

ObjetoTipoDescripción
idintIdentificador único de la categoría
skustringSKU (Stock Keeping Unit) de la categoría
store_idintIdentificador de la tienda en la aplicación de Rappi
titlestringNombre de la categoría
last_updatedstringMarca de tiempo de la última actualización (formato ISO 8601)
itemsarrayLista de productos dentro de esta categoría (actualmente vacía)
menusarrayLista de menús asociados a esta categoría (actualmente vacía)
schedulesarrayLista de horarios en los que esta categoría está disponible
schedules[].days_of_weekstringDías de la semana en los que el horario está activo (ej. lun, mar, mié)
schedules[].time_periodsarrayLista de períodos de tiempo que definen la disponibilidad de la categoría
schedules[].time_periods[].start_timestringHora de inicio del período de tiempo (formato HH:mm)
schedules[].time_periods[].end_timestringHora de finalización del período de tiempo (formato HH:mm)