---
audiencia: usuario
screen_key: rendicion-viaticos
titulo: Rendición de Viáticos
aliases: [viatico, viáticos, rendicion viatico, rendición viáticos, anticipo empleado, anticipo funcionario, adelanto viaje, viaje empleado, viaje comercial, gastos de viaje, comprobante viatico, reintegro empleado, devolucion empleado, CxP empleado, cxp empleado, cuenta por pagar empleado, saldos por empleado, funcionario, RVI]
---

# Rendición de Viáticos — Guía para el Usuario

Esta guía cubre el módulo **Rendición de Viáticos**: gestión completa del ciclo de anticipos y rendiciones de viaje del personal, desde el pago del adelanto hasta el cierre con devolución o reintegro (inmediato o diferido como CxP al empleado).

---

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

- **Recursos Humanos → pestaña Viáticos**: acceso principal (listado + configuración).
- **Finanzas → Anticipos a Empleados**: mismo listado, orientado a Tesorería.
- **Finanzas → CxP a Empleados**: cuentas por pagar generadas por reintegros diferidos.
- **Finanzas → Saldos por Empleado**: reporte auxiliar de saldos abiertos.

Todas las pestañas se muestran solo si el submódulo **`RRHH_VIATICOS`** está habilitado en la suscripción de la empresa **y** el usuario tiene el privilegio `RH_VIA_RENDICION_VER`.

---

## Conceptos generales

### ¿Qué es una rendición de viáticos?

Una rendición es el registro contable/administrativo del ciclo completo de un viaje:

1. La empresa **adelanta** dinero al empleado antes del viaje.
2. El empleado **gasta** durante el viaje (con o sin factura).
3. Al volver, se **rinden** los comprobantes.
4. Se **cierra** la rendición y se ajusta la diferencia:
   - Sobra plata → el empleado **devuelve**.
   - Faltó plata → la empresa **reintegra** (ahora o queda como CxP diferida).

Un empleado puede tener múltiples rendiciones abiertas simultáneamente. Cada rendición admite múltiples adelantos si el viaje se alarga o hay imprevistos.

### Diferencia con "Anticipo personal" en Gastos

| Aspecto | Anticipo personal (Gastos) | Rendición de Viáticos |
|---------|----------------------------|------------------------|
| Registro | Cada gasto es individual | Cabecera + adelantos + gastos + cierre |
| Trazabilidad | Requiere cruzar cuenta 1.01.03.03.04 en el balance | Se ve todo en una sola pantalla |
| Cierre automático | No — el saldo lo controla el contador | Sí — la rendición se cierra con devolución o reintegro |
| Reportes | No hay auxiliar por empleado nativo | Reporte "Saldos por Empleado" incluido |
| CxP diferida al empleado | No soportado | Sí — se genera automáticamente en `cuentas_pagar_empleado` |

> Si la empresa hace viajes recurrentes y necesita seguir el saldo por empleado, usar **Rendición de Viáticos**. Si son gastos sueltos donde el anticipo se rinde en el mismo momento, alcanza con **Gastos → Anticipo personal**.

### Estados de una rendición

| Estado | Cuándo | Editable |
|--------|--------|----------|
| `BORRADOR` | Recién creada, sin adelanto ejecutado | Sí |
| `PENDIENTE_APROBACION` | Adelanto supera el umbral configurado | Sí (solo dueño) |
| `ADELANTO_PAGADO` | Adelanto registrado, empleado en viaje | Se agregan gastos |
| `SIN_ADELANTO` | Sin adelanto previo — empresa reembolsa al final | Se agregan gastos |
| `RENDIDA` | Todos los gastos cargados, lista para cerrar | Solo cierre |
| `CERRADA` | Ciclo completo | ❌ Inmutable |
| `ANULADA` | Ciclo revertido (contable + tesorería) | ❌ |

### Numeración

Automática con formato `RVI-YYYY-NNNNN` (ej. `RVI-2026-00001`), única por empresa. La secuencia se resetea por año.

---

## Configuración previa

### 1. Mapeo de conceptos contables

Si el módulo Contabilidad está activo, ir a **Contabilidad → Mapeo de Cuentas → sección "Rendición de Viáticos"** y verificar:

