Rest API - Menu

El recurso Menús permite interactuar con los menús y productos de un restaurante.

El resource permite gestionar de forma unificada todos los componentes del menú de una tienda —menús, categorías e ítems— utilizando el identificador de tienda (storeId). Esta estructura simplifica la integración al centralizar la información y operación sobre el menú completo desde un solo recurso.

El catálogo de la tienda se compone de ítems de dos tipos: ITEM, que representa productos o modificadores individuales, y MODIFIER_GROUP, que agrupa modificadores. Las categorías contienen solo ítems de tipo ITEM, y las relaciones entre ítems están limitadas a combinaciones entre tipos distintos, como ITEMMODIFIER_GROUP y MODIFIER_GROUPITEM.

La siguiente tabla describe los diferentes contenidos del recurso Menú:

RecursoDescripción
GET /v1/stores/{storeId}/store-menuRecupera el menú completo de la tienda, incluidos los artículos, categorías y tipos de menú, mediante el ID de la tienda.
POST /v1/stores/{storeId}/store-menuCarga el menú completo de la tienda en un bucket de S3.
GET /v1/stores/{storeId}/menuRecupera los menús de una tienda por ID de tienda.
POST /v1/stores/{storeId}/menuCrea o actualiza los menús por ID de tienda.
DELETE /v1/stores/{storeId}/menuElimina los menús especificados por ID de tienda.
GET /v1/stores/{storeId}/menu/{menuId}Recupera el menú especificado con todas las relaciones de información por ID de tienda.
GET /v1/stores/{storeId}/categoriesRecupera las categorías de una tienda por su ID.
POST /v1/stores/{storeId}/categoriesCrea o actualiza las categorías por ID de tienda.
DELETE /v1/stores/{storeId}/categoriesElimina las categorías por ID de tienda.
GET /v1/stores/{storeId}/categories/{categoryId}Recupera la categoría especificada con todas sus relaciones de información.
GET /v1/stores/{storeId}/itemsRecupera los artículos de una tienda por ID de tienda.
POST /v1/stores/{storeId}/itemsCrea o actualiza los artículos por ID de tienda..
DELETE /v1/stores/{storeId}/itemsElimina los artículos específicos por ID de tienda.
GET /v1/stores/{storeId}/items/{itemId}RRecupera el artículo específico con todas las relaciones de información por ID de tienda.

GET Menú de tienda por ID de tienda

Utiliza este endpoint para recuperar el menú de la tienda (los menús completos con artículos, categorías y tipos de menú) por storeId.

URL del Endpoint

Utiliza esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/store-menu

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

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

This parameter is used to specify which store's menu should be retrieved. The storeId should be a valid integer representing a store registered in the system.

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{storeId}/store-menu

Este es un ejemplo de la llamada:


String storeId = "232"; String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/"+storeId+"/store-menu"; 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"); 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()); } System.out.println("Response Code : " + connection.getResponseCode());



Ejemplo de Respuesta

Este es un ejemplo de la respuesta:

{ "storeId": 232, "menus": [ { "id": 9, "storeId": 232, "super_store_id": 232, "menu_type": "DEFAULT", "categories": [ { "id": 107, "sku": "ADSA-UY-UNICO MONTEVIDEO-800018", "index": 8, "is_category_active": true, "storeId": 232 } ] } ], "categories": [ { "id": 107, "sku": "ADSA-UY-UNICO MONTEVIDEO-800018", "storeId": 232, "title": "Mccafé", "last_updated": "2025-03-14T14:24:11.345803Z", "items": [ { "id": 9335, "sku": "49155", "index": 1, "menuId": 9, "menu_type": "DEFAULT", "storeId": 232 } ], "menus": [ { "id": 9, "index": 8, "is_category_active": true, "menu_type": "DEFAULT", "storeId": 232 } ], "schedules": [] } ], "items": [ { "id": 9335, "sku": "49155", "storeId": 232, "last_updated": "2025-03-14T14:23:58.338248Z", "item_type": "ITEM", "title_info": { "title": "Cappuccino Regular + Croissant Con Lomito Y Queso", "overrides": [] }, "description_info": { "description": "Promo \"cappuccino regular + croissant con lomito y queso\"", "overrides": [] }, "images_info": { "images": [ { "id": 279, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com" } ], "overrides": [] }, "items_info": { "items": [ { "id": 11797, "sku": "1248188076", "index": 1 }, { "id": 12001, "sku": "1248188077", "index": 2 }, { "id": 11949, "sku": "1248188078", "index": 3 }, { "id": 11772, "sku": "1248188079", "index": 4 } ], "overrides": [] }, "price_info": { "price": 199, "overrides": [] }, "quantity_info": { "min_permitted": null, "max_permitted": null, "modifiers_type": null, "overrides": [] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [], "is_available": true }, "schedules_info": { "schedules": [], "overrides": [] } }, { "id": 11797, "sku": "1248188076", "storeId": 232, "last_updated": "2025-03-14T14:23:58.979715Z", "item_type": "MODIFIER_GROUP", "title_info": { "title": "Extra grand croissant relleno de lomito y queso", "overrides": [] }, "description_info": { "description": "Extra grand croissant relleno de lomito y queso", "overrides": [] }, "images_info": { "images": [], "overrides": [] }, "items_info": { "items": [], "overrides": [] }, "price_info": { "price": 0, "overrides": [] }, "quantity_info": { "min_permitted": 0, "max_permitted": 2, "modifiers_type": "inclusive", "overrides": [] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [], "is_available": true }, "schedules_info": { "schedules": [], "overrides": [] } }, { "id": 12001, "sku": "1248188077", "storeId": 232, "last_updated": "2025-03-14T14:23:58.85638Z", "item_type": "MODIFIER_GROUP", "title_info": { "title": "Extra cappuccino regular", "overrides": [] }, "description_info": { "description": "Extra cappuccino regular", "overrides": [] }, "images_info": { "images": [], "overrides": [] }, "items_info": { "items": [], "overrides": [] }, "price_info": { "price": 0, "overrides": [] }, "quantity_info": { "min_permitted": 0, "max_permitted": 8, "modifiers_type": "inclusive", "overrides": [] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [], "is_available": true }, "schedules_info": { "schedules": [], "overrides": [] } }, { "id": 11949, "sku": "1248188078", "storeId": 232, "last_updated": "2025-03-14T14:23:58.829912Z", "item_type": "MODIFIER_GROUP", "title_info": { "title": "Personalizar grand croissant relleno de lomito y queso", "overrides": [] }, "description_info": { "description": "Personalizar grand croissant relleno de lomito y queso", "overrides": [] }, "images_info": { "images": [], "overrides": [] }, "items_info": { "items": [], "overrides": [] }, "price_info": { "price": 0, "overrides": [] }, "quantity_info": { "min_permitted": 0, "max_permitted": 1, "modifiers_type": "exclusive", "overrides": [] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [], "is_available": true }, "schedules_info": { "schedules": [], "overrides": [] } }, { "id": 11772, "sku": "1248188079", "storeId": 232, "last_updated": "2025-03-14T14:23:58.342775Z", "item_type": "MODIFIER_GROUP", "title_info": { "title": "Personalizar cappuccino regular", "overrides": [] }, "description_info": { "description": "Personalizar cappuccino regular", "overrides": [] }, "images_info": { "images": [], "overrides": [] }, "items_info": { "items": [], "overrides": [] }, "price_info": { "price": 0, "overrides": [] }, "quantity_info": { "min_permitted": 0, "max_permitted": 2, "modifiers_type": "inclusive", "overrides": [] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [], "is_available": true }, "schedules_info": { "schedules": [], "overrides": [] } } ] }

Esta tabla describe los objetos dentro de la respuesta de ejemplo:

ObjetoDescripción
storeId
uint64
Identificador de la tienda en la aplicación Rappi.
menus
[]Menu
Lista de menús disponibles en la tienda. Cada menú contiene categorías.
menus[].id
uint64
Identificador único del menú.
menus[].storeId
uint64
ID de la tienda asociada al menú.
menus[].super_store_id
uint64
ID de la super tienda vinculada al menú.
menus[].menu_type
string
Tipo de menú (por ejemplo, "DEFAULT").
menus[].categories
[]Category
Categorías contenidas dentro del menú.
categories
[]Category
Lista de categorías disponibles en la tienda.
categories[].id
uint64
Identificador único de la categoría.
categories[].sku
string
Código SKU (Stock Keeping Unit) de la categoría.
categories[].storeId
uint64
ID de la tienda asociada a la categoría.
categories[].title
string
Nombre de la categoría.
categories[].last_updated
string (ISO 8601)
Marca de tiempo de la última actualización de la categoría.
categories[].items
[]Item
Lista de artículos dentro de la categoría.
categories[].menus
[]Menu
Lista de menús asociados a la categoría.
items
[]Item
Lista de artículos disponibles en la tienda.
items[].id
uint64
Identificador único del artículo.
items[].sku
string
Código SKU del artículo.
items[].storeId
uint64
ID de la tienda asociada al artículo.
items[].last_updated
string (ISO 8601)
Marca de tiempo de la última actualización del artículo.
items[].item_type
string
Tipo de artículo (por ejemplo, "ITEM", "MODIFIER_GROUP").
items[].title_info.title
string
Nombre o título del artículo.
items[].description_info.description
string
Descripción del artículo.
items[].images_info.images
[]Image
Lista de imágenes asociadas al artículo.
items[].price_info.price
float
Precio del artículo.
items[].quantity_info.min_permitted
int
Cantidad mínima permitida para la compra.
items[].quantity_info.max_permitted
int
Cantidad máxima permitida para la compra.
items[].quantity_info.modifiers_type
string
Tipo de modificadores permitidos (por ejemplo, "inclusive", "exclusive").
items[].suspension_info.is_available
bool
Indica si el artículo está disponible.

POST Subir menú de tienda

Usa este endpoint para cargar el menú completo de la tienda, incluidos los artículos, categorías y tipos de menú, en un bucket de S3 y procesarlo para guardarlo o actualizarlo.

URL del Endpoint

Utiliza esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/store-menu

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

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

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

POST https://api.dev.rappi.com/restaurants/menu/v1/stores/232/store-menu

Este es un ejemplo de la llamada:


String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/232/store-menu"; String jsonInputString = "{ \"storeId\": 232, \"menus\": [{ \"id\": 62, \"storeId\": 232, \"super_store_id\": 232, \"menu_type\": \"DEFAULT\", \"categories\": [] }], \"categories\": [], \"items\": [] }"; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("x-authorization", "Bearer YOUR_TOKEN"); connection.setDoOutput(true); try (OutputStream os = connection.getOutputStream()) { byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); os.write(input, 0, input.length); } int responseCode = connection.getResponseCode(); System.out.println("Response Code: " + responseCode);



GET Menús por ID de tienda

Use este endpoint para recuperar los menús de una tienda por ID de tienda.

URL del Endpoint

Usa esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/menu

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

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

This parameter is used to specify which store's menu should be retrieved. The storeId should be a valid integer representing a store registered in the system.

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Solicitud

Este es un ejemplo de una llamada API usando este endpoint:

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

Este es un ejemplo de la llamada:


String storeId = "232"; String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/menu"; 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"); 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()); }



Ejemplo de Respuesta

Este es un ejemplo de la respuesta:

[ { "id": 9, "storeId": 232, "super_store_id": 232, "menu_type": "DEFAULT", "categories": [ { "id": 625, "sku": "abc", "index": 0, "is_category_active": true }, { "id": 637, "sku": "def", "index": 0, "is_category_active": true } ] } ]

POST Insertar menú por ID de tienda

Usa este endpoint para crear o actualizar el menú de la tienda.

URL del Endpoint

Usa esta URL para realizar una solicitud con este endpoint.

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/menu

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

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

This parameter is used to specify which store's menu should be retrieved. The storeId should be a valid integer representing a store registered in the system.

Notas Importantes

Descripción de los Campos de Solicitud

CampoTipoDescripción
idintIdentificador único del menú de la tienda.
menu_typestringTipo de menú (por ejemplo, "DEFAULT"), que indica la clasificación del menú.
categoriesarrayLista de categorías incluidas en el menú de la tienda.
categories[].idintIdentificador único de la categoría.
categories[].skustringStock Keeping Unit (SKU) asociado con la categoría.
categories[].indexintPosición de la categoría dentro del menú.
categories[].is_category_activebooleanIndica si la categoría está activa (true) o inactiva (false).

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

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

Este es un ejemplo de la llamada:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = "[{\"id\": 9, \"menu_type\": \"DEFAULT\", \"categories\": [{\"id\": 625, \"sku\": \"abc\", \"index\": 0, \"is_category_active\": false }]}]"; 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/menu") .addHeader("Content-Type", "application/json") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .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 Menú por ID de tienda

Usar este endpoint permite la eliminación de una lista específica de menús de una tienda dentro.

URL del Endpoint

Usa esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/menu

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

ParámetroTipoRequeridoDescripción
storeIdintYesEl identificador único de la tienda cuyo menú se está solicitando

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Códigos de Respuesta

La solicitud debe enviarse en formato JSON con un array de IDs de menús a eliminar. Este es un ejemplo de una solicitud a la API utilizando este endpoint:

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

Este es un ejemplo de la llamada:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = "[1,2]"; 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/menu") .delete(body) .addHeader("Content-Type", "application/json") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .addHeader("x-authorization", "Bearer YOUR_TOKEN") .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." }

GET Menú por ID de tienda

Usa este endpoint para obtener los detalles de un menú específico de una tienda dentro.

URL del Endpoint

Usa esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/menu/{menuId}

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

ParámetroTipoRequeridoDescripción
storeIduint64El identificador único de la tienda cuyo menú se está solicitando.
menuIduint64El identificador único de un menú.

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

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{storeId}/menu/{menuId}

Este es un ejemplo de la llamada:


String storeId = "232"; String menuId = "9"; String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/menu/" + menuId; 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"); 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()); }



