> ## Documentation Index
> Fetch the complete documentation index at: https://muveya.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Solución de problemas

> Encuentra qué salió mal a partir de lo que ves en pantalla, por qué pasa y qué hacer, desde el inicio de sesión hasta las entregas, WhatsApp, la API y MCP.

Usa esta página cuando algo no funcionó. Las entradas están agrupadas por área y llevan el nombre de lo que ves. Cada una explica por qué pasa, qué hacer y qué página trata el tema completo.

La consola muestra sus mensajes en el idioma que elegiste. Esta página los cita en español, en negrita, tal como los escribe la consola.

<Tip>
  Muchos problemas vienen del acceso. El acceso de una persona tiene tres partes: permisos, sedes y bodegas. Ningún rol incluye permisos de inventario, pedidos, aprobaciones, entregas ni reportes, ni siquiera **Propietario**. Cuando una pantalla aparece vacía o rechaza una acción, revisa primero [Roles y permisos](/docs/es/account/roles-and-permissions).
</Tip>

## Antes de contactar a soporte

Reúne estos datos antes de escribir, para que el equipo encuentre el problema desde la primera respuesta:

| Qué | Dónde encontrarlo |
| - | - |
| El nombre de la clínica dental | El selector **Clínica dental**, arriba en la barra lateral, o **Elige una clínica dental**. |
| El correo de tu cuenta | En la barra lateral, sobre **Cerrar sesión**. Si puedes, escribe desde esa dirección. |
| La dirección de la pantalla | La barra de direcciones del navegador, por ejemplo `console.muveya.com/fulfillment/…/pick`. |
| La fecha, la hora y la zona horaria | Cuándo pasó, lo más preciso que puedas. |
| El mensaje exacto | Copia el texto que muestra la pantalla. |
| El registro | El número de pedido (por ejemplo `#42`), el código de caja (por ejemplo `BX-7K3QM9`), el SKU (por ejemplo `GLV-NIT-M`) o la dirección de la página de estado de la importación. |
| Para errores de la API y MCP | El `requestId` del documento de problema, la operación y, solo para `/v1`, el nombre o prefijo de la clave de API. |
| Para WhatsApp | La hora del mensaje y la opción que estabas usando. |

<Warning>
  Nunca envíes una contraseña, un código de verificación, una clave de API completa ni una referencia de paciente (`patientRef`, referencias de atención o cualquier dato que identifique a un paciente). Tampoco envíes capturas de pantalla que los muestren. Soporte nunca te los pide.
</Warning>

## Inicio de sesión y acceso

