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
1
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.2
Confirme imediatamente
Retorne
200 OK antes de qualquer processamento. O Fire reenviará se não receber resposta a tempo.3
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.4
Substitua o cardápio completo
Aplique
data.menu como substituição total no seu sistema downstream. Não é um diff — sobrescreva o estado anterior por completo.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:
Para produtos
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.
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.