| Concepto | Cuenta esperada | Uso |
|----------|-----------------|-----|
| `ANTICIPO_VIATICO` | `1.01.03.03.04` — Anticipos a Funcionarios | DEBE al pagar adelanto, HABER al rendir/cerrar |
| `REINTEGRO_EMPLEADO_PENDIENTE` | `2.1.3.04` — Reintegros a Empleados | HABER cuando el cierre es diferido, DEBE al pagar la CxP |

Si aparece el chip **"OLD"** al lado de un concepto, significa que la cuenta mapeada tiene código `OLD-` (plan reemplazado). Reasignar a la cuenta vigente antes de operar.

### 2. Configuración por empresa

Desde el listado de rendiciones, botón **Configuración** (solo con `RH_VIA_CONFIG_EDITAR`):

| Parámetro | Efecto |
|-----------|--------|
| `anticipo_viatico_requiere_aprobacion` | Si un adelanto supera el umbral, la rendición queda en `PENDIENTE_APROBACION` hasta que un supervisor apruebe |
| `anticipo_viatico_umbral_aprobacion` | Monto (Gs.) a partir del cual pide aprobación |
| `reintegro_viatico_default` | Pre-selección `INMEDIATO` / `DIFERIDO` en el diálogo de cierre |
| `viatico_dias_alerta` | Días sin cerrar a partir de los cuales una rendición aparece en rojo en el listado y en el reporte de saldos |

### 3. Cuentas de tesorería

Para pagar adelantos y reintegros hay que tener al menos:
- Una `tes_cuenta` de tipo `CAJA_CHICA` / `FONDO_FIJO` / `BILLETERA` (si se usa Efectivo).
- Una `tes_cuenta` de tipo `BANCO_CC` / `BANCO_CA` (si se usa Transferencia o Cheque).
- Cada `tes_cuenta` debe tener su `cuenta_contable_id` asignada (o el sistema hace fallback al mapeo `BANCO`/`CAJA_GENERAL`).

---

## Flujo típico paso a paso

### Paso 1 — Crear rendición y primer adelanto

**Recursos Humanos → pestaña Viáticos → Nueva rendición** (requiere `RH_VIA_RENDICION_CREAR`).

1. Elegir el empleado (buscador con debounce, trae los últimos 10 que coinciden).
2. Cargar el concepto del viaje (`"Viaje a Encarnación cliente XYZ"`).
3. Fechas de inicio y fin del viaje.
4. Elegir la moneda (por defecto la principal de la empresa; multi-moneda soportado con cotización automática).
5. Marcar **"Sin adelanto previo"** solo si el empleado paga de su bolsillo y la empresa reembolsa al final.
6. Cargar el primer adelanto: monto, medio de pago, cuenta de tesorería origen.

Al confirmar (con diálogo de resumen previo):
- Se crea la rendición con estado `ADELANTO_PAGADO` (o `PENDIENTE_APROBACION` si el monto supera el umbral).
- Se genera un movimiento de tesorería **EGRESO** de la cuenta elegida.
- Se registra un asiento contable **DEBE Anticipos a Funcionarios / HABER cuenta tesorería**.

#### Casos según medio de pago

- **Efectivo** (`codigo=1` o descripción contiene "efectivo"/"contado"): el formulario oculta Nº operación + Banco destino y filtra el selector de cuentas a solo cajas (`CAJA_CHICA`, `FONDO_FIJO`, `BILLETERA`).
- **Transferencia**: pide Nº operación y opcionalmente banco destino (banco del empleado).
- **Cheque** (`codigo=2` o descripción contiene "cheque"): aparece el bloque **"DATOS DEL CHEQUE"** con Nº cheque, banco emisor, titular, fecha emisión, fecha cobro/vencimiento. El sistema registra el cheque en `tes_cheques` como `EMITIDO`, estado `EN_CARTERA` si la fecha de cobro es hoy o `DIFERIDO` si es futura.

### Paso 2 — Aprobar (solo si aplica)

Si la rendición quedó en `PENDIENTE_APROBACION`:

Un usuario con `RH_VIA_RENDICION_APROBAR` (el "supervisor") ve los botones **Aprobar** / **Rechazar** en el detalle.
- **Aprobar** → pasa a `ADELANTO_PAGADO` y dispara el impacto contable + tesorería.
- **Rechazar** → pasa a `BORRADOR` con motivo. Puede corregirse y reenviar.

### Paso 3 — Agregar adelantos adicionales (opcional)

