---
audiencia: usuario
screen_key: tesoreria/cajas
titulo: Apertura y Cierre de Caja
aliases: [caja, arqueo, sesion, sesión, apertura, cierre, turno, cuadre]
---

# Apertura y Cierre de Caja — Guía para el Usuario

Esta guía explica cómo trabajar con las cajas del sistema: abrirlas al inicio del turno, registrar movimientos durante el día, hacer arqueos y cerrarlas al final del turno. También cubre las configuraciones que el administrador puede ajustar para cambiar el comportamiento del flujo.

---

## ¿Qué es una "sesión de caja"?

Una **sesión de caja** representa el turno de trabajo de un cajero en una caja física. Una sesión:

- Empieza cuando alguien **abre la caja** declarando el monto inicial en efectivo.
- Acumula automáticamente todas las ventas, cobros, entradas y salidas realizadas durante el turno.
- Termina cuando se **cierra la caja** declarando el monto final (con o sin arqueo).

Mientras la sesión está abierta el sistema considera que esa caja está "en uso" y nadie más puede abrir otra sesión en la misma caja al mismo tiempo.

Estados posibles de una sesión:

- **ABIERTA**: el cajero está operando normalmente.
- **EN_CIERRE**: se inició el proceso de cierre estricto (no se aceptan más ventas, falta hacer el arqueo).
- **CERRADA**: la sesión terminó. Quedan los totales históricos guardados.

---

## ¿Dónde encuentro esto en el menú?

- **Finanzas → Caja del Día** (ítem **Finanzas** del menú principal, pestaña **Caja del Día**, `/finanzas`; NO es el ítem Tesorería, que abre "Tesorería y Bancos"): panel principal donde se abren, cierran y operan las sesiones de caja activas.
- **Reportes → Administrativos y Financieros → Movimientos de Caja**: historial completo de movimientos, sesiones cerradas y arqueos.
- **Configuración → Puntos de Venta → Configuración POS**: ajustes por caja (requiere arqueo, requiere autorización, etc.). El alta/baja de la caja en sí se hace en **Configuración → Puntos de Venta → Sucursales y Cajas**.

---

## Abrir una caja

### Pasos

1. Entrar a **Finanzas → Caja del Día**.
2. Tocar el botón **"Abrir Caja"**.
3. En el diálogo, seleccionar la **caja** a abrir (solo aparecen las cajas libres, no las que ya están abiertas).
4. Cargar el **monto inicial** (el efectivo con el que arranca el cajón). Si se deja vacío, el sistema toma 0 y muestra una advertencia.
5. Confirmar.

Si la configuración de la caja exige autorización para abrir, el sistema pide un **PIN de supervisor** antes de crear la sesión.

### Validaciones comunes

- **"Debés seleccionar una caja"**: no elegiste ninguna caja en el desplegable.
- **"El monto inicial no puede ser negativo"**: el monto debe ser 0 o positivo.
- **"La caja ya tiene una sesión abierta"**: alguien más ya abrió esa caja; primero hay que cerrarla.
- **"Se requiere autorización"**: la configuración pide PIN de supervisor para aperturar.

### Resultado

Aparece una nueva tarjeta en el panel "Caja del día" con el estado **ABIERTA**, el operador, la hora de apertura y el monto inicial. Desde ahí ya se pueden registrar movimientos y, eventualmente, cerrar.

---

## Registrar movimientos durante el turno

Mientras la caja está abierta se pueden registrar **entradas** (ingresos de dinero que no son ventas: aportes, cobros varios) y **salidas** (egresos: pago a proveedor, gasto, retiro).

### Pasos

1. En la tarjeta de la sesión activa, tocar **"Entrada"** o **"Salida"**.
2. Cargar el **monto** (obligatorio, mayor a 0).
3. Cargar un **concepto** descriptivo (ej. "Cobro deuda cliente X", "Pago flete proveedor Y").
4. Guardar.

### Notas importantes

