menu.updated com o catálogo completo pronto para encaminhar downstream.
O payload é autocontido. Não é necessário chamar endpoints adicionais para obter os dados do cardápio — tudo já vem incluído.
Processamento
Verifique a assinatura
Extraia o header
X-Fire-Signature e valide-o contra o body bruto da requisição usando o signing secret da sua integração. O secret é gerado ao registrar o endpoint no dashboard do Fire em Integrações de agregadores. Veja Autenticação para o processo de verificação completo.Confirme imediatamente
Retorne
200 OK antes de qualquer processamento. O Fire reenviará se não receber resposta a tempo.Identifique o cardápio
Use
data.menu.list.storeId e data.menu.list.channelId para determinar a qual loja e canal este cardápio pertence.Payload
menu.updated para o esquema completo com todos os campos e tipos.
Estrutura do cardápio
data.menu.list
Identifica a qual loja e canal o cardápio pertence. Use storeId e channelId como chave para fazer upsert no seu sistema downstream.
O campo schedules em list define as janelas de tempo em que o cardápio está ativo. Sempre presente; null se nenhum horário estiver definido.
data.menu.categories
Lista de categorias visíveis. Cada categoria inclui productListing — um array com os productId de seus produtos e suas posições de exibição.
As categorias também podem ter schedules próprios que restringem sua visibilidade a determinados horários, independentemente do horário do cardápio.
data.menu.products
Lista plana de todos os itens do cardápio — tanto produtos principais quanto opções usadas em grupos de modificadores. O campo type indica o papel de cada item:
| Tipo | Descrição |
|---|---|
PRODUCT | Item principal vendável |
MODIFIER | Opção de modificador (ex.: tamanho, ingrediente extra) |
COMPLEMENT | Complemento incluído na seleção |
COMBO | Produto cujo preço depende das seleções do cliente |
COMBO, priceInfo.price é sempre 0. Use priceInfo.referencePrice como preço de cabeçalho. Os grupos de modificadores de um combo podem incluir overrides de preço por opção.
Veja o guia Estrutura de produtos para o tratamento completo de COMBOs e overrides de modificadores.
data.menu.modifierGroups
Define os grupos de opções e suas regras de seleção. Cada grupo referencia suas opções via productId, que deve existir em products.
| Campo | Descrição |
|---|---|
minOptions | Mínimo de seleções obrigatórias (0 = grupo opcional) |
maxOptions | Máximo de seleções permitidas |
type | RADIO (uma opção) ou CHECKBOX (múltiplas) |
groupId
Eventos emitidos na mesma publicação compartilham o mesmogroupId. Você pode usá-lo para correlacionar eventos relacionados, mas não é necessário para processá-los — cada um é independente e autocontido.
Remover um cardápio
O Fire não emite um evento de exclusão separado. Para sinalizar a remoção de um cardápio, o Fire envia ummenu.updated com categories, products e modifierGroups como arrays vazios. Trate um cardápio vazio como sinal para desativá-lo ou removê-lo no seu sistema downstream.