Si el viaje se alarga o hay imprevistos, desde el detalle: botón **Agregar adelanto**. Cada adelanto es independiente contablemente:
- Se suma al `monto_adelanto_total`.
- Genera su propio asiento y movimiento de tesorería.
- Puede pagarse por cheque, efectivo o transferencia con la misma lógica.

### Paso 4 — Cargar gastos rendidos

Al volver el empleado, desde el detalle → pestaña **Gastos** → botón **Nuevo gasto** (requiere `RH_VIA_GASTO_CARGAR`).

Dos modos:

**Con factura (deducible)**:
- Pide proveedor (buscador con debounce), RUC, timbrado, establecimiento, punto de expedición, Nº factura, fecha emisión.
- Ítems con tipo de gasto + descripción + cantidad + precio + % IVA.
- Genera IVA Crédito y aparece en el Libro IVA Compras.
- Al elegir el tipo de gasto, la descripción se autocompleta con el nombre del tipo si el operador no la escribió.

**Sin factura (no deducible)**:
- Solo pide descripción + monto + tipo + fecha.
- IVA forzado a 0.
- No genera IVA Crédito ni aparece en el Libro IVA.

En ambos casos:
- Se crea un `gasto_cab` con `forma_pago='ANTICIPO'` y `rendicion_viatico_id`.
- El asiento contable acredita **Anticipo Viáticos** (no CxP ni caja).
- El sistema recalcula `monto_rendido_total` y `saldo` de la rendición.
- El proveedor es opcional cuando `esAnticipoViatico=true` (el sistema no genera CxP al proveedor).

### Paso 5 — Cerrar la rendición

Botón **Cerrar rendición** en la barra de acciones (requiere `RH_VIA_CIERRE_EJECUTAR`).

El diálogo muestra:
- Adelantado + rendido + diferencia con color semántico.
- Modo de cierre según el saldo:

**Saldo cero** (`SIN_SALDO`) → confirma el cierre sin más datos.

**Saldo positivo** (`DEVOLUCION`) — el empleado debe devolver plata:
- Elegir cuenta de tesorería destino + medio de pago.
- Si es cheque, se registra en `tes_cheques` como `RECIBIDO`.
- Se genera INGRESO a tesorería + asiento **DEBE cuenta tesorería / HABER Anticipo Viáticos**.

**Saldo negativo** (`REINTEGRO`) — la empresa debe pagarle al empleado:
- Cards seleccionables:
  - **Pagar ahora (INMEDIATO)** → egreso de tesorería + asiento **DEBE Anticipo Viáticos / HABER cuenta tesorería**. Con cheque, se registra como `EMITIDO`.
  - **Diferir (CxP al empleado)** → no toca tesorería, genera un registro en `cuentas_pagar_empleado` (visible en Finanzas → CxP a Empleados) + asiento **DEBE Anticipo Viáticos / HABER Reintegros a Empleados Pendientes**.

Al confirmar (con diálogo de resumen y advertencia "una vez cerrada, es inmutable"), la rendición pasa a `CERRADA`.

### Paso 6 — Pagar CxP diferida (si aplica)

**Finanzas → CxP a Empleados** (requiere `RH_VIA_CXP_PAGAR`).

- Listado con filtros por empleado, estado (`pendiente`/`parcial`/`pagada`/`anulada`/`todos`) y rango de fechas con presets ("Este mes", "Mes anterior", "Últimos 30 días").
- Cada fila es expandible (accordion) mostrando el historial de pagos parciales.
- La columna **Origen** muestra el número de rendición y concepto como link clickeable al detalle.
- Botón **Pagar** por fila (icono cash-check) abre el diálogo:
  - Monto (parcial o total, validado contra el saldo).
  - Fecha del pago.
  - Medio de pago, cuenta origen. Efectivo/Cheque/Transferencia con misma lógica que el adelanto.
  - Se genera EGRESO en tesorería + asiento **DEBE Reintegros Pendientes / HABER cuenta tesorería/BANCO**.
- Al alcanzar saldo 0, la CxP pasa a `pagada`. Si es parcial, a `parcial`.

Botón **PDF** por fila abre el **Comprobante de Pago CxP** (msv-kude) con historial de pagos y firmas.

---

## Roles y permisos

