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

# Fidelidade

> Endpoints de configuração do programa de fidelidade, para apps com a extensão loyalty.

Endpoints para publicar e remover a configuração do programa de fidelidade de uma loja, para apps que declaram a extensão **loyalty**. Exigem o scope `dv.loyalty`. Veja o guia de [Fidelidade](/docs/guides/merchant/loyalty.md).

| Endpoint | Para quê | Guia |
| - | - | - |
| `PUT /merchant/v3/{merchantId}/loyalty/config` | Ativar ou atualizar o programa da loja. Antes de gravar, a DeliveryVip chama o seu `ping`; se ele falhar, nada é gravado e a resposta é `422`. | [Ativando o programa](/docs/guides/merchant/loyalty/ativando-o-programa.md) |
| `DELETE /merchant/v3/{merchantId}/loyalty/config` | Desativar o programa da loja. Idempotente, responde `204`. | [Desativando o programa](/docs/guides/merchant/loyalty/ativando-o-programa.md#desativando-o-programa) |

> [!NOTE]
>
> O acúmulo é feito lendo o pedido, e as rotas de pedido exigem `od.all`. Por isso, um operador de fidelidade pede o token com os dois scopes: `scope=od.all dv.loyalty`.

As rotas que o **seu sistema implementa** (contrato do operador) estão especificadas em [loyalty\_operator.yaml](https://app.deliveryvip.com.br/swaggers/loyalty_operator.yaml) e documentadas no guia [Contrato do operador](/docs/guides/merchant/loyalty/contrato-do-operador.md).


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