- Las **ventas hechas desde el POS se registran automáticamente** como movimientos de tipo "venta"; no hay que cargarlas a mano.
- Los movimientos manuales (entrada/salida) impactan en el saldo esperado al momento del arqueo.
- Si el concepto está vacío, el sistema guarda "-" y la lista queda menos legible — siempre conviene poner una descripción clara.

---

## Cerrar una caja (cierre simple)

Cuando termina el turno, hay que cerrar la sesión para dejar la caja libre y consolidar los totales.

### Pasos

1. En **Finanzas → Caja del Día**, tocar **"Cerrar Caja"** en la tarjeta de la sesión.
2. El sistema muestra el **resumen del turno**: apertura + ventas efectivo + entradas - salidas = saldo esperado.
3. Cargar el **monto final contado** (lo que realmente hay en el cajón al cierre).
4. Opcionalmente, cargar **observaciones** (motivo de diferencia, novedades del turno, etc.).
5. Confirmar.

Si la configuración exige autorización de cierre, el sistema pide PIN de supervisor.

### Después de cerrar

- Se abre automáticamente un **modal con el PDF del arqueo de cierre** (formato A4 o Ticket). Desde ahí se puede **imprimir o descargar**.
- La sesión pasa a estado **CERRADA** y desaparece del panel "Caja del día" (queda en el historial).
- La caja queda libre para que otro cajero la pueda abrir.

---

## Cierre estricto con arqueo de denominaciones

Si la caja tiene activada la opción **"Requiere arqueo al cierre"**, en lugar del cierre simple se usa el flujo de **cierre estricto**:

1. Tocar **"Cerrar Caja"** → el sistema entra en estado **EN_CIERRE** (no se aceptan más ventas).
2. Aparece el **formulario de arqueo de denominaciones**: por cada billete, moneda y medio de pago no efectivo, cargar la cantidad contada.
3. El sistema calcula automáticamente:
   - **Total Sistema**: lo que debería haber según los movimientos.
   - **Total Contado**: lo que cargó el cajero.
   - **Diferencia**: sistema - contado (en verde si es 0, rojo si hay faltante, ámbar si sobra).
4. Si hay diferencia, el sistema puede exigir **observaciones obligatorias** explicando el motivo.
5. Confirmar el cierre. Si la diferencia supera el límite configurado, puede pedir PIN de supervisor.

### Cancelar un cierre en curso

Si se inició el cierre estricto pero hay que volver a operar (por ejemplo: faltó cobrar una factura), se puede **cancelar el cierre** desde la misma tarjeta. La sesión vuelve a estado ABIERTA. Esto puede requerir autorización.

---

## Arqueos intermedios (sin cerrar la caja)

Aparte del arqueo de cierre, se pueden hacer **arqueos durante el turno** para verificar que la caja cuadra sin tener que cerrarla.

1. En la sesión activa, tocar **"Arqueo intermedio"**.
2. Cargar las denominaciones contadas.
3. Guardar.

El arqueo queda registrado con tipo `intermedio` y se puede consultar después en Reportes. La sesión sigue abierta y operativa.

---

## Consultar e imprimir arqueos pasados

Para revisar o reimprimir arqueos de sesiones ya cerradas:

1. Entrar a **Reportes → Administrativos y Financieros → Movimientos de Caja**.
2. Filtrar por caja, sesión o rango de fechas.
3. Tocar el ícono **"Ver sesión"** en cualquier movimiento → se abre el detalle de la sesión.
4. En la cabecera del detalle, ícono **"Imprimir arqueo (PDF)"** → abre el PDF del arqueo de cierre en un modal.
5. En la tabla de arqueos del detalle, ícono **"Imprimir arqueo (PDF)"** por cada fila → abre el PDF de ese arqueo específico (sirve para arqueos intermedios).

Desde el modal de PDF se puede alternar entre **A4** (formato hoja completa, ideal para archivo) y **Ticket** (formato 80mm para impresora térmica), y descargarlo o mandarlo a imprimir directamente.

---

## Configuraciones que afectan apertura/cierre

Estas opciones se configuran por caja (o globalmente) y cambian el comportamiento:

| Configuración | Efecto |
|---|---|
| **Requiere autorización para abrir** | Pide PIN de supervisor al aperturar. |
| **Requiere autorización para cerrar** | Pide PIN de supervisor al cerrar. |
| **Requiere arqueo al cierre** | Activa el flujo de cierre estricto con denominaciones. |
| **Tolerancia de diferencia** | Monto máximo de diferencia que se acepta sin autorización extra. |
| **Observación obligatoria si hay diferencia** | Bloquea el cierre hasta que se cargue una observación. |

Estas configuraciones se ajustan desde **Configuración → Puntos de Venta → Configuración POS** y son **por caja** (cada caja tiene su propia Configuración POS, no se comparte a nivel sucursal).

---

## Problemas frecuentes

- **"No aparece la caja en el desplegable de Abrir"** → la caja ya está abierta por otro turno, o no está habilitada para tu sucursal. Verificar en Configuración → Puntos de Venta → Sucursales y Cajas.
- **"El sistema no me deja cerrar porque hay diferencia"** → cargar observación explicando el motivo, o pedir autorización de supervisor según configuración.
- **"Cerré la caja pero no se abrió el PDF"** → ir a Reportes → Administrativos y Financieros → Movimientos de Caja, buscar la sesión y abrir el detalle; desde ahí se puede imprimir.
- **"La UI no me refresca después de abrir/cerrar"** → recargar la página. El sistema invalida automáticamente las listas pero si tenés filtros raros puede quedar desactualizado.
- **"Inicié un cierre por error"** → usar **Cancelar Cierre** desde la tarjeta. Si requiere autorización, pedir PIN al supervisor.

---

## Lo que NO se puede hacer

- No se puede tener dos sesiones abiertas en la misma caja al mismo tiempo.
- No se puede registrar movimientos en una sesión cerrada (los movimientos van a la sesión activa de la caja).
- No se puede borrar una sesión cerrada; los totales quedan en el historial por auditoría.
- No se puede editar el monto de apertura una vez que la sesión está abierta. Si se cargó mal, hay que cerrar (con observación) y reabrir.

---

## Crear una caja (alta inicial)

Antes de poder abrir sesiones, la caja física tiene que existir en el sistema.

### Pasos

1. Entrar a **Configuración → Puntos de Venta → Sucursales y Cajas**.
2. Abrir el detalle de la **sucursal** donde va a vivir la caja (una caja vive en una sola sucursal) y entrar a la pestaña **Cajas**.
3. Tocar **"+ Nueva Caja"**.
4. Completar el único campo del formulario: **Nombre de la caja** (Descripción, ej. "Caja 1", "Caja Mostrador", "Caja Cobranzas"). Es el nombre que ve el cajero al abrir. No hay campo de "Código" a nivel caja — el código de 3 dígitos que numera los comprobantes vive en el **punto de expedición**, dentro de la caja (ver `guia-sucursales-cajas-pos.md`).
5. Guardar. La caja queda **Activa** por defecto; se activa/desactiva después desde el listado.

### Asignar la caja a los usuarios

Una caja recién creada **no se le muestra a nadie** hasta que se asigna. Desde **Configuración → Usuarios y Permisos → Usuarios** → en la fila del usuario, menú **Acciones → Asignaciones de sucursal**:

1. Elegir el usuario.
2. Agregar una entrada `Sucursal + Caja`.
3. Si se deja la caja en blanco, el usuario ve **todas** las cajas de esa sucursal.

> Sin asignación, el usuario no ve la caja en "Caja del día" ni en Cobros.

> **Ojo: la asignación hace más que habilitar la caja.** Desde que un usuario tiene al menos una asignación, sus listados de facturas, compras, presupuestos, stock y reportes se recortan a esas sucursales. Antes de asignarle una caja a alguien que hasta ahora veía toda la empresa, leer `guia-alcance-por-sucursal.md`.

---

## Numeraciones asociadas a la caja

Cada caja necesita por lo menos una **numeración activa** para los comprobantes que va a emitir. Si no la tiene, el sistema bloquea la venta/cobro con error específico.

