4 August 2026 — New assignedAt field on menu and product events
menu.updated v2 and product.updated now carry assignedAt on every category and product.
categories[n].assignedAtandproducts[n].additionalInfo.assignedAt— the date the entity joined the menu, ISO 8601 UTC, no milliseconds. It's membership data, not edit data: untouched by price, name, image, or order edits; gets a new value when an item is removed from the menu and re-added. Full edge cases inmenu.updated→ Menu assignment date. Not carried byproduct.price_updatedorproduct.availability_changed— they only ship their delta.menu.updated/product.updatedusetaxInfo(nottaxesInfo),type: PRODUCTOfor standard items, andmodifierGroups[n].type: RADIOfor single-select groups (CHECKBOXfor multiple).storeIdis the store's internal UUID (stores.id), not thestore_number— same convention acrossmenu.updated,product.updated,product.price_updated, andproduct.availability_changed.product.price_updated'spriceInfodoesn't share a shape with the catalogpriceInfoinmenu.updated/product.updated— it's the sale price just saved with its discount, not catalog pricing.
Note
channelReferenceNamemeans the fulfillment (delivery,pickup) inmenu.updated'slist.stores[n].channels[n], but the sales channel (iFood,Rappi) in the same field name onproduct.updated,product.price_updated, andproduct.availability_changed. Same key, two different things depending on the event.
Updated in EN / ES / PT.
Español
4 de agosto de 2026 — Nuevo campo assignedAt en eventos de menú y producto
menu.updated v2 y product.updated ahora llevan assignedAt en cada categoría y producto.
categories[n].assignedAtyproducts[n].additionalInfo.assignedAt— fecha en que la entidad entró al menú, ISO 8601 UTC, sin milisegundos. Es un dato de membresía, no de edición: no cambia con ediciones de precio, nombre, imagen u orden; sí cambia (fecha nueva) cuando el ítem se quita del menú y se vuelve a agregar. Casos borde completos enmenu.updated→ Fecha de incorporación al menú. No viaja enproduct.price_updatedni enproduct.availability_changed— esos eventos solo transmiten su delta.menu.updated/product.updatedusantaxInfo(notaxesInfo),type: PRODUCTOpara ítems estándar ymodifierGroups[n].type: RADIOpara grupos de selección única (CHECKBOXpara múltiple).storeIdes el UUID interno de la tienda (stores.id), no elstore_number— misma convención enmenu.updated,product.updated,product.price_updatedyproduct.availability_changed.- El
priceInfodeproduct.price_updatedno comparte forma con elpriceInfode catálogo demenu.updated/product.updated— es el precio de venta recién guardado con su descuento, no precios de catálogo.
Note
channelReferenceNamesignifica el fulfillment (delivery,pickup) enlist.stores[n].channels[n]demenu.updated, pero el canal de ventas (iFood,Rappi) en el mismo nombre de campo deproduct.updated,product.price_updatedyproduct.availability_changed. Misma clave, dos cosas distintas según el evento.
Actualizado en EN / ES / PT.