Orders API
Consultar detalle de pedido
Usa este endpoint para consultar el detalle de un pedido concreto sin construir una búsqueda por filtros. Devuelve el mismo modelo enriquecido que el listado de pedidos: datos base, cliente, entrega, pago y asignación. El acceso queda acotado al perfil autenticado: un dispatcher solo ve sus pedidos, un restaurante solo ve los suyos y un rider solo ve pedidos asignados a su ruta.
Campos principales
Resumen de los campos relevantes para este endpoint.
| Campo | Tipo | Uso | Descripción |
|---|---|---|---|
orderId | uuid | Requerido | Identificador del pedido devuelto por OperioHub. |
Authorization | header | Requerido | Token del perfil que consulta el pedido. También se acepta x-api-token. |
Código de verificación de entrega
El detalle del pedido puede incluir el código que el rider utilizará al contactar con el cliente.
- El campo aparece como deliveryInfo.deliveryPhoneCode.
- Es opcional y puede ser null en pedidos antiguos o sin código.
- Cuando existe, contiene entre 1 y 100 caracteres y está separado de deliveryInfo.deliveryNotes.
Request cURL
curl -X GET 'https://api.operiohub.com/api/orders/11111111-1111-4111-8111-111111111111' \
-H 'Authorization: Bearer YOUR_TOKEN' Respuesta 200
{
"data": {
"orderId": "11111111-1111-4111-8111-111111111111",
"dispatchOrderId": "POS-93442",
"currentStatus": "in_route",
"createdAt": "2026-02-25T17:00:00.000Z",
"updatedAt": "2026-02-26T09:59:00.000Z",
"customerInfo": {
"customerName": "Ana Perez",
"customerPhone": "+34 600 000 000",
"customerEmail": "ana\u0040example.com",
"customerNotes": "Llamar si no responde"
},
"deliveryInfo": {
"pickupAddress": "Av. de Orihuela, 27, 03007 Alicante",
"pickupLat": 38.344498,
"pickupLng": -0.509259,
"deliveryAddress": "C. Cisne, 21-17, 03006 Alicante",
"deliveryLat": 38.346158,
"deliveryLng": -0.510089,
"deliveryNotes": "Piso 2, puerta B"
},
"paymentInfo": {
"method": "cash",
"status": "pending",
"totalAmount": "18.50",
"currency": "EUR",
"cashExpectedAmount": "20.00"
},
"assignment": {
"orderBudgetId": "22222222-2222-4222-8222-222222222222",
"dispatcherId": "33333333-3333-4333-8333-333333333333",
"restaurantId": "44444444-4444-4444-8444-444444444444",
"amount": "9.50",
"currency": "EUR"
}
}
} Campo en la respuesta
{
"deliveryInfo": {
"deliveryPhoneCode": "A7-42"
}
} Consola de prueba
Consulta un pedido desde la página
Pega un token válido, indica el orderId y consulta el detalle del pedido asociado a ese perfil.
Errores esperados
Respuestas habituales que debe contemplar la integración.
GET_ORDER_INVALID_PARAMS Parámetros inválidos
El orderId de la ruta no es un UUID válido.
AUTH_MISSING_TOKEN Token requerido
No se ha enviado token en Authorization ni x-api-token.
AUTH_INVALID_AUTHORIZATION_HEADER Cabecera Authorization inválida
La cabecera Authorization no tiene un formato válido.
AUTH_INVALID_TOKEN Token inválido
Token inexistente, expirado o no resoluble.
GET_ORDER_UNAUTHORIZED Usuario no autenticado
La ruta llega sin usuario autenticado tras el middleware. Es un caso defensivo.
GET_ORDER_FORBIDDEN Pedido fuera de alcance
El perfil autenticado no está vinculado al pedido solicitado.
GET_ORDER_NOT_FOUND Pedido no encontrado
No existe un pedido con ese identificador.
RATE_LIMIT_EXCEEDED Too Many Requests
Más de 3 peticiones por minuto a esta ruta para la misma IP o identidad.
GET_ORDER_FAILED Fallo no clasificado
Fallo no clasificado al obtener el pedido.
Ejemplo de error
{
"error": {
"code": "GET_ORDER_FORBIDDEN",
"message": "Forbidden: dispatcher is not linked to this order"
}
}