<AccordionGroup>
  <Accordion title="No encuentro una pantalla en el menú">
    **Lo que ves:** falta una entrada como **Pedidos**, **Aprobación de pedidos**, **Entregas**, **Reportes** o **Equipo** en el menú.

    **Por qué pasa:** la consola muestra esas cinco entradas solo a quienes pueden usarlas.

    | Entrada del menú | Se muestra si tienes |
    | - | - |
    | **Pedidos** | `orders.create`, `orders.read.all`, `approvals.decide` o cualquier permiso de entregas |
    | **Aprobación de pedidos** | `approvals.decide` o `approvals.policy.manage` |
    | **Entregas** | Alguno de `fulfillment.pick`, `fulfillment.dispatch`, `delivery.confirm`, `receipt.confirm`, `fulfillment.close`, `fulfillment.read` |
    | **Reportes** | `reports.read` |
    | **Equipo** | `members.manage` |

    Las demás entradas (**Inicio**, **Sedes**, **Bodegas**, **Catálogo**, **Inventario**, **Reposición**, **Correcciones de existencias**) se muestran a todos, pero su contenido depende igual de tus permisos.

    **Qué hacer:**

    1. Pide a una persona que administre el equipo que abra **Equipo**, seleccione tu nombre y marque el permiso que necesitas. Un **Propietario** lo hace en su propia página.
    2. Recarga la página después del cambio.
    3. En un teléfono, abre el menú con el botón de menú de la barra superior.

    Si escribiste o pegaste una dirección y ves **Esta página no existe**, la dirección está mal. Selecciona **Volver al inicio** y usa el menú.

    Consulta [Roles y permisos](/docs/es/account/roles-and-permissions) y [Equipo](/docs/es/account/team).
  </Accordion>

  <Accordion title="Una pantalla dice que no tengo permiso">
    **Lo que ves:** uno de estos mensajes.

    | Mensaje | Qué falta |
    | - | - |
    | **Tu cuenta no tiene permiso para esta acción.** | Un permiso de esa pantalla o acción. En **Inventario** (**Existencias**) significa `inventory.read`. |
    | **No tienes permiso para recibir entregas. Pide a un administrador el permiso “Recibir entregas”.** | `inventory.receive` |
    | **No tienes permiso para ver existencias. Pide acceso a un administrador.** | `inventory.read` (en **Retiro de lote**) |
    | **No puedes crear pedidos. Pide al administrador de tu clínica el permiso para solicitar insumos.** | `orders.create` |
    | **No decides aprobaciones de pedidos. Si deberías hacerlo, pide el permiso al administrador de tu clínica.** | `approvals.decide` |
    | **No puedes cambiar la política de aprobación. Pide el permiso al administrador de tu clínica.** | `approvals.policy.manage` |
    | **No participas en las entregas. Pregunta al administrador de tu clínica si deberías preparar, entregar o recibir pedidos.** | Los seis permisos de entregas |
    | **No puedes preparar pedidos. Pide al administrador de tu clínica el permiso para preparar.** | `fulfillment.pick` |
    | **No puedes recibir pedidos. Pide el permiso al administrador de tu clínica.** | `receipt.confirm` |
    | **Para recibir caja por caja también necesitas permiso para ver entregas. Pídelo al administrador de tu clínica.** | `fulfillment.read` |
    | **Necesitas el permiso Ver reportes** | `reports.read` |
    | **No tienes acceso a la administración del equipo. Consulta con el administrador de tu clínica.** | `members.manage` |

    Otros dos mensajes tratan de sedes y bodegas, no de permisos:

    * **No tienes bodegas asignadas. Pide a un administrador que te dé acceso.** Tu **Acceso a bodegas** está vacío, así que no puede aparecer ninguna existencia.
    * **No tienes sedes asignadas. Pide a un administrador que te dé acceso.** Tu **Acceso a sedes** está vacío, así que no puede aparecer ningún pedido.

    **Por qué pasa:** muveya revisa cada solicitud en el servidor contra tus permisos y tus sedes y bodegas. Lo que está fuera de tus sedes o bodegas responde como si no existiera, por ejemplo **Este registro no está disponible en la cuenta de clínica dental activa.** o **Este pedido no existe o no puedes verlo.**

    **Qué hacer:** pide a una persona con **Gestionar acceso del equipo** que te otorgue el permiso, o la sede o bodega, en **Equipo**. Los cambios se aplican desde tu siguiente acción. Si **Alertas de existencias** o **Conteos** solo muestran su mensaje de carga, te falta **Ver inventario**. **Ajustar y contar stock** no incluye **Ver inventario**: quien corrige existencias necesita los dos.

    Consulta [Roles y permisos](/docs/es/account/roles-and-permissions).
  </Accordion>

  <Accordion title="“Esta clínica dental ya no está disponible” o no hay clínicas para elegir">
    **Lo que ves:**

    * **Esta clínica dental ya no está disponible para tu cuenta. Elige otra clínica.** al seleccionar una clínica en **Elige una clínica dental**.
    * **No hay clínicas dentales disponibles** con **Tu cuenta no tiene acceso activo a una clínica dental. Pide a un administrador que revise tu invitación o membresía.**
    * **No pudimos cargar tus clínicas dentales** con el botón **Reintentar**.

    **Por qué pasa:** tu membresía en esa clínica terminó (te suspendieron o te retiraron) después de que se cargó la lista, o no tienes ninguna membresía activa. También puede ser que todavía no aceptaste tu invitación. Las membresías suspendidas y retiradas no aparecen en la lista.

    **Qué hacer:**

    1. Elige otra clínica, o selecciona **Reintentar** si la lista no se cargó.
    2. Si deberías pertenecer a la clínica, pregunta a una persona que administre su equipo. A una persona suspendida se la puede reactivar con **Reactivar acceso**; una persona retirada necesita una nueva invitación.
    3. Después de una reactivación, vuelve a iniciar sesión.

    Si otra pestaña cambió la clínica, ves **La cuenta de clínica dental activa cambió en otra pestaña. Lo que estabas registrando aquí no se envió: revísalo en esta cuenta antes de continuar.** o **La cuenta de clínica dental activa cambió. Recarga la página antes de volver a intentar.** Recarga la página y revisa qué clínica está activa antes de repetir la acción.

    Consulta [Iniciar sesión](/docs/es/account/sign-in).
  </Accordion>

  <Accordion title="No puedo iniciar sesión o se cerró mi sesión">
    | Lo que ves | Por qué pasa | Qué hacer |
    | - | - | - |
    | **Revisa tu correo, contraseña y código de verificación, si usas uno. Luego inténtalo de nuevo.** | Correo o contraseña incorrectos, falta el código del autenticador o es incorrecto, el correo no está verificado o la contraseña nunca se configuró. El mensaje es el mismo a propósito. | Revisa cada dato. Si tu cuenta tiene autenticador, abre **Tengo un código de verificación** y escribe los seis dígitos. Si nunca terminaste la configuración, usa **¿Necesitas verificar tu correo?** |
    | **Hubo demasiados intentos. Espera unos minutos antes de volver a intentarlo.** | Demasiados intentos fallidos para ese correo desde tu red. | Espera 15 minutos y vuelve a intentarlo con cuidado. |
    | **Este enlace ya no está disponible** | Un enlace de verificación o de Google ya se usó, venció o se borró al recargar la página. | Pide un enlace nuevo o empieza de nuevo el inicio de sesión con Google. |
    | Llegas a la pantalla de inicio de sesión mientras trabajas | Tu sesión terminó: 30 minutos sin actividad, 30 días desde que iniciaste sesión, o cambió tu acceso (suspensión, retiro o cambio de rol). | Inicia sesión otra vez y elige la clínica. Vuelves a la página donde estabas; lo que no habías guardado no se envió. |

    Todavía no existe una pantalla para recuperar la contraseña. Escribe a [team@muveya.com](mailto:team@muveya.com) desde el correo de tu cuenta. Si creaste tu cuenta con Google, sigue usando **Continuar con Google**: esa cuenta no tiene contraseña de muveya.

    Consulta [Iniciar sesión](/docs/es/account/sign-in) y [Seguridad de la cuenta](/docs/es/account/security).
  </Accordion>

  <Accordion title="El enlace de la invitación no funciona">
    **Lo que ves** y **qué hacer**:

    | Mensaje | Por qué pasa | Qué hacer |
    | - | - | - |
    | **Esta invitación no está disponible** | El enlace no existe, venció (dura 24 horas), fue revocado, ya se usó o lo reemplazó un correo más nuevo. | Usa el correo de invitación más reciente o pide una nueva invitación. |
    | **Abre de nuevo el enlace de tu invitación** | Por seguridad, una invitación abierta dura solo 10 minutos después de cada paso. | Vuelve a abrir el enlace del correo. Sigue funcionando mientras la invitación esté vigente. |
    | **No pudimos verificar tu correo** | El enlace de confirmación se abrió en otro navegador, después de 10 minutos o dos veces. | Abre otra vez el enlace de la invitación en un solo navegador y repite los pasos ahí. |
    | **Esta invitación es para otra cuenta. Usa la cuenta que recibió la invitación.** | Iniciaste sesión, o elegiste una cuenta de Google, con otro correo. | Usa **Usar otra cuenta** e inicia sesión con el correo invitado. |
    | **Ya tienes una cuenta con este correo. Inicia sesión para continuar con la invitación.** | Elegiste **Crear mi cuenta**, pero el correo ya tiene una cuenta. | Inicia sesión y continúa con esa cuenta. |
    | **Ya perteneces a esta clínica dental. Inicia sesión para entrar.** | Tu membresía ya existe, activa o suspendida. | Inicia sesión y elige la clínica, o pide que te reactiven. |
    | **El administrador de la clínica debe revisar esta invitación. Pídele que la envíe otra vez.** | Quien la envió ya no tiene el acceso que ofrece. | Pide a quien administra el equipo que la revoque y cree una nueva. Reenviarla no lo resuelve. |
    | **Todavía estamos preparando tu acceso. Inténtalo de nuevo en un momento.** | Tu cuenta todavía se está preparando. | Espera unos segundos y repite. |
    | **Esta invitación cambió mientras la revisabas. Abre otra vez el enlace de tu invitación.** | Se reenvió o se revocó mientras tanto. | Abre el correo de invitación más reciente. |

    Abrir el enlace nunca acepta nada por sí solo: te unes solo cuando seleccionas **Aceptar invitación**.

    Consulta la sección de invitaciones en [Iniciar sesión](/docs/es/account/sign-in).
  </Accordion>

  <Accordion title="No llegó el correo de invitación o no puedo invitar a alguien">
    **Para la persona invitada:** revisa la carpeta de spam. El asunto del correo es **Te invitaron a una clínica en muveya**. Solo funciona el correo más reciente.

    **Para quien invita:** **Invitación creada para** solo significa que muveya está enviando el correo; nunca confirma que llegó. En **Equipo**, dentro de **Invitaciones pendientes**:

    * **Reenviar invitación** envía un enlace nuevo de 24 horas y anula el anterior. Puedes reenviar una vez por minuto; mientras tanto la fila muestra **Podrás reenviarla desde** y una hora.
    * Una invitación cuya hora de **Vence** ya pasó sigue en la lista y sigue bloqueando una nueva invitación a ese correo. Reenvíala o revócala.

    | Mensaje al invitar | Qué hacer |
    | - | - |
    | **Este correo ya tiene una invitación pendiente. Reenvíala desde la página del equipo.** | Reenvía o revoca la invitación existente en **Invitaciones pendientes**. |
    | **Algunos permisos o ubicaciones seleccionados no se pueden otorgar. Revisa la selección.** | Desmarca lo que tú no tienes, o las sedes y bodegas fuera de tu propio acceso. |
    | **Solo un owner puede invitar a un administrador o cambiar este rol. Elige el rol de miembro o pídeselo a un owner.** | Invita con el rol **Miembro**, o pídeselo a un **Propietario**. |
    | **Esta persona ya pertenece a esta clínica.** | Abre su página en **Equipo**. |

    Consulta [Equipo](/docs/es/account/team).
  </Accordion>
