---
audiencia: usuario
screen_key: cobros/finanzas
titulo: Cobros y Finanzas
aliases: [cobro, cobros, recibo, recibos, rendicion, rendición, retencion, retención, libro retenciones, saldo a favor, cxc, cuentas por cobrar, hoja de ruta, cobrador, comisiones, liquidacion, liquidación, orden de pago, panel supervisor, finanzas, caja del dia, gastos documentados, gastos en recibos, compensacion gastos, gasto recibo]
---

# Cobros y Finanzas — Guía para el Usuario

Esta guía explica cómo cobrar a los clientes y cómo administrar la operación financiera diaria del negocio: caja del día, comisiones, rendiciones de cobradores, retenciones, saldos a favor y hoja de ruta de cobranza.

Va dirigida tanto al **cajero / cobrador** que opera todos los días como al **supervisor de tesorería** que controla el cierre.

---

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

- **Cobros** (Gestión de Cobros): pantalla rápida para buscar un cliente, ver sus facturas pendientes y emitir el recibo.
- **Panel Cobrador**: vista del cobrador en ruta — clientes asignados, promesas, saldos. *(Actualmente sin entrada en el menú lateral — deshabilitado temporalmente; la pantalla sigue existiendo en `/cobranzas/panel-cobrador` para acceso directo.)*
- **Finanzas**: panel administrativo con varias solapas — hoy: **Caja del Día, Comisiones, Liquidaciones, Asignación, Rendiciones, Anticipos a Empleados, CxP a Empleados, Saldos por Empleado**. Recibos, Libro Retenciones, Saldos a Favor, Revisión CxC y Hoja de Ruta se migraron al módulo **Cobranzas** (detalle más abajo); Cuentas a Pagar y Orden de Pago se movieron a **Compras**.
- **Cobranzas → Autorizaciones**: acceso al **Panel Supervisor** (vista consolidada para el rol supervisor: cajas abiertas, alertas, totales del día). El botón directo que antes estaba en el header de Finanzas se quitó.
- La **Caja del día** se abre/cierra desde **Finanzas → Caja del Día**. El módulo **Tesorería** (ítem "Tesorería" del menú lateral) no tiene esa solapa: sus pestañas son Cuentas y Saldos, Movimientos, Cheques, Transferencias, Reportes y Conciliación (conciliación bancaria). Ver `guia-apertura-cierre-caja.md`.

---

## Conceptos generales

### Caja activa y de quién es el cobro

Todo cobro **se imputa a una caja**. El sistema usa esta lógica:

1. El usuario logueado tiene una **caja asignada** (Configuración → Usuarios y Permisos → Usuarios → menú Acciones del usuario → Asignaciones de sucursal).
2. Si esa caja tiene una **sesión ABIERTA**, todos los cobros del usuario van a esa sesión.
3. Si no hay sesión abierta (cobro fuera de caja), el sistema lo marca como **"cobro administrativo"** y queda registrado sin afectar arqueo.

En la cabecera de la pantalla **Cobros** aparece la caja activa: `Caja 1 · Matriz · #7b7c97` (nombre · sucursal · últimos 6 del id).

### Modos de Nota de Crédito al cobrar

Las NC se pueden aplicar de dos formas, configurable por empresa:

- **ESTRICTO**: la NC solo se aplica contra la factura origen que la generó.
- **FLEXIBLE**: la NC queda como **saldo a favor del cliente** y se imputa contra cualquier factura pendiente.

El modo FLEXIBLE requiere el permiso `COB_REC_NC_FLEXIBLE`.

### FIFO en la imputación

Cuando un cobro cancela varias facturas, el sistema sugiere imputar de la más vieja a la más nueva (FIFO). El usuario puede elegir manualmente qué cuotas incluir (checkbox por cuota) en vez de aceptar la sugerencia — no existe un permiso separado de "override FIFO"; alcanza con el permiso normal para crear el recibo (`COB_REC_RECIBO_CREAR`).

---

## Cobros — Flujo de Gestión de Cobros

Pantalla principal de cobro al cliente, accesible desde el menú lateral.

### Pasos

1. **Buscar cliente**: escribir RUC, nombre o teléfono. La búsqueda es automática a partir de 2-3 caracteres.
2. **Ver facturas pendientes**: el sistema lista las cuotas pendientes del cliente con:
   - Número de factura (formato `EST-PEX-NRO`)
   - Número de cuota y fecha de vencimiento
   - Estado: **Vencida** (rojo), **Vence hoy** (naranja), **Vence en N días** (azul), **Al día** (verde)
   - Saldo pendiente de la cuota
3. **Seleccionar facturas** a cobrar (checkbox por cuota). El total se calcula automáticamente. Hay botón "Seleccionar todas".
4. **Cargar pagos**: el monto a cobrar viene precargado con la suma seleccionada. Se distribuye contra cada cuota seleccionada.
5. **Elegir medio de pago**: Efectivo, Tarjeta, Cheque, Transferencia, QR, otros.
6. **Confirmar y emitir recibo**. El sistema asigna numeración, descuenta del saldo de cada factura y registra el movimiento en la caja activa.

### Recibo multifactura con NC, retenciones y gastos documentados

