Evento novo (junho 2026). Nasce diretamente na v1 — não existe forma v0.
order.status_updated dispara quando o KDS (Kitchen Display System) reporta uma mudança de status na cozinha: começou a ser preparado (preparing), está pronto (ready), foi despachado (dispatched) ou foi cancelado na cozinha (cancelled).
Para os três status de avanço, o Fire aplica um gate anti-regressão (um status nunca retrocede: dispatched não volta para ready) e só emite este evento quando o status genuinamente avança. cancelled é a exceção — ignora o gate e pode chegar de qualquer estado da cozinha. Por isso você recebe um evento por mudança real — sem duplicados, sem retrocessos.
Condição de disparo
O Fire emiteorder.status_updated quando qualquer uma das seguintes condições for verdadeira:
- O KDS reportou um status de avanço (
preparing,readyoudispatched) que passa pelo gate anti-regressão (preparing→ready→dispatched) - O KDS reportou
cancelledpara o pedido (sem restrição anti-regressão — pode chegar de qualquer estado da cozinha)
O que vem em data
É um payload leve (thin) — diferente de order.completed, não carrega o pedido completo. Carrega o necessário para agir sobre uma mudança de status: a identidade do pedido, refs mínimas de canal / loja, o tipo de fulfillment, e o bloco kitchen (o avanço + o percurso). Omite de propósito orderLines, payments, taxes, client, device e o endereço de entrega — você já recebeu isso em order.completed; faça o match por orderId / externalOrderId e aplique a mudança.
Identidade e contexto
string
UUID do pedido no Fire — faça o match com o
order.completed que você recebeu.string
Código legível do pedido.
string
O id do pedido no canal/agregador — use-o para fazer o match do lado deles.
string
Status de negócio do pedido (
COMPLETED / CANCELLED). Contexto — o percurso da cozinha é paralelo.object
code (canônico, sempre presente — ex. 99) e uid. O nome legível do canal vem do seu catálogo de channels, não deste evento.object
Ref mínima da loja:
code, name, mais account { uid, name } e vendor { uid, name }.object
service.code — DELIVERY ou PICKUP. Dá sentido ao status (um ready para delivery vs pickup).O bloco kitchen
object
O avanço que disparou o evento + o percurso completo. Distinto do bloco
kds (dados estáticos do pedido capturados na injeção).Casos de uso típicos
- Acompanhamento do pedido para o cliente — “seu pedido está pronto” ou “seu pedido foi cancelado” no app ou tela de retirada
- Notificar o agregador — avisar iFood/Rappi/99food que o pedido está pronto para o entregador ou que foi cancelado na cozinha
- Métricas de cozinha — tempos preparing→ready por loja/estação a partir de
history - Fluxo de cancelamento — acionar limpeza downstream (liberar entregador, reembolso, alerta de operações) quando
kitchen.status = "cancelled"
O que NÃO faz
- Não muda o status do pedido — exceto no cancelamento. Para os status de avanço (
preparing,ready,dispatched),data.statuscontinua"COMPLETED". Quandokitchen.status = "cancelled",data.statusserá"CANCELLED". - Nunca retrocede para status de avanço. Se o KDS reportar
readydepois dedispatched, o Fire descarta (gate anti-regressão) e não emite nada.cancelledestá isento desta regra. - Não substitui
order.completed. Assine os dois:order.completedpara o fato de negócio,order.status_updatedpara o progresso físico.

