- v1 · atual
- v0 · descontinuado
Contrato atual (v1).
order.cancelled carrega o mesmo snapshot v1 que order.completed — descontos de pedido/produto, impostos granulares, enum itemType, deliveryConfirmationCode — mais o bloco de auditoria cancellation.order.cancelled dispara quando um pedido previamente injetado é cancelado — pela UI do backoffice do Fire, um adaptador externo ou uma chamada à API de cancelamento. Não retrai um order.completed anterior do mesmo pedido; ambos os eventos são emitidos independentes.
Condição de disparo
O Fire emiteorder.cancelled uma vez quando o status de um pedido transiciona para CANCELLED, independente do estado de pagamento anterior. O cancelamento é registrado com contexto completo de auditoria (quem, quando, por quê, fonte).
| Cobertura | Global (todos os países, todos os canais) |
| Chave de idempotência | event.id |
| Dispara mais de uma vez | Não, salvo em retentativas |
| Ordem | Não garantida contra order.completed para o mesmo pedido — ordene por timestamps se precisar |
| Retentativas | Até 5 tentativas com backoff exponencial (quando retryOnFailure está habilitado) |
| Contexto fiscal brasileiro | Inclui dados fiscais originais em cancellation.metadata.fiscal se o pedido tinha sido fiscalmente autorizado |
O que tem em trigger.data
Mesmo snapshot V4 que order.completed — todos os campos documentados lá estão presentes aqui, com três diferenças:
statusé"CANCELLED"(não"COMPLETED").paymentStatuspermanece igual a quando o pedido foi completado (tipicamente"SUCCEEDED"se o pedido tinha sido pago antes do cancelamento).- Um novo bloco top-level
cancellationcarrega a metadata de auditoria.
Exemplo — payload real de produção (BR, sanitizado)
Referência de data.cancellation
Bloco de auditoria que descreve como, quando e por quem o pedido foi cancelado.
Lifecycle relativo a outros eventos
Para um pedido brasileiro fiscal-enabled que é cancelado, espere esta sequência:order.cancelledé emitido imediatamente quando o cancelamento acontece, antes de contatar qualquer autoridade fiscal externa.order.reversedé emitido depois — uma vez que a SEFAZ confirma via seu provedor fiscal. Pode chegar segundos ou minutos apósorder.cancelled, dependendo do tempo de resposta da SEFAZ.- Para pedidos não brasileiros ou lojas sem emissão fiscal, apenas
order.cancelleddispara.
Variações por país
order.cancelled é global — dispara para todos os países e todos os canais quando um pedido é cancelado (Argentina, Brasil, Chile, Colômbia, Equador, Venezuela e qualquer outro país com Integration Flows ativos). O bloco de auditoria de cancelamento (cancellation.{cancellationId, cancelledAt, cancelledBy, cancellationReason, cancellationSource}) é idêntico em todos os países.
O único campo específico por país é cancellation.metadata.fiscal, que é populado apenas para lojas brasileiras que tinham um documento fiscal previamente autorizado (ou seja, um order.invoiced foi emitido para este pedido antes). Para todos os demais países — e para pedidos BR cancelados antes da autorização fiscal — cancellation.metadata.fiscal é null e nenhum evento order.reversed seguirá.
Para lojas não-BR (Argentina, Chile, Colômbia, Equador, Venezuela, outras), o bloco cancellation fica assim:
Cancelamento não-BR
data.store variam por país — veja order.completed → Variações por país para country.code, currencyCode e storeFiscalConfig.govIdType (CNPJ / CUIT / RUT / NIT / RUC / RIF) por país.
Handler de exemplo
Erros comuns
status === "CANCELLED", nãopaymentStatus. Pedidos pagos cancelados mantêmpaymentStatus === "SUCCEEDED"; o cancelamento vive no campostatusmais o blococancellation.order.cancelled≠ refund. O Fire reporta o cancelamento; o refund (se houver) é iniciado pelo canal/processador e não está neste payload.- Não assuma que
order.completedchegou primeiro. Entrega fora de ordem é possível — seu handler deveria tolerar receberorder.cancelledpara umorderIdque ainda não conhece (ex.: log + cria um placeholder; reconcilia quandoorder.completedchegar). cancellation.metadata.fiscalé o doc original, não o resultado do cancelamento. Para a confirmação SEFAZ, escuteorder.reversed.
Eventos relacionados
order.completed
O evento que você verá para o mesmo pedido antes do cancelamento.
order.reversed
Apenas Brasil — dispara quando a SEFAZ confirma o cancelamento.

