Pular para o conteúdo principal

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

Envio cancelado com sucesso