# Audit trail de asientos contables

El audit trail de asientos garantiza que cada modificacion en el libro mayor (GL) quede registrada con quien la hizo, cuando y por que. Es un requisito de cumplimiento para empresas sujetas a normativas GoBD (Alemania), SIBA (Islas Baleares) y buenas practicas contables en general.

Frihet implementa un flujo de aprobacion de dos niveles: el contable propone el asiento y el responsable financiero lo aprueba o rechaza antes de que quede firme.

## Roles y permisos

| Rol en Frihet              | Puede crear | Puede aprobar | Puede rechazar | Puede ver historial |
| -------------------------- | ----------- | ------------- | -------------- | ------------------- |
| **Contable**               | Si          | No            | No             | Si (propios)        |
| **Responsable financiero** | Si          | Si            | Si             | Si (todos)          |
| **Administrador**          | Si          | Si            | Si             | Si (todos)          |
| **Solo lectura**           | No          | No            | No             | Si (todos)          |

Configura los roles en **Configuracion** → **Equipo** → **Permisos contabilidad**.

## Flujo de aprobacion

### 1. Creacion del asiento (estado: Borrador)

El contable crea el asiento en **Contabilidad** → **Asientos manuales** → **Nuevo asiento**. Mientras esta en borrador, puede editarlo libremente. Los borradores no aparecen en los informes contables oficiales.

### 2. Envio a aprobacion (estado: Pendiente)

Al hacer clic en **Enviar para aprobacion**, el asiento pasa a estado **Pendiente** y:

- El responsable financiero recibe una notificacion (email + Telegram si configurado).
- El asiento queda bloqueado — el contable ya no puede editarlo.
- Aparece en la cola **Contabilidad** → **Pendientes de aprobacion**.

### 3a. Aprobacion (estado: Aprobado)

El responsable financiero revisa el asiento y hace clic en **Aprobar**. Frihet:

- Fija el asiento en el libro mayor con marca de tiempo inmutable.
- Registra en el historial: aprobado por, fecha y hora (UTC).
- Notifica al contable que creo el asiento.

Un asiento aprobado **no puede modificarse**. Si hay un error, debe crearse un asiento de correccion (contraasiento o ajuste).

### 3b. Rechazo (estado: Rechazado)

Si el asiento tiene errores, el responsable lo rechaza indicando el motivo. El contable recibe la notificacion con el motivo de rechazo y puede corregir el borrador y reenviarlo.

```
Ejemplo de motivo de rechazo:
"La cuenta 629 no corresponde — usar 627 (Publicidad) segun PGC."
```

## Historial de auditoria

Cada asiento tiene una pestana **Historial** que muestra el log inmutable de todos los estados:

```
2026-05-10 09:14 UTC  [CREADO]    Maria Lopez (contable@empresa.com)
2026-05-10 09:20 UTC  [ENVIADO]   Maria Lopez → pendiente aprobacion
2026-05-10 11:03 UTC  [RECHAZADO] Carlos Ruiz — "Cuenta incorrecta: usar 627"
2026-05-10 11:45 UTC  [EDITADO]   Maria Lopez — correccion cuenta 629 → 627
2026-05-10 11:46 UTC  [ENVIADO]   Maria Lopez → pendiente aprobacion
2026-05-10 12:01 UTC  [APROBADO]  Carlos Ruiz
```

El historial no puede borrarse ni modificarse. Es el registro oficial para auditorias externas.

## Exportacion para auditoria externa

Exporta el audit trail completo en **Contabilidad** → **Audit trail** → **Exportar**:

- **PDF**: informe legible para auditores.
- **CSV**: datos estructurados para analisis.
- **JSON**: integracion con herramientas de GRC (Governance, Risk, Compliance).

El export incluye: asiento, cuentas, importes, usuario creador, usuario aprobador, timestamps completos y motivos de rechazo si aplica.

## Cumplimiento GoBD y SIBA

### GoBD (Alemania)

El estandar GoBD exige que los registros contables sean **inmutables, trazables y recuperables** durante 10 anos. El audit trail de Frihet cumple los principios GoBD:

- **Unveranderbarkeit** (inmutabilidad): asientos aprobados no pueden modificarse.
- **Nachvollziehbarkeit** (trazabilidad): cada cambio tiene usuario, fecha y motivo.
- **Maschinelle Auswertbarkeit** (exportabilidad): export JSON/CSV disponible.

### SIBA (Islas Baleares)

El Seminar fur Interne Buchfuhrung y Aufsicht (SIBA) aplica para empresas con sede en Baleares con actividad en Alemania. Frihet mantiene el mismo nivel de audit trail independientemente de la sede.

:::info
Para empresas que operan solo en Espana, el audit trail cumple igualmente con el **Plan General de Contabilidad** y los requisitos de la AEAT para libros contables informatizados (art. 29 LGT).
:::

## Configurar aprobacion obligatoria

Puedes establecer que todos los asientos requieran aprobacion o solo los que superen un umbral de importe:

1. Ve a **Configuracion** → **Contabilidad** → **Flujo de aprobacion**.
2. Activa **Aprobacion obligatoria**.
3. Opcional: define un **umbral de importe** (ej: asientos > 1.000 € requieren aprobacion).
4. Asigna los **aprobadores** por defecto.

## Gotchas

- **Asientos automaticos** (generados por facturacion, conciliacion bancaria): no pasan por el flujo de aprobacion manual — se aprueban automaticamente con marca `[AUTO]` en el historial.
- **Periodo bloqueado**: si el periodo contable esta bloqueado, no pueden crearse ni aprobarse asientos con fecha en ese periodo, aunque tengas rol de administrador.
- **Timezone**: los timestamps del historial siempre se almacenan en UTC. La interfaz los muestra en la zona horaria del usuario.
- **Delegacion temporal**: si el aprobador habitual esta de vacaciones, un administrador puede asignar un aprobador sustituto temporal en **Configuracion** → **Equipo** → **Delegaciones**.

## Relacionado

- [Asientos manuales](./asientos-manuales)
- [Bloqueo de periodo contable](./bloqueo-periodo)
- [Cierre de ejercicio](./cierre-ejercicio)
- [Roles y permisos de equipo](../equipo/invitar-miembros)
