Ciclo de vida do pedido
Os 9 estados canônicos do pedido, quem seta cada um, transições permitidas e o erro INVALID_TRANSITION.
O pedido percorre uma máquina de estados validada no servidor. Via API v1 o
parceiro seta apenas confirmed e cancelled; o restante do fluxo (preparo,
separação, entrega) é conduzido pelo dashboard e PWAs operacionais da OnmIA — e
você o recebe via webhook order.status_changed ou por polling em
GET /orders/:id.
Estados canônicos
| Status | Significado | Quem normalmente seta |
|---|---|---|
pending | Criado, aguardando confirmação. | OnmIA (canais próprios). |
confirmed | Confirmado. | API v1 (criação e PATCH), dashboard. |
in_kitchen | Em preparo (vertical food). | Dashboard/operação OnmIA. |
ready | Pronto para saída (vertical food). | Dashboard/operação OnmIA. |
picking | Em separação (varejo/grocery). | Dashboard/PWA de separação. |
packed | Separado/expedição (varejo/grocery). | Dashboard/PWA de separação. |
out_for_delivery | Saiu para entrega. | Dashboard/PWA do entregador. |
delivered | Entregue (terminal). | Dashboard/PWA do entregador. |
cancelled | Cancelado (terminal). | API v1 (PATCH), dashboard. |
Transições permitidas
O fork em confirmed depende do vertical da loja (food vs. varejo/grocery):
pending -> confirmed | cancelled
confirmed -> picking | in_kitchen | cancelled
in_kitchen -> ready | cancelled (caminho food)
ready -> out_for_delivery | cancelled (caminho food)
picking -> packed | cancelled (caminho varejo/grocery)
packed -> out_for_delivery | cancelled (caminho varejo/grocery)
out_for_delivery -> delivered | cancelled
delivered -> (terminal)
cancelled -> (terminal)O que isso significa para o parceiro
- Via API você seta apenas
confirmedecancelled. Transição inválida (ex.: cancelar pedido já entregue) retorna409 INVALID_TRANSITION— não é possível pular estados. - Prepare seu receptor para todos os 9 estados da tabela: mudanças feitas
pelos canais OnmIA chegam por
order.status_changedou por polling. deliveredecancelledsão terminais — nenhuma transição sai deles.
Cancelamento pós-entrega
Não há transição saindo de delivered. Cancelamento de um pedido já entregue
exige tratativa manual com a OnmIA — não é feito pela API.