Pular para o conteúdo

Orders

Como Software Service, seu sistema:

  1. Consome eventos (polling ou webhook configurado pela Prefiro)
  2. Consulta o pedido completo via GET (fonte de verdade do status)
  3. Executa transições de lifecycle via POST quando aplicável

A Prefiro não expõe POST /orders para entrada de pedido — pedidos nascem na plataforma Prefiro.

Eventos

MecanismoEndpoint / formato
PollingGET /events:polling
ACKPOST /events/acknowledgment
Webhook (opcional)POST na URL que você configurar; headers X-App-Id, X-App-MerchantId, X-App-Signature

Reconcilie sempre o estado via GET /orders/{orderId} após receber um evento.

Retirada e consumo local

Pedidos de retirada e consumo no local usam fulfillment.orderType TAKEOUT. A conclusão do fluxo é feita com POST /orders/{orderId}/delivered — não há evento PICKED_UP nem operação pickedUp.

Consultar pedido

GET https://opendelivery.prefirodelivery.com/{HASH}/od/v2/orders/{orderId}

O payload inclui fulfillment.orderType (DELIVERY ou TAKEOUT), blocos timing, context, status, merchant, customer, items, etc.

Lifecycle (receiver)

Paths relativos à base /od/v2:

OperaçãoMétodo e path
ConfirmarPOST /orders/{orderId}/confirm
Em preparoPOST /orders/{orderId}/preparing
Pronto para retiradaPOST /orders/{orderId}/ready-for-pickup
Saiu para entregaPOST /orders/{orderId}/dispatch (somente DELIVERY)
Entregue / retiradoPOST /orders/{orderId}/delivered
Solicitar cancelamentoPOST /orders/{orderId}/requestCancellation (body: reason)
Validar códigoPOST /orders/{orderId}/validateCode

Respostas HTTP

CódigoSignificado
202Transição aceita ou já aplicada (idempotente)
409Transição inválida (INVALID_ORDER_STATE_TRANSITION)
403App não autorizado para o estabelecimento do pedido
404Pedido não encontrado

Cancelamento

Iniciado pelo seu sistema (SS → OA): fluxo handshake via requestCancellation → eventos CANCELLATION_REQUEST_* → status CANCELLED.

Iniciado pela Prefiro: evento/status CANCELLED sem handshake HTTP adicional.

Especificação: Orders — Open Delivery V2.