Orders API
Liberar pedido de ruta
Usa este endpoint para retirar un pedido de una route o rider activos sin cancelarlo. El backend elimina la asignación activa, conserva su historial y devuelve el pedido a dispatcher_accepted.
Campos principales
Resumen de los campos relevantes para este endpoint.
| Campo | Tipo | Uso | Descripción |
|---|---|---|---|
orderId | uuid | Path param | Identificador del pedido asignado a una route activa. |
Authorization | Bearer token | Header obligatorio | Token de un dispatcher propietario del pedido o de un restaurante propietario con gestión de riders activada. |
body | none | No requerido | No envíes payload. El actor y la pertenencia se resuelven desde el token autenticado. |
Roles permitidos
La autorización depende de la propiedad del pedido y de la route activa.
- Un dispatcher puede liberar un pedido de su dispatcher y su route activa.
- Un restaurante puede liberar un pedido de su restaurante si riderManagementEnabled está activado.
- No hace falta allowRestaurantOrderCancellationOverride.
- Los riders no pueden liberar pedidos con este endpoint.
Efectos de la liberación
La operación retira solo la asignación operativa activa.
- El pedido vuelve a currentStatus = dispatcher_accepted.
- La asignación activa de route/rider se elimina y su historial se conserva.
- Los pedidos terminales delivered, failed o cancelled no se reabren.
Diferencia con cancelar un pedido
Liberar un rider no cancela el pedido.
- Para retirar la asignación de route/rider y seguir operando el pedido, usa POST /api/orders/:orderId/release-from-route.
- Para cancelar manualmente el pedido, usa POST /api/orders/:orderId/cancel.
- La cancelación deja el pedido en cancelled; la liberación lo deja en dispatcher_accepted.
Request cURL como dispatcher
curl -X POST 'https://api.operiohub.com/api/orders/11111111-1111-4111-8111-111111111111/release-from-route' \
-H 'Authorization: Bearer YOUR_DISPATCHER_TOKEN' Request cURL como restaurante
curl -X POST 'https://api.operiohub.com/api/orders/11111111-1111-4111-8111-111111111111/release-from-route' \
-H 'Authorization: Bearer YOUR_RESTAURANT_TOKEN' Respuesta 200
{
"data": {
"orderId": "11111111-1111-4111-8111-111111111111",
"currentStatus": "dispatcher_accepted"
}
} Consola de prueba
Liberar pedido de ruta
Pega un token dispatcher o restaurante, indica el orderId y libera la asignación activa. La petición impacta el pedido real asociado al token.
Errores esperados
Respuestas habituales que debe contemplar la integración.
Parámetros inválidos
El orderId del path no tiene formato uuid válido.
Token requerido o inválido
No se ha enviado un token operativo válido en Authorization ni x-api-token.
Actor no autorizado
El actor es rider, el dispatcher no es propietario del pedido, el restaurante no es propietario o tiene riderManagementEnabled desactivado.
Pedido no liberable
El pedido es terminal o no está asignado a una route activa.
RATE_LIMIT_EXCEEDED Too Many Requests
Más de 100 peticiones de mutación por minuto para la misma IP o identidad.
Ejemplo de error
{
"error": "order_not_assigned_to_active_route"
}