Toda la seguridad se basa en el submódulo **`RRHH_VIATICOS`** (módulo padre `RRHH`).

| Privilegio | Descripción | Rol típico |
|------------|-------------|------------|
| `RH_VIA_RENDICION_VER` | Ver rendiciones + reportes + saldos | Todos los operativos |
| `RH_VIA_RENDICION_CREAR` | Crear rendiciones, editar y agregar adelantos | Admin RRHH / Tesorería |
| `RH_VIA_RENDICION_APROBAR` | Aprobar/rechazar rendiciones pendientes | **Supervisor** |
| `RH_VIA_RENDICION_ANULAR` | Anular rendición completa | Supervisor / Contador |
| `RH_VIA_GASTO_CARGAR` | Cargar y anular gastos rendidos | Admin RRHH |
| `RH_VIA_CIERRE_EJECUTAR` | Cerrar rendición (devolución/reintegro) | Admin RRHH / Tesorería |
| `RH_VIA_CXP_PAGAR` | Pagar CxP diferida | Tesorería |
| `RH_VIA_CONFIG_EDITAR` | Editar configuración de viáticos | Admin / Gerente |

### ¿Quién es el "supervisor"?

Cuando `anticipo_viatico_requiere_aprobacion=true` y el adelanto supera el umbral, la rendición queda en `PENDIENTE_APROBACION`. **Solo** un usuario con el privilegio `RH_VIA_RENDICION_APROBAR` verá los botones Aprobar/Rechazar. No hay que designar a un supervisor por nombre — el sistema entiende como supervisor a cualquiera que tenga ese privilegio en su perfil.

### Habilitar el módulo por empresa

1. Ejecutar `POST /seguridad/seed-maestro` (idempotente) para asegurar que el submódulo + privilegios existen en el catálogo.
2. Habilitar `RRHH_VIATICOS` en el plan de la empresa (`suscripcion_submodulos`).
3. Asignar los privilegios a los perfiles correspondientes desde **Configuración → Usuarios y Permisos → Perfiles y Roles**.

---

## Asientos contables — cheat sheet

| Momento | Asiento |
|---------|---------|
| Adelanto pagado | DEBE `1.01.03.03.04` Anticipo Viáticos / HABER cuenta tesorería |
| Gasto con factura | DEBE Gasto (del tipo) + IVA Crédito / HABER `1.01.03.03.04` |
| Gasto sin factura | DEBE Gasto (del tipo) / HABER `1.01.03.03.04` |
| Devolución al cerrar | DEBE cuenta tesorería / HABER `1.01.03.03.04` |
| Reintegro INMEDIATO | DEBE `1.01.03.03.04` (ajuste) / HABER cuenta tesorería |
| Reintegro DIFERIDO | DEBE `1.01.03.03.04` (ajuste) / HABER `2.1.3.04` Reintegros Pendientes |
| Pago CxP diferida | DEBE `2.1.3.04` / HABER cuenta tesorería |

### Fallback de cuentas OLD

Si la `tes_cuenta.cuenta_contable_id` apunta a una cuenta con código `OLD-` o inactiva, el sistema cae al mapeo del concepto `BANCO` (o `CAJA_GENERAL`) para el HABER. Esto evita que asientos nuevos usen la cuenta del plan viejo. Aparece en el chip "OLD" del mapeo para que el contador reasigne.

---

## Cheques

El módulo detecta el medio de pago como cheque cuando `medio_pago.codigo=2` o su descripción contiene "cheque" (normalizado, case-insensitive, sin tildes).

### Datos requeridos

- Nº cheque
- Banco emisor
- Titular (firmante)
- Fecha de emisión
- Fecha de cobro / vencimiento

### Registro en `tes_cheques`

- **Adelanto** o **Reintegro inmediato** → `tipo=EMITIDO` (empresa emite).
- **Devolución** → `tipo=RECIBIDO` (empresa recibe del empleado).
- **Estado inicial**:
  - `EN_CARTERA` si la fecha de cobro es hoy o pasada.
  - `DIFERIDO` si la fecha de cobro es futura.
- Se enlaza con el `tes_movimientos` (via `movimiento_id`) y con el registro de rendición/devolución/CxP (via `origen_tipo` + `origen_id`).

Los cheques `EMITIDO/DIFERIDO` se convierten en `EN_CARTERA` cuando llega la fecha (job de tesorería). Los recibidos se depositan/debitan desde el módulo Cheques.