Ejemplo de Respuesta

Este es un ejemplo de la respuesta:

{ "id": 9, "storeId": 232, "super_store_id": 232, "menu_type": "DEFAULT", "categories": [ { "id": 625, "sku": "abc", "index": 0, "is_category_active": true } ] }

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

CampoTipoDescripción
idintIdentificador único del menú de la tienda.
menu_typestringTipo de menú (por ejemplo, "DEFAULT"), que indica la clasificación del menú.
storeIdintIdentificador único de la tienda dentro de la aplicación de Rappi.
super_store_idintIdentificador único de la super tienda dentro de la aplicación de Rappi.
categoriesarrayLista de categorías incluidas en el menú de la tienda.
categories[].idintIdentificador único de la categoría.
categories[].skustringStock Keeping Unit (SKU) asociado con la categoría.
categories[].indexintPosición de la categoría dentro del menú.
categories[].is_category_activebooleanIndica si la categoría está activa (true) o inactiva (false).

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/{storeId}/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
storeIdintIdentificador ú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 storeId 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/{storeId}/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", "storeId": 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/{storeId}/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
storeIdintEl 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.
storeIdintIdentificador 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\", \"storeId\": 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/{storeId}/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
storeIdintEl 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()); } } }



GET 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/{storeId}/categories/{categoryId}

