> ## 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.

# Conteos físicos

> Cuenta lo que realmente hay en el estante, sigue lo que toca contar y lo que está en curso, organiza campañas de conteo por bodega y convierte las diferencias en correcciones

Un **conteo** compara lo que una caja contiene físicamente con lo que muveya dice que contiene. Cuando no coinciden, guardar el conteo escribe una corrección en el registro de movimientos, o la envía a aprobación cuando la diferencia es grande. muveya te ofrece tres herramientas:

* El **conteo rápido** (`/inventory/count`): cuenta todas las cajas de un insumo en una bodega.
* La pantalla **Conteos** (`/inventory/counts`): qué toca contar, los conteos en curso y cuánto difieren los conteos de los registros.
* Las **campañas de conteo** (`/inventory/count-campaigns/` seguido de la campaña): cuenta una bodega completa y sigue su cobertura.

## Quién puede hacerlo

| Acción | Permiso (etiqueta en la consola) |
| - | - |
| Ver la pantalla **Conteos**, una campaña y las diferencias | `inventory.read` (**Ver inventario**) |
| Iniciar, guardar y cancelar conteos; iniciar y cerrar campañas | `inventory.adjust` (**Ajustar y contar stock**), más `inventory.read` para cargar las cajas |
| Aprobar una diferencia sobre el umbral | Otro miembro con `inventory.adjust` (consulta [Correcciones de existencias](/docs/es/inventory/corrections)) |

Todo se limita a las bodegas a las que tienes acceso. Los permisos se explican en [Roles y permisos](/docs/es/account/roles-and-permissions).

## Cómo funciona un conteo: la ventana de medición

Un conteo tiene dos momentos. Al **iniciarlo**, muveya registra para cada caja la cantidad que espera (la columna **Esperado**): la cantidad en mano de la caja en ese instante. Al **guardarlo**, declaras lo que mediste y confirmas que no entró ni salió nada de las cajas mientras contabas.

Entre esos dos momentos muveya vigila cada caja. Si la caja tiene cualquier movimiento físico (una recepción, un consumo, un traslado, una separación, una toma para un pedido, un despacho, una devolución, una corrección, una cuarentena, un vencimiento o una baja), el conteo ya no describe el estante y no se puede guardar: debes iniciarlo otra vez y volver a medir. Reservar o liberar unidades para un pedido no es un movimiento físico y no afecta el conteo.

```mermaid theme={null}
flowchart LR
  A[Empezar a contar] --> B[Se registra la cantidad esperada]
  B --> C[Medir las cajas]
  C --> D[Confirmar que nada se movió y guardar]
  D --> E{¿La caja se movió mientras tanto?}
  E -- Sí --> A
  E -- No --> F{Diferencia}
  F -- Ninguna --> G[Sin diferencia]
  F -- Dentro del umbral --> H[Se escribe la corrección]
  F -- Sobre el umbral --> I[Pendiente en Correcciones de existencias]
```

Solo puede haber un conteo en curso por caja. Si alguien ya empezó a contar una caja y esta no se movió, iniciar otra vez reutiliza ese mismo conteo, así dos personas que cuentan el mismo estante comparten una sola ventana. Si la caja se movió desde entonces, iniciar otra vez reemplaza el conteo anterior por uno nuevo (el anterior queda registrado como cancelado).

## El conteo rápido

El conteo rápido lista las cajas activas de **un insumo en una bodega**. Lo abres desde:

* la acción **Contar** de una fila en **Reposición** (consulta [Reposición y alertas](/docs/es/inventory/replenishment-and-alerts));
* el enlace **Contar este insumo aquí** en la página de una caja (consulta [Cajas y etiquetas](/docs/es/inventory/boxes));
* el enlace **Contar** de un insumo dentro de una campaña de conteo (el conteo queda entonces asociado a esa campaña).

Si abres `console.muveya.com/inventory/count` directamente, sin insumo ni bodega, solo verás **Elige un insumo y una bodega desde reposición para contarlos.** y el enlace **Volver a reposición**.

La pantalla se titula **Contar un insumo**, con el insumo y la bodega debajo, por ejemplo "Guantes de nitrilo M · GLV-NIT-M en Bodega Central". En el teléfono cada caja se muestra como una tarjeta.