---

## Reportes y salidas

### 1. Listado de rendiciones (`RendicionViaticosPage`)

- Filtros: estado (incluye "todos"), pendientes atrasadas > umbral, búsqueda por número/concepto.
- Filtros deep-link (persisten en URL: `?estado=&pendientes=&q=&page=`).
- KPIs multi-moneda: total, abiertas, saldo pendiente por moneda, promedio días sin rendir.
- Fila alerta (fondo rojo suave) cuando `dias_sin_rendir > umbral_config`.
- Export XLSX incluye número, empleado, cédula, concepto, fechas, moneda, montos y estado.

### 2. Reporte de saldos por empleado

**Recursos Humanos → pestaña Viáticos → Saldos por Empleado** (o **Finanzas → Saldos por Empleado**).

- Agrega rendiciones abiertas + CxP pendientes por empleado.
- Columnas: rendiciones abiertas, adelantado, rendido, a favor empresa, a favor empleado, CxP pendientes, última actividad.
- Chip semáforo en "Última actividad": verde ≤15d, amarillo 16-30d, rojo >30d.
- **Drill-down**: click en la fila abre modal con rendiciones abiertas y CxP pendientes de ese empleado, cada una linkeada al detalle.
- Export **Excel** (12 columnas) + **PDF** (apaisado A4, msv-kude, con resumen de KPIs y tabla completa).

### 3. Comprobantes PDF (msv-kude)

Todos con diseño moderno estilo `recibos/v2` (paleta azul, header con logo + caja destacada, tabla con filas alternadas, firmas):

| PDF | Origen | Uso típico |
|-----|--------|-----------|
| **Comprobante de Rendición** | Detalle → botón PDF | Firma del empleado del cierre, respaldo auditoría |
| **Comprobante de Pago CxP** | CxP a Empleados → botón 📄 | Recibo firmado al empleado al cobrar |
| **Reporte de Saldos** | Saldos por Empleado → botón PDF | Auditoría contable mensual |

Todos se abren en **modal preview** (`PDFPreviewDialog`) con iframe + botones Cerrar / Abrir en pestaña / Descargar. **No se abren en pestaña nueva por defecto** (regla del estándar UI del proyecto).

---

## Validaciones del backend

- **"Rendición no encontrada"** — el id no existe o no pertenece a la empresa del usuario.
- **"No se puede cargar gasto en estado <estado>. Debe estar en ADELANTO_PAGADO, SIN_ADELANTO o RENDIDA."** — se intenta cargar gasto en rendición cerrada o en borrador.
- **"El monto excede el saldo pendiente (<saldo>)"** — al pagar una CxP con monto mayor al saldo restante.
- **"Elegí la cuenta de tesorería"** — al pagar CxP sin `tes_cuenta_id`.
- **"Cuenta de tesorería inválida"** — la cuenta no pertenece a la empresa o está inactiva.
- **"La CxP ya está en estado <pagada|anulada>"** — al pagar una CxP ya cerrada.
- **"Proveedor requerido para registrar cuentas por pagar del gasto"** — al cargar gasto sin proveedor, salvo que sea `forma_pago='ANTICIPO'` con `rendicion_viatico_id` (viáticos permite proveedor opcional).
- **"Cada ítem debe tener producto_id o descripción"** — al cargar gasto con ítem sin descripción; el sistema hace fallback al nombre del tipo de gasto si está vacío.
- **"No hay período contable abierto para la fecha X"** — al pagar CxP o cerrar rendición con fecha en período cerrado. El movimiento de tesorería igual se registra pero el asiento se posterga (queda auditado como `ERROR` en `AuditService`).
- **"Falta mapeo del concepto REINTEGRO_EMPLEADO_PENDIENTE"** / **"ANTICIPO_VIATICO"** — el mapeo no está configurado. Ir a Contabilidad → Mapeo de Cuentas → sección "Rendición de Viáticos".
- **"Sin cuenta contable HABER — falta mapeo BANCO/CAJA_GENERAL"** — la `tes_cuenta` no tiene `cuenta_contable_id` y no hay fallback.
- **403 Forbidden** — el usuario no tiene el privilegio requerido para la acción.

---

## Problemas frecuentes

