Política de Tratamiento de Datos
Última actualización: 27 de abril de 2026
Este documento detalla los aspectos técnicos del tratamiento de datos en Factiva, complementando la Política de Privacidad. Su finalidad es ofrecer transparencia a contribuyentes, contadores y auditores sobre las medidas de seguridad y los flujos de datos del Servicio.
1. Principios rectores
- Minimización: recopilamos únicamente los datos necesarios para emitir comprobantes electrónicos válidos ante Hacienda.
- Aislamiento por tenant: cada empresa es un espacio lógicamente independiente; ninguna consulta cruza esa frontera.
- Defensa en profundidad: cifrado en reposo, cifrado en tránsito, control de acceso por rol, y bitácoras de auditoría operan como capas independientes.
- Auditoría: toda mutación sobre datos sensibles queda registrada con usuario, IP, marca de tiempo y valores antes/después.
2. Cifrado en reposo
Los siguientes campos se cifran con AES-256-GCM antes de ser almacenados en la base de datos. La clave de cifrado se gestiona como variable de entorno fuera del código fuente y rota mediante el procedimiento descrito en la sección 8.
| Dato | Tabla / columna | Cifrado |
|---|---|---|
| Certificado digital .p12 | certificates.certificate_data | AES-256-GCM |
| Contraseña del certificado | certificates.certificate_password | AES-256-GCM |
| PIN del certificado | certificates.pin | AES-256-GCM |
| Usuario y contraseña ATV | tenants.hacienda_username / hacienda_password | AES-256-GCM |
| Contraseña de la cuenta del usuario | users.password_hash | bcrypt (factor 12) |
| Token IMAP del buzón de facturas recibidas | tenants.email_ingest_app_password | AES-256-GCM |
3. Cifrado en tránsito
Toda comunicación entre el navegador del Usuario, la API de Factiva y los servicios externos se protege con TLS 1.2 o superior. Las conexiones a Hacienda utilizan el protocolo OAuth 2.0 sobre HTTPS, con tokens de acceso de corta duración almacenados de forma cifrada por cada empresa.
4. Control de acceso
4.1 Autenticación de Usuarios
- Inicio de sesión con correo y contraseña; el hash bcrypt nunca abandona la base de datos.
- Tokens JWT firmados con HS256, con expiración de 15 minutos para el access token y 7 días para el refresh token.
- Recuperación de contraseña mediante enlace firmado de un solo uso, válido por 1 hora.
4.2 Roles dentro de cada empresa
- Administrador: acceso completo, incluyendo configuración del certificado y credenciales de Hacienda.
- Facturación: emisión, consulta y descarga de comprobantes; sin acceso a configuración de certificado.
- Lectura: consulta y descarga; sin emisión.
4.3 Aislamiento multi-tenant
Toda consulta a la base de datos filtra obligatoriamente por el identificador de la empresa del Usuario autenticado, derivado del JWT. El parámetro nunca se acepta desde la URL ni desde el cliente, eliminando por construcción la posibilidad de que un Usuario consulte datos de otra empresa.
5. Sub-encargados del tratamiento
| Sub-encargado | Función | Datos transferidos | Ubicación |
|---|---|---|---|
| Ministerio de Hacienda | Recepción de comprobantes | XML firmado del comprobante (incluye datos del emisor y receptor) | Costa Rica |
| Resend, Inc. | Envío de correos transaccionales | Correo del destinatario, asunto, contenido y adjuntos del correo enviado | Estados Unidos |
| Cloudflare, Inc. | DNS y CDN para factivacr.com | Metadata de DNS; sin acceso a datos personales | Estados Unidos |
| Functional Software, Inc. (Sentry) | Monitoreo de errores | Eventos de error con stack trace, ID de Usuario y de empresa. Filtro previo elimina contraseñas, tokens, números de cédula y datos del certificado. | Estados Unidos |
Cualquier ampliación de esta lista será notificada con al menos 30 días de anticipación al Usuario.
6. Bitácora de auditoría
Las siguientes acciones quedan registradas con detalle de actor, IP, agente de usuario, valores anteriores y nuevos:
- Creación, modificación y eliminación de empresas, clientes, productos y comprobantes.
- Subida y rotación de certificados digitales.
- Configuración y prueba de credenciales del Portal ATV.
- Activación y desactivación de cuentas.
- Cambios de cédula efectuados por administradores de la plataforma.
- Acciones de super-administrador (gestión global de cuentas).
Las bitácoras se conservan por dos (2) años a partir del registro del evento.
7. Retención de datos
El plazo de retención está alineado con las obligaciones tributarias del contribuyente:
- Comprobantes electrónicos, líneas de detalle, clientes y productos asociados: mínimo cinco (5) años a partir del fin del período fiscal (Art. 109 CNPT). Esta retención es una obligación legal del contribuyente que el Servicio respeta aún después de la terminación del contrato.
- Datos personales del Usuario y configuraciones no asociadas a comprobantes: eliminados dentro de los 30 días siguientes a la terminación de la cuenta.
- Bitácoras de auditoría: dos (2) años.
- Eventos en Sentry: 30 días de retención automática (configuración del proveedor).
8. Gestión de claves criptográficas
La clave maestra utilizada para el cifrado AES-256-GCM se almacena como variable de entorno del proceso, fuera del código fuente y de la base de datos. La rotación se realiza mediante un procedimiento de re-cifrado en línea: la nueva clave descifra los datos con la anterior y los re-cifra con la nueva, sin interrupciones del Servicio. La clave anterior se destruye una vez verificada la re-encriptación íntegra.
9. Respuesta a incidentes
Ante una vulneración de seguridad confirmada que comprometa datos personales, el procedimiento es:
- Contención inmediata del incidente.
- Análisis de causa raíz y alcance (qué datos, cuántos Usuarios, ventana temporal).
- Notificación a los Usuarios afectados por correo electrónico dentro de los cinco (5) días hábiles siguientes a la detección.
- Notificación a PRODHAB cuando la naturaleza del incidente lo requiera, conforme a la Ley 8968.
- Implementación de medidas correctivas y publicación de informe post-mortem.
10. Portabilidad y exportación de datos
El Usuario puede solicitar en cualquier momento la exportación de sus datos en formato estructurado (JSON o CSV), que incluirá:
- Configuración de la empresa y el certificado (sin la clave privada en texto plano).
- Catálogo de clientes y productos.
- Comprobantes emitidos con su XML firmado y la respuesta de Hacienda.
- Bitácora de auditoría de la empresa.
La solicitud se atiende dentro de los diez (10) días hábiles siguientes, previa verificación de identidad.
11. Contacto
Consultas técnicas o de cumplimiento sobre el tratamiento de datos:
- Correo: danielxfm43@gmail.com
- WhatsApp: +506 8805-7801