{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
storeIdintEl identificador único de la tienda cuyo menú está siendo consultado.
categoryIdintEl identificador único de la categoría solicitada.

Este parámetro se utiliza para especificar el menú de qué tienda debe recuperarse. El storeId 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/{storeId}/categories/{categoryId}

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", "storeId": 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
storeIdintIdentificador 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)

GET Items por ID de tienda

Este endpoint recupera la lista de artículos disponibles en una tienda específica.

URL del Endpoint

Utiliza esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/items

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

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

This parameter is used to specify which store's menu should be retrieved. The storeId should be a valid integer representing a store registered in the system.

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{storeId}/items

Este es un ejemplo de la llamada:


String storeId = "232"; String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/items"; 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()); }



Sample Response "Success 200"

Este es un ejemplo de una respuesta "200 Exitoso":

[ { "id": 100, "sku": "pastel_de_fresa", "storeId": 232, "last_updated": "2025-03-27T22:01:41.647471Z", "item_type": "ITEM", "title_info": { "title": "Pastel de fresa", "overrides": [ { "override_id": 641, "override_sku": "", "override_type": "STORE", "title": "Pastel de fresa deluxe" }, { "override_id": 714, "override_sku": "1248187953", "override_type": "ITEM", "title": "Acompañamiento: Pastel de fresa" } ] }, "description_info": { "description": "Delicioso pastel de fresa", "overrides": [ { "override_id": 641, "override_type": "STORE", "description": "Delicioso pastel de fresa deluxe", "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "description": "Delicioso acompañamiento: Pastel de fresa", "override_sku": "1248187953" } ] }, "images_info": { "images": [ { "id": 34, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com" } ], "overrides": [ { "override_id": 641, "override_type": "STORE", "images": [ { "id": 43, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com" } ], "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "images": [ { "id": 43544, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com" } ], "override_sku": "1248187953" } ] }, "items_info": { "items": [ { "id": 11743, "sku": "1248187964", "index": 1 } ], "overrides": [ { "override_id": 714, "override_type": "ITEM", "items": [ { "id": 11720, "sku": "1248187730", "index": 1 } ], "override_sku": "1248187953" }, { "override_id": 641, "override_type": "STORE", "items": [ { "id": 11716, "sku": "1248187776", "index": 1 } ], "override_sku": "" } ] }, "price_info": { "price": 179, "overrides": [ { "override_id": 641, "override_type": "STORE", "price": 200, "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "price": 0, "override_sku": "1248187953" } ] }, "quantity_info": { "min_permitted": 0, "max_permitted": 5, "modifiers_type": null, "overrides": [ { "override_id": 641, "override_type": "STORE", "min_permitted": 0, "max_permitted": 2, "modifiers_type": null, "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "min_permitted": 0, "max_permitted": 1, "modifiers_type": null, "override_sku": "1248187953" } ] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [ { "override_id": 641, "override_type": "STORE", "suspend_until": "2025-03-30T00:00:00Z", "suspend_reason": "Is stocked out", "created_at": "2025-03-27T22:01:41.647376Z", "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "suspend_until": "2025-03-30T00:00:00Z", "suspend_reason": "Is stocked out", "created_at": "2025-03-27T22:01:41.647376Z", "override_sku": "1248187953" } ], "is_available": true }, "schedules_info": { "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri", "time_periods": [ { "start_time": "16:00", "end_time": "22:00" } ] } ], "overrides": [ { "id": 26, "override_id": 641, "override_sku": "", "override_type": "STORE", "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri", "time_periods": [ { "start_time": "16:00", "end_time": "23:00" } ] } ] }, { "id": 27, "override_id": 714, "override_sku": "1248187953", "override_type": "ITEM", "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri", "time_periods": [ { "start_time": "16:00", "end_time": "20:00" } ] } ] } ] } }, { "id": 11, "sku": "1abc", "storeId": 232, "last_updated": "2024-12-18T14:58:24.552489Z", "item_type": "MODIFIER_GROUP", "title_info": { "title": "Eleccion cubiertos", "overrides": [] }, "description_info": { "description": "Eleccion cubiertos", "overrides": [] }, "images_info": { "images": [], "overrides": [] }, "items_info": { "items": [], "overrides": [] }, "price_info": { "price": 0, "overrides": [] }, "quantity_info": { "min_permitted": 0, "max_permitted": 1, "modifiers_type": "exclusive", "overrides": [] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [], "is_available": true }, "schedules_info": { "schedules": [], "overrides": [] } } ]

