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

# Desativar uma comanda

> Rota em deprecação que marca a comanda como indisponível e fechada. Migre para closed.

> [!WARNING]
>
> **Em deprecação.** Use [`POST /tabs/{tabId}/closed`](/docs/guides/merchant/indoor/comanda-api/acoes-das-comandas/fechar-para-consumo-uma-comanda). Esta rota ainda responde, mas pode ser desligada a qualquer momento. Cada resposta traz os headers `Deprecation: true` e `Sunset` com a data de desligamento. Veja [deprecations](/docs/deprecations.md).

`POST /merchant/v3/{merchantId}/tabs/{tabId}/unavailable` muda o `status` da comanda para `UNAVAILABLE` e a `situation` para `CLOSED`, nos dois casos de uma vez.

## Como migrar

Troque `unavailable` por `closed` na URL. O resto da chamada e a resposta são iguais.

```diff theme={null}
- POST /merchant/v3/{merchantId}/tabs/{tabId}/unavailable
+ POST /merchant/v3/{merchantId}/tabs/{tabId}/closed
```

> [!WARNING]
>
> As duas rotas não são equivalentes no `status`. `closed` deixa o `status` como está, e só `available` (também descontinuada) volta uma comanda `UNAVAILABLE` para `AVAILABLE`. Depois de migrar, abra e feche comandas só com `opened` e `closed`.

## Requisição

```bash cURL theme={null}
curl --request POST 'https://api.deliveryvip.com.br/merchant/v3/{merchantId}/tabs/{tabId}/unavailable' \
  --header 'Authorization: Bearer {token}'
```

```js Node.js theme={null}
await fetch(`https://api.deliveryvip.com.br/merchant/v3/${merchantId}/tabs/${tabId}/unavailable`, {
  method: 'POST',
  headers: { Authorization: `Bearer ${token}` },
})
```

```python Python theme={null}
requests.post(
    f"https://api.deliveryvip.com.br/merchant/v3/{merchant_id}/tabs/{tab_id}/unavailable",
    headers={"Authorization": f"Bearer {token}"},
)
```

## Resposta

```http theme={null}
HTTP/1.1 202 Accepted
Deprecation: true
Sunset: Mon, 01 Dec 2025 00:00:00 GMT
Content-Type: application/json

{ "id": "6b7cd994-d8ff-4d12-8064-251becc39b08" }
```

| Status | Quando |
| - | - |
| `404 Not Found` | O `merchantId` não autorizou o seu app, ou a comanda não existe ou foi removida. |


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