### Dónde se configura

Las numeraciones **no** están en una pantalla o pestaña propia del menú — **no existe** "Configuración → Numeraciones de documentos". Se administran **dentro de cada punto de expedición**, que a su vez está dentro de una caja de una sucursal:

**Configuración → Puntos de Venta → Sucursales y Cajas → [sucursal] → tab Cajas → expandir la caja → Puntos de Expedición → botón "# NUMERACIONES"**.

Ver el detalle completo del flujo en `guia-sucursales-cajas-pos.md` (sección "Numeraciones de Documentos").

Por cada combinación de:

- **Tipo de documento** (Factura electrónica = 1, Nota de Crédito = 5, Recibo de pago = 100, etc.)
- **Punto de expedición** (asociado a una sucursal y dentro de ésta a la caja vía su POS config)
- **Rango**: número inicial, número final (opcional), número actual.

### Validaciones que aplica el backend

- **"No se encontró una numeración activa para Recibo de pago"** → falta una numeración con tipo `100` activa para la sucursal de la caja.
- **"Se alcanzó el número final de la numeración"** → la numeración tiene tope y ya llegó. Hay que abrir un nuevo rango.
- **"Número de comprobante duplicado"** → el contador quedó desfasado (típico tras importar datos legacy). El sistema avanza solo hasta el siguiente libre, pero si pasa de 10.000 saltos aborta — revisar manualmente.

### Numeración por caja vs por sucursal

El punto de expedición se ata a la **sucursal**; varias cajas de la misma sucursal pueden compartir punto de expedición y por lo tanto **comparten el contador**. Si querés que cada caja tenga su propia serie, hay que crear un **punto de expedición distinto por caja** y apuntar su numeración ahí.

---

## Qué genera movimiento de caja y qué no

El **saldo esperado** al cierre depende de qué operaciones afectan la sesión activa. Resumen:

### Sí genera movimiento

- **Ventas POS pagadas en efectivo** → entrada automática, tipo `venta_efectivo`.
- **Ventas POS pagadas con tarjeta/transferencia/cheque** → se registran como movimiento informativo separado por medio (no suman al efectivo contado pero quedan en el resumen).
- **Cobros de cuentas por cobrar (Gestión de Cobros)** desde el usuario logueado → entran a la sesión abierta del usuario, separado por medio de pago.
- **Entradas/Salidas manuales** cargadas desde la tarjeta de la sesión.
- **Vueltos** y **descuentos** del POS → ajustan el monto registrado de la venta, no son un movimiento aparte.

### NO genera movimiento de caja

- **Cobros administrativos** (cuando no hay caja abierta y se elige una sucursal) → quedan registrados como recibos pero no entran a ninguna sesión.
- **Facturas a crédito (sin pago al momento)** → no afectan caja hasta que se cobre la cuota.
- **Anulaciones de facturas/cobros** → no revierten movimientos en sesiones ya cerradas; se reflejan en reportes pero el arqueo histórico no cambia.
- **Pagos a proveedores / órdenes de pago** → van a Tesorería pero no a la sesión de caja, salvo que se carguen como "salida manual" explícitamente.
- **Transferencias entre cajas** → si las hubiera, se anotan como salida en una y entrada en otra; el sistema no las hace solas.

> Regla práctica: si la operación **no fue hecha por el cajero logueado en su sesión activa**, probablemente no impacta su arqueo.

---

## Validaciones que aplica el backend (referencia)

Estas validaciones ocurren del lado del servidor y son las que ves como mensajes de error:

### Apertura

- La caja existe y está activa.
- La caja no tiene otra sesión `ABIERTA`.
- El usuario está asignado a esa caja (o no tiene restricciones).
- El monto de apertura es numérico y ≥ 0.
- Si la config exige autorización: el token de PIN es válido y vigente.

### Movimientos

- Existe una sesión `ABIERTA` para registrar el movimiento.
- El tipo de movimiento (entrada/salida) existe en el catálogo.
- El monto es > 0.
- El usuario tiene permiso `TES_MOV_MOVIMIENTO_CREAR`.