Cuando el cobro es más complejo (varias facturas + NC del cliente + retención recibida + gastos comerciales), se usa el wizard de **Recibos Multi** (Cobranzas → Recibos → botón "Nuevo recibo multi"):

1. **Cliente**: seleccionar.
2. **Facturas**: elegir cuotas (FIFO o manual).
3. **Notas de Crédito**: aplicar NC disponibles del cliente como saldo a favor.
4. **Retenciones**: cargar retenciones recibidas (IVA / Renta) con número, timbrado, monto, fecha.
5. **Gastos documentados** *(si la empresa tiene el feature activo)*: descontar del cobro gastos que el cliente pagó por cuenta de la empresa (fletes, acuerdos comerciales, etc.). Ver sección [Gastos documentados en recibos](#gastos-documentados-en-recibos) más abajo.
6. **Medios de pago**: efectivo + cheques + tarjeta + transferencia, etc. La suma debe cuadrar con el neto resultante.
7. **Confirmar**: se emite el recibo, se afectan CxC, tesorería, contabilidad.

Ver detalle en `recibos-multi.md` y `plan-recibos-multifactura-retenciones.md`.

### Medios de pago soportados

- **Efectivo**: entra al cajón de la caja activa.
- **Tarjeta**: queda registrado con número de operación / autorización.
- **Cheque**: pide banco emisor (4-20 caracteres) y número (8 caracteres). Si tiene fecha de vencimiento futuro, se trata como **cheque diferido** y queda en cartera de cheques.
- **Transferencia**: registra banco/cuenta receptora.
- **QR / Bancard**: integración digital (mock en demo, real con módulo activo).
- **Otros**: para casos puntuales documentados.

### Imprimir el recibo

Cada recibo se puede imprimir en dos formatos:

- **A4**: formal, una hoja completa.
- **Ticket**: 58mm o 80mm para impresora térmica. Sale con el desglose de las cuotas cobradas y el saldo restante por cada factura.

Si el navegador queda muy lento, usar el deeplink `GET /cobros/{id}/pdf?formato=ticket`.

### Anular un cobro

Desde el listado de recibos: botón **Anular** + observación obligatoria.

Al anular se revierten **todos** los efectos del recibo:

- Saldo pendiente de cada factura vuelve al valor anterior.
- Movimiento en caja se revierte (si la sesión sigue abierta).
- Asiento contable se reversa.
- NC y retenciones aplicadas vuelven a estar disponibles.
- Cheques en cartera vuelven a disponibilidad.

**Restricciones**:

- Solo se pueden anular recibos en estado **emitido** (no se puede anular dos veces).
- Si la sesión de caja ya está cerrada, el cobro queda anulado pero el ajuste en caja sale como movimiento del día actual (no del día original).

---

## Gastos documentados en recibos

> Feature opcional. Solo disponible si el flag **"Gastos documentados en recibos"** está activado en Cobranzas → Recibos → pestaña Configuración y el usuario tiene el permiso **`COB_REC_GASTOS`**. Si alguna de las dos condiciones falla, la sección no aparece en el wizard.

### ¿Para qué sirve?

Permite descontar del cobro al cliente los gastos documentados que **el cliente pagó por cuenta de la empresa** o que forman parte de un acuerdo comercial. Ejemplos: fletes que el cliente anticipó, bonificaciones documentadas, descuentos por volumen formalizados como factura del cliente.

El gasto debe existir como **Gasto (CxP)** en el módulo de Gastos y tener **saldo pendiente de pago**. Al descontarlo en el recibo, su CxP se reduce en ese monto, equivaliendo a una compensación.

### Cómo usarlo en el wizard

En el paso **"Notas de Crédito / Retenciones / Gastos"** del wizard (paso 3), el sistema muestra una tabla de gastos disponibles si el feature está activo:

1. Hacer clic en el gasto a descontar para seleccionarlo (check verde).
2. El monto sugerido es el `saldo_pendiente` del gasto. Se puede ajustar a un importe menor si solo se compensa una parte.
3. El total de gastos seleccionados resta al **Total a cobrar** de la misma forma que las NC o retenciones.
4. En el paso de **Medios de pago**, la fila "Gastos descontados" aparece en el desglose como valor negativo (en amarillo).
5. Al confirmar, el sistema crea el recibo, registra los vínculos en `rec_multi_gastos` y reduce la CxP de cada gasto por el monto aplicado.

### Ver los gastos vinculados

- **En el detalle del recibo** (Cobranzas → Recibos → abrir recibo): sección "Gastos documentados descontados" lista proveedor, número de factura del gasto, fecha y monto (en amarillo negativo).
- **En el detalle del gasto** (Gastos → ver gasto): sección "Recibos vinculados" lista cada recibo donde se descontó ese gasto, con fecha, estado (emitido / anulado) y monto descontado.
- **Gastos en estado `pagada`**: el botón Editar queda deshabilitado — un gasto ya pagado/compensado no puede modificarse.

### Anulación de recibo con gastos vinculados

Al anular el recibo, los gastos descontados se **revierten automáticamente**: el saldo de la CxP de cada gasto vuelve al valor anterior al recibo. Los gastos quedan disponibles para un nuevo cobro o pago normal.

### Configuración del feature

- Ruta: **Cobranzas → Recibos → pestaña Configuración**.
- Toggle: **"Gastos documentados en recibos"** — activa/desactiva para toda la empresa.
- Campo opcional: **Tope (% del cobro)** — si se define, el sistema limita el total de gastos a ese porcentaje del total a cobrar. Dejar en blanco para sin límite.
- Requiere permiso `COB_REC_RECIBO_CREAR` para guardar la config.

---

## Finanzas — Solapas

La pantalla **Finanzas** es el centro operativo del cierre diario. Sus solapas actuales son: **Caja del Día, Comisiones, Liquidaciones, Asignación, Rendiciones, Anticipos a Empleados, CxP a Empleados y Saldos por Empleado** (estas tres últimas son de viáticos RRHH, ver `guia-rendicion-viaticos.md`).

> Recibos, Libro Retenciones, Saldos a Favor, Revisión CxC y Hoja de Ruta **ya no son solapas de Finanzas**: se migraron al módulo **Cobranzas** (sidebar). Cuentas a Pagar y Orden de Pago se movieron al módulo **Compras**. Se documentan igual más abajo porque conceptualmente siguen siendo parte del ciclo de cobros/finanzas.

### 1. Caja del Día

- **Para qué sirve**: abrir y cerrar la caja del usuario, ver ventas del día por medio de pago y registrar entradas/salidas manuales.
- **Lo que muestra**:
  - **Monto Apertura**, **Ventas Efectivo**, **Ventas Tarjeta**, **Ventas Transferencia**, **Entradas Manuales**, **Salidas Manuales**.
  - **Saldo Actual** (en grande): efectivo que debería haber en el cajón.
- **Acciones**:
  - **Abrir Nueva Caja** (si no hay sesión).
  - **Entrada** / **Salida**: movimientos manuales con motivo.
  - **Cerrar Caja**: dispara el arqueo (ver `guia-apertura-cierre-caja.md`).
- **Últimos Movimientos**: listado en vivo de cada cobro / movimiento de la sesión.

### 2. Comisiones

- **Para qué sirve**: ver lo que generó cada **vendedor** o **cobrador** por concepto de comisión en un período.
- **Filtros**: rango de fechas, vendedor / cobrador.
- **Muestra**: cantidad de ventas / cobros, base de comisión, % aplicado, monto a liquidar.
- **Requiere módulo**: `COMISIONES`.

### 3. Liquidaciones

- **Para qué sirve**: pagar (liquidar) las comisiones acumuladas.
- **Flujo**: generar liquidación a partir de las comisiones pendientes → aprobar → registrar el pago vía tesorería.
- **Permiso requerido**: `COB_COM_LIQUIDACION_PAGAR`.

### 4. Asignación

- **Para qué sirve**: asignar clientes y cuentas por cobrar a un **cobrador**.
- **Acciones**:
  - Buscar clientes sin cobrador y asignarlos masivamente.
  - Reasignar clientes que cambiaron de zona o cobrador.
  - Definir día fijo de cobro / día de la semana.
- **Endpoint backend**: `PATCH /cobros/asignar-cobrador/{clienteId} { cobrador_id }`.

### 5. Rendiciones

- **Para qué sirve**: el cobrador rinde a tesorería lo que cobró durante el día (efectivo, cheques, transferencias). Tesorería verifica y aprueba.
- **Estados**:
  - `BORRADOR` → cobrador la está armando.
  - `PENDIENTE` → enviada a tesorería.
  - `OBSERVADO` → hay diferencias, vuelve al cobrador.
  - `APROBADO` → conforme, impacta CxC + tesorería + contabilidad.
  - `RECHAZADO` / `ANULADO` → cerrada sin aplicar.
- **Datos clave**: total declarado por el cobrador, total verificado por tesorería, diferencia, observación.
- **Diferencias**: si la diferencia supera el umbral configurado, el sistema sugiere pasar a `OBSERVADO`.

Detalle: `rendiciones.md`, `plan-rendiciones-cobros.md`, `plan-prueba-rendiciones.md`.

### 6. Recibos (Cobranzas → Recibos — no es una solapa de Finanzas)

- **Para qué sirve**: listado y administración de todos los recibos emitidos (single y multi-factura).
- **Filtros**: fecha, cliente, estado (emitido / anulado), cobrador.
- **Acciones por recibo**:
  - Ver detalle (facturas, medios, NC, retenciones aplicadas, **gastos documentados descontados** si aplica).
  - Generar PDF (A4 o ticket).
  - Anular (revierte todo, incluidos los gastos vinculados).
  - Adjuntar comprobantes (PDF, PNG, JPG, WEBP).

### 7. Libro Retenciones (Reportes → Cobranzas → Libro Retenciones — no es una solapa de Finanzas)

- **Para qué sirve**: registro mensual de las **retenciones que nos hicieron** nuestros clientes al pagarnos (IVA y Renta). Es el insumo para declararlas al SET.
- **Filtros**: período (últimos 24 meses).
- **Muestra**: cada retención con número, timbrado, fecha, tipo (IVA / Renta), monto, factura afectada.
- **Resumen**: totales por tipo, marcadas como declaradas o pendientes.
- **Exportar**: XLSX para presentación.
- **Permiso**: `COB_REC_LIBRO_RETENCIONES`.

### 8. Saldos a Favor (Cobranzas → Cuentas por Cobrar → pestaña "Saldos a Favor" — no es una solapa de Finanzas)

- **Para qué sirve**: ver los anticipos y NC que quedaron como crédito del cliente para futuros cobros.
- **Muestra**:
  - Cliente, saldo a favor disponible.
  - Origen (qué recibo o NC lo generó).
  - Historial de consumo (en qué cobros posteriores se usó).
- **Acciones**: ajustes manuales con permiso adecuado.
- **Tabla base**: `rec_saldos_cliente` con movimientos.

### 9. Revisión CxC (Cobranzas → Cuentas por Cobrar → pestaña "Revisión CxC" — no es una solapa de Finanzas)

- **Para qué sirve**: control de cuentas por cobrar — quién debe, cuánto, hace cuánto.
- **Muestra**:
  - Saldos por cliente con **edades de la deuda** (0-30, 31-60, 61-90, 90+ días).
  - **Promesas de pago** registradas (fecha, monto, estado).
  - Alertas de mora.
- **Acciones**: registrar promesa, anotar gestión, generar extracto de cuenta del cliente.

### 10. Hoja de Ruta (Cobranzas → Cobradores → pestaña "Hoja de Ruta" — no es una solapa de Finanzas)

- **Para qué sirve**: el supervisor genera la ruta diaria del cobrador con los clientes a visitar.
- **Filtros**: cobrador, fecha de vencimiento "hasta", estado (vencidos / al día / todos).
- **Muestra por cliente**:
  - Nombre, CI/RUC, dirección, referencia, celular, zona.
  - Cuotas pendientes y saldo total.
  - Última promesa de pago.
  - Día fijo de cobro.
- **Sección extra**: "Clientes sin cobrador" — botón de asignación masiva.
- **Acción principal**: **Generar PDF Hoja de Ruta** (una página por cobrador, ordenada por zona).

Detalle: `plan-hoja-ruta-cobrador.md`.

### 11. Orden de Pago (Compras → pestaña "Orden de Pago" — no es una solapa de Finanzas)

- **Para qué sirve**: emitir órdenes de pago a proveedores desde el lado de **Cuentas a Pagar**. (Es la contraparte del cobro: en lugar de cobrar al cliente, se paga al proveedor).
- **Flujo**: seleccionar facturas de proveedor pendientes → generar orden → asignar a tesorero → confirmar pago.
- **Visibilidad**: depende de la configuración `habilitar_orden_pago` del módulo Compras.

### Panel Supervisor (Cobranzas → Autorizaciones)

- Vista consolidada para el rol supervisor: cajas abiertas en toda la empresa, alertas, totales del día, rendiciones pendientes de aprobar, y la UI de descuentos/autorizaciones.
- El botón directo en el header de Finanzas se quitó; hoy se accede desde el ítem **Cobranzas → Autorizaciones** del menú lateral, que redirige a la pantalla Panel Supervisor.
- **Requiere permiso**: `COB_AUT_AUTORIZACION_VER` (módulo Cobranzas).

Detalle: `plan-supervisores-sup01.md`.

---

## Validaciones que aplica el backend

Si una acción falla, el sistema devuelve uno de estos mensajes. Lectura en lenguaje claro:

### Cobros

- **"Debe incluir al menos un detalle de cobro"**: no se seleccionó ninguna cuota.
- **"Una o más cuotas no existen"**: alguna cuota fue borrada o anulada mientras se cargaba el recibo. Refrescar y volver a seleccionar.
- **"Todas las cuotas deben pertenecer al cliente seleccionado"**: hay cuotas mezcladas de otro cliente (no debería pasar desde la UI).
- **"El número de cheque es obligatorio para pagos con cheque"**.
- **"El banco emisor es obligatorio para pagos con cheque"**.
- **"El número de cheque debe tener 8 caracteres"**.
- **"El banco emisor debe tener entre 4 y 20 caracteres"**.
- **"No se encontró una numeración activa para Recibo de pago. Configure una numeración..."**: cargar el timbrado de recibos (tipo de documento 100) desde **Configuración → Puntos de Venta → Sucursales y Cajas** → entrar a la sucursal ("Ver detalle") → pestaña **Cajas** → expandir la caja → en el punto de expedición, botón **"Numeraciones"**. No existe una pantalla o pestaña propia de "Numeraciones" en el menú principal.
- **"Se alcanzó el número final de la numeración de recibos"**: la numeración se acabó. Crear una nueva.
- **"Solo se pueden anular recibos emitidos"**: el recibo ya está anulado o en otro estado.
- **"La sesión de caja indicada no existe"** / **"La sesión de caja indicada no está abierta"**: la caja activa se cerró mientras se cobraba. Reabrir o usar otra sesión.

### Recibos multifactura

- **"Monto pagado ({X}) supera saldo de factura ({Y})"**: cobrar más de lo que se debe en esa cuota. Ajustar.
- **"NC sin saldo suficiente (disponible: {X})"**: la NC ya fue consumida total o parcialmente.
- **"Tipo de archivo no permitido. Solo PDF, PNG, JPG o WEBP."**: comprobante adjunto inválido.
- **"La empresa no tiene habilitada la función de gastos en recibos"**: el payload incluye gastos pero el flag `permitir_gastos_en_recibo` de la empresa está desactivado. Activar en Cobranzas → Recibos → pestaña Configuración o quitar los gastos del recibo.
- **"Gasto {id} no encontrado o no pertenece a esta empresa"**: el gasto fue eliminado o pertenece a otra empresa.
- **"Monto aplicado al gasto supera el saldo pendiente ({X})"**: el monto ingresado excede la CxP disponible del gasto. Reducir el importe.

### Rendiciones

- **"Cobrador no encontrado o inactivo"**.
- **"El cobrador ya tiene una rendición {estado} ({codigo})"**: cerrar primero la rendición pendiente antes de abrir otra.
- **"Recibos no disponibles: {faltantes}"**: alguno de los recibos seleccionados ya fue rendido en otra rendición o fue anulado.
- **"Los recibos seleccionados pertenecen a distintas monedas..."** / **"La moneda de los recibos no coincide con la moneda seleccionada"**: una rendición solo puede mezclar recibos de una misma moneda.
- **"La rendición no tiene recibos vinculados"**: no se puede enviar una rendición vacía.
- **"El motivo es obligatorio"** (al observar / rechazar / anular).

---

## Qué afecta cada acción

| Acción | CxC | CxP (Gastos) | Caja / Tesorería | Contabilidad | Stock |
|--------|-----|--------------|------------------|--------------|-------|
| Emitir recibo de cobro | Reduce saldo | — | Aumenta saldo de caja (según medio) | Asiento Caja/Banco vs. CxC | — |
| Anular recibo | Restaura saldo | Restaura CxP de cada gasto vinculado | Reversa movimiento | Asiento reverso | — |
| Aplicar NC al cobrar | Reduce saldo de la factura | — | — | — | — |
| Cargar retención recibida | Reduce parte del saldo cobrado en efectivo | — | — | Cuenta de retención IVA/Renta | — |
| Descontar gasto documentado | Reduce saldo del cobro | Reduce CxP del gasto por monto aplicado | — | — | — |
| Rendición APROBADA | Confirma reducción definitiva | — | Tesorería recibe los fondos | Asiento Caja → Banco / Tesorería | — |
| Promesa de pago | No mueve nada (solo registro) | — | — | — | — |
| Asignar cobrador a cliente | — | — | — | — | — |

---

## Cobros simples vs Cobros multifactura

El sistema tiene **dos modos** de cobro y conviene tener claro cuándo conviene usar cada uno. Ambos requieren el módulo **Cobranzas** activo.

| Aspecto | **Cobro Simple (Legacy)** | **Cobro Multifactura (MULTI)** |
|---------|--------------------------|--------------------------------|
| Cuándo usar | Cobro rápido en mostrador, una o varias cuotas, un solo medio de pago | Cobros más complejos: varias facturas, varios medios, NC, retenciones |
| Pantalla | **Cobros** (Gestión de Cobros) | **Cobranzas → Recibos** → botón "Nuevo recibo multi" (wizard) |
| Facturas por recibo | 1 o varias cuotas | 1 o varias facturas completas |
| Medios de pago | Uno por cada detalle | Varios mezclados en un mismo recibo |
| Notas de Crédito como saldo a favor | No | Sí, modo ESTRICTO o FLEXIBLE |
| Retenciones recibidas | No | Sí (IVA y Renta) |
| Gastos documentados descontados | No | Sí (requiere flag + permiso `COB_REC_GASTOS`) |
| Saldo a favor por diferencia | No | Sí, queda como anticipo del cliente |
| Intereses moratorios | No los cobra | Sí, si la config de mora está activa |
| Cheques diferidos | Se registran como cheque pero asiento simple | Quedan en `CHEQUES_EN_TRANSITO`, controlados desde Tesorería |
| Moneda | PYG | Múltiples (PYG / USD según factura) |
| Asiento contable | 2 líneas (Caja vs Clientes) | Compuesto: medios + cheques + retenciones + NC + anticipos vs Clientes |
| Permisos | `COB_REC_RECIBO_VER`, `COB_REC_RECIBO_CREAR` (mismos permisos que el multifactura) | `COB_REC_RECIBO_VER`, `COB_REC_RECIBO_CREAR` |
| Endpoint backend | `POST /cobros` | `POST /recibos-multi` |

**Regla práctica**:

- Mostrador / POS / cobro normal del día: **Simple**.
- Cliente que paga con cheque + transferencia + NC pendiente + retención: **Multifactura**.

---

## Impacto contable, en Tesorería y en Bancos

> Esta sección aplica a empresas con el módulo **Cobranzas** integrado con **Contabilidad** y **Tesorería**. Si Contabilidad no está activo, los cobros igual se registran y afectan CxC, pero no generan asientos.

### Asiento de un cobro simple

Cuando se emite un recibo simple, el sistema genera **un asiento de 2 líneas**:

```
DEBE   CAJA_GENERAL (o cuenta del medio de pago)   …………  monto del recibo
HABER  CLIENTES (Cuentas por Cobrar)               …………  monto del recibo
```

- Glosa: `"Cobro recibo N° {numero}"`.
- Se genera de forma asíncrona (no bloquea el guardado).
- Es **idempotente**: si se reintenta el mismo recibo no duplica el asiento.

### Asiento de un cobro multifactura

Más rico: un único asiento por recibo, pero con varias líneas según los conceptos.

**Cuentas en el DEBE** (lo que entra):

- `CAJA_GENERAL` — efectivo recibido.
- Cuenta de **Banco / Tesorería** correspondiente — transferencias y depósitos directos.
- `CHEQUES_EN_CARTERA` — cheques al día (vencimiento ≤ hoy).
- `CHEQUES_EN_TRANSITO` — cheques diferidos (vencimiento > hoy).
- `RETENCION_IVA_FAVOR` — retenciones de IVA recibidas.
- `RETENCION_RENTA_FAVOR` — retenciones de Renta recibidas.
- `NC_APLICADA_PUENTE` — NC aplicadas en modo FLEXIBLE.
- `ANTICIPOS_CLIENTES` — saldo a favor del cliente consumido.

**Cuentas en el HABER** (lo que se cancela):

- `CLIENTES` — total cancelado de las facturas + intereses − NC estricta.
- `INTERESES_MORATORIOS_COBRADOS` — si la factura tenía mora.
- `ANTICIPOS_CLIENTES` — si quedó saldo a favor por diferencia positiva.

### Movimiento en Tesorería y Bancos

Todo cobro distinto de efectivo deja huella en **Tesorería**:

- Crea un registro en `tes_movimientos` con `tipo = INGRESO`, `estado = CONFIRMADO` y origen ligado al recibo.
- Actualiza el **saldo actual** de la cuenta destino (`tes_cuentas.saldo_actual`).
- Para cheques: además inserta en `tes_cheques` con tipo `RECIBIDO` y estado:
  - `EN_CARTERA` si la fecha de vencimiento es hoy o anterior.
  - `DIFERIDO` si la fecha de vencimiento es futura.

### Ciclo del cheque recibido

| Momento | Movimiento Tesorería | Asiento |
|---------|----------------------|---------|
| Recibido en cartera | Ingreso, cheque `EN_CARTERA` | DEBE CHEQUES_EN_CARTERA / HABER CLIENTES |
| Recibido diferido | Ingreso, cheque `DIFERIDO` | DEBE CHEQUES_EN_TRANSITO / HABER CLIENTES |
| Depositado en banco (acción manual en Tesorería → Cheques) | Cheque pasa a `DEPOSITADO`, banco recibe ingreso | DEBE BANCOS / HABER CHEQUES_EN_CARTERA |
| Rechazado / protestado (acción manual) | Cheque pasa a `ANULADO` / `PROTESTADO` | Asiento reverso del original |
| Vence cheque diferido | Pasa a `EN_CARTERA` (queda listo para depositar) | — |

> El **rechazo de cheque no anula automáticamente** el recibo del cliente: hay que decidir si se anula el recibo (vuelve la deuda al cliente) o se compensa por otra vía.

---

## Anulación de recibos — en detalle

Al anular un recibo (simple o multifactura) el sistema ejecuta **una sola transacción** que reversa todo. Si una de las partes falla, no se anula nada (no queda en estado inconsistente).

### Qué se revierte exactamente

1. **Facturas y cuotas**: el `saldo_pendiente` vuelve al valor previo. Las cuotas que habían pasado a "pagada" vuelven a "pendiente".
2. **Notas de Crédito (FLEXIBLE)**: el saldo disponible de la NC se restaura, queda lista para usarse de nuevo.
3. **Saldo a favor consumido**: si el recibo había consumido anticipos, ese saldo vuelve al cliente.
4. **Saldo a favor generado**: si el recibo había generado anticipo por diferencia, ese anticipo se marca como anulado.
5. **Gastos documentados**: la CxP de cada gasto vinculado se restaura en el monto que se había compensado. El gasto vuelve a estar disponible para un nuevo cobro o pago normal.
6. **Tesorería**: el movimiento pasa a estado `ANULADO` y el saldo de la cuenta se decrementa.
7. **Cheques recibidos**: pasan a estado `ANULADO`, salen de cartera.
8. **Comisiones de cobranza** generadas por el recibo: pasan a `CANCELADA`.
9. **Asiento contable**: se busca el asiento original y se genera el **asiento reverso** con la misma fecha (o la fecha del día si está cerrado el período original).

### Cuándo la anulación falla

| Mensaje / causa | Qué hacer |
|------------------|-----------|
| **"Cheques fuera de cartera"** (algún cheque ya fue depositado, protestado o usado) | Primero revertir el cheque desde Tesorería → Cheques (anular el depósito), luego anular el recibo. |
| **"Saldo a favor ya consumido en otro recibo"** | El anticipo generado ya se usó. Anular primero el recibo posterior que lo consumió, después este. |
| **"El recibo ya está anulado"** | No hay nada que hacer, ya está anulado. |
| **"Solo se pueden anular recibos emitidos"** | El recibo está en un estado distinto (anulado / parcial). Verificar. |
| **"No hay período contable abierto"** | El período donde se emitió el recibo fue cerrado. Opciones: (a) reabrir el período desde Contabilidad → Ejercicios, (b) anular sin asiento y registrar el reverso a mano en el período actual. |
| **"La sesión de caja indicada no está abierta"** | La sesión donde se cobró se cerró. El recibo igual se anula, pero el ajuste de caja queda en el día actual. |

### Qué hacer si la anulación se "cuelga" o queda inconsistente

1. Refrescar la página y volver a ver el recibo: en el 99% de los casos la transacción se completó pero la UI no se actualizó.
2. Si el recibo sigue como "emitido" pero la factura ya está restaurada → reportar al equipo técnico con el ID del recibo. El sistema tiene log de auditoría.
3. **Nunca borrar registros directamente** desde la base de datos.

### Reglas adicionales

- La anulación es **total**: no existe anulación parcial de un recibo multifactura (limitación v1).
- La anulación de un recibo que **estaba dentro de una rendición aprobada** requiere primero revertir la rendición (ver `rendiciones.md`).
- El reverso del asiento queda con la glosa `"REVERSO: Cobro recibo N° {numero}"`.

---

## Reportes relacionados — Administrativos, Cobranzas y Contables

El centro está en **Reportes** (menú lateral). Los reportes vinculados a cobros se reparten en tres bloques.

### Administrativos y Financieros

#### Cuentas por Cobrar

- **Ruta**: Reportes → Administrativos y Financieros → Cuentas por Cobrar.
- **Para qué sirve**: saldo total adeudado por los clientes, con edades de deuda.
- **Filtros**: cliente, estado, antigüedad (0-30 / 31-60 / 61-90 / 90+).
- **Muestra**: ranking de deudores, saldos por moneda, edades, promesas activas.
- **Exportar**: Excel.

#### Cuentas por Pagar

Espejo de CxC pero del lado de proveedores. Útil para planificar **Órdenes de Pago** desde Compras.

#### Posición de Caja

- **Ruta**: Reportes → Administrativos y Financieros → Posición de Caja.
- **Para qué sirve**: foto del saldo en cada caja, cada cuenta bancaria y cada cartera de cheques en un momento dado.
- **Filtros**: moneda, fecha.
- **Muestra**: cuenta por cuenta con saldo actual + total consolidado.
- **Exportar**: Excel.

#### Flujo de Caja

- **Ruta**: Reportes → Administrativos y Financieros → Flujo de Caja.
- **Para qué sirve**: ingresos vs egresos del período. Hay dos vistas:
  - **Real**: lo efectivamente cobrado y pagado.
  - **Proyectado**: lo previsto en base a CxC, CxP y cuotas pendientes.
- **Filtros**: fecha desde / hasta, cuenta.
- **Exportar**: Excel (3 hojas: real, proyectado, consolidado).

#### Movimientos de Caja

- **Ruta**: Reportes → Administrativos y Financieros → Movimientos de Caja.
- **Para qué sirve**: detalle línea por línea de los movimientos de las sesiones de caja (ventas, cobros, entradas y salidas manuales).
- **Filtros**: sesión, caja, rango de fechas, búsqueda libre.
- **Lectura típica**: investigar diferencias de arqueo (ver `guia-apertura-cierre-caja.md`).

### Cobranzas

#### Reporte por Cobrador

- **Ruta**: Reportes → Cobranzas → Reporte por Cobrador.
- **Para qué sirve**: medir la productividad de cada cobrador.
- **Filtros**: cobrador, rango de fechas.
- **Muestra**: cantidad de recibos, monto total cobrado, mix por medio de pago, ticket promedio, productividad.
- **Exportar**: Excel (2 hojas: resumen + detalle).

#### Reporte de Rendiciones

- **Ruta**: Reportes → Cobranzas → Reporte de Rendiciones.
- **Para qué sirve**: histórico de rendiciones por cobrador y estado.
- **Filtros**: cobrador, fecha, estado.
- **Exportar**: PDF.

#### Morosidad por Zona (próximamente)

Permitirá ver la mora cruzada con la zona geográfica del cliente.

### Contabilidad Financiera

Estos reportes solo aplican si el módulo de Contabilidad está activo. Reflejan los asientos generados por los cobros.

#### Libro Diario

- Asientos del período en orden cronológico. Los cobros aparecen como tipo **`COBRO`** (simple) o **`RECIBO_MULTI`**.
- **Filtros**: período, rango, centro de costo.
- **Exportar**: PDF y Excel.

#### Libro Mayor

- Movimientos por cuenta. Las cuentas clave para revisar cobros son:
  - **CLIENTES** (CxC).
  - **CAJA_GENERAL**.
  - **BANCOS** (subcuentas por cada banco).
  - **CHEQUES_EN_CARTERA**, **CHEQUES_EN_TRANSITO**.
  - **RETENCION_IVA_FAVOR**, **RETENCION_RENTA_FAVOR**.
  - **ANTICIPOS_CLIENTES**.
- **Exportar**: PDF.

#### Balance de Comprobación

- Saldos deudores y acreedores al cierre del período. Sirve para validar:
  - El saldo de **CLIENTES** coincide con el total de CxC.
  - El saldo de **CAJA_GENERAL** coincide con el saldo físico de las cajas.
  - El saldo de **BANCOS** coincide con la conciliación bancaria.
- **Exportar**: PDF y Excel.

#### Estado de Resultados y Balance General

No se mueven directamente al cobrar (los ingresos los genera la **factura**, no el cobro). Pero los **intereses moratorios cobrados** sí impactan en Resultados.

> Para los reportes **fiscales de IVA** (Libro IVA Ventas, Libro IVA Compras, Liquidación de IVA) ver `guia-facturacion.md` sección "Reportes de Ventas, Fiscal e Impuestos".

### Cruce recomendado al cerrar el mes

1. **Cuentas por Cobrar** vs **Libro Mayor cuenta CLIENTES**: debe coincidir.
2. **Posición de Caja** vs **Libro Mayor cuentas CAJA_GENERAL y BANCOS**: debe coincidir.
3. **Reporte de Rendiciones aprobadas** vs movimientos de tesorería del mes: debe coincidir.
4. **Libro Retenciones** (Reportes → Cobranzas) vs cuenta `RETENCION_IVA_FAVOR` del Libro Mayor.

---

## Problemas frecuentes

- **"No aparece la caja activa en Cobros"**: el usuario no tiene caja asignada o nadie abrió la sesión. Ir a Finanzas → Caja del Día y abrir.
- **"El cobro se cargó como administrativo"**: cobro hecho sin sesión abierta. No afecta arqueo. Para evitarlo, abrir caja antes de empezar a cobrar.
- **"El cheque rechazó días después"**: hay que **anular el recibo** del cheque. El sistema reversa todo automáticamente (incluida la CxC y la cartera de cheques). Hoy no hay anulación parcial.
- **"La rendición me figura OBSERVADA"**: la diferencia entre lo declarado y lo verificado superó el umbral. Revisar con tesorería y volver a enviar.
- **"NC aplicada no descontó del saldo"**: el modo está en `FLEXIBLE` y la NC quedó como saldo a favor — se va a usar en el próximo cobro. Si se necesita ESTRICTO, cambiar la configuración.
- **"En el Recibo Multi-Factura no me aparecen / no me lista / no me 'estira' las notas de crédito del cliente"**: revisar (1) el cliente seleccionado es el mismo cliente al que se le emitió la NC (las NC no son intercambiables entre clientes), (2) la NC está en estado **Aprobado por SIFEN** y con **saldo disponible** (las NC ya consumidas no se listan de nuevo), (3) la configuración de la empresa está en modo **FLEXIBLE** — en modo **ESTRICTO** la NC solo aparece cuando se cobra justo la factura origen. Ruta: **Cobranzas → Recibos → botón "Nuevo recibo multi" → paso "Notas de Crédito"**. Si después de esos checks sigue sin aparecer, contactá por teléfono o WhatsApp a tu referente de Novasis.
- **"No me aparece la sección de Gastos documentados en el wizard del recibo"**: verificar que se cumplen **ambas** condiciones: (1) el usuario tiene el permiso `COB_REC_GASTOS` (Configuración → Usuarios y Permisos → Perfiles y Roles) y (2) el flag "Gastos documentados en recibos" está activado en **Cobranzas → Recibos → pestaña Configuración**. Si una sola falla, la sección no aparece. Si el flag está activo pero el gasto igual no aparece en la lista, revisar que el gasto tenga **saldo pendiente de CxP > 0** y que **no esté en estado `pagada`**.
- **"El gasto dice 'pagada' y no me deja editarlo"**: un gasto marcado como pagado (compensado contra un recibo) no puede modificarse. Si la compensación fue por error, anular el recibo desde Cobranzas → Recibos y el gasto volverá a estado editable.
- **"No me deja anular el recibo del mes pasado"**: si la sesión de caja ya está cerrada, igual se puede anular, pero el ajuste de caja queda en el día actual. Si está cerrado contablemente, requiere reapertura del período.
- **"Se duplicó un cobro"**: anular uno de los dos recibos. Nunca borrar registros directamente.

---

## Lo que NO se puede hacer

- Emitir un recibo sin cliente.
- Cobrar más de lo que debe una cuota.
- Anular dos veces el mismo recibo.
- Mezclar recibos de distintas monedas en una misma rendición.
- Aprobar una rendición vacía (sin recibos).
- Asignar el mismo cobrador como dos rendiciones pendientes a la vez.
- Editar la fecha de un recibo sin cargar motivo.
- Eliminar (hard delete) un recibo: solo se anula.

---

## Limitaciones actuales

- **Anulación parcial** de recibo multifactura no está disponible: hay que anular todo el recibo.
- El **rechazo de cheque** no es automático — se anula el recibo manualmente.
- **Morosidad por Zona** y otros reportes marcados como "Próximamente" todavía no están.
- Compras con **Cuentas a Pagar automáticas** se controlan por config (`generar_cxp_automatico`); si está apagado, la solapa correspondiente se oculta.

---

## Documentos relacionados

- `guia-apertura-cierre-caja.md` — apertura, arqueo y cierre de caja en detalle.
- `guia-facturacion.md` — emisión de facturas que luego se cobran.
- `guia-inventario.md` — impacto en stock (cobros no mueven stock).
- `guia-solicitud-credito.md` — cómo se generan las cuotas que después se cobran.
- `recibos-multi.md`, `plan-recibos-multifactura-retenciones.md`, `plan-pruebas-recibos-multifactura.md` — diseño del recibo multifactura.
- `rendiciones.md`, `plan-rendiciones-cobros.md`, `plan-prueba-rendiciones.md` — flujo de rendición de cobradores.
- `plan-hoja-ruta-cobrador.md` — generación de hoja de ruta diaria.
- `plan-supervisores-sup01.md` — Panel Supervisor.