</AccordionGroup>

## Catálogo

<AccordionGroup>
  <Accordion title="Se rechaza Importar CSV o Exportar CSV">
    **Lo que ves:** tienes **Importar CSV** y **Exportar CSV** en **Catálogo**, pero la carga o la exportación responde **Tu cuenta no tiene permiso para esta acción.**

    **Por qué pasa:** los botones aparecen para cualquier persona con `catalog.manage` (**Gestionar catálogo**), pero muveya solo acepta una importación o exportación CSV de un miembro con rol **Propietario** o **Administrador**. A un **Miembro** con **Gestionar catálogo** se le rechaza.

    **Qué hacer:** pide a un propietario o administrador que importe o exporte el archivo, o pide a un propietario que cambie tu rol a **Administrador**. Mientras tanto, puedes seguir creando y editando insumos uno por uno.

    Consulta [Importar y exportar](/docs/es/catalog/import-export).
  </Accordion>

  <Accordion title="La importación falló o se rechazaron filas">
    | Lo que ves | Qué hacer |
    | - | - |
    | **El archivo no contiene las columnas CSV obligatorias.** | Revisa los nombres de las columnas (en inglés, con mayúsculas y minúsculas exactas), que el separador sea una coma (las hojas de cálculo en español o portugués suelen guardar con punto y coma) y que no quede ninguna comilla abierta. |
    | **El archivo debe pesar 5 MB o menos.** / **Usa un máximo de 10.000 filas de datos por archivo.** | Divide el archivo. |
    | **El procesamiento se interrumpió. La recuperación automática reintentará el trabajo pendiente.** | Espera. La página sigue revisando, y las filas ya creadas no se crean dos veces. |
    | **Este SKU ya existe.** | Una importación nunca actualiza insumos. Quita la fila o usa otro SKU. |
    | **La categoría no existe en esta clínica.** | Copia el id desde **ID de categorías para tu CSV** en la pantalla de importación. |
    | **La persona que cargó el archivo ya no tiene permiso.** | Quien cargó el archivo perdió el acceso durante la importación. Pide a un propietario o administrador que cargue las filas restantes. |

    Prepara el archivo corregido solo con las filas rechazadas. Los insumos importados empiezan como borrador: activa cada uno antes de poder pedirlo o recibirlo. No hay una lista de importaciones anteriores, así que guarda la dirección de la página **Estado de importación**.

    Consulta [Importar y exportar](/docs/es/catalog/import-export).
  </Accordion>

  <Accordion title="No puedo agregar un insumo a un pedido por su costo">
    **Lo que ves:** en un borrador de pedido, **Agregar insumo** responde **El registro cambió o ya existe. Revísalo antes de volver a intentar.**

    **Por qué pasa:** el insumo tiene un costo que no está confirmado para su unidad actual (estado de costo `review_required` o `invalid`, código `catalog.cost_unverified`). muveya se niega a copiar un costo que podría estar contado en otra unidad. La pantalla del pedido muestra el mensaje genérico.

    **Qué hacer:**

    1. Pide a alguien con **Gestionar catálogo** y **Ver costos de insumos** que abra el insumo en **Catálogo**.
    2. Si el costo muestra **Requiere confirmación para la unidad actual.**, esa persona revisa el importe y selecciona **Guardar costo** en **Costo del insumo** para confirmarlo en la unidad actual.
    3. Si muestra **Los datos anteriores del costo requieren revisión.**, escribe a [team@muveya.com](mailto:team@muveya.com) con el SKU.
    4. Vuelve a agregar el insumo al pedido.

    Un insumo sin ningún costo (**Sin definir**) sí se puede pedir; simplemente no suma al valor del pedido. Otros mensajes del mismo formulario: **La unidad de este insumo todavía no se revisó en el catálogo.** (la unidad no está fija) y **Este insumo no está activo en el catálogo.**

    Consulta [Costos](/docs/es/catalog/costs).
  </Accordion>
</AccordionGroup>

## Inventario

