Parte de nuestra serie {series}
Leer la guía completaPolíticas de retención de datos y automatización: conserve lo que necesita, elimine lo que debe
Las empresas retienen un promedio de 33 % más datos de los que necesitan legalmente, lo que aumenta tanto los costos de almacenamiento como la exposición a violaciones. La retención de datos es donde convergen el cumplimiento legal, la optimización de costos y la seguridad. Si retienes demasiado, aumentarás tu superficie de ataque. Si retiene muy poco, violará los requisitos legales de retención.
Esta guía cubre el diseño de la política de retención, los requisitos legales por tipo de datos y la aplicación automatizada que mantiene a su organización en cumplimiento sin intervención manual.
Conclusiones clave
- Los períodos de retención están determinados por la intersección de requisitos legales, necesidades comerciales y obligaciones de privacidad.
- La aplicación automatizada es esencial: los procesos de eliminación manual tienen una tasa de falla del 40%
- Diferentes tipos de datos dentro del mismo sistema pueden tener diferentes períodos de retención
- Las retenciones legales deben anular las políticas de retención estándar cuando se prevé un litigio.
Requisitos del período de retención por reglamento
Requisitos mínimos de retención
| Tipo de datos | RGPD | SOX (Estados Unidos) | Ley Tributaria (varía) | HIPAA | Estándar de la industria |
|---|---|---|---|---|---|
| Registros financieros | Sin mínimo (limitación de finalidad) | 7 años | 3-10 años (por país) | N/A | 7 años |
| Registros de empleados | Duración del empleo + 2-6 años | N/A | 3-7 años después de la terminación | N/A | 7 años después de la terminación |
| Información personal del cliente | Mientras sea necesario para su finalidad | N/A | N/A | N/A | Eliminar cuando termine la relación + 2 años |
| Registros sanitarios | N/A | N/A | N/A | 6 años desde la creación/última fecha de vigencia | Varía según el estado (hasta 30 años) |
| Documentos fiscales | N/A | 7 años | 3-10 años (por país) | N/A | 7 años |
| Contratos | N/A | Duración + 7 años | N/A | N/A | Duración + 6 años (prescripción) |
| Datos de contratación | Máximo 6 meses (mejores prácticas) | N/A | N/A | N/A | 6-24 meses |
| Tickets de soporte | Mientras sea necesario | N/A | N/A | N/A | 3 años después del cierre |
| Registros de auditoría | Mientras sea necesario | 7 años | N/A | 6 años | 7 años |
| Consentimiento de comercialización | Duración del consentimiento | N/A | N/A | N/A | Hasta su retirada + 2 años |
Retención de impuestos específicos del país
| País | Período de retención | Notas |
|---|---|---|
| Estados Unidos | 3-7 años | IRS: 3 años en general, 7 por fraude |
| Reino Unido | 6 años | Requisito de HMRC |
| Alemania | 10 años | Más estricto en la UE |
| Francia | 6 años (10 para algunos) | Código de Comercio |
| Países Bajos | 7 años | Fiscale bewaarplicht |
| Australia | 5 años | Requisito de la ATO |
| Canadá | 6 años | Requisito de la CRA |
| India | 8 años | Ley del Impuesto sobre la Renta |
| Emiratos Árabes Unidos | 5 años | Autoridad Fiscal Federal |
Diseño de un calendario de retención
Paso 1: Categorías de datos de inventario
| Categoría | Sistemas | Propietario | Ejemplos de datos |
|---|---|---|---|
| Datos del cliente | CRM, comercio electrónico, soporte | Ventas | Nombres, correos electrónicos, historial de pedidos |
| Datos de empleados | HRIS, Nómina, Beneficios | Recursos Humanos | SSN, salario, evaluaciones de desempeño |
| Datos financieros | Contabilidad, ERP, Banca | Finanzas | Facturas, recibos, declaraciones de impuestos |
| Datos de marketing | Plataforma de correo electrónico, Analytics | Comercialización | Datos de campaña, registros de consentimiento |
| Datos del producto | ERP, comercio electrónico | Operaciones | Especificaciones de productos, precios, inventario |
| Registros operativos | Servidores de aplicaciones, bases de datos | TI | Registros de acceso, registros de errores, pistas de auditoría |
Paso 2: Asignar períodos de retención
Para cada categoría, determine el período de retención utilizando esta jerarquía:
- Mínimo legal: ¿Qué exige la ley que usted conserve?
- Máximo legal: ¿Qué exige la ley que usted elimine? (Limitación de finalidad del RGPD)
- Necesidad empresarial: ¿Durante cuánto tiempo lo necesita realmente?
- Tolerancia al riesgo: ¿Cuál es el coste de conservarlo frente a eliminarlo?
El período de retención es: MÁXIMO (mínimo legal, necesidad comercial) pero NO SUPERIOR al máximo legal (si corresponde).
Paso 3: Definir acciones de eliminación
| Acción | Descripción | Cuándo utilizar |
|---|---|---|
| Eliminar | Eliminar permanentemente todas las copias | Predeterminado para datos caducados |
| Anonimizar | Eliminar elementos identificativos, mantener agregados | Análisis, investigación |
| Archivo | Pasar a almacenamiento restringido y cifrado | Retención legal, archivo de cumplimiento |
| Agregado | Reemplazar registros individuales con resúmenes | Informes financieros |
Aplicación de la retención automatizada
Implementación de PostgreSQL
-- Retention policy table
CREATE TABLE retention_policies (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
table_name VARCHAR(100) NOT NULL,
date_column VARCHAR(100) NOT NULL,
retention_days INTEGER NOT NULL,
action VARCHAR(20) NOT NULL, -- 'DELETE', 'ANONYMIZE', 'ARCHIVE'
condition TEXT, -- Optional WHERE clause
enabled BOOLEAN DEFAULT TRUE,
last_run TIMESTAMP,
records_affected INTEGER DEFAULT 0
);
-- Insert policies
INSERT INTO retention_policies (table_name, date_column, retention_days, action, condition) VALUES
('support_tickets', 'closed_at', 1095, 'ANONYMIZE', 'status = ''closed'''),
('recruitment_candidates', 'applied_at', 730, 'DELETE', 'status != ''hired'''),
('session_logs', 'created_at', 90, 'DELETE', NULL),
('newsletter_unsubscribed', 'unsubscribed_at', 365, 'DELETE', NULL),
('audit_logs', 'created_at', 2555, 'ARCHIVE', NULL);
-- Enforcement function
CREATE OR REPLACE FUNCTION enforce_retention_policies()
RETURNS TABLE(policy_id UUID, table_name TEXT, records_affected BIGINT) AS $$
DECLARE
policy RECORD;
affected BIGINT;
query TEXT;
BEGIN
FOR policy IN
SELECT * FROM retention_policies WHERE enabled = TRUE
LOOP
IF policy.action = 'DELETE' THEN
query := format(
'DELETE FROM %I WHERE %I < NOW() - INTERVAL ''%s days''',
policy.table_name, policy.date_column, policy.retention_days
);
IF policy.condition IS NOT NULL THEN
query := query || ' AND ' || policy.condition;
END IF;
ELSIF policy.action = 'ANONYMIZE' THEN
-- Anonymization requires table-specific logic
-- This is a simplified example
query := format(
'UPDATE %I SET email = ''[email protected]'', name = ''Anonymized'' WHERE %I < NOW() - INTERVAL ''%s days''',
policy.table_name, policy.date_column, policy.retention_days
);
IF policy.condition IS NOT NULL THEN
query := query || ' AND ' || policy.condition;
END IF;
END IF;
EXECUTE query;
GET DIAGNOSTICS affected = ROW_COUNT;
UPDATE retention_policies
SET last_run = NOW(), records_affected = affected
WHERE id = policy.id;
RETURN QUERY SELECT policy.id, policy.table_name::TEXT, affected;
END LOOP;
END;
$$ LANGUAGE plpgsql;
Programación
# Run retention enforcement daily at 3 AM
# /etc/cron.d/retention-enforcement
0 3 * * * postgres psql -d ecosire -c "SELECT * FROM enforce_retention_policies();" >> /var/log/retention-enforcement.log 2>&1
Retenciones legales
Cuando se aplica una retención legal
Una retención legal suspende las políticas de retención normales cuando se anticipa, está pendiente o está en curso un litigio. Todos los datos potencialmente relevantes deben conservarse independientemente de los calendarios de retención.
Implementación
-- Legal hold table
CREATE TABLE legal_holds (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
matter_name VARCHAR(255) NOT NULL,
description TEXT,
custodians TEXT[], -- Users whose data is held
tables_affected TEXT[], -- Tables where retention is suspended
created_at TIMESTAMP DEFAULT NOW(),
released_at TIMESTAMP,
created_by UUID REFERENCES users(id)
);
-- Modified retention enforcement respects legal holds
CREATE OR REPLACE FUNCTION enforce_retention_with_holds()
RETURNS void AS $$
BEGIN
-- Skip tables under active legal hold
DELETE FROM session_logs
WHERE created_at < NOW() - INTERVAL '90 days'
AND 'session_logs' NOT IN (
SELECT UNNEST(tables_affected)
FROM legal_holds
WHERE released_at IS NULL
);
END;
$$ LANGUAGE plpgsql;
Verificación y Cumplimiento
Auditoría de retención mensual
- [] Todas las políticas de retención están documentadas y actualizadas.
- [] La aplicación automatizada se ejecutó correctamente (verifique los registros)
- [] No existen datos más allá del período de retención (verificación de muestra)
- [] Las retenciones legales están activas para todos los litigios pendientes.
- [] A nuevas categorías de datos se les han asignado períodos de retención
- Los procesadores de terceros cumplen con los requisitos de retención
Preguntas frecuentes
Retener datos personales más allá del período de retención necesario viola el principio de limitación de almacenamiento del RGPD (Artículo 5(1)(e)). Las autoridades de supervisión pueden imponer multas de hasta 20 millones de euros o el 4% del volumen de negocios anual global. En términos más prácticos, el exceso de datos aumenta su exposición a una infracción: usted es responsable de los datos que no debería haber tenido.
Las copias de seguridad complican la retención porque contienen instantáneas de datos en momentos específicos. Opciones: (1) rotar las copias de seguridad según un cronograma alineado con su período de retención más largo, (2) cifrar las copias de seguridad y destruir la clave de cifrado cuando expire la retención ("cripto-trituración"), (3) aceptar que las copias de seguridad puedan contener datos vencidos, pero documentar esto como una limitación técnica con controles de compensación.
Odoo no tiene automatización de retención incorporada. Implementarlo usando: (1) acciones programadas (trabajos cron) que archivan o anonimizan registros antiguos, (2) módulos personalizados que aplican reglas de retención en modelos específicos, (3) funciones a nivel de base de datos para operaciones masivas. ECOSIRE proporciona personalización de Odoo para la gestión automatizada del ciclo de vida de los datos.
¿Qué viene después?
La retención de datos es un componente de un programa de gobernanza completo. Combínelo con privacidad por diseño para nuevos sistemas, privacidad de datos de los empleados para datos de recursos humanos y gestión de contratos de proveedores para procesadores externos.
Comuníquese con ECOSIRE para obtener consultoría sobre el diseño y la implementación de políticas de retención de datos.
Publicado por ECOSIRE: ayuda a las empresas a gestionar datos durante todo su ciclo de vida.
Escrito por
ECOSIRE Research and Development Team
Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.
Artículos relacionados
Automatización de cuentas por pagar: reduzca los costos de procesamiento en un 80 por ciento
Implemente la automatización de cuentas por pagar para reducir los costos de procesamiento de facturas de $15 a $3 por factura con OCR, concordancia tripartita y flujos de trabajo de ERP.
IA en la automatización de la contabilidad y la teneduría de libros: la guía de implementación del CFO
Automatice la contabilidad con IA para el procesamiento de facturas, conciliación bancaria, gestión de gastos e informes financieros. Ciclos de cierre un 85 % más rápidos.
Agentes de IA para la automatización de procesos de negocio: de chatbots a flujos de trabajo autónomos
Cómo los agentes de IA automatizan procesos comerciales complejos en ventas, operaciones, finanzas y servicio al cliente con razonamiento de varios pasos e integración de sistemas.
Más de {series}
Lista de verificación de preparación para auditorías: cómo su ERP hace que las auditorías sean un 60 por ciento más rápidas
Lista de verificación completa de preparación de auditoría utilizando sistemas ERP. Reduzca el tiempo de auditoría en un 60 por ciento con documentación, controles y recopilación de evidencia automatizada adecuados.
Guía de implementación del consentimiento de cookies: gestión del consentimiento conforme a la ley
Implemente un consentimiento de cookies que cumpla con GDPR, ePrivacy, CCPA y regulaciones globales. Cubre banners de consentimiento, categorización de cookies e integración de CMP.
Regulaciones de transferencia de datos transfronteriza: navegando por los flujos de datos internacionales
Explore las regulaciones de transferencia de datos transfronterizas con SCC, decisiones de adecuación, BCR y evaluaciones de impacto de transferencia para el cumplimiento del RGPD, el Reino Unido y APAC.
Requisitos reglamentarios de ciberseguridad por región: un mapa de cumplimiento para empresas globales
Explore las regulaciones de ciberseguridad en EE. UU., la UE, el Reino Unido, APAC y Medio Oriente. Cubre NIS2, DORA, reglas SEC, requisitos de infraestructura crítica y cronogramas de cumplimiento.
Gobernanza y cumplimiento de datos: la guía completa para empresas de tecnología
Guía completa de gobernanza de datos que cubre marcos de cumplimiento, clasificación de datos, políticas de retención, regulaciones de privacidad y hojas de ruta de implementación para empresas de tecnología.
Gestión de la privacidad de los datos de los empleados: equilibrar las necesidades de recursos humanos con los derechos de privacidad
Administre la privacidad de los datos de los empleados con los requisitos del RGPD, los motivos de procesamiento de datos de recursos humanos, las políticas de monitoreo, las transferencias transfronterizas y las mejores prácticas de retención.