# 15. Seguridad, privacidad y auditoría

## 15.1 Datos que trata la extensión

| Dato | Tratamiento |
|---|---|
| Movimientos contables, de cliente y de proveedor en consultas e informes | **Solo lectura**; las liquidaciones y reclasificaciones se ejecutan desde acciones explícitas |
| Descripción de movimientos contables | **Escritura**, únicamente mediante la acción **Cambiar descripción** |
| Fichas de cliente, proveedor y cuentas contables | **Solo lectura** |
| Documentos registrados | **Solo lectura** |
| Facturas de venta y compra intercompañía | **Escritura**, únicamente mediante la acción explícita del usuario |
| Liquidaciones de movimientos | **Escritura**, únicamente mediante la acción explícita del usuario |
| Asientos de reclasificación | **Escritura**, únicamente mediante la acción explícita del usuario, con prueba previa |
| Configuración de la extensión | Lectura y escritura |

## 15.2 Almacenamiento de credenciales

| Credencial | Dónde se guarda |
|---|---|
| Clave de API de Azure OpenAI | **Almacenamiento aislado** de Business Central, ámbito de módulo, cifrado |
| Secreto de cliente de Microsoft Entra ID | **Almacenamiento aislado**, ámbito de módulo, cifrado |

Ninguna de las dos se muestra nunca en pantalla: los campos presentan un valor enmascarado.

> **Excepción documentada:** la acción **Exportar configuración** incluye ambas credenciales **en texto claro** dentro del fichero JSON, para permitir una restauración completa. Este comportamiento es deliberado y se advierte en el mensaje final de la exportación. Trate el fichero como un fichero de credenciales.

## 15.3 Comunicaciones salientes

| Destino | Cuándo | Qué se envía |
|---|---|---|
| **Azure OpenAI** | Solo al usar la propuesta de conceptos con IA | El prompt configurado más el histórico de facturas **agrupado por concepto** de las dos empresas: cuenta, descripción, importe medio, fechas y número de repeticiones |
| **API de otras suscripciones de Business Central** | Al leer saldos remotos, facturar o liquidar con empresas vinculadas | Peticiones autenticadas con OAuth2 sobre HTTPS |
| **Azure Application Insights** | Telemetría de la extensión | Métricas técnicas de rendimiento (por ejemplo, tiempo de construcción de la matriz de financiación). No incluye datos de negocio identificables |

Todas las comunicaciones requieren que el administrador haya habilitado **Permitir solicitudes HttpClient** de forma explícita.

## 15.4 API publicada

La extensión publica un conjunto de páginas API bajo la ruta:

```
/api/gds/interCompanyTools/v1.0/companies({id})/<entidad>
```

**Entidades de solo lectura** (lo que esta base de datos muestra a otra suscripción del mismo grupo):

| Entidad | Contenido |
|---|---|
| `gdsitCustomers` | Clientes con su NIF, divisa y estado de bloqueo |
| `gdsitVendors` | Proveedores |
| `gdsitCustomerLedgerEntries` | Movimientos de cliente con importe pendiente y fecha de cierre |
| `gdsitVendorLedgerEntries` | Movimientos de proveedor |
| `gdsitSalesInvoices` / `gdsitSalesInvoiceLines` | Facturas de venta registradas |
| `gdsitPurchaseInvoices` / `gdsitPurchaseInvoiceLines` | Facturas de compra registradas |

**Entidades de escritura** (buzones que otra suscripción del grupo rellena):

| Entidad | Efecto |
|---|---|
| `gdsitIncomingInvoices` / `...Lines` | Factura de compra que se nos pide crear y registrar |
| `gdsitIncomingSalesInvoices` / `...Lines` | Factura de venta que se nos pide emitir |
| `gdsitIncomingApplications` | Petición de liquidar una cuenta nuestra |

Cada entidad verifica la licencia al ser consultada. El acceso requiere una aplicación registrada en Microsoft Entra ID con el conjunto de permisos **GDSIT IC TOOLS** asignado.

## 15.5 Trazabilidad

| Mecanismo | Qué registra | Dónde se consulta |
|---|---|---|
| **Exportación datos (JSON)** de la matriz de deuda | Reglas de cálculo, filtros, documentos y conciliación | Acción de la matriz, con *Modo log* activo |
| **Exportar log análisis (JSON)** de los informes | Valor y origen de cada celda | Acción del panorama, con *Modo log* activo |
| **Exportación datos (JSON)** de la matriz de entidades | Las tres vistas completas | Acción de la matriz |
| **Última petición enviada al modelo** | Prompt de sistema, prompt de usuario y respuesta de la IA | *Ver lo que se envió*, con *Modo log* activo |
| **Log sincronización de errores** | Avisos y errores de sincronización | Menú → Configuración → *Log sincronización de errores* |
| **Diario de diagnóstico** de liquidación | Líneas de importe cero por cada pago | Sección `GDSIT-IC` del diario general de la empresa destino |
| **Movimientos de registro** de los cálculos diferidos | Historial de ejecuciones | *Cálculos diferidos* → *Mostrar movimientos de registro* |