POST Insertar item por ID de tienda

Este endpoint permite crear o actualizar artículos en una tienda específica.

URL del Endpoint

Usa esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/items

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

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

This parameter is used to specify which store's menu should be retrieved. The storeId should be a valid integer representing a store registered in the system.

Notas Importantes

Descripción de los Campos de Solicitud

CampoTipoDescripción
idintIdentificador del artículo.
skustringIdentificador de la unidad de mantenimiento de stock (SKU) del artículo. Es obligatorio a menos que se envíe el ID.
storeIdintIdentificador de la tienda en la aplicación.
item_typestringTipo de artículo (ITEM o MODIFIER_GROUP).
title_info.titlestringTítulo del artículo.
title_info.overridesarrayLista de modificaciones del título para condiciones específicas.
title_info.overrides[].override_idintIdentificador de la modificación del título.
title_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
title_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
title_info.overrides[].titlestringTítulo modificado.
description_info.descriptionstringDescripción del artículo.
description_info.overridesarrayLista de modificaciones de la descripción para condiciones específicas.
description_info.overrides[].override_idintIdentificador de la modificación de la descripción.
description_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
description_info.overrides[].descriptionstringDescripción modificada.
description_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
images_info.imagesarrayLista de imágenes asociadas con el artículo.
images_info.images[].idintIdentificador de la imagen.
images_info.images[].pathstringRuta donde se encuentra la imagen en el CDN.
images_info.images[].indexintPosición en la que debe mostrarse la imagen.
images_info.images[].hoststringServidor CDN de la imagen.
images_info.overridesarrayLista de modificaciones de imágenes para condiciones específicas.
images_info.overrides[].override_idintIdentificador de la modificación de la imagen.
images_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
images_info.overrides[].imagesarrayLista de imágenes modificadas.
images_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
items_info.itemsarrayLista de artículos relacionados.
items_info.items[].idintIdentificador del artículo relacionado.
items_info.items[].skustringSKU del artículo relacionado. Es obligatorio a menos que se envíe el ID.
items_info.items[].indexintÍndice de orden del artículo relacionado.
items_info.overridesarrayLista de modificaciones de artículos para condiciones específicas.
items_info.overrides[].override_idintIdentificador de la modificación del artículo.
items_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
items_info.overrides[].itemsarrayLista de artículos modificados.
items_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
price_info.pricefloatPrecio del artículo.
price_info.overridesarrayLista de modificaciones de precios para condiciones específicas.
price_info.overrides[].override_idintIdentificador de la modificación del precio.
price_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
price_info.overrides[].pricefloatEl precio que debe aplicarse cuando se cumple la modificación.
price_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
quantity_info.min_permittedintCantidad mínima permitida del artículo o de los elementos dentro del grupo modificador. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.max_permittedintCantidad máxima permitida del artículo o de los elementos dentro del grupo modificador. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.modifiers_typestringTipo de modificador (puede ser nulo).
quantity_info.overridesarrayLista de modificaciones de cantidad para condiciones específicas.
quantity_info.overrides[].override_idintIdentificador de la modificación de cantidad.
quantity_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
quantity_info.overrides[].min_permittedintCantidad mínima permitida del artículo cuando es de tipo ITEM, o la cantidad mínima permitida dentro del grupo cuando es de tipo MODIFIER_GROUP. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.overrides[].max_permittedintCantidad máxima permitida del artículo cuando es de tipo ITEM, o la cantidad máxima permitida dentro del grupo cuando es de tipo MODIFIER_GROUP. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.overrides[].modifiers_typestringTipo de modificador sobrescrito (puede ser nulo).
quantity_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
suspension_info.suspend_untilstringFecha en la que el artículo debe activarse. Si es null, entonces está suspendido permanentemente.
suspension_info.suspend_reasonstringRazón por la cual el artículo está suspendido.
suspension_info.is_availableboolEstado de disponibilidad del artículo.
suspension_info.overridesarrayLista de modificaciones de suspensión para condiciones específicas.
schedules_info.schedulesarrayLista de horarios que definen la disponibilidad.
schedules_info.schedules[].days_of_weekstringDías de la semana en los que el horario está activo.
schedules_info.schedules[].time_periodsarrayPeríodos de tiempo dentro del horario.
schedules_info.schedules[].time_periods[].start_timestringHora de inicio en formato HH:MM.
schedules_info.schedules[].time_periods[].end_timestringHora de finalización en formato HH:MM.
schedules_info.overridesarrayLista de modificaciones de horarios para condiciones específicas.
schedules_info.overrides[].override_idintIdentificador de la modificación del horario.
schedules_info.overrides[].override_typestringTipo de modificación (STORE, CATEGORY o ITEM).
schedules_info.overrides[].schedulesarrayLista de horarios modificados.
schedules_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

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