<AccordionGroup>
  <Accordion title="Se rechaza una recepción por el lote, los números de serie o el vencimiento">
    **Lo que ves:** **Este insumo necesita su lote, números de serie o fecha de vencimiento para recibirse. Revísalos y recibe de nuevo.** No se recibió nada.

    **Por qué pasa:** el insumo controla lote, números de serie o vencimiento, y alguno falta o no es válido:

    * **Número de lote** está vacío o solo tiene espacios.
    * **Fecha de vencimiento** falta o es anterior a hoy (UTC). Una fecha pasada siempre se rechaza.
    * **Números de serie** no coinciden con la cantidad: necesitas exactamente un número de serie por unidad base recibida (la cantidad multiplicada por el contenido de la presentación), sin vacíos ni repetidos. El campo es de una sola línea: separa los números con comas, porque Enter envía el formulario.

    **Qué hacer:** revisa el empaque, corrige los campos y vuelve a presionar **Recibir**. Un producto con la fecha de vencimiento ya pasada no se puede recibir.

    Otro mensaje nombra números de serie, por ejemplo **Estos números de serie ya se recibieron para este insumo: SN-0042. Un número de serie identifica una sola unidad: revisa el empaque o corrige la caja original con un ajuste.** Cada número de serie identifica una unidad en todas las cajas del insumo, en cualquier estado. Compara los números con el empaque; si una caja anterior quedó mal registrada, consulta [Correcciones](/docs/es/inventory/corrections).

    Consulta [Recibir existencias](/docs/es/inventory/receive).
  </Accordion>

  <Accordion title="Al escanear aparece “No encontramos esa caja.”">
    **Por qué pasa:** la pantalla de escaneo muestra este mismo mensaje cada vez que la búsqueda falla:

    * el código no existe en tu clínica dental, o no coincide exactamente (las mayúsculas y minúsculas cuentan; los espacios al inicio y al final se ignoran);
    * la caja está en una bodega fuera de tu **Acceso a bodegas**;
    * no tienes **Ver inventario**;
    * falló la conexión.

    muveya nunca revela si un código existe en una bodega que no puedes ver.

    **Qué hacer:**

    1. Compara el código con la etiqueta impresa y escríbelo a mano.
    2. Revisa que estés en la clínica dental correcta.
    3. Abre **Inventario**: si muestra **Tu cuenta no tiene permiso para esta acción.** o **No tienes bodegas asignadas. Pide a un administrador que te dé acceso.**, pide acceso en **Equipo**.
    4. Revisa tu conexión y vuelve a intentar.

    Un escaneo en la pantalla de preparación que responde **Ese código no está reservado para este pedido. Revisa la etiqueta y vuelve a escanear.** es otro caso: consulta [Preparar y despachar](/docs/es/deliveries/picking).

    Consulta [Cajas y etiquetas](/docs/es/inventory/boxes).
  </Accordion>

  <Accordion title="Una caja está agotada, vencida o cerrada">
    **Lo que ves:** la pantalla de la caja dice **Esta caja está cerrada y no admite más movimientos.** y no ofrece formularios.

    **Por qué pasa:** solo las cajas en estado **Activa** admiten movimientos. El estado aparece debajo del código de la caja:

    | Estado | Cómo llegó ahí | Qué puedes hacer |
    | - | - | - |
    | **Agotada** | Sus existencias en mano llegaron a cero por un consumo o una corrección de baja. | Nada en esa caja. Si después aparecen unidades, recíbelas como una caja nueva con **Recibir**. |
    | **En cuarentena** | Alguien la puso en cuarentena, un retiro de lote la retuvo o una recepción disputada la devolvió retenida. | Nada desde la consola: no hay forma de volver una caja a **Activa**. |
    | **Vencida** / **Dada de baja** | Alguien la sacó de uso. | Nada. Su historial sigue disponible. |
    | **En tránsito** | Se despachó para un pedido. | Espera la recepción en el destino (consulta Entregas, más abajo). |

    **Una caja vencida que todavía dice Activa.** Una caja no cambia de estado cuando pasa su fecha de vencimiento. Desde el día siguiente a esa fecha (UTC), consumirla o trasladarla responde **El registro cambió o ya existe. Revísalo antes de volver a intentar.**, separarla responde **Esta caja está vencida y no se puede separar.** y los pedidos nunca la reservan. Con **Ajustar y contar stock**, abre **Sacar la caja de uso** y elige **Marcar como vencida** (o **Descartar**).

    Para descartar una caja que ya está en cuarentena o vencida, escribe a [team@muveya.com](mailto:team@muveya.com): la consola ofrece esa acción solo para cajas activas.

    Consulta [Cajas y etiquetas](/docs/es/inventory/boxes) y [Resumen del inventario](/docs/es/inventory/overview).
  </Accordion>

  <Accordion title="Mi corrección no se aplicó: espera aprobación">
    **Lo que ves:** después de **Registrar corrección**, **Enviada para aprobación. Otra persona con permiso para corregir existencias debe aprobarla.** El valor **En mano** de la caja no cambió.

    **Por qué pasa:** la cantidad supera el umbral de aprobación de ese insumo en esa bodega. Si no hay umbral configurado, es 100; un umbral configurado en el formulario de mínimo (de 0 a 100) lo baja; un insumo marcado como de alto valor siempre necesita aprobación.

    **Qué hacer:**

    1. Pide a otro miembro con **Ajustar y contar stock** y acceso a esa bodega que abra **Correcciones de existencias** y seleccione **Aprobar** o **Rechazar**. No puedes decidir tu propia solicitud (**No puedes aprobar tu propia solicitud.**).
    2. Si ya no hace falta, selecciona **Retirar** en tu propia solicitud.

    | Mensaje | Qué significa |
    | - | - |
    | **Esta caja ya tiene una corrección esperando aprobación.** | Solo puede haber una corrección pendiente por caja. Decídela o retírala primero. |
    | **La caja cambió; hay que volver a solicitar la corrección o volver a contar.** | La caja tuvo un movimiento físico después de la solicitud. No se registró nada. Revisa **Movimientos** y luego vuelve a registrarla o cuenta la caja. |
    | **Alguien ya decidió esta solicitud.** | Cambia **Mostrar** a **Decididas** para ver el resultado. |
    | **La caja no tiene esa cantidad.** | Una baja no puede superar lo que la caja tiene en mano. |

    El motivo de un rechazo se guarda, pero no aparece en la lista.

    Consulta [Correcciones](/docs/es/inventory/corrections).
  </Accordion>

  <Accordion title="Disponible muestra un número negativo">
    **Lo que ves:** en **Existencias**, el valor **Disponible** de una caja es menor que cero.

    **Por qué pasa:** **Disponible** es **En mano** menos **Reservado**. Una corrección de baja o un consumo redujo lo que tiene la caja, pero las unidades que la caja guarda para pedidos aprobados siguen reservadas. muveya nunca inventa existencias para cubrirlas, así que el número negativo es el faltante de esos pedidos. **Reposición** cuenta esa caja como cero unidades utilizables.

    **Qué hacer:**

    1. Abre la caja y lee sus **Movimientos** para ver qué la bajó.
    2. Si las unidades realmente están en el estante, registra una corrección con **Sumar al registro** (puede necesitar aprobación).
    3. Si las unidades realmente faltan, el pedido que depende de la caja no se puede despachar con ella (el despacho responde **Una caja tomada tiene más de lo que lleva este pedido…**, aunque la caja tenga menos). Escribe a [team@muveya.com](mailto:team@muveya.com) con el número de pedido y el código de caja.

    Consulta [Correcciones](/docs/es/inventory/corrections) y [Resumen del inventario](/docs/es/inventory/overview).
  </Accordion>
