> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Documentação das APIs da DeliveryVip, em português. Regras que mais quebram integrações: (1) Merchant API: faça polling em GET /merchant/v3/events:polling no máximo a cada 30 s por token; confirme todo evento recebido com POST /merchant/v3/events/acknowledgment e corpo [{"id": "<eventId>"}] (o campo lido é id, não eventId), inclusive eventos repetidos ou que o sistema não trata; deduplique por eventId; o evento é só um aviso, busque o pedido na orderURL. (2) Tokens client_credentials valem 24 h e não têm refresh_token: peça outro ao receber 401. (3) Webhooks: valide a assinatura HMAC sobre o corpo bruto e responda 2xx rápido; o polling é a reconciliação. (4) Open Delivery: host od.deliveryvip.com.br, um client_secret por loja, datas em UTC. (5) Fidelidade: o operador implementa 5 rotas assinadas com HMAC e chama o config push; o estorno precisa ser idempotente. (6) Partner API: scope dv.partner. Não invente endpoints: use a referência gerada das specs OpenAPI.

# Definições

> Os tipos de pedido, o momento de preparo e o ciclo de vida de cada tipo.

O tipo do pedido e o momento em que ele deve ser preparado mudam o que o seu PDV faz com ele. Entenda essas definições antes de implementar as ações.

## Tipos de pedido

O campo `type` do pedido (e o `orderType` do evento) diz como o pedido chega ao cliente.

> [card] DELIVERY
>
> Entregue no **endereço escolhido pelo cliente**.

> [card] TAKEOUT
>
> O **cliente retira** no estabelecimento.

> [card] INDOOR
>
> Feito **dentro do restaurante**, para consumir no local.

## Momento do pedido

Nem todo pedido deve ser preparado na hora: o cliente pode agendar a entrega. O campo `orderTiming` indica qual é o caso.

| `orderTiming` | O que fazer |
| - | - |
| `INSTANT` | Preparar imediatamente e enviar o quanto antes. |
| `SCHEDULED` | Não preparar agora. Respeite o horário agendado para a entrega. |

## Ciclo de vida do pedido

Cada mudança de status gera um [evento](/docs/guides/merchant/order/fluxo-de-integracao/eventos-de-pedidos.md). O caminho até `CONCLUDED` depende do tipo do pedido.

![Ciclo de vida dos pedidos DELIVERY, TAKEOUT e INDOOR](https://mintcdn.com/deliveryvip-a4256422/ELxpcniK2_BP8zxT/images/order-life-cicle.png?fit=max\&auto=format\&n=ELxpcniK2_BP8zxT\&q=85\&s=cf02292b449eb4fe48c40ca34db7555d)

Ciclo de vida por tipo de pedido

**DELIVERY**

* `DISPATCHED` é **obrigatório**: informe quando o pedido sair para entrega.
* `READY_FOR_PICKUP` é opcional.

**TAKEOUT e INDOOR**

* `READY_FOR_PICKUP` é **obrigatório**: avise quando o pedido estiver pronto.
* `PICKUP_AREA_ASSIGNED` está previsto para pedidos `TAKEOUT` no modo `PICKUP_AREA`, mas [ainda não é emitido](/docs/guides/merchant/order/fluxo-de-integracao/eventos-de-pedidos.md#previstos-na-especificação).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.