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
motiveestiver 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_KEYeENERGISA_API_KEYdevem 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.