Cancelar Venda
Este endpoint cancela uma venda previamente criada, desde que ela não tenha sido cancelada anteriormente. O cancelamento é propagado também para sistemas externos da concessionária correspondente (como CPFL ou ENERGISA).
🔐 Autenticação
A API exige autenticação via token JWT no cabeçalho:
Authorization: Bearer {token}
📬 Endpoint
DELETE /sales/{saleId}/cancel
Content-Type: application/json
Authorization: Bearer {token}
Substitua
{saleId}
pelo ID da venda que deseja cancelar.
📥 Corpo da Requisição
{
"motive": "Cliente desistiu da contratação"
}
O campo
motive
é obrigatório e representa o motivo do cancelamento.
📤 Resposta de Sucesso
{
"message": "Sale canceled successfully"
}
✅ Requisitos para Cancelamento
A venda só pode ser cancelada se:
- O usuário tiver a permissão
cancel_sale
- O campo
motive
estiver presente no corpo da requisição - A venda existir e não estiver com status
CANCELED
- A venda estiver associada a um grupo de concessionárias válido (
CPFL
,ENERGISA
, etc.)
O cancelamento da venda também será enviado à concessionária correspondente, como CPFL ou ENERGISA. Em caso de falha externa, o processo será interrompido com erro.
❌ Erros Comuns
Código | Motivo |
---|---|
400 | saleId ou motive ausentes |
400 | Venda já está com status CANCELED |
400 | Usuário não possui permissão cancel_sale |
404 | Venda não encontrada |
404 | Nome do grupo da concessionária não encontrado |
422 | Erro externo no cancelamento junto à concessionária |
500 | Erro interno no servidor |
🛠️ Observações Técnicas
- O cancelamento externo é feito via chamadas HTTP para APIs das concessionárias (ex: CPFL, ENERGISA).
- As variáveis de ambiente
CPFL_TOTAL_API_KEY
eENERGISA_API_KEY
devem estar configuradas corretamente para que o cancelamento externo funcione. - A lógica do repositório grava o status de cancelamento no banco após a confirmação do cancelamento externo.
🧑💼 Suporte
Entre em contato com o time responsável pela API de vendas caso surjam dúvidas ou problemas com o cancelamento da venda.