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.
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.
Errores esperados
Respuestas habituales que debe contemplar la integración.
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.
Autenticación requerida
Token operativo ausente o inválido.
Actor no autorizado
Actor sin acceso dispatcher de escritura; incluye viewer.
Finalización incompatible
Pedido fuera del contexto destino, estado no permitido o asignación incompatible.
Límite de mutaciones
100 peticiones por minuto por IP o identidad.
Fallo interno
No se pudo completar la operación.