### Cobros (relación con caja)

- Si llega `sesion_caja_id`: la sesión está `ABIERTA` y la caja está asignada al usuario, si no → 400.
- Si no llega: el sistema toma la sesión abierta del propio usuario; si no la hay y tiene cajas asignadas, busca alguna abierta en esas cajas; si no, deja el cobro sin sesión (administrativo).

### Cierre

- La sesión está en `ABIERTA` o `EN_CIERRE`.
- El usuario tiene permiso `TES_CAJ_CAJA_CERRAR` (no hay restricción de "dueño de la sesión": cualquier usuario con ese permiso puede cerrar cualquier sesión abierta de la empresa).
- El monto final es ≥ 0.
- Si la diferencia supera la tolerancia: requiere observación y/o PIN.
- Si la caja exige arqueo: el detalle de denominaciones está completo y suma exactamente al monto final declarado.

---

## Reportes disponibles

### Dónde encontrar cada uno

| Reporte | Dónde | Para qué sirve |
|---|---|---|
| **Caja del día** | Finanzas → Caja del Día | Estado en vivo de las sesiones abiertas: saldo actual, últimos movimientos, botones de operar. |
| **Movimientos de Caja** | Reportes → Administrativos y Financieros → Movimientos de Caja | Historial completo de movimientos (entradas, salidas, ventas) con filtros por caja, **sesión**, medio de pago, búsqueda y rango de fechas (Desde/Hasta). No es una pantalla con tabs — es un único listado filtrable; el filtro "Sesión" es lo que permite acotar a una sesión puntual (no hay una vista de "historial de sesiones" separada). |
| **Detalle de sesión** | Click en un movimiento o en el selector de sesión | Vista completa: cabecera, movimientos uno por uno, arqueos (intermedios y de cierre), botón para reimprimir. |
| **Arqueo de cierre (PDF)** | Detalle de sesión → ícono impresora | PDF formal del arqueo con denominaciones, diferencias y firma del cajero. A4 o Ticket. |
| **Recibos / Cobros** | Cobranzas → Recibos (`/cobranzas/recibos`) | Recibos emitidos. No es un reporte dentro de "Reportes"; es la pantalla operativa de Cobranzas. Sirve para conciliar con el arqueo cruzando por caja/sesión y medio de pago. |

### Cómo leer los reportes

**Resumen de una sesión cerrada** (formato típico):

```
Apertura:           Gs. 100.000   ← efectivo declarado al abrir
Ventas efectivo:    Gs. 850.000   ← suma automática de ventas POS en efectivo
Entradas manuales:  Gs.  20.000   ← entradas que el cajero cargó a mano
Salidas manuales:  -Gs.  30.000   ← egresos cargados a mano (restan)
─────────────────────────────────
Saldo esperado:     Gs. 940.000   ← lo que debería haber en el cajón
Saldo contado:      Gs. 935.000   ← lo que efectivamente declaró el cajero
Diferencia:        -Gs.   5.000   ← faltante (negativo = falta, positivo = sobra)
```

Claves para interpretarlo:

- **Diferencia ≠ 0 sistemática** → posible problema operativo (vueltos mal dados, ventas cargadas mal, retiros sin registrar).
- **Ventas tarjeta/transferencia altas pero saldo contado bajo** → normal, ese dinero no entra al cajón físico.
- **Muchas salidas manuales sin concepto** → revisar cultura de carga; pedir conceptos descriptivos.
- **Saldo de apertura distinto al cierre anterior de esa caja** → alguien movió efectivo entre turnos sin registrarlo. Investigar.

### Filtros más útiles

- **Por caja**: para auditar una caja específica a lo largo del tiempo.
- **Por usuario**: para revisar performance/cuadre de un cajero puntual.
- **Por rango de fechas**: comparar semanas, meses.
- **Por tipo de movimiento**: aislar solo entradas manuales, solo ventas, etc.
- **Por medio de pago** (en Cobros): separar efectivo vs tarjeta vs cheque.