| Columna | Qué muestra |
| - | - |
| **Caja** | El código impreso de la caja, por ejemplo `BX-000123`. |
| **Esperado** | Vacío hasta que empiezas a contar; luego, la cantidad en mano registrada en ese momento. |
| **Lote** | El lote de la caja, si tiene. |
| **Vencimiento** | La fecha de vencimiento de la caja, si tiene. |
| **Contado** | El campo donde escribes lo que encontraste (con la etiqueta, por ejemplo, **Contado en BX-000123**). |
| **Resultado** | Qué pasó con esa caja al guardar. |

### Contar paso a paso

<Steps>
  <Step title="Empieza el conteo antes de medir">
    La pantalla te lo recuerda: "Empieza el conteo antes de medir, para notar cualquier movimiento mientras cuentas." Selecciona **Empezar a contar**. La columna **Esperado** se completa y los campos **Contado** quedan habilitados.
  </Step>

  <Step title="Mide y escribe lo que encontraste">
    Cuenta cada caja y escribe la cantidad en **Contado**. Deja un campo vacío para saltar esa caja por ahora: solo se guardan las cajas con un valor.
  </Step>

  <Step title="Elige el motivo de la diferencia">
    En **Motivo de la diferencia**, elige **Corrección de conteo**, **Dañado**, **Uso no registrado** u **Otro** (los códigos de motivo están en [Correcciones de existencias](/docs/es/inventory/corrections)). El motivo se aplica a todas las diferencias que guardes en este paso.
  </Step>

  <Step title="Confirma la ventana">
    Marca **No entró ni salió nada de estas cajas mientras contaba**. La casilla es obligatoria.
  </Step>

  <Step title="Guarda">
    Selecciona **Guardar conteo**. Cada caja recibe su propio resultado. Si alguna caja queda esperando aprobación, aparece el enlace **Ver correcciones de existencias**.
  </Step>
</Steps>

**Guardar conteo** queda deshabilitado hasta que marques la confirmación, al menos una caja tenga un valor contado y cada valor escrito sea un número entero de 0 o más. Un valor mayor que 1.000.000 se rechaza al guardar (**No se guardó**, con **Revisa los datos ingresados antes de volver a intentar.**). Después de guardar, la confirmación se desmarca: vuelve a marcarla antes de guardar más cajas.

### Resultados por caja

| Resultado | Qué significa |
| - | - |
| **Sin diferencia** | El conteo coincidió. Se guarda el conteo; no se escribe ningún movimiento. |
| **Corregido en +3** (o un número negativo) | La diferencia estaba dentro del umbral de aprobación y se escribió una corrección. |
| **Esperando que otra persona lo apruebe** | La diferencia superó el umbral. Espera en **Correcciones de existencias**; el conteo sigue en curso hasta que alguien decida. |
| **Cambió mientras contabas. Vuelve a contar.** | La caja se movió después de que empezaste. Selecciona **Empezar a contar** otra vez y vuelve a medir. |
| **Ya estaba registrado** | Este mismo resultado ya se había guardado. No se escribió nada nuevo. |
| **Otra corrección de esta caja espera aprobación. Apruébala, recházala o retírala en Correcciones de existencias y vuelve a contar.** | Ya hay una corrección de la caja esperando a una segunda persona. |
| **No se guardó** | No se pudo guardar el conteo; el mensaje debajo del botón explica por qué. |

### Límites

* El conteo rápido muestra hasta 50 cajas activas del insumo en esa bodega.
* Solo se listan cajas **Activas**. Si no hay ninguna, la pantalla dice **No hay cajas activas de este insumo en esta bodega.**
* Las cantidades contadas están en la unidad base del insumo, la misma unidad que **En mano**.
* Los miembros sin `inventory.adjust` ven **Solo un miembro que puede corregir existencias puede contarlas.**

## Qué registra un conteo guardado

| Resultado | Registro de movimientos | Estado del conteo |
| - | - | - |
| Sin diferencia | Nada | `submitted` |
| Diferencia dentro del umbral | Un movimiento de corrección, `adjust_gain` o `adjust_loss`, con el motivo elegido y asociado al conteo | `submitted` |
| Diferencia sobre el umbral | Nada todavía; aparece una solicitud en **Correcciones de existencias** con el origen **Conteo: contado 88, esperado 100** | `open` |
| Esa solicitud aprobada | Un movimiento de corrección que nombra a ambas personas | `submitted` |
| Esa solicitud rechazada o retirada | Nada | Sigue `open` hasta que vuelvas a contar o lo canceles |

