Rappi API v1.24.5
Rappi API v1.24.5 incluye todos los recursos, endpoints y metodos que permiten la integración con la aplicación de Rappi.
La tabla siguiente contiene todos los recursos disponibles de nuestra API:
Recurso API | Endpoint | Descripción del Endpoint |
---|---|---|
Menús | GET menu |
Devuelve la colección de menús creados por el aliado autenticado |
POST menu |
Añade o actualiza un menú en una tienda | |
GET menu/approved/{storeId} |
Devuelve el estado de aprobación actual de un menú | |
GET menu/rappi/{storeId} |
Devuelve el ultimo menú creado para una tienda | |
Ordenes | GET orders |
Devuelve una lista de nuevas ordenes creadas |
GET orders/status/sent |
Devuelve una lista de nuevas ordenes creadas en estado SENT |
|
PUT orders/{orderId}/take/{cookingTime} |
Toma una orden para ser preparada | |
PUT orders/{orderId}/reject |
Rechaza una orden | |
POST orders/{orderId}/ready-for-pickup |
Confirma que la orden esta lista para ser recogida | |
GET orders/{orderId}/events |
Devuelve los ultimos eventos de las ordenes | |
Tiendas | GET stores-pa |
Devuelve la lista de tiendas del cliente autenticado |
PUT stores-pa/{storeId}/status |
Actualiza una tienda a integrada o no integrada | |
Disponibilidad | PUT availability/stores/items |
Controla la disponibilidad de los articulos en la aplicación por su SKU |
PUT availability/stores/items/rappi |
Controla la disponibilidad de los articulos en la aplicación por su ID | |
PUT availability/stores |
Controla la disponibilidad de la tienda en la aplicación | |
Webhooks | GET webhook/{event} |
Regresa los Webhooks configurados de todas las tiendas del cliente autenticado |
PUT webhook/{event}/add-stores |
Agrega tiendas al evento del webhook especificado | |
PUT webhook/{event}/change-url |
Cambia la url para una lista de stores | |
POST webhook |
Crea un nuevo Webhook para una lista de tiendas del cliente autenticado | |
DELETE webhook/{event}/remove-stores |
Elimina stores del webhook especificado | |
PUT webhook/{event}/reset-secret |
Reinicia el secret y genera uno nuevo al cliente autenticado | |
PUT webhook/{event}/change-status |
Habilita o deshabilita Webhooks para una lista de tiendas |
Introducción
Para comenzar a usar nuestra API, necesitas registrarte como Rappi Aliado.
Despues de registrarte como Rappi Aliado, recibirás tus Credenciales de Rappi que se componen de la siguiente manera:
client_id
client_secret
audience
grant_type
Utiliza estas credenciales para generar tu Token de Acceso con el endpoint POST token
. Después de generar tu token, puedes comenzar a usar nuestra API.
Autenticación
Para autenticarte al hacer una llamada a Rappi API, se requiere un Token de Acceso
Rappi API usa autenticación Bearer como metodo de autenticación HTTP para las llamadas a la API.
Para hacer llamadas API, envía el token en un customer header para interactuar con los recursos protegidos.
Rappi utiliza los siguientes esquemas para la autenticación Bearer:
Key | Value |
---|---|
x-authorization |
bearer [access_token ] |
POST token
Usa este endpoint para generar un Token de Acceso. Este Token te permite autenticarte al hacer una llamada API.
URLs de los endpoints
Utiliza las siguientes URLs para hacer llamadas con este endpoint:
- URL de Development:
https://rests-integrations-dev.auth0.com/oauth/token
- URL de Production:
https://rests-integrations.auth0.com/oauth/token
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body para llamadas | JSON |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
401
No autorizado
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
POST https://rests-integrations-dev.auth0.com/oauth/token
Este es un ejemplo de la llamada:
{
"client_id":"7iCfjZCO4bTns3OjqLK4de2GV3sp6Ymd",
"client_secret":"40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW",
"audience":"https://int-public-api-v2/api",
"grant_type":"client_credentials"
}
URL url = new URL("https://rests-integrations-dev.auth0.com/oauth/token");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
final String jsonInputString = "{\n" +
" \"client_id\":\"7iCfjZCO4bTns3OjqLK4de2GV3sp6Ymd\",\n" +
" \"client_secret\":\"40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW\",\n" +
" \"audience\":\"https://int-public-api-v2/api\",\n" +
" \"grant_type\":\"client_credentials\"\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
import requests
url = "https://rests-integrations-dev.auth0.com/oauth/token"
payload = "{ \"client_id\":\"7iCfjZCO4bTns3OjqLK4de2GV3sp6Ymd\"," \
"\"client_secret\":\"40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW\"," \
"\"audience\":\"https://int-public-api-v2/api\"," \
"\"grant_type\":\"client_credentials\"} "
headers = {
'Content-Type': 'application/json',
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
var https = require('https');
var options = {
'method': 'POST',
'hostname': 'rests-integrations-dev.auth0.com',
'path': '/oauth/token?',
'headers': {
'Content-Type': 'application/json',
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"client_id":"7iCfjZCO4bTns3OjqLK4de2GV3sp6Ymd",
"client_secret":"40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW",
"audience":"https://int-public-api-v2/api",
"grant_type":"client_credentials"
});
req.write(postData);
req.end();
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
url := "https://rests-integrations-dev.auth0.com/oauth/token"
method := "POST"
payload := strings.NewReader("{\n " +
"\"client_id\":\"7iCfjZCO4bTns3OjqLK4de2GV3sp6Ymd\",\n " +
"\"client_secret\":\"40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW40iFFYJV9A1LrVmJsaIeARW\",\n " +
"\"audience\":\"https://int-public-api-v2/api\",\n " +
"\"grant_type\":\"client_credentials\"\n}")
client := &http.Client{
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerido | Descripción |
---|---|---|
client_id string |
required |
Id de cliente de tus credenciales de Rappi. |
client_secret string |
required |
Secret de cliente de tus credenciales de Rappi. |
audience string |
required |
Identificador de la API de Rappi. |
grant_type string |
required |
Permisos para la llamada API. |
Ejemplo de Respuesta:
Este es un ejemplo de la llamada:
{
"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpeyJhbGciOiJIUzI1NiIsInR5cCI6IkpeyJhbGciOiJIUzI1NiIsInR5cCI6Ikp",
"scope":"integration:health-check",
"expires_in":86400,
"token_type":"Bearer"
}
Esta tabla describe los objetos que contiene la respuesta del ejemplo:
Respuesta | Descripción |
---|---|
access_token string |
Token de acceso para los endpoints protegidos. |
scope string |
Alcance otorgado por el token de acceso. |
expires_in integer |
Tiempo de vida del token en segundos. |
token_type string |
Tipo de token. |
Menús
Los recursos de Menús te permiten interactuar con los menús de tus tiendas.
Recurso API | Descripción |
---|---|
GET menu |
Devuelve la lista de menús creados por el aliado autenticado |
POST menu |
Crea o actualiza un menú de una tienda |
GET menu/approved/{storeId} |
Devuelve el estado actual de aprobación de un menú |
GET menu/rappi/{storeId} |
Devuelve el último menú creado para una tienda |
GET menu
Utiliza este endpoint para obtener la colección de menús creados por el aliado autenticado.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/menu
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
401
Credenciales inválidas
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu
Este es un ejemplo de la llamada:
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu");
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());
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/menu',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta "200 Llamada exitosa":
Este es un ejemplo de la respuesta:
[
{
"storeId": "900111978",
"items": [
{
"name": "Naked Cake con frutos",
"description": "Naked cake decorado con frutos. Cubierta de trufa derretida (ganache) y decorada con frutos del bosque.",
"sku": "8569874",
"type": "PRODUCT",
"price": 75.0,
"category": {
"id": "3",
"name": "Tortas",
"minQty": 0,
"maxQty": 0,
"sortingPosition": 0
},
"imageUrl": "https://image.com/image1.jpg",
"children": [
{
"name": "Chocolate",
"description": "",
"sku": "8569874-159",
"type": "TOPPING",
"price": 0.0,
"category": {
"id": "1",
"name": "Sabor",
"minQty": 0,
"maxQty": 1,
"sortingPosition": 0
},
"imageUrl": "https://image.com/image10.jpg",
"children": [],
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"340948822"
],
"sortingPosition": 1,
"maxLimit": 1
}
],
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"2135527868"
],
"sortingPosition": 0,
"maxLimit": 1
},
{
"name": "Snowman",
"description": "Linda lata de Snowman con productos variadosIncluye:Galletas mantequilla 350 gr, 6 brookies y 4 trufas de brownie.",
"sku": "856887",
"type": "PRODUCT",
"price": 75.0,
"category": {
"id": "9",
"name": "Navidad",
"minQty": 0,
"maxQty": 0,
"sortingPosition": 0
},
"imageUrl": "https://image.com/image2.jpg",
"children": [],
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"2135524472"
],
"sortingPosition": 0,
"maxLimit": 1
}
]
}
]
Esta tabla describe los objectos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
storeId string |
Identificador de la tienda en la aplicación de Rappi. |
items array of objects |
Lista de productos dentro del menú de la tienda. |
items.name string |
Nombre del producto en el menú. |
items.description string |
Descripción del producto en el menú. |
items.sku string |
SKU que el aliado asigna al producto en el menú. |
items.type string |
Tipo de producto en el menú, en este caso solamente puede ser PRODUCT |
items.price integer |
Precio del producto en el menú. |
items.imageUrl string |
Url de la imagen del producto en el menú |
items.availableFrom string |
Fecha de inicio en la que el producto esta disponible en el menú |
items.availableTo string |
Fecha final en la que el producto esta disponible en el menú |
items.rappiIds array of string |
Lista de los identificadores que Rappi le da al producto |
items.sortingPosition integer |
La posición del producto en su categoría en el menú |
items.maxLimit integer |
Indicador máximo, es requerido solo si el tipo es topping |
items.category string |
Categoría a la cual pertenece el producto en el menú |
items.category.id string |
Id de la categoría |
items.category.name string |
Nombre de la categoría |
items.category.minQty integer |
La cantidad maxima de elementos que se pueden pedir en esta categoría |
items.category.maxQty integer |
La cantidad minima de elementos que se pueden pedir en esta categoría (En toppings, si es 0 significa que no es obligatorio) |
items.category.sortingPosition integer |
Es la posición de la categoría en el menu |
items.children array of objects |
Lista de toppings del producto |
items.children.name string |
Nombre del topping en el menú. |
items.children.description string |
Descripción del toppin en el menú. |
items.children.sku string |
SKU que el aliado asigna al topping en el menú. |
items.children.type string |
Tipo de topping en el menú, en este caso solamente puede ser TOPPING |
items.children.price integer |
Precio del topping en el menú. |
items.children.imageUrl string |
Url de la imagen del topping en el menú |
items.children.availableFrom string |
Fecha de inicio en la que el topping esta disponible en el menú |
items.children.availableTo string |
Fecha final en la que el topping esta disponible en el menú |
items.children.rappiIds array of string |
Lista de los identificadores que Rappi le da al topping |
items.children.sortingPosition integer |
La posición del topping en su categoría en el menú |
items.children.maxLimit integer |
Indicador máximo, es requerido solo si el tipo es topping |
items.children.category string |
Categoría a la cual pertenece el topping en el menú |
items.children.category.id string |
Id de la categoría |
items.children.category.name string |
Nombre de la categoría |
items.children.category.minQty integer |
La cantidad maxima de elementos que se pueden pedir en esta categoría |
items.children.category.maxQty integer |
La cantidad minima de elementos que se pueden pedir en esta categoría (En toppings, si es 0 significa que no es obligatorio) |
items.children.category.sortingPosition integer |
La posición de la categoría dentro del producto |
Ejemplo de Respuesta "Credenciales invalidas 401":
{
"message": "Not a valid token"
}
Esta tabla describe los objectos dentro de la respuesta de ejemplo:
Atributos | Descripción |
---|---|
message string |
El token es invalido |
POST menu
Usa este endpoint para crear un nuevo menú o añadir nuevos artículos a un menú existente del aliado autenticado.
Después de crear un menú o añadir nuevos artículos a alguno existente, el equipo de Rappi valida los artículos y la estructura del menú. Puedes consultar el estado de aprobación usando el endpoint GET menu/approved/{storeId}
.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/menu
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body para llamadas | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Menú actualizado y listo para ser validado
400
La estructura del menú es invalida.
401
Credenciales inválidas
404
Tienda no encontrada
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
POST https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu
Este es un ejemplo de la llamada:
{
"storeId": "900103361",
"items": [
{
"category": {
"id": "2090019638",
"maxQty": 0,
"minQty": 0,
"name": "Burgers",
"sortingPosition": 0
},
"children": [
{
"category": {
"id": "211",
"maxQty": 1,
"minQty": 0,
"name": "Do you want to add?",
"sortingPosition": 0
},
"children": [],
"name": "French Fries",
"price": 5000,
"sku": "2135092195",
"sortingPosition": 1,
"type": "TOPPING",
"maxLimit": 1
},
{
"category": {
"id": "211",
"maxQty": 1,
"minQty": 0,
"name": "Do you want to add?",
"sortingPosition": 0
},
"children": [],
"name": "Potato Wedges",
"price": 7000,
"sku": "2135092196",
"sortingPosition": 1,
"type": "TOPPING",
"maxLimit": 1
}
],
"name": "Grilled Chicken Burger",
"price": 14000,
"sku": "2135092197",
"sortingPosition": 0,
"type": "PRODUCT"
},
{
"category": {
"id": "2090019639",
"maxQty": 0,
"minQty": 0,
"name": "Pizzas",
"sortingPosition": 1
},
"children": [],
"name": "Hawaiian Pizza",
"price": 17000,
"sku": "2135092198",
"sortingPosition": 1,
"type": "PRODUCT"
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"storeId\": \"900103361\",\n" +
" \"items\": [\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"2090019638\",\n" +
" \"maxQty\": 0,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Burgers\",\n" +
" \"sortingPosition\": 0\n" +
" },\n" +
" \"children\": [\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"211\",\n" +
" \"maxQty\": 1,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Do you want to add?\",\n" +
" \"sortingPosition\": 0\n" +
" },\n" +
" \"children\": [],\n" +
" \"name\": \"French Fries\",\n" +
" \"price\": 5000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 1,\n" +
" \"type\": \"TOPPING\",\n" +
" \"maxLimit\": 1\n" +
" },\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"211\",\n" +
" \"maxQty\": 1,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Do you want to add?\",\n" +
" \"sortingPosition\": 0\n" +
" },\n" +
" \"children\": [],\n" +
" \"name\": \"Potato Wedges\",\n" +
" \"price\": 7000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 1,\n" +
" \"type\": \"TOPPING\",\n" +
" \"maxLimit\": 1\n" +
" }\n" +
" ],\n" +
" \"name\": \"Grilled Chicken Burger\",\n" +
" \"price\": 14000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 0,\n" +
" \"type\": \"PRODUCT\"\n" +
" },\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"2090019639\",\n" +
" \"maxQty\": 0,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Pizzas\",\n" +
" \"sortingPosition\": 1\n" +
" },\n" +
" \"children\": [],\n" +
" \"name\": \"Hawaiian Pizza\",\n" +
" \"price\": 17000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 1,\n" +
" \"type\": \"PRODUCT\"\n" +
" }\n" +
" ]\n" +
"}\n";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'POST',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/menu',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify(
{
"storeId": "900103361",
"items": [
{
"category": {
"id": "2090019638",
"maxQty": 0,
"minQty": 0,
"name": "Burgers",
"sortingPosition": 0
},
"children": [
{
"category": {
"id": "211",
"maxQty": 1,
"minQty": 0,
"name": "Do you want to add?",
"sortingPosition": 0
},
"children": [],
"name": "French Fries",
"price": 5000,
"sku": "2135092145",
"sortingPosition": 1,
"type": "TOPPING",
"maxLimit": 1
},
{
"category": {
"id": "211",
"maxQty": 1,
"minQty": 0,
"name": "Do you want to add?",
"sortingPosition": 0
},
"children": [],
"name": "Potato Wedges",
"price": 7000,
"sku": "2135092145",
"sortingPosition": 1,
"type": "TOPPING",
"maxLimit": 1
}
],
"name": "Grilled Chicken Burger",
"price": 14000,
"sku": "2135092145",
"sortingPosition": 0,
"type": "PRODUCT"
},
{
"category": {
"id": "2090019639",
"maxQty": 0,
"minQty": 0,
"name": "Pizzas",
"sortingPosition": 1
},
"children": [],
"name": "Hawaiian Pizza",
"price": 17000,
"sku": "2135092145",
"sortingPosition": 1,
"type": "PRODUCT"
}
]
}
);
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu"
payload = "{\n" \
" \"storeId\": \"900103361\",\n" \
" \"items\": [\n" \
" {\n" \
" \"category\": {\n" \
" \"id\": \"2090019638\",\n" \
" \"maxQty\": 0,\n" \
" \"minQty\": 0,\n" \
" \"name\": \"Burgers\",\n" \
" \"sortingPosition\": 0\n" \
" },\n" \
" \"children\": [\n" \
" {\n" \
" \"category\": {\n" \
" \"id\": \"211\",\n" \
" \"maxQty\": 1,\n" \
" \"minQty\": 0,\n" \
" \"name\": \"Do you want to add?\",\n" \
" \"sortingPosition\": 0\n" \
" },\n" \
" \"children\": [],\n" \
" \"name\": \"French Fries\",\n" \
" \"price\": 5000,\n" \
" \"sku\": \"2135092145\",\n" \
" \"sortingPosition\": 1,\n" \
" \"type\": \"TOPPING\",\n" \
" \"maxLimit\": 1\n" \
" },\n" \
" {\n" \
" \"category\": {\n" \
" \"id\": \"211\",\n" \
" \"maxQty\": 1,\n" \
" \"minQty\": 0,\n" \
" \"name\": \"Do you want to add?\",\n" \
" \"sortingPosition\": 0\n" \
" },\n" \
" \"children\": [],\n" \
" \"name\": \"Potato Wedges\",\n" \
" \"price\": 7000,\n" \
" \"sku\": \"2135092145\",\n" \
" \"sortingPosition\": 1,\n" \
" \"type\": \"TOPPING\",\n" \
" \"maxLimit\": 1\n" \
" }\n" \
" ],\n" \
" \"name\": \"Grilled Chicken Burger\",\n" \
" \"price\": 14000,\n" \
" \"sku\": \"2135092145\",\n" \
" \"sortingPosition\": 0,\n" \
" \"type\": \"PRODUCT\"\n" \
" },\n" \
" {\n" \
" \"category\": {\n" \
" \"id\": \"2090019639\",\n" \
" \"maxQty\": 0,\n" \
" \"minQty\": 0,\n" \
" \"name\": \"Pizzas\",\n" \
" \"sortingPosition\": 1\n" \
" },\n" \
" \"children\": [],\n" \
" \"name\": \"Hawaiian Pizza\",\n" \
" \"price\": 17000,\n" \
" \"sku\": \"2135092145\",\n" \
" \"sortingPosition\": 1,\n" \
" \"type\": \"PRODUCT\"\n" \
" }\n" \
" ]\n" \
"}\n"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu"
method := "POST"
payload := strings.NewReader("{\n" +
" \"storeId\": \"900103361\",\n" +
" \"items\": [\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"2090019638\",\n" +
" \"maxQty\": 0,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Burgers\",\n" +
" \"sortingPosition\": 0\n" +
" },\n" +
" \"children\": [\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"211\",\n" +
" \"maxQty\": 1,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Do you want to add?\",\n" +
" \"sortingPosition\": 0\n" +
" },\n" +
" \"children\": [],\n" +
" \"name\": \"French Fries\",\n" +
" \"price\": 5000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 1,\n" +
" \"type\": \"TOPPING\",\n" +
" \"maxLimit\": 1\n" +
" },\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"211\",\n" +
" \"maxQty\": 1,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Do you want to add?\",\n" +
" \"sortingPosition\": 0\n" +
" },\n" +
" \"children\": [],\n" +
" \"name\": \"Potato Wedges\",\n" +
" \"price\": 7000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 1,\n" +
" \"type\": \"TOPPING\",\n" +
" \"maxLimit\": 1\n" +
" }\n" +
" ],\n" +
" \"name\": \"Grilled Chicken Burger\",\n" +
" \"price\": 14000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 0,\n" +
" \"type\": \"PRODUCT\"\n" +
" },\n" +
" {\n" +
" \"category\": {\n" +
" \"id\": \"2090019639\",\n" +
" \"maxQty\": 0,\n" +
" \"minQty\": 0,\n" +
" \"name\": \"Pizzas\",\n" +
" \"sortingPosition\": 1\n" +
" },\n" +
" \"children\": [],\n" +
" \"name\": \"Hawaiian Pizza\",\n" +
" \"price\": 17000,\n" +
" \"sku\": \"2135092145\",\n" +
" \"sortingPosition\": 1,\n" +
" \"type\": \"PRODUCT\"\n" +
" }\n" +
" ]\n" +
"}\n")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerido | Descripción |
---|---|---|
storeId string |
required |
Identificador de la tienda en la aplicación de Rappi. |
items array of objects |
required |
Lista de productos dentro del menú de la tienda. |
items.name string |
required |
Nombre del producto en el menú. |
items.description string |
required |
Descripción del producto en el menú. |
items.sku string |
required |
SKU que el aliado asigna al producto en el menú. |
items.type string |
required |
Tipo de producto en el menú, en este caso solamente puede ser PRODUCT |
items.price integer |
required |
Precio del producto en el menú. |
items.imageUrl string |
optional |
Url de la imagen del producto en el menú |
items.availableFrom string |
optional |
Fecha de inicio en la que el producto esta disponible en el menú |
items.availableTo string |
optional |
Fecha final en la que el producto esta disponible en el menú |
items.rappiIds array of string |
optional |
Lista de los identificadores que Rappi le da al producto |
items.sortingPosition integer |
optional |
La posición del producto en su categoría en el menú |
items.maxLimit integer |
optional |
Indicador máximo, es requerido solo si el tipo es topping |
items.category string |
required |
Categoría a la cual pertenece el producto en el menú |
items.category.id string |
required |
Id de la categoría |
items.category.name string |
required |
Nombre de la categoría |
items.category.minQty integer |
required |
La cantidad maxima de elementos que se pueden pedir en esta categoría |
items.category.maxQty integer |
required |
La cantidad minima de elementos que se pueden pedir en esta categoría (En toppings, si es 0 significa que no es obligatorio) |
items.category.sortingPosition integer |
required |
Es la posición de la categoría en el menu |
items.children array of objects |
optional |
Lista de toppings del producto |
items.children.name string |
required |
Nombre del topping en el menú. |
items.children.description string |
required |
Descripción del toppin en el menú. |
items.children.sku string |
required |
SKU que el aliado asigna al topping en el menú. |
items.children.type string |
required |
Tipo de topping en el menú, en este caso solamente puede ser TOPPING |
items.children.price integer |
required |
Precio del topping en el menú. |
items.children.imageUrl string |
optional |
Url de la imagen del topping en el menú |
items.children.availableFrom string |
optional |
Fecha de inicio en la que el topping esta disponible en el menú |
items.children.availableTo string |
optional |
Fecha final en la que el topping esta disponible en el menú |
items.children.rappiIds array of string |
optional |
Lista de los identificadores que Rappi le da al topping |
items.children.sortingPosition integer |
required |
La posición del topping en su categoría en el menú |
items.children.maxLimit integer |
required |
Indicador máximo, es requerido solo si el tipo es topping |
items.children.category string |
required |
Categoría a la cual pertenece el topping en el menú |
items.children.category.id string |
required |
Id de la categoría |
items.children.category.name string |
required |
Nombre de la categoría |
items.children.category.minQty integer |
required |
La cantidad maxima de elementos que se pueden pedir en esta categoría |
items.children.category.maxQty integer |
required |
La cantidad minima de elementos que se pueden pedir en esta categoría (En toppings, si es 0 significa que no es obligatorio) |
items.children.category.sortingPosition integer |
required |
La posición de la categoría dentro del producto |
Ejemplo de Respuesta "200 Llamada exitosa"
Este endpoint regresa solo un código de respuesta exitosa.
Ejemplo de Respuesta "400 La estructura del menú es invalida."
{
"message": "The submitted menu has errors.",
"errors": [
{
"reason": "All items must have a valid name, category or product description.",
"relatedItems": [
{
"description": "",
"sku": "product1",
"type": "PRODUCT",
"price": 899.0,
"category": {
"id": "455",
"name": "producto category name 1",
"minQty": 0,
"maxQty": 0,
"sortingPosition": 0
},
"imageUrl": "https://anydomain/anyimagen_1.png",
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"1965855"
],
"sortingPosition": 0,
"maxLimit": 1
}
]
},
{
"reason": "Invalid urls were found",
"relatedItems": [
{
"name": "producto name 1",
"description": "",
"sku": "product2",
"type": "PRODUCT",
"price": 899.0,
"category": {
"id": "455",
"name": "producto category name 1",
"minQty": 0,
"maxQty": 0,
"sortingPosition": 0
},
"imageUrl": "httpaas://anydomain/anyimagen_2.png",
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"1965855"
],
"sortingPosition": 0,
"maxLimit": 1
}
]
}
]
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
message string |
Mensaje de error al enviar el menu. El mensaje por defecto es "The submitted menu has errors." |
errors array of objects |
Lista de errores encontrados en el menu. |
errors.reason string |
Descripción del error encontrado en el menu. Los distintos mensajes los podemos encontrar en "VALIDACIONES SOBRE EL MENU RECIBIDO" |
errors.relatedItems array of objects |
Lista de items que poseen el error, pueden ser tanto productos como toppings |
Para ver todas las posibles validaciones de la estructura del menú pueden ver las VALIDACIONES SOBRE EL MENU RECIBIDO.
Ejemplo de Respuesta "401 Credenciales inválidas"
401 Credenciales inválidas:
{
"message": "Not a valid token"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Atributos | Descripción |
---|---|
message string |
Token inválido |
Ejemplo de Respuesta "404 Tienda no encontrada"
404 Tienda no encontrada:
{
"message": "StoreId 9001035324: not found associated Stores"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Atributos | Descripción |
---|---|
message string |
Tienda no encontrada |
GET menu/approved/{storeId}
Usa este endpoint para regresar el estado de aprobación de un menú.
URL del Endpoint
Usa esta URL para hacer llamadas con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/menu/approved/{storeId}
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
401
Credenciales inválidas
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/approved/251
Este es un ejemplo de la llamada:
final Integer storeId = 251;
URL url = new URL(
String.format("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/approved/%s", storeId));
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/menu/approved/251',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/approved/251"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/approved/251"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
Este endpoint regresa unicamente un código de respuesta.
401 Credenciales inválidas:
{
"message": "Not a valid token"
}
GET menu/rappi/{storeId}
Utiliza este endpoint para obtener el último menú creado para una tienda en especifico.
URL del Endpoint
Utiliza esta URL para hacer llamadas con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/menu/rappi/{storeId}
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de dominios por país.{storeId}
: Este es el identificador de la integración de tu tienda.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
401
Credenciales inválidas
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/rappi/251
Este es un ejemplo de la llamada:
final Integer storeId = 251;
URL url = new URL(
String.format("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/rappi/%s", storeId));
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/menu/rappi/251',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/rappi/251"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/menu/rappi/251"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
Este es un ejemplo de la respuesta "200 Llamada exitosa":
{
"storeId": "900111978",
"items": [
{
"name": "Naked Cake con frutos",
"description": "Naked cake decorado con frutos. Cubierta de trufa derretida (ganache) y decorada con frutos del bosque.",
"sku": "8569874",
"type": "PRODUCT",
"price": 75.0,
"category": {
"id": "3",
"name": "Tortas",
"minQty": 0,
"maxQty": 0,
"sortingPosition": 0
},
"imageUrl": "https://image.com/image1.jpg",
"children": [
{
"name": "Chocolate",
"description": "",
"sku": "8569874-159",
"type": "TOPPING",
"price": 0.0,
"category": {
"id": "1",
"name": "Sabor",
"minQty": 0,
"maxQty": 1,
"sortingPosition": 0
},
"imageUrl": "https://image.com/image10.jpg",
"children": [],
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"340948822"
],
"sortingPosition": 1,
"maxLimit": 1
}
],
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"2135527868"
],
"sortingPosition": 0,
"maxLimit": 1
},
{
"name": "Snowman",
"description": "Linda lata de Snowman con productos variadosIncluye:Galletas mantequilla 350 gr, 6 brookies y 4 trufas de brownie.",
"sku": "856887",
"type": "PRODUCT",
"price": 75.0,
"category": {
"id": "9",
"name": "Navidad",
"minQty": 0,
"maxQty": 0,
"sortingPosition": 0
},
"imageUrl": "https://image.com/image2.jpg",
"children": [],
"availableFrom": null,
"availableTo": null,
"rappiIds": [
"2135524472"
],
"sortingPosition": 0,
"maxLimit": 1
}
]
}
Este es un ejemplo de la respuesta "401 Credenciales inválidas":
{
"message": "Not a valid token"
}
El detalle de lo que significa cada atributo esta dentro de la sección Get Menu.
Ordenes
Los recursos de órdenes te permiten interactuar con las órdenes de tus tiendas.
La siguiente tabla describe los diferentes contenidos del recurso órdenes:
Recurso | Descripción |
---|---|
GET orders |
Regresa una lista de nuevas órdenes creadas. |
GET orders/status/sent |
Regresa una lista de nuevas órdenes creadas en estado SENT |
PUT orders/{orderId}/take/{cookingTime} |
Toma una orden para comenzar su preparación. |
PUT orders/{orderId}/reject |
Rechaza una orden. |
POST orders/{orderId}/ready-for-pickup |
Confirma que la orden está lista para ser recogida. |
GET orders/{orderId}/events |
Regresa los últimos eventos de una orden. |
GET orders
Usa este endpoint para obtener una lista con las nuevas órdenes para las tiendas del aliado autenticado.
URL del Endpoint
Usa esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/orders
{COUNTRY_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 respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint acepta los siguientes parámetros opcionales:
Parámetro | Descripción |
---|---|
{storeId} |
Regresa únicamente las órdenes de una tienda |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
400
La tienda no pertenece al appClient del id especificado.
401
Credenciales inválidas
404
Tienda no encontrada.
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders
Este es un ejemplo de la llamada:
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/orders',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
[
{
"order_detail": {
"order_id": "392625",
"cooking_time": 10,
"min_cooking_time": 5,
"max_cooking_time": 20,
"created_at": "2019-04-10T11:12:57.000Z",
"delivery_method": "delivery",
"payment_method": "cc",
"delivery_information": {
"city": "Ciudad de México",
"complete_address": "Nombre de la calle 5050. Barrio. 12345. Ciudad De México",
"street_number": "5050",
"neighborhood": "Barrio",
"complement": "Portón verde",
"postal_code": "12345",
"street_name": "Nombre de la calle"
},
"billing_information": {
"address": "148 Davis Court",
"billing_type": "Bill",
"document_number": "32432342",
"document_type": "DNI",
"email": "client@gmail.com",
"name": "John Doe",
"phone": "43333222"
},
"totals": {
"total_products": 204000,
"total_discounts": 173685,
"total_order": 204180,
"total_discount_by_partner": 40180,
"total_to_pay": 0,
"discount_by_support": 0,
"charges": {
"shipping": 50,
"service_fee": 100
},
"other_totals": {
"tip": 30,
"total_rappi_pay": 0,
"total_rappi_credits": 0
}
},
"items": [
{
"sku": "1234",
"id": "2089918083",
"name": "Chicken and Apple Salad",
"type": "PRODUCT",
"comments": "No vinegar",
"price": 28900,
"quantity": 3,
"subitems": [
{
"sku": "11",
"id": "10005260",
"name": "Burrata Cheese",
"type": "TOPPING",
"price": 13500,
"quantity": 1
}
]
},
{
"id": "2089918082",
"name": "Seafood Salad",
"comments": "",
"price": 34900,
"quantity": 2,
"subitems": [
{
"id": "9928277",
"name": "With white vinaigrette",
"price": 0,
"quantity": 1
},
{
"id": "10005257",
"name": "Ricotta Cheese",
"price": 3500,
"quantity": 1
}
]
}
],
"delivery_discount": {
"total_percentage_discount": 100,
"total_value_discount": 50
},
"discounts": [
{
"value": 7600,
"description": "Envío gratis",
"title": "Envío gratis",
"product_id": null,
"sku": null,
"type": "shipping",
"raw_value": 100,
"value_type": "percentage",
"max_value": null,
"includes_toppings": false,
"percentage_by_rappi": 100,
"percentage_by_partners": 0,
"amount_by_rappi": 7600,
"amount_by_partner": 0,
"discount_product_units": 0,
"discount_product_unit_value": null
},
{
"value": 100,
"description": "Disfruta de 20% de descuento en productos seleccionados.",
"title": "Disfruta de 20% de descuento en productos seleccionados.",
"product_id": 2089918082,
"sku": 2089918082,
"type": "offer_by_product",
"raw_value": 20,
"value_type": "percentage",
"max_value": null,
"includes_toppings": false,
"percentage_by_rappi": 0,
"percentage_by_partners": 100,
"amount_by_rappi": 0,
"amount_by_partner": 100,
"discount_product_units": 1,
"discount_product_unit_value": 100
}
]
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"phone_number": "3163535",
"document_number": "34545678",
"user_type": "USER_VIP"
},
"store": {
"internal_id": "30000011",
"external_id": "123445",
"name": "Store 1"
}
}
]
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
order_detail array of objects |
Propiedades de los detalles de la orden. |
order_detail.order_id string |
Identificador de la orden. |
order_detail.coooking_time integer |
Tiempo de preparación estimado para la orden. |
order_detail.min_cooking_time integer |
Tiempo mínimo de preparación en minutos para esta orden. |
order_detail.max_cooking_time integer |
Tiempo máximo de preparación en minutos para esta orden. |
order_detail.created_at string |
Fecha en la que se creó la orden. |
order_detail.delivery_method string, enumerable |
Método de entrega de la orden. Opciones disponibles: delivery ,marketplace , pickup . |
order_detail.payment_method string, enumerable |
Metodo de pago de la orden. Opciones disponibles: rappi_pay , cc , cash , paypal , edenred , webpay , masterpass , dc , pos_terminal , elo , sodexo , vale_r , ticket_r , alelo , visa_checkout ,google_pay , apple_pay , rappicorp , PSE , PIX , unknown . (Es importante tener en cuenta que Rappi constantemente acepta nuevos métodos de pago, por lo tanto esta lista puede variar en el tiempo y no es necesario validarla.) |
order_detail.delivery_information object |
Propiedades de la dirección de entrega. |
order_detail.delivery_information.city string |
Ciudad de la dirección de entrega |
order_detail.delivery_information.complete_address string |
Dirección de entrega con todos los campos |
order_detail.delivery_information.street_number string |
Numero de la calle |
order_detail.delivery_information.neighborhood string |
Barrio de la dirección de entrega |
order_detail.delivery_information.complement string |
Información adicional de la dirección de entrega |
order_detail.delivery_information.postal_code string |
Código postal establecido para la dirección |
order_detail.delivery_information.street_name string |
Nombre de la calle establecido para la dirección de entrega |
order_detail.billing_information array of objects |
Propiedades de facturación del pago . |
order_detail.billing_information.address string |
Dirección de entrega de la orden. |
order_detail.billing_information.billing_type string |
Tipo de cobro de la orden. |
order_detail.billing_information.document_number string |
Número de documento del cliente. |
order_detail.billing_information.document_type string |
Tipo de documento del cliente. |
order_detail.billing_information.email string |
Email establecido para recibir información de facturación. |
order_detail.billing_information.name string |
Nombre establecido para la facturación. |
order_detail.billing_information.phone string |
Teléfono establecido para la facturación. |
order_detail.totals array of objects |
Propiedades del total de la orden. |
order_detail.totals.total_products integer |
Total de los productos sin descuentos. |
order_detail.totals.total_discounts integer |
Total de productos sin descuento en la orden. |
order_detail.totals.total_order integer |
Cantidad total que el restaurante recibe. Cuando el metodo de entrega es marketplace este campo incluye propina y cargos de entrega.Para otros métodos de entrega, este campo contiene solo el valor total de todos los productos. En todos los casos, este campo incluye los descuentos asumidos por el restaurante. |
order_detail.totals.total_to_pay integer |
El total que el usuario paga al repartidor en efectivo. Aplica únicamente cuando el metodo de entrega es marketplace o pickup , y el método de pago es: cash . |
order_detail.totals.discount_by_support integer |
Descuento aplicado al usuario por el equipo de soporte de Rappi. |
order_detail.totals.charges array of objects |
Propiedades de cargos adicionales de la orden . |
order_detail.totals.charges.shipping integer |
Total de cargos de envío . |
order_detail.totals.charges.service_fee integer |
Cargos del servicio de Rappi |
order_detail.totals.other_totals array of objects |
Otros cargos incluidos en esta orden. |
order_detail.totals.other_totals.tip integer |
Propina para el repartidor. |
order_detail.totals.other_totals.total_rappi_pay integer |
Total pagado usando Rappi Pay. |
order_detail.totals.othet_totals.total_rappi_credits integer |
Total pagado usando Rappi Creditos . |
order_detail.items array of objects |
Propiedades de los artículos que contiene la orden. |
order_detail.items.sku string |
SKU del artículo en el menú. El aliado asigna su propio SKU al artículo. |
order_detail.items.id string |
Identificador del artículo en la orden. |
order_detail.items.name string |
Nombre del artículo en la orden. |
order_detail.items.type string, enumerable |
Tipo de artículo. Opciones disponibles: product , o topping . |
order_detail.items.comments array |
Comentarios del usuario para un artículo en la orden. |
order_detail.items.price integer |
Precio unitario del artículo sin descuento. |
order_detail.items.quantity integer |
Cantidad especificada del artículo en la orden. |
order_detail.items.subitems array of objects |
Propiedades de los subartículos en la orden. |
order_detail.items.subitems.sku string |
SKU del subartículo en el menú. El aliado asigna su propio SKU al artículo. |
order_detail.items.subitems.id string |
Identificador que Rappi asigna al artículo. |
order_detail.items.subitems.name string |
Nombre del subartículo en la orden. |
order_detail.items.subitems.type string, enumerable |
Tipo del subartículo en la orden. Opciones disponibles: product , o topping . |
order_detail.items.subitems.price integer |
Precio unitario del subartículo sin descuento |
order_detail.items.subitems.quantity integer |
Cantidad especificada del subartículo en la orden. |
order_detail.delivery_discount integer |
Propiedades de los descuentos en la entrega de la orden. |
order_detail.delivery_discount.total_percentage_discount integer |
Porcentaje de descuento en la entrega de la orden. |
order_detail.delivery_discount.total_value_discount integer |
Monto total del descuento en la entrega. |
order_detail.customer array of objects |
Propiedades del usuario de Rappi que crea la orden. Solo se envían cuando el método de entrega es marketplace o si se solicita a Rappi que envíe esta información |
order_detail.customer.first_name string |
Nombre del usuario de Rappi que crea la orden. |
order_detail.customer.last_name string |
Apellido del usuario de Rappi que crea la orden. |
order_detail.customer.phone_number string |
Número de teléfono del usuario de Rappi que crea la orden. |
order_detail.customer.document_number string |
Número de documento del usuario de Rappi que crea la orden. |
order_detail.customer.user_type string |
Si el usuario es VIP se envía el valor USER_VIP . Para el resto de los usuarios este campo no se envía. |
order_detail.store array of objects |
Propiedades de la tienda que prepara la orden. |
order_detail.store.internal_id string |
Identificador interno que Rappi asigna a la tienda. |
order_detail.store.external_id string |
Identificador de la integración que Rappi asigna a la tienda. |
order_detail.store.name string |
Nombre de la tienda que prepara la orden. |
order_detail.discounts.value integer |
Valor del descuento reflejado en divisa. |
order_detail.discounts.description string |
Mensaje descriptivo explicando el descuento. |
order_detail.discounts.title string |
Nombre del descuento. |
order_detail.discounts.product_id integer |
ID del producto si el descuento aplica producto. |
order_detail.discounts.sku string |
SKU del producto si el descuento aplica producto. |
order_detail.discounts.type string |
Indica el tipo del descuento. |
order_detail.discounts.raw_value integer |
El valor del descuento, puede representar un porcentaje o un valor en divisa dependiendo del type_value . |
order_detail.discounts.value_type string, enumerable |
El tipo de valor del descuento. Opciones disponibles: value , percentage . |
order_detail.discounts.max_value integer |
Máximo valor en divisa a descontar. |
order_detail.discounts.includes_toppings boolean |
Indica si el descuento se resta del total de producto con toppings o no. |
order_detail.discounts.percentage_by_rappi integer |
El porcentaje del descuento asumido por Rappi. |
order_detail.discounts.percentage_by_partners integer |
El porcentaje del descuento asumido por el aliado. |
order_detail.discounts.amount_by_rappi integer |
Valor del descuento reflejado en divisa asumido por Rappi. |
order_detail.discounts.amount_by_partner integer |
Valor del descuento reflejado en divisa asumido por el aliado. |
order_detail.discounts.discount_product_units integer |
Cantidad de productos a las que aplicó el descuento. |
order_detail.discounts.discount_product_unit_value integer |
Valor del descuento por unidad de producto. |
GET orders status SENT
Usa este endpoint para obtener una lista con las nuevas órdenes en estado SENT para las tiendas del aliado autenticado.
URL del Endpoint
Usa esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/orders/status/sent
{COUNTRY_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 respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint acepta los siguientes parametros opcionales:
Parámetro | Descripción |
---|---|
{storeId} |
Regresa únicamente las órdenes en estado SENT de una tienda |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
400
La tienda no pertenece al appClient del id especificado.
401
Credenciales inválidas
404
Tienda no encontrada.
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/status/sent
Este es un ejemplo de la llamada:
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/status/sent");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/orders/status/sent',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/status/sent"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/status/sent"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
[
{
"order_detail": {
"order_id": "392625",
"cooking_time": 10,
"min_cooking_time": 5,
"max_cooking_time": 20,
"created_at": "2019-04-10T11:12:57.000Z",
"delivery_method": "delivery",
"payment_method": "cc",
"delivery_information": {
"city": "Ciudad de México",
"complete_address": "Nombre de la calle 5050. Barrio. 12345. Ciudad De México",
"street_number": "5050",
"neighborhood": "Barrio",
"complement": "Portón verde",
"postal_code": "12345",
"street_name": "Nombre de la calle"
},
"billing_information": {
"address": "148 Davis Court",
"billing_type": "Bill",
"document_number": "32432342",
"document_type": "DNI",
"email": "client@gmail.com",
"name": "John Doe",
"phone": "43333222"
},
"totals": {
"total_products": 204000,
"total_discounts": 173685,
"total_order": 204180,
"total_discount_by_partner": 40180,
"total_to_pay": 0,
"discount_by_support": 0,
"charges": {
"shipping": 50,
"service_fee": 100
},
"other_totals": {
"tip": 30,
"total_rappi_pay": 0,
"total_rappi_credits": 0
}
},
"items": [
{
"sku": "1234",
"id": "2089918083",
"name": "Chicken and Apple Salad",
"type": "PRODUCT",
"comments": "No vinegar",
"price": 28900,
"quantity": 3,
"subitems": [
{
"sku": "11",
"id": "10005260",
"name": "Burrata Cheese",
"type": "TOPPING",
"price": 13500,
"quantity": 1
}
]
},
{
"id": "2089918082",
"name": "Seafood Salad",
"comments": "",
"price": 34900,
"quantity": 2,
"subitems": [
{
"id": "9928277",
"name": "With white vinaigrette",
"price": 0,
"quantity": 1
},
{
"id": "10005257",
"name": "Ricotta Cheese",
"price": 3500,
"quantity": 1
}
]
}
],
"delivery_discount": {
"total_percentage_discount": 100,
"total_value_discount": 50
},
"discounts": [
{
"value": 7600,
"description": "Envío gratis",
"title": "Envío gratis",
"product_id": null,
"sku": null,
"type": "shipping",
"raw_value": 100,
"value_type": "percentage",
"max_value": null,
"includes_toppings": false,
"percentage_by_rappi": 100,
"percentage_by_partners": 0,
"amount_by_rappi": 7600,
"amount_by_partner": 0,
"discount_product_units": 0,
"discount_product_unit_value": null
},
{
"value": 100,
"description": "Disfruta de 20% de descuento en productos seleccionados.",
"title": "Disfruta de 20% de descuento en productos seleccionados.",
"product_id": 2089918082,
"sku": 2089918082,
"type": "offer_by_product",
"raw_value": 20,
"value_type": "percentage",
"max_value": null,
"includes_toppings": false,
"percentage_by_rappi": 0,
"percentage_by_partners": 100,
"amount_by_rappi": 0,
"amount_by_partner": 100,
"discount_product_units": 1,
"discount_product_unit_value": 100
}
]
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"phone_number": "3163535",
"document_number": "34545678",
"user_type": "USER_VIP"
},
"store": {
"internal_id": "30000011",
"external_id": "123445",
"name": "Store 1"
}
}
]
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
order_detail array of objects |
Propiedades de los detalles de la orden. |
order_detail.order_id string |
Identificador de la orden. |
order_detail.coooking_time integer |
Tiempo de preparación estimado para la orden. |
order_detail.min_cooking_time integer |
Tiempo mínimo de preparación en minutos para esta orden. |
order_detail.max_cooking_time integer |
Tiempo máximo de preparación en minutos para esta orden. |
order_detail.created_at string |
Fecha en la que se creó la orden. |
order_detail.delivery_method string, enumerable |
Método de entrega de la orden. Opciones disponibles: delivery ,marketplace , pickup . |
order_detail.payment_method string, enumerable |
Metodo de pago de la orden. Opciones disponibles: rappi_pay , cc , cash , paypal , edenred , webpay , masterpass , dc , pos_terminal , elo , sodexo , vale_r , ticket_r , alelo , visa_checkout ,google_pay , apple_pay , rappicorp , PSE , PIX , unknown . |
order_detail.delivery_information object |
Propiedades de la dirección de entrega. |
order_detail.delivery_information.city string |
Ciudad de la dirección de entrega |
order_detail.delivery_information.complete_address string |
Dirección de entrega con todos los campos |
order_detail.delivery_information.street_number string |
Numero de la calle |
order_detail.delivery_information.neighborhood string |
Barrio de la dirección de entrega |
order_detail.delivery_information.complement string |
Información adicional de la dirección de entrega |
order_detail.delivery_information.postal_code string |
Código postal establecido para la dirección |
order_detail.delivery_information.street_name string |
Nombre de la calle establecido para la dirección de entrega |
order_detail.billing_information array of objects |
Propiedades de facturación del pago . |
order_detail.billing_information.address string |
Dirección de entrega de la orden. |
order_detail.billing_information.billing_type string |
Tipo de cobro de la orden. |
order_detail.billing_information.document_number string |
Número de documento del cliente. |
order_detail.billing_information.document_type string |
Tipo de documento del cliente. |
order_detail.billing_information.email string |
Email establecido para recibir información de facturación. |
order_detail.billing_information.name string |
Nombre establecido para la facturación. |
order_detail.billing_information.phone string |
Teléfono establecido para la facturación. |
order_detail.totals array of objects |
Propiedades del total de la orden. |
order_detail.totals.total_products integer |
Total de los productos sin descuentos. |
order_detail.totals.total_discounts integer |
Total de productos sin descuento en la orden. |
order_detail.totals.total_order integer |
Cantidad total que el restaurante recibe. Cuando el metodo de entrega es marketplace este campo incluye propina y cargos de entrega.Para otros métodos de entrega, este campo contiene solo el valor total de todos los productos. En todos los casos, este campo incluye los descuentos asumidos por el restaurante. |
order_detail.totals.total_discount_by_partner integer |
El total en divisa de los descuentos asumidos por el aliado. |
order_detail.totals.total_to_pay integer |
El total que el usuario paga al repartidor en efectivo. Aplica únicamente cuando el metodo de entrega es marketplace o pickup , y el método de pago es: cash . |
order_detail.totals.discount_by_support integer |
Descuento aplicado al usuario por el equipo de soporte de Rappi. |
order_detail.totals.charges array of objects |
Propiedades de cargos adicionales de la orden . |
order_detail.totals.charges.shipping integer |
Total de cargos de envío . |
order_detail.totals.charges.service_fee integer |
Cargos del servicio de Rappi |
order_detail.totals.other_totals array of objects |
Otros cargos incluidos en esta orden. |
order_detail.totals.other_totals.tip integer |
Propina para el repartidor. |
order_detail.totals.other_totals.total_rappi_pay integer |
Total pagado usando Rappi Pay. |
order_detail.totals.othet_totals.total_rappi_credits integer |
Total pagado usando Rappi Creditos . |
order_detail.items array of objects |
Propiedades de los artículos que contiene la orden. |
order_detail.items.sku string |
SKU del artículo en el menú. El aliado asigna su propio SKU al artículo. |
order_detail.items.id string |
Identificador del artículo en la orden. |
order_detail.items.name string |
Nombre del artículo en la orden. |
order_detail.items.type string, enumerable |
Tipo de artículo. Opciones disponibles: product , o topping . |
order_detail.items.comments array |
Comentarios del usuario para un artículo en la orden. |
order_detail.items.price integer |
Precio unitario del artículo sin descuento. |
order_detail.items.quantity integer |
Cantidad especificada del artículo en la orden. |
order_detail.items.subitems array of objects |
Propiedades de los subartículos en la orden. |
order_detail.items.subitems.sku string |
SKU del subartículo en el menú. El aliado asigna su propio SKU al artículo. |
order_detail.items.subitems.id string |
Identificador que Rappi asigna al artículo. |
order_detail.items.subitems.name string |
Nombre del subartículo en la orden. |
order_detail.items.subitems.type string, enumerable |
Tipo del subartículo en la orden. Opciones disponibles: product , o topping . |
order_detail.items.subitems.price integer |
Precio unitario del subartículo sin descuento |
order_detail.items.subitems.quantity integer |
Cantidad especificada del subartículo en la orden. |
order_detail.delivery_discount integer |
Propiedades de los descuentos en la entrega de la orden. |
order_detail.delivery_discount.total_percentage_discount integer |
Porcentaje de descuento en la entrega de la orden. |
order_detail.delivery_discount.total_value_discount integer |
Monto total del descuento en la entrega. |
order_detail.customer array of objects |
Propiedades del usuario de Rappi que crea la orden. Solo se envían cuando el método de entrega es marketplace o si se solicita a Rappi que envíe esta información |
order_detail.customer.first_name string |
Nombre del usuario de Rappi que crea la orden. |
order_detail.customer.last_name string |
Apellido del usuario de Rappi que crea la orden. |
order_detail.customer.phone_number string |
Número de teléfono del usuario de Rappi que crea la orden. |
order_detail.customer.document_number string |
Número de documento del usuario de Rappi que crea la orden. |
order_detail.customer.user_type string |
Si el usuario es VIP se envía el valor USER_VIP . Para el resto de los usuarios este campo no se envía. |
order_detail.store array of objects |
Propiedades de la tienda que prepara la orden. |
order_detail.store.internal_id string |
Identificador interno que Rappi asigna a la tienda. |
order_detail.store.external_id string |
Identificador de la integración que Rappi asigna a la tienda. |
order_detail.store.name string |
Nombre de la tienda que prepara la orden. |
order_detail.discounts.value integer |
Valor del descuento reflejado en divisa. |
order_detail.discounts.description string |
Mensaje descriptivo explicando el descuento. |
order_detail.discounts.title string |
Nombre del descuento. |
order_detail.discounts.product_id integer |
ID del producto si el descuento aplica producto. |
order_detail.discounts.sku string |
SKU del producto si el descuento aplica producto. |
order_detail.discounts.type string |
Indica el tipo del descuento. |
order_detail.discounts.raw_value integer |
El valor del descuento, puede representar un porcentaje o un valor en divisa dependiendo del type_value . |
order_detail.discounts.value_type string, enumerable |
El tipo de valor del descuento. Opciones disponibles: value , percentage . |
order_detail.discounts.max_value integer |
Máximo valor en divisa a descontar. |
order_detail.discounts.includes_toppings boolean |
Indica si el descuento se resta del total de producto con toppings o no. |
order_detail.discounts.percentage_by_rappi integer |
El porcentaje del descuento asumido por Rappi. |
order_detail.discounts.percentage_by_partners integer |
El porcentaje del descuento asumido por el aliado. |
order_detail.discounts.amount_by_rappi integer |
Valor del descuento reflejado en divisa asumido por Rappi. |
order_detail.discounts.amount_by_partner integer |
Valor del descuento reflejado en divisa asumido por el aliado. |
order_detail.discounts.discount_product_units integer |
Cantidad de productos a las que aplicó el descuento. |
order_detail.discounts.discount_product_unit_value integer |
Valor del descuento por unidad de producto. |
PUT orders/{orderId}/take/{cookingTime}
Usa este endpoint para tomar una orden para que la tienda comience a pepararla.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/orders/{orderId}/take/{cookingTime}
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de dominios por país.{orderId}
: Este es el identificador de la orden.{cookingTime}
: Este es el nuevo tiempo de preparación de la orden. Puedes dejar este campo vacío para mantener el tiempo de preparación por defecto.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Orden exitosamente tomada
400
Estado de transición inválido
401
Credenciales inválidas
404
Orden no encontrada
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/take/20
Este es un ejemplo de la llamada:
final Integer orderId = 392625;
final Integer cookingTime = 20;
URL url = new URL(
String.format("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/%s/take/%s", orderId, cookingTime)
);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/orders/392625/take/20',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/take/20"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/take/20"
method := "PUT"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
Este endpoint únicamente regresa un código de estado.
PUT orders/{orderId}/reject
Usa este endpoint para rechazar una orden.
URL del Endpoint
Utiliza esta URL para hacer llamadas con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/orders/{orderId}/reject
{COUNTRY_DOMAIN}
: Este es tu Dominio por país de Rappi. Mira la lista de dominios por país.{orderId}
: Este es el identificador de la orden.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body para llamadas | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Nombre | Requerido | Descripción |
---|---|---|
orderId string |
required |
Rechaza una orden en especifico. |
items_ids array of string |
optional |
Lista de los ids de los items con error. Aca se envia el rappi id |
items_skus array of string |
optional |
Lista de skus de los items con error. Aca se envia el sku |
cancel_type string enumerable |
optional |
Enum: "ITEM_WRONG_PRICE" , "ITEM_NOT_FOUND" , "ITEM_OUT_OF_STOCK" , "ORDER_MISSING_INFORMATION" , "ORDER_MISSING_ADDRESS_INFORMATION" , "ORDER_TOTAL_INCORRECT" |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Orden rechazada
400
Estado de transición inválido
401
Credenciales inválidas
404
Orden no encontrada
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/reject
Este es un ejemplo de la llamada:
{
"reason":"The order has invalid items"
}
Este es un ejemplo de la llamada con items con error:
{
"reason":"The order has invalid items",
"cancel_type": "ITEM_NOT_FOUND",
"items_skus": ["sku1", "sku2"]
}
final Integer orderId = 3320025;
URL url = new URL(
String.format("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/%s/reject", orderId)
);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "{\"reason\":\"The order has invalid items\"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/orders/392625/reject',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({"reason":"The order has invalid items"});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/reject"
payload = "{\"reason\":\"The order has invalid items\"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/reject"
method := "PUT"
payload := strings.NewReader("{\"reason\":\"The order has invalid items\"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Attributes | Requirement | Description |
---|---|---|
reason string |
required |
Razón por la que la orden se rechazó |
Ejemplo de Llamada
Este endpoint regresa solo un código de respuesta.
POST orders/{orderId}/ready-for-pickup
Usa este endpoint para notificar al usuario en la app de Rappi que su orden está lista para ser recogida.
URL del Endpoint
Usa esta URL para hacer llamadas con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/orders/{orderId}/ready-for-pickup
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de dominios por país.{orderId}
: Este es el identificador de la orden.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Orden actualizada
400
Estado de transición inválido
401
Credenciales inválidas
404
Orden no encontrada
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
POST https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/ready-for-pickup
Este es un ejemplo de la llamada:
final Integer orderId = 392625;
URL url = new URL(
String.format(
"https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/%s/ready-for-pickup",
orderId));
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
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");
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'POST',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/orders/392625/ready-for-pickup',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/ready-for-pickup"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/ready-for-pickup"
method := "POST"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
Este endpoint regresa unicamente un código de respuesta.
GET orders/{orderId}/events
Usa este endpoint para para obtener las últimas actualizaciones de una orden.
URL del Endpoint
Utiliza esta URL para hacer llamadas con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/orders/{orderId}/events
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de dominios por país.{orderId}
: Este es el identificador de tu orden.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/events
Este es un ejemplo de la llamada:
final Integer orderId = 392625;
URL url = new URL(
String.format(
"https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/%s/events",
orderId));
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/orders/392625/events',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/events"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/orders/392625/events"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
401
Credenciales inválidas
404
Orden no encontrada
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
[
{
"event":"canceled_with_charge",
"event_time":"2020-05-28T12:31:12.501Z",
"additional_information":{
}
},
{
"event":"taken_visible_order",
"event_time":"2020-05-28T12:30:12.501Z",
"additional_information":{
}
}
]
Esta tabla describe los objetos dentro de la respuesta de ejemplo: Tiempo estimado de llegada del repartidor a la tienda
Objeto en la respuesta | Descripción del objeto |
---|---|
event string |
Último evento de la orden. |
event_time string |
Hora del evento. Formato: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'. |
additional_information array of objects |
Información adicional de la orden. El formato puede variar dependiendo del evento. |
Tiendas
Los recursos de Tiendas te permiten interactuar con tus tiendas.
La siguiente tabla describe los diferentes contenidos de los recursos de Tiendas:
Recurso API | Descripción del Endpoint |
---|---|
GET stores-pa |
Regresa la lista de tiendas del aliado autenticado. |
PUT stores-pa/{storeId}/status |
Actualiza una tienda a integrada o no integrada. |
GET store/{storeId}/menu/current |
Te permite obtener el menu actual de la tienda. |
GET stores-pa
Usa este endpoint para obtener las tiendas del aliado autenticado.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/stores-pa
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Success
401
Invalid credentials
404
App Client no encontrado
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores-pa
Este es un ejemplo de la llamada:
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/stores-pa',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores-pa"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores-pa"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta "Success 200"
Este es un ejemplo de la respuesta "Success 200":
[
{
"integrationId":"111",
"rappiId":"890982",
"name":"Store 1"
},
{
"integrationId":"222",
"rappiId":"890983",
"name":"Store 2"
},
{
"integrationId":"333",
"rappiId":"890983",
"name":"Store 3"
}
]
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
integrationId string |
Identificador de la tienda en la aplicación de Rappi |
rappiId string |
Identificador que Rappi asignó al aliado |
name string |
Nombre de la tienda en la aplicación de Rappi |
Ejemplo de Respuesta "Invalid credentials 401"
Este es un ejemplo de la respuesta "Invalid credentials 401":
{
"message": "Not a valid token"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
Ejemplo de Respuesta "App Client no encontrado 404"
Este es un ejemplo de la respuesta "App Client no encontrado 404":
{
"message": "Not found appClient of client id {clientId}"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
PUT store-pa integrated status
Usa este endpoint para cambiar una tienda a integrada o no integrada
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/stores-pa/{storeId}/status
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint tiene los siguientes parametros:
Parámetro | Descripción |
---|---|
{storeId} |
Path Param. Store Id del lado de rappi |
{integrated} |
Query Param. Indica si la tienda se actualiza a "integrada" (true) o "no integrada" (false) |
Códigos de respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Success
401
Invalid credentials
404
App Client no encontrado
400
Error al actualizar la store
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores-pa/12345/status?integrated=true
Este es un ejemplo de la llamada:
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores-pa/12345/status?integrated=true");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/stores-pa/12345/status?integrated=true',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores-pa/12345/status?integrated=true"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/stores-pa/12345/status?integrated=true"
method := "PUT"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta "Success 200"
Este es un ejemplo de la respuesta "Success 200" al pasar una tienda a integrada:
{
"message":"The store {storeid} was changed to integrated {true} successfully."
}
Este es un ejemplo de la respuesta "Success 200" al pasar una tienda a no integrada:
{
"message":"The store {storeid} was changed to integrated {false} successfully. Please remember to login into the partners app and set the AUTO ACCEPT config"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje con la información del cambio realizado |
Ejemplo de Respuesta "Invalid credentials 401"
Este es un ejemplo de la respuesta "Invalid credentials 401":
{
"message": "Not a valid token"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
Ejemplo de Respuesta "App Client no encontrado 404"
Este es un ejemplo de la respuesta "App Client no encontrado 404":
{
"message": "Not found appClient of client id {clientId}"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
Este es un ejemplo de la respuesta "Error al actualizar la store 400":
{
"message": "There was an error trying to change the store {storeId} to integrated: {true|false}. Please contact support team"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
GET store current menu
Usa este endpoint para obtener el menú actual de la tienda.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/store/{STORE_ID}/menu/current
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
{STORE_ID}
: Este es el identificador de la tienda del lado de Rappi.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Success
401
Invalid credentials
404
App Client no encontrado
400
La tienda no pertenece al App Client
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://internal-microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/store/900111941/menu/current
Este es un ejemplo de la llamada:
URL url = new URL("http://internal-microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/store/YOU_STORE/menu/current");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/store/YOU_STORE/menu/current',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/store/YOU_STORE/menu/current"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/store/YOU_STORE/menu/current"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta "Success 200"
Este es un ejemplo de la respuesta "Success 200":
[
{
"storeId":"900111941",
"products":[
{
"id":"2135501578",
"name":"2 por 19,90",
"price":52.9,
"partnerSku":null,
"active":null,
"toppings":[
{
"id":"340825698",
"name":"Batata Grande",
"price":6.9,
"partnerSku":null,
"active":null,
"category":{
"id":"1247164425",
"name":"Deseja Acompanhamento?"
}
},
{
"id":"340825699",
"name":"Pepsi 350ml",
"price":6.9,
"partnerSku":null,
"active":null,
"category":{
"id":"1247164426",
"name":"Deseja Bebida?"
}
}
]
},
{
"id":"2135501683",
"name":"4 Sanduíches por R$ 29,80!",
"price":43.6,
"partnerSku":null,
"active":null,
"toppings":[
{
"id":"340827238",
"name":"Rodeio",
"price":0,
"partnerSku":null,
"active":null,
"category":{
"id":"1247164714",
"name":"Escolha seu 1º sanduíche:"
}
}
]
}
]
}
]
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
storeId string |
Identificador de la tienda del lado de Rappi |
products array of objects |
Lista de productos de la tienda |
products.id string |
Identificador del producto del lado de Rappi |
products.name string |
Nombre del producto |
products.price integer |
Precio del producto |
products.toppings array of objects |
Lista de Toppings del producto |
products.toppings.id string |
Identificador del topping del lado de Rappi |
products.toppings.name string |
Nombre del topping |
products.toppings.price integer |
Precio del topping |
products.toppings.category objects |
Categoría del topping |
products.toppings.category.id string |
Identificador de la categoría del topping |
products.toppings.category.name string |
Nombre de la categoría del topping |
Ejemplo de Respuesta "Invalid credentials 401"
Este es un ejemplo de la respuesta "Invalid credentials 401":
{
"message": "Not a valid token"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
Ejemplo de Respuesta "App Client no encontrado 404"
Este es un ejemplo de la respuesta "App Client no encontrado 404":
{
"message": "Not found appClient of client id {clientId}"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
Ejemplo de Respuesta "La tienda no pertenece al App Client 400"
Este es un ejemplo de la respuesta "La tienda no pertenece al App Client 400":
{
"message": "The stores {storeId} don't belong to the appClient of client id {clientId}"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto | Descripción |
---|---|
message string |
Mensaje descriptivo del error |
Disponibilidad
Los recursos de Disponibilidad te permiten interactuar con las opciones de disponibilidad de tus artículos y tiendas.
La siguiente tabla describe los diferentes contenidos de los recursos de Disponibilidad:
Recurso | Descripción |
---|---|
PUT availability/stores/items |
Maneja la disponibilidad de los artículos por SKU en la app de Rappi |
PUT availability/stores/items/rappi |
Maneja la disponibilidad de los artículos por ID en la app de Rappi |
PUT availability/stores |
Maneja de forma asincrónica la disponibilidad de la tienda en la app de Rappi |
PUT availability/stores/enable/massive |
Maneja de forma asincrónica la disponibilidad de la tienda en la app de Rapppi |
PUT availability/stores/enable |
Maneja de forma sincrónica la disponibilidad de la tienda en la app de Rapppi |
PUT availability/stores/items
Usa este endpoint para configurar las opciones de disponibilidad de tus artículos por SKU en tus tiendas.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/availability/stores/items
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Llamada exitosa
401
Credenciales inválidas
404
Artículo no encontrado
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items
Este es un ejemplo de la llamada:
[
{
"store_integration_id":"999",
"items":{
"turn_on":[
"1111",
"2222",
"3333"
],
"turn_off":[
"5555"
]
}
}
]
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "[\n" +
" {\n" +
" \"store_integration_id\":\"999\",\n" +
" \"items\":{\n" +
" \"turn_on\":[\n" +
" \"1111\",\n" +
" \"2222\",\n" +
" \"3333\"\n" +
" ],\n" +
" \"turn_off\":[\n" +
" \"5555\"\n" +
" ]\n" +
" }\n" +
" }\n" +
"]";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/availability/stores/items',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify(
[
{
"store_integration_id":"999",
"items": {
"turn_on": [
"1111",
"2222",
"3333"
],
"turn_off": [
"5555"
]
}
}
]);
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items"
payload = "[\n" \
" {\n" \
" \"store_integration_id\":\"999\",\n" \
" \"items\":{\n" \
" \"turn_on\":[ " \
" \"1111\", " \
" \"2222\", " \
" \"3333\" " \
" ],\n" \
" \"turn_off\":[ " \
" \"5555\" " \
" ]\n" \
" }\n" \
" }\n" \
"]"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items"
method := "PUT"
payload := strings.NewReader("[\n" +
" {\n" +
" \"store_integration_id\":\"999\",\n" +
" \"items\":{\n" +
" \"turn_on\":[\n" +
" \"1111\",\n" +
" \"2222\",\n" +
" \"3333\"\n" +
" ],\n" +
" \"turn_off\":[\n" +
" \"5555\"\n" +
" ]\n" +
" }\n" +
" }\n" +
"]")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerido | Descripción |
---|---|---|
store_integration_id string |
required |
Identificador de la integración de la tienda. |
items array of objects |
required |
Propiedades de los artículos configurados. |
items.turn_on string |
optional |
SKU del artículo a habilitar. |
items.turn_off string |
optional |
Sku del artículo a deshabilitar. |
Ejemplo de Respuesta
Ejemplo de respuesta con mensaje de error:
[
{
"message":"Error updating items"
}
]
Estos son las respuestas posibles al hacer la llamada:
- Si la llamada es exitosa, el endpoint regresa un código Success.
- Si la llamada falla, el endpoint regresa un código de Error con un mensaje en formato
JSON
.
PUT availability/stores/items/rappi
Usa este endpoint para configurar la disponibilidad de tus artículos por ID de Rappi en tus tiendas.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/availability/stores/items/rappi
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Artículo actualizado exitosamente
401
Credenciales inválidas
404
Artículo no encontrado
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items/rappi
Este es un ejemplo de la llamada:
[
{
"store_integration_id":"999",
"items":{
"turn_on":[
1111,
2222,
3333
],
"turn_off":[
5555
]
}
}
]
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items/rappi");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "[\n" +
" {\n" +
" \"store_integration_id\":\"999\",\n" +
" \"items\":{\n" +
" \"turn_on\":[\n" +
" 1111,\n" +
" 2222,\n" +
" 3333\n" +
" ],\n" +
" \"turn_off\":[\n" +
" 5555\n" +
" ]\n" +
" }\n" +
" }\n" +
"]";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/availability/stores/items/rappi',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify(
[
{
"store_integration_id":"999",
"items": {
"turn_on": [
1111,
2222,
3333
],
"turn_off": [
5555
]
}
}
]);
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items/rappi"
payload = "[\n" \
" {\n" \
" \"store_integration_id\":\"999\",\n" \
" \"items\":{\n" \
" \"turn_on\":[ " \
" 1111, " \
" 2222, " \
" 3333 " \
" ],\n" \
" \"turn_off\":[\n" \
" 5555\n" \
" ]\n" \
" }\n" \
" }\n" \
"]"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/items/rappi"
method := "PUT"
payload := strings.NewReader("[\n" +
" {\n" +
" \"store_integration_id\":\"999\",\n" +
" \"items\":{\n" +
" \"turn_on\":[\n" +
" 1111,\n" +
" 2222,\n" +
" 3333\n" +
" ],\n" +
" \"turn_off\":[\n" +
" 5555\n" +
" ]\n" +
" }\n" +
" }\n" +
"]")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerido | Descripción |
---|---|---|
store_integration_id string |
required |
Identificador de la integración de la tienda. |
items array of objects |
required |
Propiedades de los artículos configurados. |
items.turn_on integer |
optional |
Rappi ID del artículo a habilitar. |
items.turn_off integer |
optional |
Rappi ID tdel artículo a deshabilitar. |
Ejemplo de Respuesta
Este es un ejemplo de una respuesta con un mensaje de error:
{
"message": "Error message"
}
Estas son las posibles respuestas de la llamada:
- Si la llamada es exitosa, el endpoint regresa un código Success.
- Si la llamada falla, el endpoint regresa un código de Error con un mensaje en formato
JSON
.
PUT availability/stores/enable/massive
Usa este endpoint para configurar la disponibilidad de tus artículos por ID de Rappi en tus tiendas.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/availability/stores
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. See the list of Country Domains.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Tiendas actualizadas correctamente
400
Error al actuliazar las tiendas
401
Credenciales invalidas
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable/massive
Este es un ejemplo de la llamada:
{
"stores": [
{
"store_id": "12312",
"is_enabled": true
},
{
"store_id": "12312",
"is_enabled": false
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable/massive");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = = "{\n"
+ " \"stores\": [\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": true\n"
+ " },\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": false\n"
+ " }\n"
+ " ]\n"
+ "}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/availability/stores//enable/massive',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({"stores": [
{
"store_id": "12312",
"is_enabled": true
},
{
"store_id": "12312",
"is_enabled": false
}]});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable/massive"
payload = = "{\n"
+ " \"stores\": [\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": true\n"
+ " },\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": false\n"
+ " }\n"
+ " ]\n"
+ "}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable/massive"
method := "PUT"
payload := strings.NewReader("{\n"
+ " \"stores\": [\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": true\n"
+ " },\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": false\n"
+ " }\n"
+ " ]\n"
+ "}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerido | Descripción |
---|---|---|
stores array of objects |
required |
Lista de tiendas |
stores.store_id string |
required |
id de la tienda (del lado de rappi) que será actualizada |
stores.is_enabled boolean |
required |
true para prenderla, de lo contrario false |
Ejemplo de Respuesta
Este es un ejemplo de una respuesta con un mensaje de error:
{
"message":"Error message"
}
Estas son las posibles respuestas de la llamada:
- Si la llamada es exitosa, el endpoint regresa un código Success.
- Si la llamada falla, el endpoint regresa un código de Error con un mensaje en formato
JSON
.
PUT availability/stores
Usa este endpoint para configurar la disponibilidad de tus tiendas.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/availability/stores
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
Propiedades del endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Tiendas actualizadas exitosamente
401
Credenciales inválidas
404
Tienda no encontrada
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores
Este es un ejemplo de la llamada:
{
"turn_on":[
"2222"
],
"turn_off":[
"333",
"444"
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"turn_on\":[\n" +
" \"2222\"\n" +
" ],\n" +
" \"turn_off\":[\n" +
" \"333\",\n" +
" \"444\"\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/availability/stores/items',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"turn_on":[
"2222"
],
"turn_off":[
"333",
"444"
]
});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores"
payload = "{\n" \
" \"turn_on\":[\n" \
" \"2222\"\n" \
" ],\n" \
" \"turn_off\":[\n" \
" \"333\",\n" \
" \"444\"\n" \
" ]\n" \
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores"
method := "PUT"
payload := strings.NewReader("{\n" +
" \"turn_on\":[\n" +
" \"2222\"\n" +
" ],\n" +
" \"turn_off\":[\n" +
" \"333\",\n" +
" \"444\"\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerido | Descripción |
---|---|---|
turn_on integer |
optional |
Lista de IDs de las tiendas a habilitar. |
turn_off integer |
optional |
Lista de IDs de las tiendas a deshabilitar. |
Ejemplo de Respuesta
Este es un ejemplo de una respuesta con un mensaje de error:
{
"message":"Error message"
}
Estas son las posibles respuestas de la llamada:
- Si la llamada es exitosa, el endpoint regresa un código Success.
- Si la llamada falla, el endpoint regresa un código de Error con un mensaje en formato
JSON
.
PUT availability/stores/enable
Usa este endpoint para configurar la disponibilidad de tus tiendas de forma sincrónica
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/availability/stores/enable
{COUNTRY_DOMAIN}
: Este es tu Dominio por País de Rappi. Mira la lista de Dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parametros
Este endpoint no permite parámetros adicionales.
Códigos de respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Tiendas actualizadas exitosamente
400
Request inválido
403
No tienes permiso para actualizar las tiendas enviadas
422
Se enviaron mas tiendas de las permitidas
Ejemplo de llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable
Este es un ejemplo de la llamada:
{
"stores": [
{
"store_id": "12312",
"is_enabled": true
},
{
"store_id": "12312",
"is_enabled": false
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = = "{\n"
+ " \"stores\": [\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": true\n"
+ " },\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": false\n"
+ " }\n"
+ " ]\n"
+ "}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
System.out.println("Response Code : " + connection.getResponseCode());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/availability/stores/enable',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({"stores": [
{
"store_id": "12312",
"is_enabled": true
},
{
"store_id": "12312",
"is_enabled": false
}]});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable"
payload = = "{\n"
+ " \"stores\": [\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": true\n"
+ " },\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": false\n"
+ " }\n"
+ " ]\n"
+ "}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/availability/stores/enable"
method := "PUT"
payload := strings.NewReader("{\n"
+ " \"stores\": [\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": true\n"
+ " },\n"
+ " {\n"
+ " \"store_id\": \"12312\",\n"
+ " \"is_enabled\": false\n"
+ " }\n"
+ " ]\n"
+ "}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Attributes | Requirement | Description |
---|---|---|
stores array of objects |
required |
List of store's data |
stores.store_id string |
required |
id of the store that will change the status |
stores.is_enabled boolean |
required |
true to turn on the store, otherwise false |
Sample Response
Este es un ejemplo de la respuesta exitosa:
{
"results":[
{
"store_id": 90774,
"is_enabled": true,
"operation_result": true,
"operation_result_type": "SUCCESS",
"operation_result_message": "success",
"suspended_reason": null,
"suspended_at": null,
"suspended_time": 0
},
{
"store_id": 90775,
"is_enabled": false,
"operation_result": false,
"operation_result_type": "SUSPENDED",
"operation_result_message": "suspended",
"suspended_reason": "suspended due to cancelled orders",
"suspended_at": "2022-04-11T20:23:00.00Z",
"suspended_time": 60
}
]
}
Este es un ejemplo de la respuesta con algún error:
{
"message": "It has been sent more than 300 stores and cannot be processed, please use the asynchronous service"
}
Esta tabla describe los atributos que el JSON
de la respuesta contiene
Response Object | Object Description |
---|---|
results array of objects |
Lista de resultados |
results.store_id int |
Id de la tienda. |
results.is_enabled boolean |
Estado actual de la tienda |
results.operation_result boolean |
true si el resultado de la operación fue exitoso, de lo contrario false . |
results.operation_result_type string |
Valores posibles: SUCCESS, SUSPENDED, FORBIDDEN, STORE_NOT_PUBLISHED, STORE_ALREADY_IN_STATUS, ERROR_EXTERNAL_SERVICE |
results.operation_result_message string |
Descripción del result type |
results.suspended_reason string |
Si la tienda fue suspendida, el motivo va a estar acá |
results.suspended_at date |
Fecha desde la cual la tienda fue suspendida |
results.suspended_time int |
Tiempo en minutos que indica por cuanto tiempo la tienda fue suspendida |
Significado de los diferentes valores del campo operation_result_type
STORE_NOT_PUBLISHED
: la tienda no se está mostrando actualmente en la aplicaciónSUSPENDED
: la tienda fue suspendida y no es posible prenderlaERROR_EXTERNAL_SERVICE
: hubo un error intentando cambiar el estado de la tiendaFORBIDDEN
: el client_id autenticado no tiene permisos para cambiar el estado de la tienda especificadaSTORE_ALREADY_IN_STATUS
: la tienda ya se encuentra en el estado al que está intentando cambiarlaSUCCESS
: la tienda fue actualizada correctamente
Webhooks
Usa estos recursos para controlar los Webhooks configurados en tus tiendas.
La siguiente tabla describe los diferentes contenidos de los recursos de Webhooks:
Recurso | Descripción del Endpoint | |
---|---|---|
GET webhook/{event} |
Regresa los Webhooks configurados de todas las tiendas del cliente autenticado | |
PUT webhook/{event}/add-stores |
Agrega tiendas al evento del webhook especificado | |
PUT webhook/{event}/change-url |
Cambia la url para una lista de tiendas | |
POST webhook |
Crea un nuevo Webhook para una lista de tiendas del cliente autenticado | |
DELETE webhook/{event}/remove-stores |
Elimina stores del webhook especificado | |
PUT webhook/{event}/reset-secret |
Reinicia el secret y genera uno nuevo al cliente autenticado | |
PUT webhook/{event}/change-status |
Habilita o deshabilita Webhooks para una lista de tiendas |
GET webhook
Usa este endpoint para obtener los Webhooks configurados para tus tiendas.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/webhook/{EVENT}
{COUNTRY_DOMAIN}
: Este es tu dominio por país de Rappi. Mira la lista de dominios por país{EVENT}
: Este es el nombre del evento y es opcional Mira la lista de eventos validos
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
GET https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook
Este es un ejemplo de la llamada:
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/webhook',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Parámetro | Requerimiento | Descripción |
---|---|---|
EVENT string |
opcional |
Regresa únicamente el detalle del evento especificado |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Sin Mensaje
401
Credenciales Inválidas
406
Evento invalido
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
[
{
"event": "event_1",
"stores": [
{
"store_id": "1000",
"url": "http://testUrl/one",
"state": "ENABLE"
},
{
"store_id": "10001",
"url": "http://testUrl/one",
"state": "ENABLE"
}
]
},
{
"event": "event_2",
"stores": [
{
"store_id": "1000",
"url": "http://testUrl/one",
"state": "ENABLE"
}
]
}
]
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
event string |
Nombre del evento que dispara el webhook. |
stores string |
Lista de las tiendas donde se dispara el evento. |
store_id string |
Id de la tienda que dispara el evento |
url string |
URL a la que se comunica el webhook. |
state string |
Estado del webhook. Opciones disponibles: ENABLE o DISABLE |
PUT webhook - Agregar Stores
Usa este endpoint para agregar tiendas a un webhook configurado por el cliente autenticado.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/webhook/{EVENT}/add-stores
{COUNTRY_DOMAIN}
: Este es tu dominio por país de Rappi. Mira la lista de dominios por país{EVENT}
: Este es el nombre del evento Mira la lista de eventos validos
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Parámetro | Requerimiento | Descripción |
---|---|---|
event string |
requerido |
El nombre del evento del webhook a actualizar |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Sin Mensaje
400
Lista de tiendas inválida para el cliente autenticado
401
Credenciales inválidas
406
evento inválido
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/add-stores
Este es un ejemplo de la llamada:
[
{
"url":"http://testDomain/webhook/data",
"stores":[
"1000",
"1001"
]
}
]
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/add-stores");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "[{\n" +
" \"url\":\"http://testDomain/webhook/data\",\n" +
" \"stores\":[\n" +
" \"1000\",\n" +
" \"1001\"\n" +
" ]\n" +
"}]";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/add-stores',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify([{
"url":"http://testDomain/webhook/data",
"stores":[
"1000",
"1001"
]
}]);
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/add-stores"
payload = "[{\n" \
" \"url\":\"http://testDomain/webhook/data\",\n" \
" \"stores\":[\n" \
" \"1000\",\n" \
" \"1001\"\n" \
" ]\n" \
"}]"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/add-stores"
method := "PUT"
payload := strings.NewReader("[{\n" +
" \"url\":\"http://testDomain/webhook/data\",\n" +
" \"stores\":[\n" +
" \"1000\",\n" +
" \"1001\"\n" +
" ]\n" +
"}]")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerimiento | Descripción |
---|---|---|
url string |
opcional |
URL a la que se comunica el webhook. |
stores array of strings |
opcional |
Lista de las tiendas donde se dispara el evento. |
Respuesta de ejemplo
Este es un ejemplo de la respuesta:
{
"event":"NEW_ORDER",
"stores":[{
"store_id": "1000",
"url":"http://testDomain/webhook/data",
"state": "ENABLE"
}]
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
event string |
Nombre del evento que dispara el webhook. |
stores string |
Lista de las tiendas donde se dispara el evento. |
store_id string |
Id de la tienda que dispara el evento |
url string |
URL a la que se comunica el webhook. |
state string |
Estado del webhook. Opciones disponibles: ENABLE o DISABLE |
PUT webhook - Cambiar Url
Usa este endpoint para agregar tiendas a un webhook configurado por el cliente autenticado.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/webhook/{event}/change-url
{COUNTRY_DOMAIN}
: Este es tu dominio por país de Rappi. Mira la lista de dominios por país{EVENT}
: Este es el nombre del evento Mira la lista de eventos validos
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Parámetro | Requerimiento | Descripción |
---|---|---|
event string |
requerido |
El nombre del evento del webhook a actualizar |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Sin Mensaje
400
Lista de tiendas inválida para el cliente autenticado
401
Credenciales inválidas
406
Evento invalido
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-url
Este es un ejemplo de la llamada:
{
"url":"http://testDomain/webhook/data",
"stores":[
"1000",
"1001"
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-url");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"url\":\"http://testDomain/webhook/data\",\n" +
" \"stores\":[\n" +
" \"1000\",\n" +
" \"1001\"\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-url',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"url":"http://testDomain/webhook/data",
"stores":[
"1000",
"1001"
]
});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-url"
payload = "{\n" \
" \"url\":\"http://testDomain/webhook/data\",\n" \
" \"stores\":[\n" \
" \"1000\",\n" \
" \"1001\"\n" \
" ]\n" \
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-url"
method := "PUT"
payload := strings.NewReader("{\n" +
" \"url\":\"http://testDomain/webhook/data\",\n" +
" \"stores\":[\n" +
" \"1000\",\n" +
" \"1001\"\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerimiento | Descripción |
---|---|---|
url string |
requerido |
URL a la que se comunica el webhook. |
stores array of strings |
requerido |
Lista de las tiendas donde se dispara el evento. |
Respuesta de ejemplo
Este es un ejemplo de la respuesta:
{
"event":"NEW_ORDER",
"stores":[{
"store_id": "1000",
"url":"http://testDomain/webhook/data",
"state": "ENABLE"
}]
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
event string |
Nombre del evento que dispara el webhook. |
stores array of Stores |
Lista de las tiendas donde se dispara el evento. |
store_id string |
Id de la tienda que dispara el evento |
url string |
URL a la que se comunica el webhook. |
state string |
Estado del webhook. Opciones disponibles: ENABLE o DISABLE |
POST webhook
Usa este endpoint para crear un webhook para tus tiendas.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/webhook
{COUNTRY_DOMAIN}
: Este es tu dominio por país de Rappi. Mira la lista de dominios por país.
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Sin Mensaje
400
Lista de tiendas inválidas para el cliente autenticado
401
Credenciales inválidas
406
Evento invalido
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
POST https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook
Este es un ejemplo de la llamada:
{
"event": "test_event",
"data": [
{
"url": "http://testDomain/webhook/data",
"stores": [
"1000",
"1001"
]
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"event\":\"test_event\",\n" +
" \"data\": [ {" +
" \"url\":\"http://testDomain/webhook/data\",\n" +
" \"stores\":[\n" +
" \"1000\",\n" +
" \"1001\"\n" +
" ]\n" +
" } ]" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'POST',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/webhook',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"event":"test_event",
"data": [ {
"url":"http://testDomain/webhook/data",
"stores":[
"1000",
"1001"
]
}
]
});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook"
payload = "{\n" +
" \"event\":\"test_event\",\n" +
" \"data\": [ {" +
" \"url\":\"http://testDomain/webhook/data\",\n" +
" \"stores\":[\n" +
" \"1000\",\n" +
" \"1001\"\n" +
" ]\n" +
" } ]" +
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook"
method := "POST"
payload := strings.NewReader("{\n" +
" \"event\":\"test_event\",\n" +
" \"data\": [ {" +
" \"url\":\"http://testDomain/webhook/data\",\n" +
" \"stores\":[\n" +
" \"1000\",\n" +
" \"1001\"\n" +
" ]\n" +
" } ]" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributo | Requerimiento | Descripción |
---|---|---|
event string |
requerido |
Nombre del evento que dispara el webhook. |
data array of Object |
requerido |
Contiene los atributos del webhook a configurar |
url string |
requerido |
URL a la que se comunica el webhook. |
stores array of strings |
opcional |
Lista de las tiendas donde se dispara el evento. Si no envías este atributo, se aplica a todas las tiendas el cliente autenticado. |
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
{
"event":"test_1",
"stores":[ {
"url":"https://localhost:8080/test",
"store_id": "1000",
"state": "ENABLE"
},
{
"url":"https://localhost:8080/test",
"store_id": "1001",
"state": "ENABLE"
}
],
"secret":"TEST_SECRET"
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
event string |
Nombre del evento que dispara el webhook. |
stores array of strings |
Lista de las tiendas donde se dispara el evento. |
url string |
URL a la que se comunica el webhook. |
store_id string |
Id de la tienda que dispara el evento |
state string |
Estado del webhook. Opciones disponibles: ENABLE o DISABLE |
secret string |
Secret Key para crear la firma de seguridad de cada evento webhook. |
DELETE webhook
Usa este endpoint para eliminar tiendas de un webhook.
URL del Endpoint
Usa esta URL para hacer llamadas con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/webhook/{EVENT}/remove-stores
{COUNTRY_DOMAIN}
: Este es tu dominio por país de Rappi. Mira la lista de dominios por país{EVENT}
: Este es el nombre del evento Mira la lista de eventos validos
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Parámetro | Requerimiento | Descripción |
---|---|---|
event string |
requerido |
El nombre del evento del webhook a actualizar |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Sin Mensaje
401
Credenciales inválidas
404
Lista de tiendas inválidas para el cliente autenticado
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
DELETE https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/remove-stores
Este es un ejemplo de la llamada:
{
"stores":[
"1000"
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/remove-stores");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("DELETE");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"stores\":[\n" +
" \"1000\"\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'DELETE',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/remove-stores',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"stores":[
"1000"
]
});
req.setHeader('Content-Length', postData.length);
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/remove-stores"
payload = "{\n" \
" \"stores\":[\n" \
" \"1000\"\n" \
" ]\n" \
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("DELETE", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/remove-stores"
method := "DELETE"
payload := strings.NewReader("{\n" +
" \"stores\":[\n" +
" \"1000\"\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerimiento | Descripción |
---|---|---|
stores array of strings |
opcional |
Lista de las tiendas donde se eliminará el webhook |
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
{
"stores":[
"1000"
],
"message":"Store settings removed successfully."
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
stores array of strings |
Lista de las tiendas donde se dispara el evento. |
message string |
Mensaje del resultado de la llamada. |
PUT webhook reset secret
Usa este endpoint para reiniciar el secret y crear uno nuevo para el aliado autenticado.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/webhook/{EVENT}/reset-secret
{COUNTRY_DOMAIN}
: Este es tu dominio por país de Rappi. Mira la lista de dominios por país{EVENT}
: Este es el nombre del evento Mira la lista de eventos validos
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Parámetro | Requerimiento | Descripción |
---|---|---|
event string |
requerido |
El nombre del evento del webhook a actualizar |
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Sin Mensaje
401
Credenciales inválidas
406
Evento invalido
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/reset-secret
Este es un ejemplo de la llamada:
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/reset-secret");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/reset-secret',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/reset-secret"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/reset-secret"
method := "PUT"
client := &http.Client{
}
req, err := http.NewRequest(method, url)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
{
"event": "NEW_ORDER",
"stores":[ {
"store_id": "1000",
"url": "http://localhost",
"state": "ENABLE"
}
],
"secret":"NEW_SECRET"
}
Esta tabla describe los objectos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
event string |
Nombre del evento que dispara el webhook. |
stores array of strings |
Lista de las tiendas donde se dispara el evento. |
store_id string |
Id de la tienda |
url string |
URL a la que se comunica el webhook. |
state string |
Estado del webhook. Opciones disponibles: ENABLE o DISABLE |
secret string |
Secret Key para crear la firma de seguridad de cada evento webhook. |
PUT webhook change status
Usa este endpoint para cambiar la disponibilidad de un webhook existente.
URL del Endpoint
Utiliza esta URL para hacer una llamada con este endpoint:
https://{COUNTRY_DOMAIN}/api/v2/restaurants-integrations-public-api/webhook/{EVENT}/change-status
{COUNTRY_DOMAIN}
: Este es tu dominio por país de Rappi. Mira la lista de dominios por país{EVENT}
: Este es el nombre del evento Mira la lista de eventos validos
Propiedades del Endpoint
Este recurso tiene las siguientes propiedades:
Formato de respuesta | JSON |
|
Requerimientos del body de la llamada | JSON |
|
Requerimientos de autenticación | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Códigos de Respuesta
Estos son los posibles códigos de respuesta en este endpoint:
200
Sin Mensaje
401
Credenciales inválidas
404
Lista de tiendas inválidas para el cliente autenticado
406
Evento Invalido
Ejemplo de Llamada
Este es un ejemplo de una llamada API usando este endpoint:
PUT https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-status
Este es un ejemplo de la llamada:
{
"stores": {
"enable": [
"1001"
],
"disable": [
"1000"
]
}
}
URL url = new URL("https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-status");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "{\"stores\": {\"enable\": [\"1001\"],\"disable\": [\"1000\" ] } }";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-status',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"stores":{
"enable": [
"1001"
],
"disable": [
"1000"
]
}
});
req.setHeader('Content-Length', postData.length);
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-status"
payload = "{\"stores\": {\"enable\": [\"1001\"],\"disable\": [\"1000\" ] } }"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/v2/restaurants-integrations-public-api/webhook/NEW_ORDER/change-status"
method := "PUT"
payload := strings.NewReader("{\"stores\": {\"enable\": [\"1001\"],\"disable\": [\"1000\" ] } }")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Esta tabla describe los atributos que el JSON
de tu llamada requiere:
Atributos | Requerimiento | Descripción |
---|---|---|
stores Object |
requerido |
Objeto que contiene las listas de tiendas a habilitar o deshabilitar |
enable array of strings |
opcional |
Lista de tiendas a habilitar |
disable array of strings |
opcional |
Lista de tiendas a deshabilitar |
Ejemplo de Respuesta
Este es un ejemplo de la respuesta:
{
"event":"NEW_ORDER",
"stores":[ {
"store_id": "1001",
"url": "http://localhost",
"state": "ENABLE"
},
{
"store_id": "1000",
"url": "http://localhost",
"state": "ENABLE"
}
]
}
Esta tabla describe los objetos dentro de la respuesta de ejemplo:
Objeto en la respuesta | Descripción del objeto |
---|---|
event string |
Nombre del evento que dispara el webhook. |
stores array of Stores |
Lista de las tiendas donde se dispara el evento. |
store_id string |
Id de la tienda que dispara el webhook |
url string |
URL a la que se comunica el webhook. |
state string |
Nueva disponibilidad definida en la llamada. |
Utils API v1.2.0
La version v1.2.0 de Utils API incluye todos los recursos, puntos finales y métodos que ayudan a administrar el funcionamiento de su restaurante.
Las siguientes tablas contienen todos los recursos disponibles para usar con Utils API:
Recurso API Horarios de Corredor |
Descripción del Endpoint |
---|---|
GET corridor/store/{storeId} |
Retorna la lista de los corredores de la tienda |
GET corridor/schedule/{corridorId}/store/{storeId} |
Retorna los horarios del corredor configurado en la tienda |
POST corridor/schedule/{corridorId}/store/{storeId} |
Crea los horarios del corredor en la tienda |
PUT corridor/schedule/{corridorId}/store/{storeId} |
Actualiza los horarios del corredor en la tienda |
DELETE corridor/schedule/{corridorId}/store/{storeId}/{corridorProductScheduleId} |
Elimina los horarios del corredor en la tienda |
Recurso API Horarios de Corredor por Integración |
Descripción del Endpoint |
---|---|
GET corridor/integration/{integrationId} |
Retorna de los corredores de la tienda |
GET corridor/schedule/{corridorId}/integration/{integrationId} |
Retorna los horarios del corredor configurado en la tienda |
POST corridor/schedule/{corridorId}/integration/{integrationId} |
Crea los horarios del corredor en la tienda |
PUT corridor/schedule/{corridorId}/integration/{integrationId} |
Actualiza los horarios del corredor en la tienda |
DELETE corridor/schedule/{corridorId}/integration/{integrationId}/{corridorProductScheduleId} |
Elimina los horarios del corredor en la tienda |
Recurso API Horarios de los productos |
Descripción del Endpoint |
---|---|
GET product/corridor/{corridorId}/store/{storeId} |
Retorna la lista de producto por corredor y por tienda |
GET product/schedule/{productId}/corridor/{corridorId}/store/{storeId} |
Retorna los horarios del producto configurado en la tienda |
POST product/schedule/{productId}/corridor/{corridorId}/store/{storeId} |
Crea los horarios del producto asociados al corredor y la tienda |
PUT product/schedule/{productId}/corridor/{corridorId}/store/{storeId} |
Actualiza los horarios del producto asociados al corredor y la tienda |
DELETE product/schedule/{productId}/corridor/{corridorId}/store/{storeId}/{corridorProductScheduleId} |
Elimina los horarios del producto asociados al corredor y la tienda |
Recurso API Horarios de los productos por SKU |
Descripción del Endpoint |
---|---|
GET sku/corridor/{corridorId}/integration/{integrationId} |
Retorna la lista de producto por corredor y por tienda |
GET sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId} |
Retorna los horarios del producto configurado en la tienda |
POST sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId} |
Crea los horarios del producto asociados al corredor y la tienda |
PUT sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId} |
Actualiza los horarios del producto asociados al corredor y la tienda |
DELETE sku/schedule/{sku}/corridor/{corridorId}/integration/{integrationId}/{corridorProductScheduleId} |
Elimina los horarios del producto asociados al corredor y la tienda |
Recurso API Horarios de las tiendas |
Descripción del Endpoint |
---|---|
GET store/schedule/{storeId} |
Retorna todo el horario regular de la tienda |
GET store/schedule/{storeId}/holiday |
Retorna todo el horario de dias festivos |
GET store/schedule/{storeId}/special |
Retorna todo el horario de dias especiales de la tienda |
POST store/schedule/{storeId} |
Crea una franja horaria en un día de horario regular de la tienda |
POST store/schedule/{storeId}/holiday/{holidayDayId} |
Crea una franja horaria en un día feriado |
POST store/schedule/{storeId}/special |
Crea un día especial de la tienda |
POST store/schedule/{storeId}/special/{specialDayId} |
Crea una franja horaria en un día especial de la tienda |
PUT store/schedule/{storeId}/{storeScheduleId} |
Actualiza una franja horaria |
DELETE store/schedule/{storeId}/{storeScheduleId} |
Elimina una franja horaria |
DELETE store/schedule/{storeId}/special/{specialDayId} |
Elimina un dia especial |
Utils Getting Started
Antes de comenzar a utilizar la API de utils deben autenticarse como un aliado en Rappi. Pueden referirse en el siguiente link para mas información Getting Started
Una vez obtenidas las credenciales pueden crear el token de acceso en POST token
.
Una vez generado el token de acceso, ya podemos comenzar a utilizar la API de Utils.
Utils Horarios de Corredores Por Tienda
Utilice Utils para configurar los horarios de sus tiendas.
La siguiente tabla muestra el contenido de los horarios de los corredores:
Recurso | Descripción |
---|---|
GET corridor/store/{storeId} |
Retorna la lista de los corredores de la tienda |
GET corridor/schedule/{corridorId}/store/{storeId} |
Retorna los horarios del corredor configurado en la tienda |
POST corridor/schedule/{corridorId}/store/{storeId} |
Crea los horarios del corredor en la tienda |
PUT corridor/schedule/{corridorId}/store/{storeId} |
Actualiza los horarios del corredor en la tienda |
GET corridor/store/{storeId}
Use este endpoint para obtener la lista de los corredores de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/store/{storeId}
{COUNTRY_DOMAIN}
: dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Es el identificador del a tienda en Rappi.
Ejemplo del Request
GET https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/store/999
Este es un request de ejemplo:
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/store/999");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/store/999',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/store/999"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/store/999"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
Ejemplo de la Respuesta
[
{
"id": 123,
"name": "Bebidas Calientes",
"description": "Corredor Bebidas Calientes",
"storeId": 999
},
{
"id": 321,
"name": "Bebidas Frias",
"description": "Corredor Bebidas Frias",
"storeId": 999
}
]
La tabla detalla los campos que puede devolver la respuesta:
Campos de Respuesta | Descripción |
---|---|
id integer |
Id del corredor. |
name string |
Nombre del corredor. |
description string |
Descripción del corredor . |
storeId integer |
Id de la tienda que contiene el corredor. |
GET corridor/schedule/{corridorId}/store/{storeId}
Utilice este endpoint para obtener los horarios del corredor de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Id de la tienda en Rappi.{corridorId}
: Id del corredor.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad request message error
401
Invalid credentials
Ejemplo del Request
GET https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/store/999
Ejemplo completo del request:
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/store/999");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/321/store/999',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/store/999"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/store/999"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
{
"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"
}
]
}
Esta tabla detalla los campos que contienen la respuesta:
Campos de Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
store_id integer |
Id de la tienda en Rappi. |
schedule_details array of objects |
Lista de horarios del corredor. |
schedule_details.id integer |
Id del horario del corredor |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
POST corridor/schedule/{corridorId}/store/{storeId}
Utilice este endpoint para crear los horarios del corredor de su tienda.
Endpoint URL
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Id de la tienda en Rappi.{corridorId}
: Id del corredor en Rappi.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Request body requirements | JSON |
|
Authentication requirements | Token |
Parámetros
This endpoint does not permit additional parameters.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad Request message error
401
Invalid credentials
Ejemplo del Request
Ejemplo de cómo enviar el request a la API:
POST https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999
Ejemplo del request:
{
"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"
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'POST',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/123/store/999',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"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"
}
]});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999"
payload = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999"
method := "POST"
payload := strings.NewReader(""{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
La siguiente tabla describe cuales son los campos requeridos del request:
Atributos | Requerido | Description |
---|---|---|
schedule_details array of objects |
required |
Lista de horarios del corredor. |
schedule_details.days string |
requered |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
requered |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
requered |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
Ejemplo de Respuesta
{
"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"
}
]
}
La siguiente tabla detalla los campos que contiene la respuesta:
Campos de Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
store_id integer |
Id de la tienda. |
schedule_details array of objects |
Lista de horarios del corredor. |
schedule_details.id integer |
Id del horario de un corredor. |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
PUT corridor/schedule/{corridorId}/store/{storeId}
Utilice este endpoint para actualizar los horarios del corredor de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Id de su tienda en Rappi.{corridorId}
: Id del corredor en Rappi.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Request body requirements | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad Request message error
401
Invalid credentials
Ejemplo del Request
PUT https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999
Ejemplo del request:
{
"schedule_details": [
{
"id": 2,
"days": "mon,tue,wed,thu,fri,sat,sun",
"starts_time": "10:00:00",
"ends_time": "16:00:00"
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"id\": 2,\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"10:00:00\",\n" +
" \"ends_time\": \"16:00:00\"\n" +
" }\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/123/store/999',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"schedule_details": [
{
"id": 2,
"days": "mon,tue,wed,thu,fri,sat,sun",
"starts_time": "10:00:00",
"ends_time": "16:00:00"
}
]});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999"
payload = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"id\": 2,\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"10:00:00\",\n" +
" \"ends_time\": \"16:00:00\"\n" +
" }\n" +
" ]\n" +
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999"
method := "PUT"
payload := strings.NewReader(""{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"id\": 2,\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"10:00:00\",\n" +
" \"ends_time\": \"16:00:00\"\n" +
" }\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
La siguiente tabla detalla los atributos requeridos para el Request:
Atributos | Requerido | Descripción |
---|---|---|
schedule_details array of objects |
required |
Lista de horarios del corredor. |
schedule_details.id integer |
required |
Id del horario del corredor. |
schedule_details.days string |
requered |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
requered |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
requered |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
Ejemplo de la Respuesta
{
"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"
}
]
}
La siguiente tabla detalla los campos que contiene la respuesta:
Campos de la Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
store_id integer |
Id de la tienda en Rappi. |
schedule_details array of objects |
Lista de horarios del corredor. |
schedule_details.id integer |
Id del horario del corredor. |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
DELETE corridor/schedule/{corridorId}/store/{storeId}/{corridorProductScheduleId}
Utilice este endpoint para actualizar los horarios del corredor de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}api/rest-ops-utils/corridor/schedule/{corridorId}/store/{storeId}/{corridorProductScheduleId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{corridorProductScheduleId}
: Id del horario en el corredor{storeId}
: Id de su tienda en Rappi.{corridorId}
: Id del corredor en Rappi.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad Request message error
401
Invalid credentials
Ejemplo del Request
PUT https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999/2541
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999/2541");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/123/store/999/2541',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999/2541"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/store/999/2541"
method := "PUT"
client := &http.Client {
}
req, err := http.NewRequest(method, url)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de la Respuesta
{
"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"
}
]
}
La siguiente tabla detalla los campos que contiene la respuesta:
Campos de la Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
store_id integer |
Id de la tienda en Rappi. |
schedule_details array of objects |
Lista de horarios del corredor que siguen disponibles. |
schedule_details.id integer |
Id del horario del corredor. |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
Utils Horarios de Corredores por Integración Id
Utilice Utils para configurar los horarios de sus tiendas.
La siguiente tabla muestra el contenido de los horarios de los corredores:
Recurso | Descripción |
---|---|
GET corridor/integration/{integrationId} |
Retorna la lista de los corredores de la tienda |
GET corridor/schedule/{corridorId}/integration/{integrationId} |
Retorna los horarios del corredor configurado en la tienda |
POST corridor/schedule/{corridorId}/integration/{integrationId} |
Crea los horarios del corredor en la tienda |
PUT corridor/schedule/{corridorId}/integration/{integrationId} |
Actualiza los horarios del corredor en la tienda |
GET corridor/integration/{integrationId}
Use este endpoint para obtener la lista de los corredores de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/integration/{integrationId}
{COUNTRY_DOMAIN}
: dominio por país de Rappi. Ver la lista de los dominios por paises.{integrationId}
: Id de la tienda del lado del aliado.
Ejemplo del Request
GET https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/integration/888
Este es un request de ejemplo:
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/integration/888");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/integration/888',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/integration/888"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/integration/888"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad request message error
401
Invalid Credentials
Ejemplo de la Respuesta
[
{
"id": 123,
"name": "Bebidas Calientes",
"description": "Corredor Bebidas Calientes",
"integrationId": "888"
},
{
"id": 321,
"name": "Bebidas Frias",
"description": "Corredor Bebidas Frias",
"integrationId": "888"
}
]
La tabla detalla los campos que puede devolver la respuesta:
Campos de Respuesta | Descripción |
---|---|
id integer |
Id del corredor. |
name string |
Nombre del corredor. |
description string |
Descripción del corredor . |
integrationId string |
Id de la tienda que contiene el corredor. |
GET corridor/schedule/{corridorId}/integration/{integrationId}
Utilice este endpoint para obtener los horarios del corredor de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{integrationId}
: Id de la tienda del aliado.{corridorId}
: Id del corredor.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad request message error
401
Invalid credentials
Ejemplo del Request
GET https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888
Ejemplo completo del request:
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/321/integration/888',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
{
"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"
}
]
}
Esta tabla detalla los campos que contienen la respuesta:
Campos de Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
integration_id string |
Id de la tienda del aliado |
schedule_details array of objects |
Lista de horarios del corredor. |
schedule_details.id integer |
Id del horario del corredor |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 houras HH:mm:ss |
POST corridor/schedule/{corridorId}/integration/{integrationId}
Utilice este endpoint para crear los horarios del corredor de su tienda.
Endpoint URL
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{integrationId}
: Id de la tienda del aliado.{corridorId}
: Id del corredor en Rappi.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Request body requirements | JSON |
|
Authentication requirements | Token |
Parámetros
This endpoint does not permit additional parameters.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad Request message error
401
Invalid credentials
Ejemplo del Request
Ejemplo de cómo enviar el request a la API:
POST https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888
Ejemplo del request:
{
"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"
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'POST',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/123/integration/888',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"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"
}
]});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888"
payload = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888"
method := "POST"
payload := strings.NewReader(""{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
La siguiente tabla describe cuales son los campos requeridos del request:
Atributos | Requerido | Description |
---|---|---|
schedule_details array of objects |
required |
Lista de horarios del corredor. |
schedule_details.days string |
requered |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
requered |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
requered |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 houras HH:mm:ss |
Ejemplo de Respuesta
{
"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"
}
]
}
La siguiente tabla detalla los campos que contiene la respuesta:
Campos de Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
integration_id integer |
Id de la tienda del aliado. |
schedule_details array of objects |
Lista de horarios del corredor. |
schedule_details.id integer |
Id del horario de un corredor. |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 houras HH:mm:ss |
PUT corridor/schedule/{corridorId}/integration/{integrationId}
Utilice este endpoint para actualizar los horarios del corredor de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{integrationd}
: Id de la tienda del aliado.{corridorId}
: Id del corredor en Rappi.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Request body requirements | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad Request message error
401
Invalid credentials
Ejemplo del Request
PUT https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888
Ejemplo del request:
{
"schedule_details": [
{
"id": 2,
"days": "mon,tue,wed,thu,fri,sat,sun",
"starts_time": "10:00:00",
"ends_time": "16:00:00"
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"id\": 2,\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"10:00:00\",\n" +
" \"ends_time\": \"16:00:00\"\n" +
" }\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'PUT',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/123/integration/888',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"schedule_details": [
{
"id": 2,
"days": "mon,tue,wed,thu,fri,sat,sun",
"starts_time": "10:00:00",
"ends_time": "16:00:00"
}
]});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888"
payload = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"id\": 2,\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"10:00:00\",\n" +
" \"ends_time\": \"16:00:00\"\n" +
" }\n" +
" ]\n" +
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/123/integration/888"
method := "PUT"
payload := strings.NewReader(""{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"id\": 2,\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"10:00:00\",\n" +
" \"ends_time\": \"16:00:00\"\n" +
" }\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
La siguiente tabla detalla los atributos requeridos para el Request:
Atributos | Requerido | Descripción |
---|---|---|
schedule_details array of objects |
required |
Lista de horarios del corredor. |
schedule_details.id integer |
required |
Id del horario del corredor. |
schedule_details.days string |
requered |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
requered |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
requered |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 houras HH:mm:ss |
Ejemplo de la Respuesta
{
"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"
}
]
}
La siguiente tabla detalla los campos que contiene la respuesta:
Campos de la Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
integration_id integer |
Id de la tienda del aliado. |
schedule_details array of objects |
Lista de horarios del corredor. |
schedule_details.id integer |
Id del horario del corredor. |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 houras HH:mm:ss |
DELETE corridor/schedule/{corridorId}/integration/{integrationId}/{corridorProductScheduleId}
Utilice este endpoint para eliminar los horarios del corredor de su tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/corridor/schedule/{corridorId}/integration/{integrationId}/{corridorProductScheduleId}
{COUNTRY_DOMAIN}
: Dominio por país de Rappi. Ver la lista de los dominios por paises.{corridorProductScheduleId}
: Id del horario en el corredor{integrationId}
: Id de la tienda del aliado.{corridorId}
: Id del corredor.
Propiedades del Endpoint
Este recurso utiliza las siguientes propiedades:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este recurso no utiliza parámetros.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad request message error
401
Invalid credentials
Ejemplo del Request
DELETE https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888/254
Ejemplo completo del request:
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888/254");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("DELETE");
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());
var https = require('https');
var options = {
'method': 'DELETE',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/schedule/321/integration/888/254',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888/254"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("DELETE", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/corridor/schedule/321/integration/888/254"
method := "DELETE"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
{
"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"
}
]
}
Esta tabla detalla los campos que contienen la respuesta:
Campos de Respuesta | Descripción |
---|---|
corridor_id integer |
Id del corredor. |
integration_id string |
Id de la tienda del aliado |
schedule_details array of objects |
Lista de horarios del corredor que siguen disponibles. |
schedule_details.id integer |
Id del horario del corredor |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 houras HH:mm:ss |
Utils Horarios de los Productos por Product Id
Utilice Utils para configurar los horarios de sus tiendas.
La siguiente tabla muestra el contenido de los horarios de los productos en el corredor:
Recurso | Descripción |
---|---|
GET product/corridor/{corridorId}/store/{storeId} |
Retorna la lista de los productos del corredor y tienda |
GET product/schedule/{productId}/corridor/{corridorId}/store/{storeId} |
Retorna los horarios de un producto configurados por corredor y tienda |
POST product/schedule/{productId}/corridor/{corridorId}/store/{storeId} |
Crea los horarios de un producto por corredor y tienda |
PUT product/schedule/{productId}/corridor/{corridorId}/store/{storeId} |
Actualiza los horarios de un producto por corredor y tienda |
GET product/corridor/{corridorId}/store/{storeId}
Use este endpoint para obtener la lista de los productos configurados por corredores y tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/product/corridor/{corridorId}/store/{storeId}
{COUNTRY_DOMAIN}
: dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Es el identificador del a tienda en Rappi.{corridorId}
: Es el identificador del corredor en Rappi.
Ejemplo del Request
Ejemplo de cómo llamar a la API usando este Endpoint:
GET https://microservices.dev.rappi.com/api/rest-ops-utils/product/corridor/123/store/999
Ejemplo del Request:
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/product/corridor/123/store/999");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/corridor/store/999',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/product/corridor/123/store/999"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/product/corridor/123/store/999"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Propiedades del Endpoint
Las propiedades del Endpoint son las siguientes:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad request message error
401
Invalid Credentials
Ejemplo de la Respuesta
Ejemplo de la respuesta:
[
{
"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
}
]
La tabla detalla los campos que puede devolver la respuesta:
Campos de Respuesta | Descripción |
---|---|
product_id integer |
Identificador del producto. |
name string |
Nombre del producto. |
description string |
Descripción del producto. |
corridor_id integer |
Identificador del corredor. |
store_id integer |
Identificador de la tienda en Rappi. |
GET product/schedule/{productId}/corridor/{corridorId}/store/{storeId}
Use este endpoint para obtener los horarios del producto configurado por corredores y tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}/api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}
{COUNTRY_DOMAIN}
: dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Es el identificador del a tienda en Rappi.{corridorId}
: Es el identificador del corredor en Rappi.{productId}
: Es el identificador del producto.
Propiedades del Endpoint
Las propiedades del Endpoint son las siguientes:
Response formats | JSON |
|
Authentication requirements | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad request message error
401
Invalid credentials
Ejemplo del Request
Ejemplo de cómo llamar a la API usando este Endpoint:
GET https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}
Ejemplo del Request:
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999");
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());
var https = require('https');
var options = {
'method': 'GET',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/product/schedule/789/corridor/123/store/999',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999"
payload = {}
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de la Respuesta
Ejemplo de la respuesta:
{
"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"
}
]
}
La tabla detalla los campos que puede devolver la respuesta:
Campos de Respuesta | Descripción |
---|---|
product_id integer |
Identificador del producto en Rappi. |
corridor_id integer |
Identificador del corredor en Rappi. |
store_id integer |
Identificador de la tienda en Rappi. |
schedule_details array of objects |
Lista del horarios que el producto está disponible. |
schedule_details.id integer |
Identificador del horario del producto. |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
POST product/schedule/{productId}/corridor/{corridorId}/store/{storeId}
Use este endpoint para crear los horarios del producto configurados por corredores y tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}
{COUNTRY_DOMAIN}
: dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Es el identificador del a tienda en Rappi.{corridorId}
: Es el identificador del corredor en Rappi.{productId}
: Es el identificador del product en Rappi.
Propiedades del Endpoint
Las propiedades del Endpoint son las siguientes:
Response formats | JSON |
|
Request body requirements | JSON |
|
Authentication requirements | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad Request message error
401
Invalid credentials
Ejemplo del Request
Ejemplo de cómo llamar a la API usando este Endpoint:
POST https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999
Ejemplo del Request:
{
"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"
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
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());
var https = require('https');
var options = {
'method': 'POST',
'hostname': 'microservices.dev.rappi.com',
'path': '/api/rest-ops-utils/product/schedule/789/corridor/123/store/999',
'headers': {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
},
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"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"
}
]});
req.write(postData);
req.end();
import requests
url = "https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999"
payload = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}"
headers = {
'Content-Type': 'application/json',
'x-authorization': 'bearer YOUR_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text.encode('utf8'))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999"
method := "POST"
payload := strings.NewReader(""{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"days\": \"mon,tue,wed,thu,fri,sat,sun\",\n" +
" \"starts_time\": \"08:00:00\",\n" +
" \"ends_time\": \"20:00:00\"\n" +
" },\n" +
" {\n" +
" \"days\": \"hol\",\n" +
" \"starts_time\": \"13:00:00\",\n" +
" \"ends_time\": \"22:00:00\"\n" +
" }\n" +
" ]\n" +
"}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-authorization", "bearer YOUR_TOKEN")
res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
La siguiente tabla detalla los atributos requeridos para el Request:
Atributos | Requerido | Descripción |
---|---|---|
schedule_details array of objects |
required |
Lista de horarios del corredor. |
schedule_details.days string |
requered |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
requered |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
requered |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
Ejemplo de la Respuesta
Ejemplo de la respuesta:
{
"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"
}
]
}
La siguiente tabla detalla los campos que contiene la respuesta:
Campos de la Respuesta | Descripción |
---|---|
product_id integer |
Id del producto en Rappi. |
corridor_id integer |
Id del corredor en Rappi. |
store_id integer |
Id de la tienda en Rappi. |
schedule_details array of objects |
Lista de horarios del corredor. |
schedule_details.id integer |
Id del horario del corredor. |
schedule_details.days string |
Días del horario. Días de la semana: "mon,tue,wed,thu,fri,sat,sun", Vacaciones: "hol". |
schedule_details.starts_time string |
Tiempo desde que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
schedule_details.ends_time string |
Tiempo hasta que el corredor va a estar disponible para el usuario. Formato en 24 horas HH:mm:ss |
PUT product/schedule/{productId}/corridor/{corridorId}/store/{storeId}
Use este endpoint para actualizar los horarios del producto configurados por corredores y tienda.
Endpoint URL
Utilice esta URL para llamar al endpoint:
https://{COUNTRY_DOMAIN}api/rest-ops-utils/product/schedule/{productId}/corridor/{corridorId}/store/{storeId}
{COUNTRY_DOMAIN}
: dominio por país de Rappi. Ver la lista de los dominios por paises.{storeId}
: Es el identificador del a tienda en Rappi.{corridorId}
: Es el identificador del corredor en Rappi.
Propiedades del Endpoint
Las propiedades del Endpoint son las siguientes:
Response formats | JSON |
|
Request body requirements | JSON |
|
Authentication requirements | Token |
Parámetros
Este endpoint no permite parámetros adicionales.
Status Codes
Hay diversas respuestas para este endpoint:
200
No message
400
Bad Request message error
401
Invalid credentials
Ejemplo del Request
Ejemplo de cómo llamar a la API usando este Endpoint:
PUT https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999
Ejemplo del Request:
{
"schedule_details": [
{
"id": 5,
"days": "mon,tue,wed,thu,fri,sat,sun",
"starts_time": "10:00:00",
"ends_time": "16:00:00"
}
]
}
URL url = new URL("https://microservices.dev.rappi.com/api/rest-ops-utils/product/schedule/789/corridor/123/store/999");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
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.setDoOutput(true);
String jsonInputString = "{\n" +
" \"schedule_details\": [\n" +
" {\n" +
" \"id\": 5,\n" +