</AccordionGroup>

## Pedidos y aprobaciones

<AccordionGroup>
  <Accordion title="El pedido se queda en Enviado">
    **Lo que ves:** el pedido muestra **Enviado** y **El pedido está pasando a su siguiente paso. Esta pantalla se actualiza sola en unos segundos.**, pero nunca avanza. Quienes administran la política también pueden ver **Todavía no hay política de aprobación: los pedidos enviados esperan hasta que se publique una** en **Inicio**.

    **Por qué pasa:** tu clínica dental nunca publicó una política de aprobación. Sin ella, muveya no aprueba nada ni pide a nadie que decida. Los pedidos enviados se procesan solo cuando muveya procesa los envíos de la clínica, lo que ocurre cada vez que alguien envía un pedido.

    **Qué hacer:**

    1. Alguien con **Gestionar reglas de aprobación** abre **Aprobación de pedidos**, luego **Política de aprobación**, y publica una política: con reglas, o con **Publicar sin aprobaciones** en **Sin aprobación**.
    2. Los pedidos que ya esperaban avanzan la próxima vez que alguien de tu clínica dental envíe un pedido.
    3. Si un pedido sigue en **Enviado** un rato después, escribe a [team@muveya.com](mailto:team@muveya.com) con el número de pedido.

    Consulta [Política de aprobación](/docs/es/orders/approval-policy).
  </Accordion>

  <Accordion title="No puedo aprobar mi propio pedido">
    **Lo que ves:** tu pedido no aparece en **Aprobación de pedidos**. Al abrirlo ves **Tú solicitaste este pedido, así que otra persona tiene que decidirlo.** y ningún formulario, y el pedido dice **Tú solicitaste este pedido, así que otra persona tiene que aprobarlo.** Si de todos modos llega una decisión a muveya: **Tú solicitaste este pedido, así que no puedes decidirlo.**

    **Por qué pasa:** separación de funciones. Quien solicita un pedido nunca puede aprobarlo ni rechazarlo, tenga los permisos que tenga. El intento queda en el registro de auditoría.

    **Qué hacer:** otra persona con **Decidir aprobaciones** y acceso a la sede del pedido debe decidirlo. Asegúrate de que cada sede tenga al menos una persona así además de quienes suelen pedir. A quienes aprueban también hay que otorgarles **Decidir aprobaciones** de forma explícita: ningún rol lo incluye.

    Consulta [Aprobar o rechazar pedidos](/docs/es/orders/approvals).
  </Accordion>

  <Accordion title="Mi decisión no se registró porque el pedido cambió">
    **Lo que ves:**

    * **Alguien decidió o cambió este pedido hace un momento. La pantalla ya muestra la versión más reciente; revísala antes de decidir.**
    * **Este pedido ya no espera una decisión. La pantalla ya muestra en qué paso está.**
    * **Esa etapa no es parte del plan de aprobación de este pedido.**

    **Por qué pasa:** muveya registra una decisión solo contra la versión del pedido que cargó tu pantalla. Otra persona decidió primero, quien lo solicitó lo canceló, o ya habías registrado una decisión distinta en esa etapa. Una decisión no se puede cambiar después, ni siquiera por quien la tomó.

    **Qué hacer:** lee la pantalla actualizada. Si el pedido todavía espera, vuelve a elegir la etapa y decide. Si ya se aprobó, se rechazó o se canceló, no hace falta nada más. La sección **Decisiones**, al final, lista todas las decisiones.

    Consulta [Aprobar o rechazar pedidos](/docs/es/orders/approvals).
  </Accordion>

  <Accordion title="No puedo cancelar un pedido aprobado">
    **Lo que ves:** no aparece el botón **Cancelar pedido**, o la cancelación responde **El pedido ya no está en un paso donde se pueda hacer esto.**

    **Por qué pasa:** solo quien solicitó el pedido puede cancelarlo, y solo mientras está en **Borrador**, **Enviado** o **Esperando aprobación**. Desde **Aprobado** en adelante muveya rechaza la cancelación para todos, incluidos propietarios y administradores. **Rechazado**, **Cancelado** y **Cerrado** son estados finales.

    **Qué hacer:** si hay que detener un pedido aprobado, escribe a [team@muveya.com](mailto:team@muveya.com) con el número de pedido. Si solo necesitas corregir el encabezado (sede, destino, origen o motivo), cancela el borrador mientras todavía puedes y crea un pedido nuevo: el encabezado no se puede editar.

    Consulta [Crear y seguir pedidos](/docs/es/orders/create-and-track).
  </Accordion>
</AccordionGroup>

## Entregas

