Saltar al contenido principal

Cancel delivery service

DELETE 

/company/delivery/:service_code

Cancela un envío existente cambiando su estado a 'canceled' y rejectedBy a 'cia'. Solo se pueden cancelar envíos en estados 'planned' o 'replanned'.

Objective

Permitir a las empresas cancelar envíos planificados cuando ya no se realizarán, procesando automáticamente las acciones necesarias en Stripe y auctions.

Use Cases

  • Cancelar un envío planificado que ya no se realizará
  • Detener un envío replanificado por problemas logísticos o de negocio
  • Revertir un envío mal planificado antes de que inicie
  • Cancelar por cambios en la carga o destino

Side Effects

  • Cambia status a 'canceled'
  • Establece rejectedBy='cia'
  • Cancela el payment_intent en Stripe (procesa reembolso si corresponde)
  • Cancela la subasta asociada si existe

Validation Flow

flowchart TD
A[Receive Cancel Request] --> B{Delivery Exists?}
B -->|No| C[404 NOT_FOUND]
B -->|Yes| D{Company Owns Delivery?}
D -->|No| E[403 NOT_ALLOWED]
D -->|Yes| F{Is Final Status?}
F -->|Yes| G[401 NOT_ALLOWED]
F -->|No| H{Status is Cancelable?}
H -->|No| I[401 NOT_ALLOWED]
H -->|Yes| J[Set status=canceled]
J --> K[Set rejectedBy=cia]
K --> L{Cancel Stripe Payment}
L -->|Error| M[403 CANT_CANCEL_PAYMENT]
L -->|Success| N{Cancel Auction}
N -->|Success| O[Save - 200]

Notes

  • Solo se pueden cancelar envíos en estados 'planned' o 'replanned'
  • No se puede cancelar un envío en estado final (delivered, claimed, canceled)
  • Si falla la cancelación del pago en Stripe, toda la operación se cancela
  • La subasta asociada también se cancela automáticamente

Request

Responses

Envío cancelado con éxito