> ## 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 de faturas

> Campos da fatura da loja, blocos de preço PAYABLE e RECEIVABLE, valor do mês cheio e valor proporcional.

A fatura da loja é o objeto devolvido por [`GET /{partnerId}/invoices`](/docs/guides/partner/invoices/utilizando-a-api/listando-invoices) e [`GET /{partnerId}/merchants/invoices`](/docs/guides/partner/invoices/utilizando-a-api/listando-merchants-invoices). O resumo por revenda tem formato próprio, descrito em [Listando faturas das revendas](/docs/guides/partner/invoices/utilizando-a-api/listando-resales-invoices.md).

## Objeto

**merchantId** `uuid`

ID da loja.

**resaleId** `uuid`

ID da revenda. Veja [resaleId](#resaleid).

**planId** `uuid`

Plano da assinatura no fechamento.

**month** `string | integer`

Mês da fatura. Repete o valor enviado na query (texto, ex.: `"4"`); sem o parâmetro, vem como número.

**year** `string | integer`

Ano da fatura, com a mesma regra de `month`.

**totalPrice** `object[]`

Totais da fatura, um bloco por tipo. Veja [totalPrice](#totalprice).

**propriedades**

**type** `string`

`PAYABLE` ou `RECEIVABLE`.

**value** `number`

Valor do mês cheio.

**usageTimeValue** `number`

Valor proporcional ao tempo de assinatura ativa no mês.

**currency** `string`

Moeda. Sempre `BRL`.

**items** `object[]`

Detalhamento por recurso.

**propriedades**

**itemType** `string`

Tipo do item. Veja [Tipos de item](#tipos-de-item).

**quantity** `integer`

Quantidade usada no mês.

**totalPrice** `object[]`

Blocos de preço do item, no mesmo formato do `totalPrice` da fatura.

### resaleId

Só aparece quando o `partnerId` consultado é um **parceiro** e a loja pertence a uma revenda. Consultando com o ID de uma revenda, o campo é omitido: todas as lojas da resposta são daquela revenda.

### totalPrice

Cada bloco tem um `type`:

* **`PAYABLE`**: o que **você paga** pela loja. Para o parceiro, o custo junto à DeliveryVip. Para a revenda, o que ela paga ao parceiro.
* **`RECEIVABLE`**: o que **você recebe**, pela sua tabela de preços. Para o parceiro, o preço cobrado da loja direta ou da revenda. Para a revenda, o preço cobrado da loja.

> [!WARNING]
>
> `RECEIVABLE` só é enviado quando a tabela de preços de recebíveis está habilitada para o parceiro. Sem ela, os arrays trazem só `PAYABLE`. Consultando como revenda sem essa tabela, a fatura não traz `totalPrice` e os itens vêm sem preço. Nunca acesse os blocos pela posição (`totalPrice[1]`): procure pelo campo `type`.

### value e usageTimeValue

`value` é o valor **do mês cheio**, como se a assinatura da loja tivesse ficado ativa o mês inteiro. `usageTimeValue` é **proporcional ao tempo em que a assinatura ficou ativa** no mês, contado em dias, da ativação (ou do início do mês) até o cancelamento (ou o fim do mês).

Uma loja ativada no dia 16 de um mês de 30 dias tem `usageTimeValue` igual à metade do `value`. Quando a assinatura fica ativa o mês inteiro, os dois são iguais. Os dois usam até 4 casas decimais.

### Tipos de item

| Código | Descrição |
| - | - |
| `DELIVERY_TAKEOUT` | Loja própria online: catálogo, checkout, entrega e retirada. |
| `DELIVERYBOT_NOTIFICATION` | Notificações de status do pedido via WhatsApp. |
| `DELIVERYBOT_ASSISTANT` | Assistente virtual por IA no WhatsApp. |
| `INDOOR_VIEWER` | Cardápio por QR Code só para visualização. |
| `INDOOR_QRCODE` | Cardápio por QR Code com pedido. |
| `INDOOR_TABLET` | Autoatendimento em tablets. |
| `DOMAIN_CUSTOM` | Domínio personalizado. |
| `SALES_REVENUE` | Cobrança variável sobre faturamento. |
| `ORDERS_COUNT` | Cobrança variável por número de pedidos. |
| `MULTI_STORE` | Estrutura multiloja. |
| `GROWTH_DISCOUNT` | Módulo de descontos. |
| `INTEGRATION_MARKETING` | Integrações de marketing. |
| `INTEGRATION_LOGISTIC` | Integrações de logística. |

> [!NOTE]
>
> `GROWTH_DISCOUNT`, `INTEGRATION_MARKETING` e `INTEGRATION_LOGISTIC` aparecem com quantidade 1 quando o recurso está incluso no plano ou foi contratado à parte.


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