Skip to main content
El detalle de custodia cuenta toda la historia de la entrega de un pedido: qué cajas se reservaron, quién las tomó y las despachó, quién confirmó la entrega, qué aceptó o disputó el destino y quién cerró el pedido. Úsalo para seguir una entrega en el día a día y para responder preguntas de auditoría o disputas más adelante.

Quién puede verlo

  • Permiso fulfillment.read (Ver abastecimiento).
  • La sede del pedido en tu Acceso a sedes.
Sin el permiso, la pantalla dice “No puedes ver entregas. Pide el permiso al administrador de tu clínica.” Un pedido fuera de tus sedes, o que todavía no tiene registro de custodia, responde “Esta entrega no existe o no puedes verla.”

Dónde

  • En Entregas, sección Por cerrar o Problemas de entrega, selecciona el número del pedido.
  • En la página del pedido, Seguir la entrega (se muestra a quienes tienen algún permiso de custodia). Consulta Crear y seguir pedidos.
  • Después de confirmar una recepción, el enlace debajo del mensaje de confirmación.
  • En la pantalla de preparación de un pedido que ya no se está preparando, el enlace Seguimiento del pedido #1042.
  • Ruta directa: console.muveya.com/fulfillment/:orderId.

Qué muestra la pantalla

La pantalla se titula Seguimiento del pedido #1042, con Volver a entregas para regresar a la lista.

Datos y siguiente paso

Debajo de los datos, la pantalla ofrece el siguiente paso cuando te toca darlo: Para cerrar, consulta Cerrar el pedido.

Cajas

Cajas lista cada caja asignada al pedido. En un teléfono, cada caja se muestra como una tarjeta con etiquetas. Cuando una caja se separó al preparar, la lista muestra el contenedor nuevo, no la caja original. Si no hay cajas asignadas, la pantalla dice “No hay cajas asignadas a este pedido.”

Historial

Historial lista lo que pasó, una entrada por evento, cada una con la persona y la fecha y hora en el formato de tu navegador. Las personas aparecen con su nombre en el equipo; quien tiene la sesión abierta aparece como Tú, las acciones que muveya hizo por su cuenta como Muveya (automático), y quienes salieron del equipo como Ex integrante del equipo. Primero van los movimientos de existencias, del más antiguo al más reciente. Cada uno se lee “movimiento · código de caja · cambio de cantidad”, por ejemplo “Despachado · BX-000123 · -10”. Los movimientos que no cambian la cantidad disponible omiten el número, por ejemplo “Tomado para el pedido · BX-000123”. Después de los movimientos van los registros de custodia: Si todavía no pasó nada, la sección dice “Todavía no pasó nada.”
Los movimientos hechos sobre la caja original de una separación muestran Caja que ya no está en el registro en lugar de su código, porque la lista Cajas solo nombra el contenedor nuevo. Abre la caja original (consulta Cajas y etiquetas) para ver su propio historial.

Usarlo en auditorías y disputas

Una revisión típica de una disputa:
1

Confirma la cadena de personas

Verifica que quien tomó, quien despachó y quien confirmó la entrega sean las personas esperadas de la parte de origen, y que la recepción la haya hecho la parte de destino.
2

Compara lo entregado con lo recibido

Cada caja de la entrega debe aparecer una vez en la recepción, como aceptada o disputada.
3

Sigue cada caja disputada

Busca su movimiento Devuelto y su Estado de la caja actual. Si volvió en cuarentena, decide qué hacer con ella desde su página de caja.
4

Revisa el lote si hace falta

Si el problema puede afectar a todo un lote, continúa en Retiro de lote.

Qué no muestra la pantalla

  • El texto de Evidencia del problema escrito en la recepción. Se guarda, pero por ahora no se muestra en la consola ni lo devuelve la API.
  • Las notas por caja de una disputa y la elección de cuarentena. La API devuelve ambas.
  • La referencia del transportista escrita al despachar. GET /v1/fulfillments la devuelve como carrierRef.
  • El registro de auditoría. Por ahora no hay una pantalla de auditoría en la consola.
  • Una exportación. Para guardar los historiales de custodia fuera de muveya, léelos desde la API.
A estos registros solo se agregan datos: nada de este historial se puede editar ni borrar. Una caja disputada se corrige con un movimiento nuevo Devuelto, nunca cambiando el Despachado.

Leerlo desde la API

La operación GET /v1/fulfillments/{orderId} devuelve el mismo historial de custodia para integraciones y reportes.
  • Autenticación: una clave de API (mvy_test_...) en el encabezado Authorization: Bearer. Por ahora las claves de API no se crean desde la consola; consulta Autenticación.
  • Scope: fulfillment:read. Consulta Scopes.
  • Cobertura: toda la cuenta de clínica dental de la clave. Una clave no tiene filtro por sede.
  • Solo lectura: los pasos de custodia (preparar, despachar, entregar, recibir, cerrar) no se pueden hacer por la API ni por MCP.

Respuesta

string
requerido
El id del pedido.
string
requerido
El estado de custodia: allocating, allocated, picking, dispatched, delivered, exception, received, partially_fulfilled o closed.
object[]
requerido
Los movimientos de existencias del pedido, del más antiguo al más reciente. Cada uno tiene movementId, type, boxId, catalogItemId, quantityDelta, actorId, occurredAt y recordedAt, y cuando corresponde reservedDelta, fromWarehouseId, toWarehouseId, reasonCode, secondActorId, idempotencyKey y correlationId.
object
Presente cuando se confirmó la entrega: actorUserId, deliveredAt, boxIds y, si hubo un problema de entrega, exception con reason y note opcional.
object
Presente cuando se confirmó la recepción: actorUserId, receivedAt, acceptedBoxIds y disputed, una lista de boxId, reason, quarantine y note opcional.
object
Presente cuando se cerró el pedido: actorUserId y closedAt.
Ejemplo de respuesta
En qué se diferencia la API de la pantalla:
  • Devuelve ids, no nombres ni códigos de caja. Lee el código y el estado de una caja con GET /v1/inventory/boxes/{boxId} (scope inventory:read), y un insumo con GET /v1/catalog/items/{itemId} (scope catalog:read).
  • actorId y actorUserId son ids de integrantes. Las acciones que muveya hizo por su cuenta llevan system:fulfillment.
  • El estado allocating puede aparecer por un momento mientras corre la reserva; la consola lo muestra como Reservando existencias.
  • Responde 404 cuando el pedido no existe, pertenece a otra cuenta de clínica dental o todavía no tiene registro de custodia (un pedido aprobado cuyas existencias no están reservadas).
  • Otras respuestas: 401 si la clave falta o no es válida, 403 si la clave no tiene fulfillment:read, 429 si la clave supera su límite de solicitudes. Consulta Errores y Límites de uso.
Para listar registros de custodia, usa GET /v1/fulfillments con el filtro opcional status, limit (de 1 a 200, 50 por defecto) y cursor. Cada elemento tiene orderId, status, createdAt, updatedAt y, cuando corresponde, sourceWarehouseId, dispatchedAt y carrierRef. Consulta Paginación.
La herramienta MCP fulfillment.get_pick_list necesita el permiso fulfillment.pick, que los scopes OAuth actuales de solo lectura no conceden, así que por ahora se rechaza en el endpoint /mcp. Consulta Herramientas MCP.

Páginas relacionadas

Resumen de entregas

Ciclo de custodia, permisos y partes.

Entrega y recepción

Cómo se crean los registros de entrega, recepción y cierre.

Cajas y etiquetas

El historial completo de una caja.

Scopes

Qué scope necesita cada lectura.