<AccordionGroup>
  <Accordion title="El pedido está aprobado pero no aparece en Entregas">
    **Lo que ves:** el pedido sigue en **Aprobado** con **El pedido está pasando a su siguiente paso. Esta pantalla se actualiza sola en unos segundos.**, no aparece en **Por preparar** y la pantalla de preparación dice **No hay cajas reservadas para este pedido por ahora.**

    **Por qué pasa:** muveya reserva existencias por su cuenta cuando se aprueba un pedido, todo o nada. Si alguna línea no se puede cubrir con cajas utilizables, no reserva nada y deja el pedido en **Aprobado**. Utilizable significa **Activa**, sin pasar su fecha de vencimiento, contada en la misma unidad que la línea del pedido y en la bodega de origen cuando el pedido indica una en **Tomar existencias de**. La reserva se vuelve a intentar solo cuando se aprueba otro pedido de tu clínica dental; no hay un botón para reintentar.

    **Qué hacer:**

    1. Revisa las existencias de cada insumo en **Existencias** y **Reposición**.
    2. Recibe o traslada las existencias que faltan a un lugar utilizable.
    3. El pedido se reserva la próxima vez que se apruebe otro pedido de la clínica dental.
    4. Si sigue en **Aprobado**, escribe a [team@muveya.com](mailto:team@muveya.com) con el número de pedido.

    Con **Cualquier bodega central**, la reserva puede tomar cajas de cualquier bodega de la clínica dental: revisa **Tomar de** en la lista de preparación.

    Consulta [Resumen de entregas](/docs/es/deliveries/overview).
  </Accordion>

  <Accordion title="No puedo despachar el pedido">
    | Lo que ves | Por qué pasa | Qué hacer |
    | - | - | - |
    | No aparece el panel **Despacho**, o no puedes entrar a la pantalla de preparación | El despacho se hace en la pantalla de preparación, que necesita **Preparar pedidos** además de **Despachar pedidos**. | Pide los dos permisos. |
    | **Podrás despachar cuando todas las cajas estén tomadas.** | Alguna caja de la lista todavía no está tomada. | Escanea todas las cajas de **Cajas por tomar**. |
    | **Todavía no hay cajas tomadas para despachar.** | No se tomó ninguna caja, el pedido no está **En preparación**, o la sede de origen está fuera de tu **Acceso a sedes**. | Toma las cajas primero, o pide acceso a la sede de origen. |
    | **Una caja tomada tiene más de lo que lleva este pedido. Las cajas viajan completas: escanéala de nuevo para separar la cantidad del pedido en su propio contenedor.** | Una caja tomada ya no coincide exactamente con el pedido: su **En mano** o su **Reservado** difiere de la cantidad del pedido (unidades de más, la reserva de otro pedido, o un consumo o corrección después de tomarla), o ya no está activa o venció. El mensaje es el mismo aunque la caja ahora tenga menos. | Volver a escanear la caja no la separa: una caja ya tomada solo responde **Esa caja ya está registrada como tomada para este pedido.** Abre la caja y lee sus **Movimientos**. Si una corrección se registró por error y la caja realmente tiene la cantidad del pedido, registra la corrección contraria. Si no, escribe a [team@muveya.com](mailto:team@muveya.com) con el número de pedido y el código de caja. |
    | **Este registro no está disponible en la cuenta de clínica dental activa.** | Una caja está en una bodega fuera de tu **Acceso a bodegas**. | Pide acceso, o pide ayuda a alguien que lo tenga. |

    No se despacha nada hasta que todas las cajas tomadas pasan la revisión. Una caja fuera de tu **Acceso a bodegas** se rechaza recién durante el despacho, así que las cajas anteriores pueden quedar ya en tránsito: pide a un compañero con acceso a esa bodega que vuelva a despachar. Si una caja reservada desapareció de la lista antes de tomarla (por ejemplo, después de un retiro de lote), el pedido puede despacharse sin ella: compara primero la lista con las líneas del pedido.

    Consulta [Preparar y despachar](/docs/es/deliveries/picking).
  </Accordion>

  <Accordion title="Una caja sigue En tránsito">
    **Por qué pasa y qué hacer:**

    | Situación | Qué hacer |
    | - | - |
    | El pedido está en **Despachado** o **Entregado** | Es normal: una caja sigue **En tránsito** hasta que el destino confirma la recepción. Confirma la entrega y luego recibe el pedido. |
    | El pedido está en **Problema de entrega** | Se informó un problema en la entrega. No hay pantalla para resolverlo y las cajas siguen **En tránsito**. El propietario de la clínica dental escribe a [team@muveya.com](mailto:team@muveya.com) con el número de pedido y lo que pasó. |
    | El pedido está en **Recibido** o **Recibido en parte** | Un paso de existencias posterior a la recepción no terminó. muveya lo reintenta en segundo plano. Revisa más tarde la tabla **Cajas** en la página de seguimiento del pedido. Si una caja sigue **En tránsito**, escribe a [team@muveya.com](mailto:team@muveya.com). |

    Una caja en tránsito no cuenta en ninguna de las dos bodegas y no admite movimientos.

    Consulta [Confirmar la entrega, recibir y cerrar](/docs/es/deliveries/delivery-and-receipt).
  </Accordion>

  <Accordion title="No puedo recibir el pedido">
    | Lo que ves | Qué hacer |
    | - | - |
    | **Este pedido todavía no se entregó, así que no hay nada por recibir.** | El origen debe confirmar la entrega primero. |
    | **No hay nada por recibir de este pedido aquí.** | El pedido no está en **Entregado**, o su sede de destino está fuera de tu **Acceso a sedes**. |
    | **Esta entrega no existe o no puedes verla.** | Aparece al abrir la página: la sede del pedido está fuera de tu **Acceso a sedes**, o la dirección está mal. |
    | **Tu cuenta no tiene permiso para esta acción.** | Te falta **Confirmar recepción**, o tu **Acceso a sedes** es una lista de sedes que incluye la sede de origen de un traslado entre dos sedes. Pide ayuda a un miembro de la sede de destino. |
    | **Una caja disputada necesita evidencia. Describe lo que viste.** | Completa **Evidencia del problema** cuando disputes una caja. |
    | **La decisión debe cubrir exactamente las cajas entregadas. Recarga la página y vuelve a revisar.** | Recarga y vuelve a decidir cada caja. |

    La recepción es por caja completa: no hay una cantidad recibida. Consulta [Confirmar la entrega, recibir y cerrar](/docs/es/deliveries/delivery-and-receipt).
  </Accordion>

  <Accordion title="No puedo cerrar el pedido">
    **Lo que ves:** no aparece el botón **Cerrar pedido**, o ves **Este pedido todavía no se puede cerrar.**

    **Por qué pasa:**

    * El botón está en la página de seguimiento del pedido, que necesita **Ver abastecimiento** además de **Cerrar abastecimiento**.
    * Solo se pueden cerrar pedidos en **Recibido** o **Recibido en parte**. Un pedido en **Problema de entrega** no.
    * Una caja del pedido sigue **En tránsito** (consulta la entrada anterior).
    * La sede de destino está fuera de tu **Acceso a sedes**, o tu acceso es una lista de sedes que incluye la sede de origen de un traslado entre dos sedes.

    **Qué hacer:** revisa el estado del pedido y la tabla **Cajas**, pide el permiso o la sede que falta y, si una caja sigue en tránsito, vuelve a intentarlo más tarde. Cerrar dos veces solo muestra **Este pedido ya estaba cerrado.**

    Consulta [Confirmar la entrega, recibir y cerrar](/docs/es/deliveries/delivery-and-receipt).
  </Accordion>
</AccordionGroup>