Este es un ejemplo de la llamada:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = """ { "id": 100, "sku": "pastel_de_fresa", "storeId": 232, "item_type": "ITEM", "title_info": { "title": "Pastel de fresa", "overrides": [ {"override_id": 641, "override_sku": "", "override_type": "STORE", "title": "Pastel de fresa deluxe"}, {"override_id": 714, "override_sku": "1248187953", "override_type": "ITEM", "title": "Acompañamiento: Pastel de fresa"} ] }, "description_info": { "description": "Delicioso pastel de fresa", "overrides": [ {"override_id": 641, "override_type": "STORE", "description": "Delicioso pastel de fresa deluxe", "override_sku": ""}, {"override_id": 714, "override_type": "ITEM", "description": "Delicioso acompañamiento: Pastel de fresa", "override_sku": "1248187953"} ] }, "images_info": { "images": [ {"id": 34, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com"} ], "overrides": [ {"override_id": 641, "override_type": "STORE", "images": [{"id": 43, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com"}], "override_sku": ""}, {"override_id": 714, "override_type": "ITEM", "images": [{"id": 43544, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com"}], "override_sku": "1248187953"} ] }, "items_info": { "items": [{"id": 11743, "sku": "1248187964", "index": 1}], "overrides": [ {"override_id": 714, "override_type": "ITEM", "items": [{"id": 11720, "sku": "1248187730", "index": 1}], "override_sku": "1248187953"}, {"override_id": 641, "override_type": "STORE", "items": [{"id": 11716, "sku": "1248187776", "index": 1}], "override_sku": ""} ] }, "price_info": { "price": 179, "overrides": [ {"override_id": 641, "override_type": "STORE", "price": 200, "override_sku": ""}, {"override_id": 714, "override_type": "ITEM", "price": 0, "override_sku": "1248187953"} ] }, "quantity_info": { "min_permitted": 0, "max_permitted": 5, "overrides": [ {"override_id": 641, "override_type": "STORE", "min_permitted": 0, "max_permitted": 2, "override_sku": ""}, {"override_id": 714, "override_type": "ITEM", "min_permitted": 0, "max_permitted": 1, "override_sku": "1248187953"} ] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [ {"override_id": 641, "override_type": "STORE", "suspend_until": "2025-03-30T00:00:00Z", "suspend_reason": "Is stocked out", "created_at": "2025-03-27T22:01:41.647376Z", "override_sku": ""}, {"override_id": 714, "override_type": "ITEM", "suspend_until": "2025-03-30T00:00:00Z", "suspend_reason": "Is stocked out", "created_at": "2025-03-27T22:01:41.647376Z", "override_sku": "1248187953"} ] }, "schedules_info": { "schedules": [ {"days_of_week": "mon,tue,wed,thu,fri", "time_periods": [{"start_time": "16:00", "end_time": "22:00"}]} ], "overrides": [ {"id": 26, "override_id": 641, "override_sku": "", "override_type": "STORE", "schedules": [{"days_of_week": "mon,tue,wed,thu,fri", "time_periods": [{"start_time": "16:00", "end_time": "23:00"}]}]}, {"id": 27, "override_id": 714, "override_sku": "1248187953", "override_type": "ITEM", "schedules": [{"days_of_week": "mon,tue,wed,thu,fri", "time_periods": [{"start_time": "16:00", "end_time": "20: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/items") .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 Items por ID de tienda

Usa este endpoint para eliminar múltiples items de una tienda proporcionando sus IDs.

URL del Endpoint

Usa esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/items

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

ParámetroTipoRequeridoDescripción
storeIdintIdentificador único de la tienda cuyo menú está siendo solicitado.

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

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

Este es un ejemplo de la llamada:


import okhttp3.*; public class Main { public static void main(String[] args) throws Exception { OkHttpClient client = new OkHttpClient(); String json = "[1,2]"; 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/items") .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()); } } }



Sample Response 'Success 200'

This is an example of the response "Success 200":

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

GET Item por ID de tienda

Usa este endpoint para obtener los detalles de un artículo específico de una tienda.

URL del Endpoint

Usa esta URL para realizar una solicitud con este endpoint:

https://{NEW_DOMAIN}/restaurants/menu/v1/stores/{storeId}/items/{itemId}

{NEW_DOMAIN}: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.

Propiedades del Endpoint

Este recurso tienes las siguiente propiedades:

Formato de respuestaJSON
Requerimientos de autenticaciónToken

Parámetros

Este endpoint tiene los siguientes parámetros:

ParámetroTipoRequeridoDescripción
storeIduint64El identificador único de la tienda cuyo menú se está solicitando.
itemIduint64El identificador único del item que se está solicitando.

This parameter is used to specify which store's menu should be retrieved. The storeId should be a valid integer representing a store registered in the system.

Códigos de Respuesta

Estos son los posibles códigos de respuesta en este endpoint:

Ejemplo de Llamada

Este es un ejemplo de una llamada API usando este endpoint:

GET https://api.dev.rappi.com/restaurants/menu/v1/stores/{storeId}/items/{itemId}

Este es un ejemplo de la llamada:


String storeId = "232"; String ItemId = "10" String urlString = "https://api.dev.rappi.com/restaurants/menu/v1/stores/" + storeId + "/items/" + ItemId}; 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": 100, "sku": "pastel_de_fresa", "storeId": 232, "last_updated": "2025-03-27T22:01:41.647471Z", "item_type": "ITEM", "title_info": { "title": "Pastel de fresa", "overrides": [ { "override_id": 641, "override_sku": "", "override_type": "STORE", "title": "Pastel de fresa deluxe" }, { "override_id": 714, "override_sku": "1248187953", "override_type": "ITEM", "title": "Acompañamiento: Pastel de fresa" } ] }, "description_info": { "description": "Delicioso pastel de fresa", "overrides": [ { "override_id": 641, "override_type": "STORE", "description": "Delicioso pastel de fresa deluxe", "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "description": "Delicioso acompañamiento: Pastel de fresa", "override_sku": "1248187953" } ] }, "images_info": { "images": [ { "id": 34, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com" } ], "overrides": [ { "override_id": 641, "override_type": "STORE", "images": [ { "id": 43, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com" } ], "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "images": [ { "id": 43544, "path": "my/path/to/my/image.jpg", "index": 1, "host": "https://my.cdn.com" } ], "override_sku": "1248187953" } ] }, "items_info": { "items": [ { "id": 11743, "sku": "1248187964", "index": 1 } ], "overrides": [ { "override_id": 714, "override_type": "ITEM", "items": [ { "id": 11720, "sku": "1248187730", "index": 1 } ], "override_sku": "1248187953" }, { "override_id": 641, "override_type": "STORE", "items": [ { "id": 11716, "sku": "1248187776", "index": 1 } ], "override_sku": "" } ] }, "price_info": { "price": 179, "overrides": [ { "override_id": 641, "override_type": "STORE", "price": 200, "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "price": 0, "override_sku": "1248187953" } ] }, "quantity_info": { "min_permitted": 0, "max_permitted": 5, "modifiers_type": null, "overrides": [ { "override_id": 641, "override_type": "STORE", "min_permitted": 0, "max_permitted": 2, "modifiers_type": null, "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "min_permitted": 0, "max_permitted": 1, "modifiers_type": null, "override_sku": "1248187953" } ] }, "suspension_info": { "suspend_until": null, "suspend_reason": null, "overrides": [ { "override_id": 641, "override_type": "STORE", "suspend_until": "2025-03-30T00:00:00Z", "suspend_reason": "Is stocked out", "created_at": "2025-03-27T22:01:41.647376Z", "override_sku": "" }, { "override_id": 714, "override_type": "ITEM", "suspend_until": "2025-03-30T00:00:00Z", "suspend_reason": "Is stocked out", "created_at": "2025-03-27T22:01:41.647376Z", "override_sku": "1248187953" } ], "is_available": true }, "schedules_info": { "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri", "time_periods": [ { "start_time": "16:00", "end_time": "22:00" } ] } ], "overrides": [ { "id": 26, "override_id": 641, "override_sku": "", "override_type": "STORE", "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri", "time_periods": [ { "start_time": "16:00", "end_time": "23:00" } ] } ] }, { "id": 27, "override_id": 714, "override_sku": "1248187953", "override_type": "ITEM", "schedules": [ { "days_of_week": "mon,tue,wed,thu,fri", "time_periods": [ { "start_time": "16:00", "end_time": "20:00" } ] } ] } ] } }

Descripción de los campos de respuesta

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

CampoTipoDescripción
idintIdentificador del artículo.
skustringIdentificador de la unidad de mantenimiento de stock (SKU) del artículo. Es obligatorio a menos que se envíe el ID.
storeIdintIdentificador de la tienda en la aplicación.
last_updatedstringMarca de tiempo de la última actualización en formato ISO 8601 (YYYY-MM-DDTHH:MM:SSZ).
item_typestringTipo de artículo (ITEM o MODIFIER_GROUP).
title_info.titlestringTítulo del artículo.
title_info.overridesarrayLista de modificaciones del título para condiciones específicas.
title_info.overrides[].override_idintIdentificador de la modificación del título.
title_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
title_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
title_info.overrides[].titlestringTítulo modificado.
description_info.descriptionstringDescripción del artículo.
description_info.overridesarrayLista de modificaciones de la descripción para condiciones específicas.
description_info.overrides[].override_idintIdentificador de la modificación de la descripción.
description_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
description_info.overrides[].descriptionstringDescripción modificada.
description_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
images_info.imagesarrayLista de imágenes asociadas con el artículo.
images_info.images[].idintIdentificador de la imagen.
images_info.images[].pathstringRuta donde se encuentra la imagen en el CDN.
images_info.images[].indexintPosición en la que debe mostrarse la imagen.
images_info.images[].hoststringServidor CDN de la imagen.
images_info.overridesarrayLista de modificaciones de imágenes para condiciones específicas.
images_info.overrides[].override_idintIdentificador de la modificación de la imagen.
images_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
images_info.overrides[].imagesarrayLista de imágenes modificadas.
images_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
items_info.itemsarrayLista de artículos relacionados.
items_info.items[].idintIdentificador del artículo relacionado.
items_info.items[].skustringSKU del artículo relacionado. Es obligatorio a menos que se envíe el ID.
items_info.items[].indexintÍndice de orden del artículo relacionado.
items_info.overridesarrayLista de modificaciones de artículos para condiciones específicas.
items_info.overrides[].override_idintIdentificador de la modificación del artículo.
items_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
items_info.overrides[].itemsarrayLista de artículos modificados.
items_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
price_info.pricefloatPrecio del artículo.
price_info.overridesarrayLista de modificaciones de precios para condiciones específicas.
price_info.overrides[].override_idintIdentificador de la modificación del precio.
price_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
price_info.overrides[].pricefloatEl precio que debe aplicarse cuando se cumple la modificación.
price_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
quantity_info.min_permittedintCantidad mínima permitida del artículo o de los elementos dentro del grupo modificador. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.max_permittedintCantidad máxima permitida del artículo o de los elementos dentro del grupo modificador. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.modifiers_typestringTipo de modificador (puede ser nulo).
quantity_info.overridesarrayLista de modificaciones de cantidad para condiciones específicas.
quantity_info.overrides[].override_idintIdentificador de la modificación de cantidad.
quantity_info.overrides[].override_typestringTipo de modificación (STORE o ITEM).
quantity_info.overrides[].min_permittedintCantidad mínima permitida del artículo cuando es de tipo ITEM, o la cantidad mínima permitida dentro del grupo cuando es de tipo MODIFIER_GROUP. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.overrides[].max_permittedintCantidad máxima permitida del artículo cuando es de tipo ITEM, o la cantidad máxima permitida dentro del grupo cuando es de tipo MODIFIER_GROUP. Obligatorio si el artículo es de tipo MODIFIER_GROUP.
quantity_info.overrides[].modifiers_typestringTipo de modificador sobrescrito (puede ser nulo).
quantity_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.
suspension_info.suspend_untilstringFecha en la que el artículo debe activarse. Si es null, entonces está suspendido permanentemente.
suspension_info.suspend_reasonstringRazón por la cual el artículo está suspendido.
suspension_info.is_availableboolEstado de disponibilidad del artículo.
suspension_info.overridesarrayLista de modificaciones de suspensión para condiciones específicas.
schedules_info.schedulesarrayLista de horarios que definen la disponibilidad.
schedules_info.schedules[].days_of_weekstringDías de la semana en los que el horario está activo.
schedules_info.schedules[].time_periodsarrayPeríodos de tiempo dentro del horario.
schedules_info.schedules[].time_periods[].start_timestringHora de inicio en formato HH:MM.
schedules_info.schedules[].time_periods[].end_timestringHora de finalización en formato HH:MM.
schedules_info.overridesarrayLista de modificaciones de horarios para condiciones específicas.
schedules_info.overrides[].override_idintIdentificador de la modificación del horario.
schedules_info.overrides[].override_typestringTipo de modificación (STORE, CATEGORY o ITEM).
schedules_info.overrides[].schedulesarrayLista de horarios modificados.
schedules_info.overrides[].override_skustringEl SKU de la entidad modificada, es obligatorio a menos que se envíe el override_id.