MeuPedido/developer
Pedidos

Catálogo de eventos

Os seis eventos do padrão e as extensões MeuPedido, quando cada um dispara, e o que vem em metadata e delivery.

Um evento é o aviso de que algo aconteceu com um pedido. Ele chega pelo polling ou por webhook, sempre no mesmo envelope, e nunca traz o pedido: o conteúdo está em orderURL.

O envelope

{
  "eventId": "e1b9c0d2-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
  "eventType": "CANCELLED",
  "orderId": "3f8a1c2d-5b6e-4f7a-9c8d-1e2f3a4b5c6d",
  "orderURL": "https://api.meupedido.io/open-delivery/v1/orders/3f8a1c2d-5b6e-4f7a-9c8d-1e2f3a4b5c6d",
  "createdAt": "2026-09-19T14:03:40Z",
  "metadata": {
    "reason": "Cliente desistiu do pedido.",
    "code": "CONSUMER_CANCELLATION_REQUESTED"
  }
}
CampoTipoPresençaDescrição
eventIdGUIDsempreIdentificador único do evento. É o que você confirma e a sua chave de deduplicação.
eventTypestringsempreUm dos tipos da tabela abaixo.
orderIdGUIDsempreO pedido a que o evento se refere.
orderURLstringsempreURL absoluta de GET /v1/orders/{orderId}.
createdAtdatasempreInstante em que o evento foi gerado, ISO 8601 em UTC com Z.
sourceAppIdstringquando existeIdentificador da aplicação de origem, quando o pedido veio por um canal integrado.
metadataobjetopor tipoCANCELLED traz reason e code. CONFIRMED traz um objeto vazio {}. Os demais não trazem o campo.
deliveryobjetoCOURIER_*Dados da rota e do entregador. Veja O bloco delivery.

Campos opcionais são omitidos quando não têm valor, e não enviados como null. Desserialize com tolerância a campos ausentes e a campos novos.

Tipos de evento

EventoQuando disparaOrigemExtras
CREATEDO pedido entrou em PENDING: foi criado, ou o PIX foi confirmado.Open Delivery
CONFIRMEDA loja aceitou (ACCEPTED).Open Deliverymetadata: {}
PREPARINGA cozinha começou (PREPARING).Extensão MeuPedido
READY_FOR_PICKUPO pedido está pronto (READY). Em TAKEOUT e INDOOR, também quando entra em DELIVERY.Open Delivery
DISPATCHEDSaiu para entrega (DELIVERY) em pedido do tipo DELIVERY.Open Delivery
CONCLUDEDEntregue ou retirado (DONE).Open Delivery
CANCELLEDO pedido foi cancelado, por qualquer caminho: API, painel ou cliente.Open Deliverymetadata.reason, metadata.code
MODIFIEDO conteúdo do pedido foi editado (itens, valores, endereço). Busque o pedido de novo em orderURL.Extensão MeuPedido
COURIER_ASSIGNEDUm entregador foi atribuído ao pedido (rota criada).Extensão MeuPedidodelivery
COURIER_ROUTE_STARTEDO entregador iniciou a rota.Extensão MeuPedidodelivery
COURIER_PICKED_UPO entregador retirou o pedido na loja.Extensão MeuPedidodelivery
COURIER_ARRIVEDO entregador chegou ao endereço do cliente.Extensão MeuPedidodelivery
COURIER_DELIVEREDO entregador registrou a entrega.Extensão MeuPedidodelivery
COURIER_DELIVERY_FAILEDA tentativa de entrega falhou.Extensão MeuPedidodelivery.failureReason
COURIER_UNASSIGNEDO entregador foi desatribuído; o pedido volta a aguardar rota.Extensão MeuPedidodelivery
COURIER_ROUTE_COMPLETEDA rota do entregador terminou.Extensão MeuPedidodelivery

O que não é emitido

Alguns tipos previstos no padrão Open Delivery 1.4.0 nunca aparecem no feed do MeuPedido: PICKUP_AREA_ASSIGNED, DELIVERED, CANCELLATION_REQUESTED e CANCELLATION_REQUEST_DENIED. A entrega é sinalizada por CONCLUDED; o cancelamento é imediato, então não existe pedido de cancelamento pendente ou negado. Detalhes em Compatibilidade.