- **"El botón Aprobar no aparece"** → el usuario no tiene `RH_VIA_RENDICION_APROBAR`. Asignar el privilegio al perfil correspondiente.

- **"Anulé una rendición y no aparece en la lista"** → ya está resuelto (el listado ahora incluye anuladas, se muestran tachadas). Si sigue sin verse, filtrar por estado "Anulada" o "Todos".

- **"El pago de CxP registró en tesorería pero no generó asiento"** → falta el mapeo del concepto `REINTEGRO_EMPLEADO_PENDIENTE`, o el período contable está cerrado. Buscar el evento `ERROR` en la auditoría (`AuditService`) para ver el motivo exacto. Configurar el mapeo y regenerar el asiento manualmente.

- **"El asiento acredita la cuenta OLD-1.1.1.03 en vez de la del plan nuevo"** → la `tes_cuenta` apunta a una cuenta reemplazada. Ir a Configuración → Tesorería y Bancos → Cuentas de Tesorería → editar la cuenta y asignarle la cuenta contable del plan vigente. Mientras tanto, el sistema hace fallback al mapeo `BANCO`/`CAJA_GENERAL` para los asientos nuevos.

- **"El buscador de empleado no muestra opciones"** → el filtro server-side tiene mínimo 1 carácter y debounce de 400 ms. Escribir al menos parte del nombre / cédula.

- **"Los gastos sin factura pedían RUC del proveedor"** → resuelto en Fase 6 (el backend permite proveedor null cuando es viático).

- **"El campo Banco destino confunde al usuario"** → solo aparece cuando el medio de pago no es Efectivo ni Cheque. Representa el banco del **empleado** (donde recibe la transferencia). Con cheque se usa "Banco emisor" que es el banco de la empresa.

- **"Configuración no aparece en el menú"** → el usuario no tiene `RH_VIA_CONFIG_EDITAR`.

- **"La pestaña Viáticos en RRHH no aparece"** → el usuario no tiene `RH_VIA_RENDICION_VER` o el submódulo `RRHH_VIATICOS` no está habilitado en la suscripción de la empresa.

---

## Lo que NO se puede hacer

- Editar una rendición `CERRADA` o `ANULADA` (son inmutables — para corregir hay que anular todo y volver a crear).
- Cerrar una rendición sin al menos un adelanto o un gasto (excepto en modo `SIN_SALDO` explícito).
- Pagar una CxP en estado `pagada` o `anulada`.
- Aprobar una rendición sin el privilegio `RH_VIA_RENDICION_APROBAR`.
- Cargar un gasto en una rendición ya cerrada.
- Anular una rendición sin `RH_VIA_RENDICION_ANULAR`.
- Emitir un cheque con fecha de cobro anterior a la fecha de emisión (validación mínima del cheque).
- Registrar dos adelantos idénticos automáticamente — cada uno debe tener su Nº operación o cheque.

---

## Limitaciones actuales

- **Fotos de comprobantes**: no se adjuntan fotos/PDF de las facturas rendidas. Se sube todo por Marangatu o vía factura electrónica; los comprobantes físicos quedan en papel.
- **Aprobación multi-nivel**: solo un nivel de aprobación (por umbral). No hay flujo de "aprueba supervisor + gerente + finanzas".
- **Rendiciones cruzadas entre empresas**: cada rendición pertenece a una empresa. Si un empleado trabaja para varias empresas del grupo, se registra por separado en cada una.
- **Anulación parcial**: no existe — solo anulación completa de la rendición (revierte adelantos + gastos + cierre + CxP).
- **Retención renta/IVA sobre gastos**: no se calcula automáticamente. Si un gasto rendido debe generar retención, hay que registrarla aparte.
- **Import masivo**: no hay flujo de carga masiva de rendiciones vía XLSX. Cada rendición se crea individualmente.

---

## Documentos relacionados

- `guia-gastos.md` — flujo de gastos individuales, incluyendo el modo "Anticipo personal" sin ciclo de rendición.
- `guia-cobros-finanzas.md` — Cuentas por Pagar en general (proveedores), diferente de CxP a Empleados.
- `guia-tesoreria-bancos.md` — movimientos de tesorería, cheques y cuentas.
- `guia-contabilidad.md` — mapeos de cuentas, asientos, períodos.
- `docs/plan-rendicion-viaticos.md` (backend, interno) — plan de implementación técnico y fases del módulo.
