En este documento
Por qué tenemos modelo propio
La mayoría de productos que leen facturas mandan cada documento a OpenAI o a Anthropic. La factura de tu proveedor de pescado pasa por servidores en Estados Unidos, se loguea, y según el contrato de cada API, puede o no entrenar el siguiente modelo del proveedor.
Decidimos no jugar a eso.
diffu-0.4 es nuestro modelo de visión propio. Lo entrenamos durante 2025 con miles de facturas españolas reales etiquetadas a mano por nuestro equipo. Corre en GPUs dedicadas en Frankfurt, vía RunPod. Métricas actuales: 96,1% de precisión en facturas reales, latencia menor a 2 segundos por documento.
Cuando subes una factura a V10, esa imagen y los datos extraídos no salen de nuestra infraestructura europea. No hay paso intermedio por un proveedor de IA americano. No hay logueo de tus documentos en sistemas de terceros.
Cero fallback a proveedores externos. diffu es el único modelo que toca la imagen de tu factura. Si una factura es difícil de leer (escaneado horrible, formato raro), o falla la extracción o cae a revisión manual en el portal. Nunca se reenvía a OpenAI ni a Anthropic como rescate.
Lo que no entrena a nadie
Política contractual, no aspiracional:
- Tus facturas, mensajes y números no entrenan a diffu. Cada versión del modelo se entrena con un dataset cerrado, etiquetado por nosotros, completamente separado de los datos de producción. Si en el futuro queremos usar datos reales para entrenar diffu-0.5, te pediremos consentimiento explícito por separado, por cliente, por escrito.
- Tampoco entrenan a OpenAI ni a Anthropic. El asistente de WhatsApp y el portal usan Claude (de Anthropic) como motor de razonamiento, vía API empresa con
no-trainingactivado y zero data retention. Recibe solo los datos contables específicos que necesita para responder tu pregunta. Tus facturas escaneadas nunca llegan al LLM. - Tampoco se usan internamente "para mejorar el producto". No hay un equipo en V10 leyendo tus facturas para sacar insights. Las consultas a tu base de datos las hace código, no personas, salvo soporte explícito que tú nos pides.
Solo lectura en lo que ya usas
V10 se conecta a tu POS, tu ERP y tu banco para sincronizar los datos. La regla de oro es leemos, no escribimos, salvo cuando tú apruebas explícitamente una acción.
Concretamente:
- Los adaptadores que sincronizan datos (Holded, Ágora, ContaSimple, Square, A3, Sage, SAP B1) son de solo lectura. Esta restricción está enforced en código y verificada en CI por
tests/test_pull_adapters_read_only.py. No es una promesa, es un test que falla si alguien intenta saltársela. - Las acciones que sí escriben (subir un asiento contable aprobado a Holded, marcar una factura como procesada en Ágora) ocurren solo desde flujos donde tú diste el visto bueno. Cada agente tiene una lista cerrada de operaciones permitidas, y cada operación de escritura requiere aprobación humana antes de ejecutarse.
- Esto evita el escenario clásico de "la IA se equivocó y modificó algo en mi contabilidad sin que me enterase". No puede. Físicamente no tiene esa capacidad sin tu aprobación.
Cuando V10 sí escribe en tu sistema (por ejemplo, empujar el asiento del cierre del mes a Holded), lo hace con dedupe por (proveedor, número de factura, fecha) para evitar duplicados, porque las APIs de Holded y ContaSimple no tienen idempotencia del lado del servidor.
Aislamiento entre clientes
Cada cliente es un tenant aislado en la base de datos. Los datos de Mama Carmen no pueden ser vistos por Grupo Amida, ni siquiera por accidente de query.
- Aislamiento a nivel de fila: cada tabla relevante incluye
tenant_id, y todas las queries de la aplicación pasan por un filtro obligatorio. No hay forma de hacer una query sin tenant_id sin que el código falle ruidosamente. - Tokens de autenticación por tenant. Una credencial robada de un cliente no da acceso a otro.
- Multi-usuario por tenant con cuatro roles (owner, admin, member, viewer). El owner ve todo; el viewer solo lee.
- Las asesorías que llevan varios clientes los ven como tenants separados. Los libros no se mezclan. Las exportaciones a A3 / Holded salen por tenant, nunca consolidadas sin permiso.
Auditoría completa
Cada acción significativa queda registrada con timestamp y autor:
- Quién subió cada documento, cuándo, y desde dónde (web, WhatsApp, email, API).
- Qué clasificación propuso el OCR y qué clasificación final fue aprobada (y por quién).
- Cada asiento contable empujado al ERP queda trazado al humano que lo aprobó.
- Cada vez que un agente IA propone una acción, se registra el contexto que usó (qué datos consultó, qué razonamiento siguió) para que puedas reconstruirlo después.
- Cada acceso al portal queda logueado: usuario, IP, qué páginas visitó, qué exportaciones se descargó.
Si tu auditor o tu inspector te pregunta de dónde salió un asiento concreto, lo contestas con un click desde el portal.
Dónde viven tus datos
Toda tu información está en infraestructura europea. Ningún byte sale de la UE en ningún punto del flujo.
| Componente | Proveedor | Región |
|---|---|---|
| Aplicación web + API | Railway | Frankfurt (DE) |
| Base de datos PostgreSQL | Railway | Frankfurt (DE) |
| Modelo de visión (diffu) | RunPod | Europa |
| Asistente conversacional | Anthropic (Claude API) | EU residency · zero retention |
| WhatsApp Cloud API | Meta | Irlanda (UE) |
| Email transaccional | Resend | UE |
| Backups (diarios, retención 30 días) | Railway | Frankfurt (DE) |
La lista de subprocesadores vive también en /privacidad y se actualiza cuando cambia. Cuando añadamos o quitemos uno, te avisamos por email a la persona de contacto técnico de tu tenant.
Cumplimiento RGPD
- Contrato de tratamiento de datos (DPA) firmable. Pídelo y te lo enviamos en formato editable.
- Derecho de borrado: nos lo pides y borramos. Tus datos no se conservan más allá del plazo legal mínimo para asientos contables (6 años por ley española, art. 30 Código de Comercio).
- Derecho de acceso y portabilidad: exportación completa de tus datos en CSV / JSON desde el portal, sin necesidad de pedírnoslo.
- Notificación de incidentes: si detectamos un acceso indebido a tus datos, te lo comunicamos en 24 horas hábiles, con detalle del alcance y de las medidas tomadas.
- Subprocesadores listados en /privacidad. Cualquier alta o baja te llega por email antes de aplicar.
Lo que no hacemos
Lista clara, por escrito:
- No vendemos datos a terceros. Nunca. No es un modelo de negocio que tengamos ni queramos.
- No mandamos imágenes de tus facturas a OpenAI ni a Anthropic.
- No usamos tus datos para mejorar el producto sin consentimiento explícito y por separado.
- No hacemos cross-tenant analytics. La capa de memoria de V10 (donde guardamos contexto para los agentes) tiene la agregación entre clientes desactivada por defecto.
- No escribimos en tu sistema contable sin que tú apruebes la operación.
- No usamos cookies de tracking de terceros en el portal. Solo cookies técnicas necesarias para la sesión.
- No tenemos pixel de Facebook, ni Google Analytics, ni Hotjar en ninguna superficie de cliente.
Lo que aún tenemos abierto
Cosas que todavía no tenemos pero queremos. Las listamos abiertamente para no venderte humo:
- Certificación ISO 27001 formal. Aplicamos los controles, pero no estamos certificados todavía. En cola de prioridades para 2026-2027 según cliente.
- Auditoría externa anual del flujo de datos y del modelo. Hoy hacemos revisión interna; queremos pasar a externa cuando lo justifique el tamaño del negocio.
- Cifrado a nivel de columna para campos especialmente sensibles dentro de Postgres. Hoy ciframos en tránsito (TLS 1.3) y reposo (cifrado de volumen en Railway), pero no a nivel de columna.
- Bug bounty público. Aceptamos reportes de seguridad (ver abajo), pero todavía no hay programa formal con recompensas. Llegará cuando crezca la superficie.
Si tu requisito de compliance pasa por alguno de estos puntos, dilo en la demo y vemos cómo encajamos en tu calendario. Si la respuesta es "no podemos esperar a que esté", también te lo decimos directamente.