Cancel delivery service
DELETE/company/delivery/:service_code
Cancela um envio existente alterando seu status para 'canceled' e rejectedBy para 'cia'.
Somente envios com status 'planned' ou 'replanned' podem ser cancelados.
Objetivo
Permitir que empresas cancelem envios planejados quando não serão mais realizados, processando automaticamente as ações necessárias no Stripe e nos leilões.
Casos de Uso
- Cancelar um envio planejado que não será mais realizado
- Interromper um envio replanejado devido a problemas logísticos ou de negócios
- Reverter um envio mal planejado antes de seu início
- Cancelar por alterações na carga ou destino
Efeitos Secundários
- Altera o status para 'canceled'
- Define rejectedBy='cia'
- Cancela o payment_intent no Stripe (processa reembolso, se aplicável)
- Cancela o leilão associado, se existir
Fluxo de Validação
flowchart TD
A[Receber Solicitação de Cancelamento] --> B{O Envio Existe?}
B -->|Não| C[404 NOT_FOUND]
B -->|Sim| D{A Empresa é Dono do Envio?}
D -->|Não| E[403 NOT_ALLOWED]
D -->|Sim| F{É Status Final?}
F -->|Sim| G[401 NOT_ALLOWED]
F -->|Não| H{O Status é Cancelável?}
H -->|Não| I[401 NOT_ALLOWED]
H -->|Sim| J[Definir status=canceled]
J --> K[Definir rejectedBy=cia]
K --> L{Cancelar Pagamento no Stripe}
L -->|Erro| M[403 CANT_CANCEL_PAYMENT]
L -->|Sucesso| N{Cancelar Leilão}
N -->|Sucesso| O[Salvar - 200]
Observações
- Somente envios com status 'planned' ou 'replanned' podem ser cancelados
- Não é possível cancelar um envio com status final (delivered, claimed, canceled)
- Se a cancelamento do pagamento
Request
Responses
- 200
- 401
- 403
- 404
- 503
Envio cancelado com sucesso
Não autorizado. O status do envio não permite cancelamento.
Não é possível cancelar o pagamento no Stripe.
Envio não encontrado. O service_code fornecido não existe ou não pertence à empresa do usuário autenticado.
Erro ao salvar as alterações.