Também não existe evento para PENDING e PENDING_PAYMENT: o pedido nasce para a sua integração no CREATED. Retrocessos de situação (por exemplo, confirm em um pedido PREPARING) não geram evento.

Eventos por tipo de pedido

SituaçãoPedido DELIVERYPedido TAKEOUT ou INDOOR
PENDINGCREATEDCREATED
ACCEPTEDCONFIRMEDCONFIRMED
PREPARINGPREPARINGPREPARING
READYREADY_FOR_PICKUPREADY_FOR_PICKUP
DELIVERYDISPATCHEDREADY_FOR_PICKUP
DONECONCLUDEDCONCLUDED
CANCELLEDCANCELLEDCANCELLED

metadata

CANCELLED

"metadata": {
  "reason": "Produto em falta.",
  "code": "OTHER_CANCELLATION_REASON"
}
CampoValoresDescrição
reasontextoO motivo registrado por quem cancelou. Pela API, é o reason enviado em requestCancellation (ou o padrão).
codeCONSUMER_CANCELLATION_REQUESTED, OTHER_CANCELLATION_REASONCONSUMER_CANCELLATION_REQUESTED quando o cliente cancelou; OTHER_CANCELLATION_REASON para loja, painel e API. O code enviado em requestCancellation não influencia este valor.

CONFIRMED

metadata vem como {}. O campo existe porque o padrão o exige presente para este tipo; não há nada dentro.

O bloco delivery

Presente apenas nos eventos COURIER_*. Descreve a rota e a parada do pedido dentro dela.

{
  "eventId": "7a2d9f4b-1e6c-4d3a-b8f0-5c2e9d1a4b7f",
  "eventType": "COURIER_ARRIVED",
  "orderId": "3f8a1c2d-5b6e-4f7a-9c8d-1e2f3a4b5c6d",
  "orderURL": "https://api.meupedido.io/open-delivery/v1/orders/3f8a1c2d-5b6e-4f7a-9c8d-1e2f3a4b5c6d",
  "createdAt": "2026-09-19T14:41:07Z",
  "delivery": {
    "routeId": "b4c1d2e3-f4a5-4b6c-8d7e-9f0a1b2c3d4e",
    "routeCode": "R-0217",
    "courierId": "c9d8e7f6-a5b4-4c3d-9e2f-1a0b9c8d7e6f",
    "courierName": "Carlos Andrade",
    "stopStatus": "ARRIVED",
    "sequence": 2,
    "failureReason": null,
    "etaAt": "2026-09-19T14:45:00Z",
    "claimSource": "MERCHANT_DISPATCH"
  }
}
CampoTipoDescrição
routeIdGUIDIdentificador da rota. Uma rota pode ter vários pedidos.
routeCodestringCódigo curto da rota, o mesmo que o lojista vê no painel.
courierIdGUIDIdentificador do entregador.
courierNamestringNome do entregador.
stopStatusstringSituação da parada deste pedido na rota: PENDING, EN_ROUTE, ARRIVED, DELIVERED, FAILED ou UNASSIGNED.
sequenceinteiroPosição da parada na rota, a partir de 1.
failureReasonstringMotivo da falha, em COURIER_DELIVERY_FAILED.
etaAtdataPrevisão de chegada, UTC com Z, quando calculada.
claimSourcestringComo o entregador assumiu a rota (por exemplo, MERCHANT_DISPATCH quando a loja despachou).

Os campos de delivery podem vir como null quando não se aplicam ao evento. Trate sequence, etaAt e failureReason como opcionais.

Como reagir a cada evento

EventoO que fazer
CREATEDBuscar o pedido em orderURL, gravar, exibir. Depois, confirm.
MODIFIEDBuscar o pedido de novo e substituir a cópia local.
CONFIRMED, PREPARING, READY_FOR_PICKUP, DISPATCHED, CONCLUDEDAtualizar a situação local. Se a ação partiu do seu sistema, o evento confirma o que você já sabe.
CANCELLEDMarcar como cancelado com metadata.reason; parar preparo e entrega.
COURIER_*Opcional. Exibir o entregador e a previsão para a loja ou para o cliente.

Em todos os casos, confirme o eventId em acknowledgment depois de processar.

Próximos passos

Nesta página