menu.updated con el catálogo completo listo para reenviar downstream.
El payload es autocontenido. No necesitas consultar endpoints adicionales para obtener los datos del menú — todo viene incluido.
Procesamiento
Verifica la firma
Extrae el header
X-Fire-Signature y valídalo contra el body crudo usando el signing secret de tu integración. El secret se genera al registrar el endpoint en el dashboard de Fire bajo Integraciones de agregadores. Consulta Autenticación para el proceso de verificación completo.Confirma de inmediato
Devuelve
200 OK antes de hacer cualquier procesamiento. Fire reintentará si no recibe respuesta a tiempo.Identifica el menú
Usa
data.menu.list.storeId y data.menu.list.channelId para determinar a qué tienda y canal pertenece el menú.Payload
menu.updated para el esquema completo con todos los campos y tipos.
Estructura del menú
data.menu.list
Identifica a qué tienda y canal pertenece el menú. Los campos clave son storeId y channelId, que debes usar como clave para hacer upsert en tu sistema downstream.
El campo schedules en list define las ventanas de tiempo en que el menú está activo. Siempre está presente; es null si no hay horario definido.
data.menu.categories
Lista de categorías visibles. Cada categoría incluye productListing — un arreglo con los productId de sus productos y sus posiciones de visualización.
Las categorías también pueden tener schedules propios que restringen su visibilidad a ciertas horas del día, independientemente del horario del menú.
data.menu.products
Lista plana de todos los ítems del menú — tanto productos principales como las opciones usadas en grupos de modificadores. El campo type indica el rol de cada ítem:
| Tipo | Descripción |
|---|---|
PRODUCT | Ítem principal vendible |
MODIFIER | Opción de modificador (p. ej. tamaño, ingrediente extra) |
COMPLEMENT | Complemento incluido en la selección |
COMBO | Producto cuyo precio depende de las selecciones del cliente |
COMBO, priceInfo.price es siempre 0. Usa priceInfo.referencePrice como precio de encabezado. Los grupos de modificadores del combo pueden incluir overrides de precio por opción.
Consulta la guía Estructura de productos para el manejo completo de COMBOs y overrides de modificadores.
data.menu.modifierGroups
Define los grupos de opciones y sus reglas de selección. Cada grupo referencia sus opciones mediante productId, que debe existir en products.
| Campo | Descripción |
|---|---|
minOptions | Mínimo de selecciones requeridas (0 = grupo opcional) |
maxOptions | Máximo de selecciones permitidas |
type | RADIO (una opción) o CHECKBOX (múltiples) |
groupId
Los eventos emitidos en la misma publicación comparten el mismogroupId. Puedes usarlo para correlacionar eventos relacionados, pero no es necesario para procesarlos — cada uno es independiente y autocontenido.
Eliminar un menú
Fire no emite un evento de borrado separado. Para señalar la eliminación de un menú, Fire envía unmenu.updated con categories, products y modifierGroups como arrays vacíos. Trata un menú vacío como señal para desactivarlo o eliminarlo en tu sistema downstream.

