Guía rápida

De una clave a una entrega y a un registro de una colección en cinco minutos, con curl.

Necesita una sola cosa: una clave de partner. Ya sabe qué restaurantes se le concedieron, y la API se lo dice.

1. Obtenga una clave

Escriba a contact@backresto.com indicando su empresa, los restaurantes que necesita y los permisos que quiere. Lo confirmamos con el restaurante y después enviamos la clave al contacto técnico que haya indicado. Obtener una clave es la lista de comprobación completa: enviarla completa es lo que hace que la ida y vuelta sea un correo en lugar de cuatro.

Una clave tiene este aspecto:

brp_hV8kZ2pQ.tW3nR7yL9cF1sB4xJ6mA8dK0gN5vE2uP7hQ3rT1zY6i

La mitad anterior al punto es un prefijo público: identifica la clave en la lista de esa página y en las conversaciones con soporte, y se puede anotar sin riesgo. La mitad posterior es el secreto, y no aparece en ningún sitio salvo en esa única pantalla.

2. Guárdela

Ponga el valor completo en su gestor de secretos, como una sola cadena, y borre el correo en el que llegó. Nunca un repositorio, nunca una URL, nunca una línea de log. Solo conservamos un resumen criptográfico del secreto, así que una clave perdida significa una revocación y una nueva: escríbanos y ambas cosas ocurren el mismo día.

export BACKRESTO_PARTNER_API_KEY='brp_…'

3. Encuentre su restaurante

Pregunte a la clave qué restaurantes alcanza, y con qué alcances:

curl "https://api.backresto.com/v1/restaurants" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"
{
  "data": [
    {
      "restaurantId": "restaurant-1",
      "scopes": ["deliveries:read", "delivery-images:read"]
    }
  ]
}

La mayoría de las claves alcanzan un solo restaurante. Guarde su identificador para las llamadas siguientes:

export RESTAURANT_ID='restaurant-1'

4. Liste una semana de entregas

El endpoint de listado toma un rango de tiempo explícito, en milisegundos desde la época Unix, como cadenas. Esa es la convención en toda la API: nunca segundos, nunca ISO 8601.

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
  --get \
  --data-urlencode "from=1787846400000" \
  --data-urlencode "to=1788451200000" \
  --data-urlencode "limit=25"
{
  "data": [
    {
      "id": "8f2c1b04-0d5a-4b7e-9f31-6ad2c0e77a51",
      "restaurantId": "restaurant-1",
      "occurredAt": "1787932800000",
      "isCompliant": false,
      "supplier": { "id": "supplier-7", "name": "Metro Nord" },
      "temperatureRecords": [
        { "product": "Poulet fermier", "lotNumber": "L2291", "unit": "C", "value": 6.4 }
      ],
      "nonComplianceReasons": ["Température trop élevée"],
      "correctiveActions": ["Produit refusé"],
      "commentary": null,
      "imageCount": 2
    }
  ],
  "nextCursor": null
}

5. Obtenga una entrega y sus fotografías

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries/$DELIVERY_ID" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/deliveries/$DELIVERY_ID/images" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

El endpoint de fotografías necesita el permiso delivery-images:read además de deliveries:read. Si su clave solo tiene el primero, la entrega responde y las fotografías responden 403: es la concesión haciendo su trabajo, y la solución es que el cliente solicite una clave con ambos.

6. Lea una de las otras colecciones

Todo lo que no es una entrega —temperaturas, enfriamiento, limpieza, etiquetas— es una colección. Pregunte a la clave cuáles abre:

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"

Un data vacío significa que la clave todavía no tiene ninguna concesión de colección, que es el estado normal de una clave emitida solo para entregas: pida las que necesite. Si no, recorra una:

curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections/temperature-records/records" \
  -H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
  --get --data-urlencode "limit=100"
{
  "data": [
    {
      "id": "3a71f0c8-9d24-4f11-bb0e-77c2e5a41d93",
      "restaurantId": "restaurant-1",
      "collection": "temperature-records",
      "deleted": false,
      "capturedAt": "1788961200000",
      "receivedAt": "1788961318000",
      "sequence": "4192",
      "data": {
        "timestamp": "1788961200000",
        "value": 3.2,
        "unit": "CELSIUS",
        "shift": "MORNING",
        "equipmentId": "equipment-12"
      }
    }
  ],
  "nextCursor": null
}

Aquí no hay rango de tiempo: usted recorre la colección y guarda el id para conciliar en el siguiente recorrido.

7. Gestione los dos fallos con los que realmente se topará

404 — el restaurante no está en su clave, o la entrega no existe. Ambos casos son deliberadamente indistinguibles: la API no le confirma que un restaurante existe a quien llama sin poder verlo.

403 — el restaurante sí está en su clave, pero el permiso que este endpoint necesita no lo está.

Todo error es un documento de problema, nunca una página HTML, y lleva un requestId que conviene citar si nos escribe.

Dónde seguir

  • Obtener una clave — la lista de comprobación de la solicitud, y cómo cambiar una clave más adelante.
  • Autenticación — permisos, rotación, qué puede y qué no puede hacer una clave.
  • Paginación — el cursor, y cómo recorrer un rango largo.
  • Entregas — cada campo, y qué significa sobre el terreno.
  • Colecciones y registros — los otros veinticuatro tipos de registro, y el sobre que comparten.
  • MCP — los mismos datos dentro de un cliente de IA, en unos tres minutos.

Última actualización: 2026-09-19.