## WhatsApp

<AccordionGroup>
  <Accordion title="El chat me pide una y otra vez que vincule mi cuenta">
    **Lo que ves:** cada mensaje recibe el aviso de vinculación: **Para operar muveya desde WhatsApp, primero vincula tu cuenta: responde con el código de un solo uso que generaste en la consola.** Un código que falla recibe **Ese código no es válido o expiró. Genera uno nuevo en la consola y envíalo por aquí.**

    **Por qué pasa:** el número no está vinculado, la membresía se suspendió o se retiró, o la vinculación es anterior a una suspensión (las vinculaciones siguen cerradas después de una reactivación). Un código dura 10 minutos, sirve una sola vez, y un código más nuevo anula el anterior.

    **Qué hacer:** la consola todavía no tiene una pantalla para crear el código de vinculación, aunque el aviso la mencione. Además, el canal de WhatsApp todavía no está activado en el servicio de producción. Un código solo se puede crear para ti con tu sesión iniciada en tu propia cuenta; el equipo de muveya no puede crearlo por ti. Escribe a [team@muveya.com](mailto:team@muveya.com) si quieres usar el canal. Para pasar un número vinculado a otra persona o clínica, o para desvincularlo, también escribe a [team@muveya.com](mailto:team@muveya.com).

    Una respuesta que empieza con **No tienes permiso para** significa que te falta el permiso de esa opción o que no tienes bodegas asignadas: pídelo en **Equipo**.

    Consulta [Canal de WhatsApp](/docs/es/whatsapp/overview).
  </Accordion>

  <Accordion title="El chat responde en español">
    **Por qué pasa:** por ahora el canal responde en español a todas las personas, sin importar el idioma que uses en la consola. Existen versiones en inglés y en portugués de cada mensaje, pero todavía no se seleccionan. Los botones también están en español: **Confirmar**, **Corregir**, **Cancelar**.

    **Qué hacer:** no hay ningún problema con tu cuenta. [Operaciones por WhatsApp](/docs/es/whatsapp/operations) muestra cada mensaje en los tres idiomas.
  </Accordion>
</AccordionGroup>

## App Android

La app Android muestra sus propios mensajes en el idioma que tiene configurado. Esta sección los cita en español, tal como los escribe la app.

<AccordionGroup>
  <Accordion title="La app dice que no está conectada">
    **Lo que ves:** **Esta app de desarrollo aún no está conectada. Pide a tu equipo la app configurada.** No aparece ninguna opción para iniciar sesión.

    **Por qué pasa:** esta copia de la app no está conectada a un servicio de muveya, así que no se puede hacer nada con ella. La app Android todavía no está disponible para todos y no está publicada en Google Play.

    **Qué hacer:** escribe a [team@muveya.com](mailto:team@muveya.com) si quieres usar la app. Mientras tanto, usa la consola en el navegador de tu teléfono.

    Consulta [App Android](/docs/es/android/overview).
  </Accordion>

  <Accordion title="El acceso con Google dice que no hay cuenta de muveya">
    **Lo que ves:** **No hay una cuenta de Muveya para este correo. Pide a un administrador de tu clínica que te invite.**

    **Por qué pasa:** la cuenta de Google que elegiste usa un correo que no tiene cuenta de muveya. La app solo inicia sesión con cuentas que ya existen: nunca crea una cuenta ni una clínica dental.

    **Qué hacer:**

    1. Si ya tienes una cuenta de muveya con otro correo, elige la cuenta de Google con ese correo, o inicia sesión con correo y contraseña.
    2. Si no, pide una invitación a una persona que gestione el equipo de tu clínica y acéptala en la consola.
    3. Luego inicia sesión en la app con el correo invitado.

    Para crear una clínica dental nueva, créala en la consola. Consulta [Inicia sesión y crea tu cuenta](/docs/es/account/sign-in).
  </Accordion>

  <Accordion title="La app me devolvió a la pantalla de inicio de sesión">
    **Lo que ves:** la pantalla de inicio de sesión con **Revisa tu correo, contraseña y código de autenticación.**, aunque no escribiste nada.

    **Por qué pasa:** tu sesión terminó: 30 minutos sin actividad, 30 días después de iniciar sesión, o cambió tu acceso (suspensión, retiro o cambio de rol). La app muestra el mismo mensaje que con datos incorrectos.

    **Qué hacer:** inicia sesión de nuevo. Lo que no habías enviado no se registró. Si el mismo mensaje aparece cuando sí escribes tus datos, revísalos y agrega el código de autenticación si tu cuenta lo usa.

    Consulta [App Android](/docs/es/android/overview).
  </Accordion>

  <Accordion title="El escáner no se abre">
    **Lo que ves:** **El escáner no está disponible en este teléfono. Escribe el código.**

    **Por qué pasa:** el escáner de códigos funciona dentro de los servicios de Google Play. No puede iniciar cuando el teléfono no tiene los servicios de Google Play, cuando están desactivados o cuando el componente del escáner todavía no terminó de descargarse en el teléfono.

    **Qué hacer:** escribe el código en **O escribe el código** y presiona **Buscar**, o recibe el insumo con **Recibir un insumo sin código**. En un teléfono con servicios de Google Play, revisa que estén activados y actualizados, deja el teléfono conectado unos minutos e intenta de nuevo.
  </Accordion>

  <Accordion title="Un código escaneado no se reconoce o no está permitido">
    **Lo que ves:** **Código no reconocido** con **Ninguna caja ni insumo a tu alcance tiene el código** seguido del código, o **La operación no está permitida.**

    **Por qué pasa:**

    * Ninguna caja de tus bodegas tiene exactamente ese código. Una caja fuera de tus bodegas se trata como si no existiera.
    * El código del proveedor no está registrado en una presentación activa, o su presentación está retirada.
    * En un GS1 DataMatrix, la presentación tiene el GTIN en su forma de 13 dígitos, mientras que el DataMatrix trae 14 dígitos.
    * No puedes recibir (`inventory.receive`), así que la app no busca códigos de proveedor.
    * **La operación no está permitida.** significa que te falta `inventory.read`, que la app necesita para buscar una caja.

    **Qué hacer:** revisa el código y tu acceso a bodegas. Pide a quien gestiona el catálogo que registre el código, incluido el GTIN de 14 dígitos de un DataMatrix, o recibe el insumo por nombre. Pide **Ver inventario** si ves **La operación no está permitida.**

    Consulta [Operaciones en la app Android](/docs/es/android/operations).
  </Accordion>

  <Accordion title="Falta Registrar uso o Trasladar en una caja">
    **Por qué pasa:** **Registrar uso** solo aparece cuando puedes consumir, la caja está **Activa**, su unidad no necesita revisión y **Disponible** es mayor que cero. **Trasladar a otra bodega** solo aparece cuando puedes trasladar cajas y la caja está **Activa**. La app muestra los botones según los permisos que leyó al iniciar sesión o en la última actualización.

    **Qué hacer:** revisa el **Estado** y lo **Disponible** de la caja. Si un administrador acaba de darte un permiso, abre **Menú**, **Cambiar organización** y presiona **Actualizar acceso**. Una caja cuya unidad necesita revisión se corrige en la consola.
  </Accordion>

  <Accordion title="Un uso no pide box ni área">
    **Lo que ves:** **Esta sede todavía no tiene boxes ni áreas, así que este uso no dirá adónde fue.**

    **Por qué pasa:** la sede de la caja no tiene boxes ni áreas activos, o la caja está en una bodega **Central**. La app solo ofrece boxes para cajas de una bodega express.

    **Qué hacer:** configura los boxes y áreas de la sede (consulta [Boxes y áreas](/docs/es/locations/destinations)). Para registrar adónde fue un uso desde una bodega central, usa la consola.
  </Accordion>

  <Accordion title="Una fila de Pendientes abre el inicio de sesión de la consola">
    **Por qué pasa:** las filas abren la consola en el navegador del teléfono, que tiene su propia sesión, distinta de la de la app.

    **Qué hacer:** inicia sesión una vez en la consola en ese navegador. Si no se abre nada, la app muestra **No pudimos abrir un navegador. Verifica que haya uno disponible e intenta de nuevo.**: instala o activa un navegador.
  </Accordion>