La diferencia siempre es **contado menos esperado**. Las reglas del umbral (100 por defecto, más estricto por insumo y bodega, 0 para un insumo de alto valor) son las mismas que para las correcciones: consulta [Correcciones de existencias](/docs/es/inventory/corrections). Un conteo conciliado deja el registro de auditoría `inventory.cycle_count.reconciled`, y su corrección deja `inventory.adjust`.

<Warning>
  Contar **0** en una caja escribe una baja que la deja sin nada en mano, y la caja pasa a **Agotada**. Una caja agotada no admite más movimientos. Asegúrate de que la caja esté realmente vacía antes de guardar un cero.
</Warning>

## La pantalla Conteos

Selecciona **Conteos** en la pantalla **Existencias**, o ve a `console.muveya.com/inventory/counts`. La pantalla tiene tres secciones. **Por contar** y **Diferencia entre conteos y registros** siguen un solo selector, **Sin contar desde**: **Hace 7 días** (el predeterminado), **Hace 30 días** o **Hace 90 días**. **Conteos en curso** siempre muestra los conteos abiertos.

### Por contar

Una caja **toca contarse** cuando está activa y no tiene un conteo guardado desde la fecha elegida mientras está en su bodega actual. La tabla lista cada bodega con algo por contar:

| Columna | Qué muestra |
| - | - |
| **Bodega** | El nombre de la bodega. |
| **Cajas por contar** | Cuántas cajas activas tocan contarse ahí. |
| **Campaña** | Solo para miembros con `inventory.adjust`: el botón **Iniciar un conteo de Bodega Central** (con el nombre de la bodega). |

Cuando no hay nada por contar, la sección dice **Todas las cajas de tus bodegas se contaron en este período.** En **Inicio**, la tarjeta **Cajas por contar** muestra la misma cifra para los últimos 30 días.

### Conteos en curso

Todos los conteos que alguien empezó y nadie ha guardado ni cancelado todavía (los 100 más recientes).

| Columna | Qué muestra |
| - | - |
| **Insumo** | El nombre y el SKU del insumo. |
| **Caja** | El enlace **Abrir la caja**. |
| **Esperado** | La cantidad registrada al iniciar el conteo. |
| **Iniciado por** | Quién lo inició. |
| **Iniciado** | Cuándo. |
| **Cambiar** | Solo para miembros con `inventory.adjust`: el botón **Cancelar**. |

Si no hay ninguno: **No hay conteos en curso.**

### Diferencia entre conteos y registros

Esta sección mide qué tan exactos eran los registros, con los conteos guardados que se iniciaron desde la fecha elegida.

* Una frase de resumen, por ejemplo: "2 de 14 insumos fuera de meta: su conteo difirió de los registros en 2 % o más."
* La tabla **Diferencia por insumo** lista, por insumo y unidad, de peor a mejor:

| Columna | Qué muestra |
| - | - |
| **Insumo** | El nombre y el SKU del insumo. |
| **Unidad** | La unidad en que se contaron las cajas. Nunca se suman unidades distintas. |
| **Conteos** | Cuántos conteos guardados hay. |
| **Esperado** | Cantidad esperada total. |
| **Contado** | Cantidad contada total. |
| **Diferencia** | Diferencia absoluta total (un alta y una baja suman ambas). |
| **Diferencia %** | La diferencia dividida por lo esperado, o **Se encontró stock donde no se esperaba** cuando el total esperado era 0 y se contó algo. |
| **Meta** | **Dentro de la meta** por debajo de 2 %; **Fuera de meta** con 2 % o más, o cuando no hay porcentaje. |

* Los conteos de cajas cuya unidad no está verificada no se suman a ningún insumo; una nota indica cuántos son.
* La tabla **Campañas de conteo del período** lista cada campaña con conteos guardados: **Bodega**, **Conteos**, **Insumos**, **Fuera de meta** y el enlace **Abrir la campaña de Bodega Central**.
* Las notas de cobertura indican qué bodegas se contaron en el período, cuáles no ("Su stock no queda conciliado con estas cifras.") y, con **Salas que no cuentan su stock**, los boxes y áreas que no cuentan sus propias existencias, cuyas entregas son consumo estimado, nunca existencias exactas (consulta [Boxes y áreas](/docs/es/locations/destinations)).

Si no se guardó nada en el período: **Todavía no se envió ningún conteo.**

## Campañas de conteo

Una campaña cuenta una bodega completa. Por sí misma no mueve existencias: es un plan y un seguimiento de cobertura.

