> ## 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.

# Fluxo de integração

> Como o seu PDV recebe e confirma os chamados do salão, como chamar garçom e pedir a conta.

Os eventos de indoor usam a mesma fila dos eventos de pedidos. O que muda são os tipos: `CALL_WAITER` quando o cliente chama o garçom e `CLOSE_ACCOUNT` quando ele pede a conta.

**1. Receba o evento**

Consulte `GET /merchant/v3/events:polling` a cada 30 segundos ou receba os eventos na hora por [webhook](/docs/guides/merchant/webhooks.md).

**2. Identifique o tipo**

Leia o `eventType` e os campos de mesa e comanda (`placeName`, `tabName`, `tabCode`) para saber onde atender.

**3. Avise a equipe**

Mostre o chamado no PDV. Se a conta for paga, você pode [fechar a comanda](/docs/guides/merchant/indoor/comanda-api/acoes-das-comandas/fechar-para-consumo-uma-comanda.md) ou a [mesa](/docs/guides/merchant/indoor/places-api/acoes-de-places/fechar-para-consumo-um-place.md) para consumo.

**4. Confirme o recebimento**

Envie o acknowledgment em `POST /merchant/v3/events/acknowledgment` para tirar os eventos da fila.

> [!NOTE]
>
> Pedidos feitos no salão não são eventos de indoor: chegam como pedidos `INDOOR`, com os eventos de [pedidos](/docs/guides/merchant/order/fluxo-de-integracao/eventos-de-pedidos.md) (`CREATED`, `CONFIRMED` e os demais).

> [card] [Consultar novos eventos](/docs/guides/merchant/indoor/fluxo-de-integracao/consultar-novos-eventos.md)
>
> Polling, fila e filtros.

> [card] [Eventos de indoor](/docs/guides/merchant/indoor/fluxo-de-integracao/eventos-de-indoor.md)
>
> Estrutura e exemplos de cada tipo.

> [card] [Acknowledgment](/docs/guides/merchant/indoor/fluxo-de-integracao/acknowledgment-de-eventos.md)
>
> Tire os eventos da fila.


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