# Constructor visual de reglas bancarias

El constructor visual de reglas bancarias de Frihet permite crear logica de categorizacion avanzada sin escribir codigo. A diferencia de las [reglas bancarias basicas](./reglas-bancarias) (coincidencia simple por texto), el constructor soporta condiciones anidadas, multiples acciones y division de transacciones entre varias categorias.

Esta funcionalidad esta disponible en plan **Premium o superior**.

## Acceso al constructor

Ve a **Finanzas** → **Reglas bancarias** → **Nueva regla** → **Constructor avanzado**.

## Bloques de condicion

El constructor usa bloques que puedes arrastrar y reorganizar:

### Campos disponibles para condiciones

| Campo             | Tipo                                                    | Ejemplo                          |
| ----------------- | ------------------------------------------------------- | -------------------------------- |
| **Descripcion**   | Texto (contiene / no contiene / es exactamente / regex) | `GOOGLE`, `/^RECIBO\s+LUZ/i`     |
| **Importe**       | Numerico (&gt;, &lt;, =, entre)                         | `> 1000`, `entre 50 y 500`       |
| **Direccion**     | Haber / Debe                                            | entrada o salida                 |
| **Fecha**         | Dia de la semana, rango de fechas                       | `lunes a viernes`, `trimestre 1` |
| **Proveedor**     | Nombre normalizado del proveedor detectado              | `Endesa`, `Hacienda`             |
| **Referencia**    | Referencia 1 o 2 del AEB-43                             | `RF23-00001`                     |
| **Cuenta origen** | Cuenta bancaria de Frihet                               | seleccion de lista               |

### Operadores logicos

Combina condiciones con **Y** (AND) o **O** (OR). Anida bloques para logica compleja:

```
SI (
  descripcion contiene "GOOGLE"
  O descripcion contiene "GSUITE"
)
Y importe > 10
→ ENTONCES: Categoria = Software y SaaS
```

Para crear un bloque anidado, arrastra una condicion sobre otra — aparece el selector AND/OR automaticamente.

## Acciones disponibles

Una regla puede ejecutar varias acciones en secuencia:

| Accion                        | Descripcion                                           |
| ----------------------------- | ----------------------------------------------------- |
| **Asignar categoria**         | Categoria de gasto o ingreso                          |
| **Asignar proyecto**          | Vincula al proyecto o centro de coste                 |
| **Asignar cliente/proveedor** | Identifica la contraparte                             |
| **Crear gasto automatico**    | Genera el gasto en el modulo Gastos                   |
| **Dividir transaccion**       | Reparte el importe entre varias categorias            |
| **Excluir de conciliacion**   | Marca como "no reconciliar" (transferencias internas) |
| **Notificar**                 | Envia alerta Telegram/email al propietario            |

## Division de transacciones

La division es especialmente util para recibos que agrupan conceptos diferentes (alquiler + comunidad, nomina + anticipo):

1. En el bloque de acciones, selecciona **Dividir transaccion**.
2. Define el numero de partes (hasta 10).
3. Para cada parte indica: importe (fijo o porcentaje) y categoria.

```
Transaccion: -1.800 € "TRANSFERENCIA COWORKING ENERO"
Division:
  - 1.200 € → Alquiler oficina
  -   450 € → Luz y agua (incluida en alquiler)
  -   150 € → Servicios adicionales / Limpieza
```

Frihet valida que la suma de partes cuadre con el importe total antes de guardar.

## Orden de prioridad

Las reglas se evaluan en orden de prioridad (numero visible en la lista). La primera regla que coincide gana — las siguientes se ignoran para esa transaccion.

Arrastra las reglas en la lista para cambiar el orden. Las reglas del sistema (presets) aparecen al final y tienen prioridad mas baja por defecto.

## Proveedores Open Banking — Estado Q3 2026

El constructor de reglas se enriquece con datos normalizados cuando tienes una conexion Open Banking activa. La disponibilidad por proveedor es:

| Proveedor                | Estado     | Datos normalizados                | Division auto |
| ------------------------ | ---------- | --------------------------------- | ------------- |
| **Tink** (Visa)          | Disponible | Nombre proveedor, categoria MCC   | Si            |
| **OpenSalt / Salt Edge** | Disponible | Nombre proveedor, logo            | Parcial       |
| **Revolut Business**     | Disponible | Nombre contraparte, referencia    | Si            |
| **Plaid**                | Q3 2026    | Nombre proveedor, categoria Plaid | Planificado   |

:::info Roadmap Q3 2026
Plaid estara disponible en Q3 2026 con soporte para cuentas UK/US y datos de categoria enriquecidos. Si usas Plaid ahora, las reglas funcionan sobre el texto del extracto (sin normalizacion de proveedor).
:::

## Simular una regla antes de activarla

Antes de activar una regla nueva puedes simularla sobre tus ultimas 90 dias de movimientos:

1. En el constructor, haz clic en **Simular**.
2. Frihet muestra las transacciones que habrian sido afectadas con la regla activa.
3. Revisa falsos positivos y ajusta las condiciones.
4. Activa la regla cuando el resultado sea el esperado.

## Gotchas

- **Regex con caracteres especiales**: los acentos en regex requieren el flag `/u`. Ejemplo: `descripcion regex /NÓMINA/u`.
- **Reglas en conflicto**: si dos reglas podrian aplicarse a la misma transaccion, la de menor numero de orden (mayor prioridad) gana siempre. El sistema no advierte de conflictos — usa la simulacion para detectarlos.
- **Division y deduccion de IVA**: cuando divides una transaccion, asigna el IVA/IGIC manualmente a cada parte si las categorias tienen tipos distintos. Frihet no calcula IVA proporcional en divisiones automaticamente.
- **Reglas sobre importaciones AEB-43**: funcionan igual que sobre movimientos Open Banking, pero sin datos de proveedor normalizado.

## Relacionado

- [Reglas bancarias basicas (presets)](./reglas-bancarias)
- [Conciliacion bancaria](./conciliacion-bancaria)
- [Conexiones bancarias Open Banking](./conexiones-bancarias)
- [Importacion AEB-43](./aeb43-norma43)
