V2
Vendas
Cancelar Venda

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ódigoMotivo
400saleId ou motive ausentes
400Venda já está com status CANCELED
400Usuário não possui permissão cancel_sale
404Venda não encontrada
404Nome do grupo da concessionária não encontrado
422Erro externo no cancelamento junto à concessionária
500Erro 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 e ENERGISA_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.