</AccordionGroup>

## API y MCP

<AccordionGroup>
  <Accordion title="401 api_keys.invalid">
    **Por qué pasa:** una sola respuesta cubre todos los problemas de la clave de API: el encabezado `Authorization` falta, está vacío o no usa `Bearer`; la clave está mal formada, mal escrita o incompleta; la clave no existe o fue revocada; el miembro para el que se creó fue suspendido o retirado (una reactivación no la recupera); o la clínica dental está suspendida.

    **Qué hacer:**

    1. Envía exactamente `Authorization: Bearer` seguido de la clave, sin comillas ni saltos de línea.
    2. Revisa que la variable que guarda la clave esté definida donde corre el programa.
    3. Llama a `GET /v1/me`, que no necesita ningún scope.
    4. Pregunta al miembro que pidió la clave si fue revocada o si sigue activo. Si hace falta, pide una clave nueva a [team@muveya.com](mailto:team@muveya.com): todavía no hay una pantalla de la consola para las claves.

    Consulta [Autenticación](/docs/es/api-reference/authentication).
  </Accordion>

  <Accordion title="403 api_keys.scope_missing">
    **Por qué pasa:** la clave es válida pero le falta un scope que la operación exige. La respuesta no dice cuál. No se pueden agregar scopes a una clave existente.

    **Qué hacer:** llama a `GET /v1/me`, compara sus `scopes` con [Scopes](/docs/es/api-reference/scopes) y pide una clave nueva con los scopes correctos. Los valores de pedidos y las referencias de pacientes nunca se devuelven a una clave, tenga los scopes que tenga: eso no es un error. Un registro de otra clínica dental responde `404`, nunca `403`.

    Consulta [Errores](/docs/es/api-reference/errors).
  </Accordion>

  <Accordion title="429 common.too_many_requests">
    **Por qué pasa:** la clave de API agotó su presupuesto de solicitudes de `/v1` en la ventana actual. MCP usa autenticación OAuth por separado.

    **Qué hacer:** espera los segundos de `Retry-After` y vuelve a intentar. Vigila `X-RateLimit-Remaining`, usa páginas grandes, guarda en caché lo que cambia poco y no ejecutes trabajos superpuestos con una misma clave. Si necesitas un presupuesto mayor, escribe a [team@muveya.com](mailto:team@muveya.com) con el volumen esperado.

    Consulta [Límites de uso](/docs/es/api-reference/rate-limits).
  </Accordion>

  <Accordion title="Una herramienta de MCP siempre responde common.forbidden">
    **Por qué pasa:**

    * `approvals.list_pending`, `management.pending_decisions` y `fulfillment.get_pick_list` leen el trabajo propio de una persona (sus decisiones pendientes, su lista de preparación). Los scopes OAuth actuales de solo lectura no conceden esos permisos, así que responden `common.forbidden`, aunque aparezcan en `tools/list`. Leer el recurso `muveya://tenant/approval-policy-summary` también se rechaza, con un error JSON-RPC `-32600` cuyo `data.code` es `common.forbidden`.
    * `clinics.list` necesita `inventory:read`, no `clinics:read`.
    * Cualquier otra herramienta responde `common.forbidden` cuando a la conexión le falta el scope delegado o la persona carece del permiso.

    **Qué hacer:** usa la consola para aprobaciones y preparación. Para las demás herramientas, revisa el scope que necesita cada una en [Herramientas MCP](/docs/es/mcp/tools) y vuelve a conectar con ese scope OAuth permitido. Las respuestas siguen el idioma solicitado.

    Consulta [Conectar un cliente](/docs/es/mcp/connect).
  </Accordion>
</AccordionGroup>

## Contacto

Si tu problema no está aquí, o los pasos no lo resolvieron, escribe a **[team@muveya.com](mailto:team@muveya.com)** con los datos de **Antes de contactar a soporte**, al inicio de esta página. Si puedes, escribe desde el correo de tu cuenta de muveya.

## Páginas relacionadas

<CardGroup cols={2}>
  <Card title="Roles y permisos" icon="key" href="/docs/es/account/roles-and-permissions">
    Qué habilita cada permiso y cómo lo limitan las sedes y bodegas.
  </Card>

  <Card title="Iniciar sesión" icon="right-to-bracket" href="/docs/es/account/sign-in">
    Cuentas, clínicas, sesiones e invitaciones.
  </Card>

  <Card title="Resumen de entregas" icon="truck" href="/docs/es/deliveries/overview">
    Los pasos de custodia y quién da cada uno.
  </Card>

  <Card title="Errores" icon="triangle-exclamation" href="/docs/es/api-reference/errors">
    Todos los códigos de error de la API y de MCP.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.