Negue um cancelamento
curl --request POST \
--url https://api.dev.connect.onbeefapp.com.br/v1/orders/{orderId}/denyCancellation \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reason": "<string>",
"code": "<string>"
}
'Pedidos
Negue um cancelamento
Negue o cancelamento e mantenha o pedido ativo.
POST
/
v1
/
orders
/
{orderId}
/
denyCancellation
Negue um cancelamento
curl --request POST \
--url https://api.dev.connect.onbeefapp.com.br/v1/orders/{orderId}/denyCancellation \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reason": "<string>",
"code": "<string>"
}
'Chame este endpoint ao receber
ORDER_CANCELLATION_REQUEST quando sua loja não puder aceitar o cancelamento solicitado pelo cliente. Informe o motivo exigido pelo payload.
ORDER_CANCELLATION_REQUEST exige uma resposta do seu PDV com denyCancellation ou acceptCancellation.Não use CANCELLATION_REQUESTED como gatilho. Esse evento apenas informa que o próprio PDV solicitou um cancelamento com POST /v1/orders/{orderId}/requestCancellation.Parâmetros de rota
string (uuid)
required
Identificador único do pedido cuja solicitação de cancelamento você está negando. Gerado pela Onbeef e retornado no evento do pedido.
Corpo da requisição
string
required
Explicação em texto livre para a negativa do cancelamento. Pode ser compartilhada com o cliente ou com a parte solicitante.
string
required
Código padronizado descrevendo o motivo da negativa. Deve ser um dos valores a seguir:
| Código | Descrição |
|---|---|
SYSTEMIC_ISSUES | Motivo técnico ou de sistema. |
DUPLICATE_APPLICATION | O pedido foi identificado como duplicado e ainda é válido. |
UNAVAILABLE_ITEM | Negativa baseada em contexto de item. |
RESTAURANT_WITHOUT_DELIVERY_PERSON | Contexto de ausência de entregador. |
OUTDATED_MENU | Contexto de cardápio desatualizado. |
ORDER_OUTSIDE_THE_DELIVERY_AREA | Contexto de área de entrega. |
BLOCKED_CUSTOMER | Contexto de status do cliente. |
OUTSIDE_DELIVERY_HOURS | Contexto de horário de operação. |
INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT | Pedido já está avançado demais para cancelar. |
RISK_AREA | Contexto de área de risco. |
DELIVERY_PROBLEM | Motivo relacionado à entrega. |
Resposta
204: Sem conteúdo
A negativa foi aceita. O pedido continua ativo e nenhum corpo de resposta é retornado. No polling, o evento do pedido passa a serCANCELLED_DENIED. Pelo webhook chegam duas notificações para a mesma negativa: CANCELLED_DENIED e CANCELLATION_REQUEST_DENIED. Processe de forma idempotente.
401: Não autorizado
Retornado quando a requisição não inclui credenciais de autenticação válidas.404: Não encontrado
Nenhum pedido foi encontrado com oorderId informado.
Exemplo de requisição
curl --request POST \
--url "https://api.dev.connect.onbeefapp.com.br/v1/orders/f47ac10b-58cc-4372-a567-0e02b2c3d479/denyCancellation" \
--header "Authorization: Bearer <token>" \
--header "Content-Type: application/json" \
--data '{
"reason": "O pedido já está embalado e pronto para retirada.",
"code": "INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT"
}'
curl --request POST \
--url "https://api.connect.onbeefapp.com.br/v1/orders/f47ac10b-58cc-4372-a567-0e02b2c3d479/denyCancellation" \
--header "Authorization: Bearer <token>" \
--header "Content-Type: application/json" \
--data '{
"reason": "O pedido já está embalado e pronto para retirada.",
"code": "INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT"
}'
Exemplo de corpo da requisição
{
"reason": "O pedido já está embalado e pronto para retirada.",
"code": "INTERNAL_DIFFICULTIES_OF_THE_RESTAURANT"
}
Após negar um cancelamento, continue o ciclo de vida normal do pedido chamando Pronto para retirada, Despachar e, por fim, Entregue. Deixar o pedido paralisado após negar o cancelamento pode afetar negativamente as métricas da sua loja na plataforma.
Depois de negar a solicitação, acompanhe
CANCELLED_DENIED no polling (ou CANCELLATION_REQUEST_DENIED no webhook). Processe e persista esse estado antes de enviar o acknowledgment. Informe um reason claro e preciso para manter transparência com o cliente e a Onbeef.