### Iniciar una campaña

<Steps>
  <Step title="Busca la bodega">
    En la pantalla **Conteos**, en **Por contar**, busca la bodega.
  </Step>

  <Step title="Iníciala">
    Selecciona **Iniciar un conteo de** y el nombre de la bodega. muveya toma como plan todas las cajas activas en esa bodega en ese momento (no solo las que tocan contarse) y abre la página de la campaña.
  </Step>
</Steps>

Solo puede haber una campaña en curso por bodega. Si intentas iniciar una segunda, verás **Ya hay un conteo en curso de esta bodega.**

<Note>
  La pantalla **Conteos** lista una campaña solo cuando tiene al menos un conteo guardado en el período elegido. Guarda la dirección de la página de la campaña (o guárdala en favoritos) para volver a una campaña que aún no tiene conteos guardados.
</Note>

### La página de la campaña

La página se titula **Conteo de Bodega Central** (con el nombre de la bodega), con su estado debajo: **En curso** o **Cerrado**.

| Elemento | Qué muestra |
| - | - |
| **Cajas por contar** | Cuántas cajas tiene el plan. |
| **Contadas** | Cajas del plan con un conteo guardado en esta campaña. |
| **Faltan** | Cajas del plan que aún no se cuentan. |
| Desglose | "Enviados 12 · en curso 3 · cancelados 1": los conteos de la campaña por estado. |
| Inicio y cierre | Quién la inició o la cerró, y cuándo. |
| **Insumos que faltan contar** | Cada insumo con **Cajas pendientes** y, mientras la campaña está en curso y tienes `inventory.adjust`, el enlace **Contar** seguido del nombre del insumo. |

El enlace abre el conteo rápido de ese insumo en esa bodega, y cada conteo que inicies desde ahí queda asociado a la campaña.

Algunas cosas que conviene saber sobre la cobertura:

* Un conteo que espera aprobación sigue en curso, así que su caja no cuenta como **Contadas** hasta que se aprueba la diferencia.
* Las cajas recibidas después de iniciar la campaña no forman parte del plan. Al empezar a contar desde la campaña, el proceso se detiene en una caja así; cuenta ese insumo desde **Reposición** o desde la página de la caja (consulta [Reposición y alertas](/docs/es/inventory/replenishment-and-alerts)).
* La fila **Cajas que ya no están en existencias** agrupa cajas del plan que la página ya no puede ubicar en esta bodega (por ejemplo, cajas trasladadas a otra). En una bodega con un historial largo de cajas (más de 200), también pueden quedar en esta fila cajas que siguen en el estante.

Cuando todas las cajas del plan están contadas: **Se contaron todas las cajas planificadas.**

### Cerrar una campaña

Mientras la campaña está en curso, los miembros con `inventory.adjust` ven "Ciérralo cuando se hayan contado las cajas planificadas. Las cajas pendientes quedan sin contar." y el botón **Cerrar el conteo**. Después de cerrarla, la página dice **El conteo se cerró.**

Cerrar no mueve existencias. Las cajas pendientes quedan sin contar, los enlaces **Contar** desaparecen y ningún conteo nuevo puede sumarse a la campaña. Un conteo de la campaña que ya estaba en curso todavía se puede terminar: abre el conteo rápido desde **Reposición** o desde la página de la caja, y retoma ese conteo (consulta [Reposición y alertas](/docs/es/inventory/replenishment-and-alerts)).

## Cancelar un conteo

<Steps>
  <Step title="Busca el conteo">
    En la pantalla **Conteos**, en **Conteos en curso**, busca la fila.
  </Step>

  <Step title="Cancélalo">
    Selecciona **Cancelar**. El diálogo **¿Cancelar este conteo?** explica: "No cambia nada en las existencias. Vuelve a iniciarlo cuando alguien pueda contar la caja."
  </Step>

  <Step title="Confirma">
    Selecciona **Sí, cancelar el conteo**, o **Seguir contando** para volver.
  </Step>
</Steps>

Un conteo cancelado no escribe nada en el registro y ya no se puede guardar. Un conteo guardado no se puede cancelar. Si el conteo tenía una diferencia esperando en **Correcciones de existencias**, esa solicitud ya no se puede aprobar: recházala o retírala.

## Conteos antiguos que requieren revisión

