---
title: "Cancelar pedido"
description: "POST /v1/orders/{orderId}/cancel — cancela um pedido na API BeeFood."
method: "POST"
path: "/v1/orders/{orderId}/cancel"
url: "https://developer.beefood.com.br/docs/pedidos/cancelar"
group: "Pedidos"
scope: "orders:write"
lang: "pt"
---
# Cancelar pedido

`POST /v1/orders/{orderId}/cancel`

- Produção: `https://api.beefood.app/v1/orders/{orderId}/cancel`
- Sandbox: `https://api-sandbox.beefood.app/v1/orders/{orderId}/cancel`

Cancela um pedido DELIVERY, PDV ou TABLE.

## Autenticação

Envie o access token no header `Authorization: Bearer <accessToken>`. Escopo necessário: `orders:write`. Limite: 300 requisições a cada 3 minutos.


## Parâmetros de path

- `orderId` *integer* **obrigatório** — ID do pedido, maior ou igual a 1. Exemplo: `58449271`.



## Parâmetros do body

- `cancellationReason` *string* **obrigatório** — Motivo do cancelamento. Exemplo: `"Cliente desistiu do pedido"`.



## Exemplos de requisição

### cURL

```bash
curl -X POST "https://api.beefood.app/v1/orders/{orderId}/cancel" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "cancellationReason": "Cliente desistiu do pedido"
}'
```


## Exemplos de resposta

### 200 OK

```json

```



## Regras de cancelamento

O sucesso responde 200 sem corpo; consulte `GET /v1/orders/{orderId}` para ver o pedido. O cancelamento devolve o estoque e dispara o webhook `order_updated`.

### Regras

- Pedido com pagamento pago responde 409: remova o pagamento no PDV e repita a chamada. Pagamento só provisionado não bloqueia.
- Pedido já cancelado responde 409, sem repetir webhook, estoque ou registro.
- Pedido inexistente ou de outro restaurante responde 404.
- A rota não remove pagamentos, não cancela a corrida na integradora de entrega e não emite aviso em tempo real para o painel.


## Erros

| Status | Mensagem |
| --- | --- |
| 400 | 'id' must be a positive integer |
| 400 | 'cancellationReason' is required |
| 400 | preVendaID is required |
| 401 | Authentication token is missing |
| 401 | Invalid or expired access token |
| 403 | This credential does not include the orders:write scope |
| 404 | Order 123 not found for company 1234. |
| 409 | Order 123 is already canceled. |
| 409 | Order 123 has 1 paid payment totaling R$ 48,90. Remove the payment before canceling. |
| 429 | Too Many Requests |
| 500 | Could not cancel order 123. |
| 502 | Cancel order service unavailable |


