Orders API

Finalizar pedido

Finaliza manualmente un pedido en reparto sin evidencia GPS.

Volver a todos los endpoints

Orders API

Finalizar pedido

Operación explícita del panel de flota desde in_route o arrived_at_dropoff. Conserva el presupuesto del rider. Para integraciones usa POST /api/orders/:orderId/status: sus reglas de coordenadas y radio de 100 m no cambian.

POST /api/orders/:orderId/complete 200 OK
Auth requerida Perfil: dispatcher con escritura

Campos principales

Resumen de los campos relevantes para este endpoint.

Campo Tipo Uso Descripción
orderId uuid Path param UUID del pedido del dispatcher destino con asignación activa.
Authorization Bearer token Header obligatorio Token operativo del actor con permiso de escritura en el dispatcher destino.
body none No requerido No envíes payload. El actor y la pertenencia se resuelven desde el token autenticado.
X-Operio-Dispatcher-Context string Header cuando aplica Selecciona un contexto dispatcher autorizado por membresía; el actor sigue siendo el usuario de sesión.

Estados, autorización y efectos

  • Solo in_route o arrived_at_dropoff con asignación activa del mismo dispatcher; los viewers, restaurantes y riders no pueden finalizar.
  • No enviar payload ni GPS. La confianza rider no interviene.
  • La transacción valida propiedad y estado, cierra el historial como delivered, retira la asignación activa y conserva rider_order_budgets.
  • Registra el usuario real y meta.source = dispatcher_panel, publica SSE pedido/ruta y webhook de estado y revoca tracking del cliente.
  • Repetir delivered solo es válido si la última asignación histórica está cerrada delivered y pertenece al mismo dispatcher; no duplica la transición.

Request cURL como dispatcher

curl -X POST 'https://api.operiohub.com/api/orders/11111111-1111-4111-8111-111111111111/complete' \
  -H 'Authorization: Bearer YOUR_DISPATCHER_TOKEN'

Consola de prueba

Finalizar pedido

Envía la finalización manual con un token dispatcher de escritura y un orderId. La petición modifica el pedido real asociado al token.

Este endpoint no requiere body. La acción se autoriza con el token y el orderId de la URL.

La respuesta aparecerá aquí.

Errores esperados

Respuestas habituales que debe contemplar la integración.

400

Solicitud inválida

UUID inválido, body no vacío o contexto dispatcher ausente en ámbito agregado. En este último caso, envía X-Operio-Dispatcher-Context con el UUID de la flota operativa.

401

Autenticación requerida

Token operativo ausente o inválido.

403

Actor no autorizado

Actor sin acceso dispatcher de escritura; incluye viewer.

409

Finalización incompatible

Pedido fuera del contexto destino, estado no permitido o asignación incompatible.

429

Límite de mutaciones

100 peticiones por minuto por IP o identidad.

500

Fallo interno

No se pudo completar la operación.