Un conteo iniciado antes del método de conteo actual, o cuyos registros son inconsistentes, no se puede guardar. muveya lo rechaza con el código `inventory.count_recovery_required` (titulado "El conteo requiere revisión"), y el conteo rápido muestra **No se guardó** con **El registro cambió o ya existe. Revísalo antes de volver a intentar.** No vuelvas a ingresar la misma medición: selecciona **Empezar a contar** para abrir un conteo nuevo (reemplaza al anterior) y mide otra vez. Si el rechazo se repite, escribe a [team@muveya.com](mailto:team@muveya.com).

## Qué puede salir mal

| Mensaje | Código | Qué hacer |
| - | - | - |
| **Cambió mientras contabas. Vuelve a contar.** | `inventory.count_stale`, `inventory.adjustment_request_stale`, `inventory.cycle_count_not_open` | Selecciona **Empezar a contar** y vuelve a medir. |
| **Otra corrección de esta caja espera aprobación. Apruébala, recházala o retírala en Correcciones de existencias y vuelve a contar.** | `inventory.adjustment_already_pending` | Resuelve la corrección pendiente en [Correcciones de existencias](/docs/es/inventory/corrections) y vuelve a contar. |
| **No se guardó** con **El registro cambió o ya existe. Revísalo antes de volver a intentar.** | `inventory.count_submission_conflict` | Ya se guardó, o está esperando, otro resultado para este conteo. Si hay uno esperando, primero apruébalo, recházalo o retíralo en **Correcciones de existencias**; si no, empieza a contar otra vez para tomar una medición nueva. |
| **No se guardó** con el mismo mensaje | `inventory.count_recovery_required` | Consulta la sección **Conteos antiguos que requieren revisión**, más arriba. |
| **Ya hay un conteo en curso de esta bodega.** | `inventory.count_campaign_already_open` | Abre la campaña existente y continúala. |
| **El registro cambió o ya existe. Revísalo antes de volver a intentar.** después de **Empezar a contar** | `inventory.box_not_in_campaign`, `inventory.count_campaign_not_open` | La caja no está en el plan de la campaña, o la campaña está cerrada. Cuenta desde Reposición o desde la página de la caja. |
| **No hay cajas activas de este insumo en esta bodega.** | Ninguno | No hay nada que contar aquí. |
| **Solo un miembro que puede corregir existencias puede contarlas.** | Ninguno | Pide a un administrador **Ajustar y contar stock**. |
| **Elige un insumo y una bodega desde reposición para contarlos.** | Ninguno | Abre el conteo desde Reposición, desde la página de una caja o desde una campaña. |
| **Tu cuenta no tiene permiso para esta acción.** | `common.forbidden` | Te falta `inventory.read` o `inventory.adjust`. |
| **Este registro no está disponible en la cuenta de clínica dental activa.** | `inventory.cycle_count_not_found`, `inventory.count_campaign_not_found`, `inventory.box_not_found` | El conteo, la campaña o la caja no está en tus bodegas. |
| **No pudimos completar la solicitud. Intenta nuevamente.** | Cualquier otra falla | Vuelve a intentar. Si persiste, escribe a [team@muveya.com](mailto:team@muveya.com). |

<Note>
  Guardar un conteo está marcado como acción sensible. En la versión actual la verificación en dos pasos es opcional y no lo bloquea (consulta [Seguridad de la cuenta](/docs/es/account/security)).
</Note>

## Páginas relacionadas

<CardGroup cols={2}>
  <Card title="Correcciones de existencias" icon="scale-balanced" href="/docs/es/inventory/corrections">
    Motivos, umbrales y aprobación de diferencias.
  </Card>

  <Card title="Reposición y alertas" icon="bell" href="/docs/es/inventory/replenishment-and-alerts">
    Donde empiezan la mayoría de los conteos rápidos.
  </Card>

  <Card title="Resumen del inventario" icon="boxes-stacked" href="/docs/es/inventory/overview">
    Saldos, estados y el registro de movimientos.
  </Card>

  <Card title="Cajas y etiquetas" icon="box" href="/docs/es/inventory/boxes">
    Encuentra una caja y lee sus movimientos.
  </Card>

  <Card title="Roles y permisos" icon="user-shield" href="/docs/es/account/roles-and-permissions">
    Quién puede contar y quién solo puede consultar.
  </Card>

  <Card title="Boxes y áreas" icon="door-open" href="/docs/es/locations/destinations">
    Boxes que cuentan sus propias existencias y los que no.
  </Card>
</CardGroup>


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