Orders API

Consultar detalle de pedido

Obtiene la información de un único pedido dentro del alcance del perfil autenticado.

Volver a todos los endpoints

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.

GET /api/orders/:orderId 200 OK
Auth requerida Perfil: dispatcher, restaurant o rider

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.

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
GET_ORDER_INVALID_PARAMS

Parámetros inválidos

El orderId de la ruta no es un UUID válido.

401
AUTH_MISSING_TOKEN

Token requerido

No se ha enviado token en Authorization ni x-api-token.

401
AUTH_INVALID_AUTHORIZATION_HEADER

Cabecera Authorization inválida

La cabecera Authorization no tiene un formato válido.

401
AUTH_INVALID_TOKEN

Token inválido

Token inexistente, expirado o no resoluble.

401
GET_ORDER_UNAUTHORIZED

Usuario no autenticado

La ruta llega sin usuario autenticado tras el middleware. Es un caso defensivo.

403
GET_ORDER_FORBIDDEN

Pedido fuera de alcance

El perfil autenticado no está vinculado al pedido solicitado.

404
GET_ORDER_NOT_FOUND

Pedido no encontrado

No existe un pedido con ese identificador.

429
RATE_LIMIT_EXCEEDED

Too Many Requests

Más de 3 peticiones por minuto a esta ruta para la misma IP o identidad.

500
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"
  }
}