Docs

Compliance y Protección de Datos

Cumplimiento de la Ley Federal de Protección de Datos Personales (LFPDPPP), datos que maneja Nvito, encriptacion, consentimiento y derechos ARCO.

PublicadoMarzo 2026Equipo de desarrollo, CTO, legal

Nvito opera en Mexico y maneja datos personales de invitados. La ley aplicable es la Ley Federal de Protección de Datos Personales en Posesion de los Particulares (LFPDPPP) y su Reglamento.

Datos personales que maneja Nvito

Datos de organizadores (usuarios registrados)

DatoClasificaciónDonde se almacenaEncriptado?
NombrePersonalBD (User)No (necesario para display)
EmailPersonalBD (User) + ClerkNo en BD, si en Clerk
TelefonoPersonalBD (User)Si (AES-256-GCM)
AvatarPersonalClerk + CDNNo (imagen publica)

Datos de invitados

DatoClasificaciónDonde se almacenaEncriptado?
Nombre y apellidoPersonalBD (Guest)Si (AES-256-GCM)
EmailPersonalBD (Guest)Si (AES-256-GCM)
TelefonoPersonalBD (Guest)Si (AES-256-GCM)
Restricciones alimentariasSensibleBD (Guest/RSVP)No
Respuestá RSVPPersonalBD (RSVP)No
IP de respuestaPersonalBD (RSVP)No
User AgentTécnicoBD (RSVP)No
Fotos subidasPersonalCDN (R2)No
Mensajes de audioPersonalCDN (R2)No

Datos de pagos

DatoClasificaciónDonde se almacenaEncriptado?
Datos de tarjetaFinancieroStripe (nunca en Nvito)Si (Stripe PCI)
Historial de pagosFinancieroBD (Payment) + StripeNo en BD (solo IDs)

Medidas de protección implementadas

Encriptacion

  • En reposo: AES-256-GCM para emails, teléfonos y nombres de invitados
  • En transito: HTTPS obligatorio (HSTS con max-age 1 ano)
  • En cookies: AES-256-GCM para JWT en PWA
  • Key derivation: scrypt con salt de 64 caracteres hex

Control de acceso

  • Multi-tenancy con RLS: cada organización solo ve sus datos
  • RBAC con 80+ permisos granulares
  • Clerk para autenticación con 2FA disponible
  • JWT con expiración corta (15 min)

Sanitizacion de logs

  • 35 patrones de datos sensibles redactados automáticamente en logs
  • Emails y teléfonos sanitizados con regex
  • IDs usados en lugar de nombres en logs de producción

Minimizacion de datos

  • Solo se recolectan datos necesarios para la funcionalidad
  • IPs de RSVP se almacenan para seguridad (detección de abuso)
  • User Agent se almacena para analytics básico

Derechos ARCO

La LFPDPPP otorga a los titulares de datos los derechos ARCO:

Acceso

El titular puede solicitar conocer que datos suyos tiene Nvito.

Estado: Parcial. Los organizadores pueden ver sus datos en el dashboard. Los invitados NO tienen portal de autoservicio para ver sus datos.

Pendiente: Implementar endpoint o mecanismo para que un invitado pueda solicitar sus datos proporcionando su email.

Rectificacion

El titular puede solicitar correccion de datos inexactos.

Estado: Parcial. Los organizadores pueden editar datos de invitados. Los invitados pueden actualizar su RSVP pero no otros datos.

Pendiente: Permitir que invitados corrijan su nombre/email/teléfono via enlace seguro.

Cancelación (eliminación) — IMPLEMENTADO

El titular puede solicitar la eliminación de sus datos.

Estado: Implementado. Endpoint DELETE /v1/guests/:id/personal-data anonimiza PII del invitado (nombre, email, teléfono, hashes, restricciones alimentarias, alergias, movilidad) manteniendo el registro para estadisticas (id, eventId, status, groupSize, createdAt). Ejecuta en transacción atomica y limpia datos relacionados (QR passes, asignaciones de mesa, tokens de acceso, mensajes, audio guestbook). Requiere autenticación + permiso guests:delete:assigned.

Oposición — IMPLEMENTADO

El titular puede oponerse al tratamiento de sus datos para comunicaciones.

Estado: Implementado con 3 mecanismos:

  1. Endpoint autenticado: PATCH /v1/guests/:id/communication-preferences — permite al organizador cambiar el estado de opt-out de un invitado. Requiere permiso guests:update:assigned.

  2. Endpoint público: POST /v1/guests/public/opt-out — permite a invitados sin cuenta solicitar opt-out proporcionando email + eventId. Rate limited a 5 req/min por IP. Respuestá generica para no revelar existencia del email.

  3. Filtro en dispatchers: Los servicios de comunicación (email, WhatsApp, SMS, chatbot RSVP) filtran automáticamente invitados con optOutCommunications = true. Campo opt_out_communications agregado al modelo Guest con migración Prisma.

Todas las acciones ARCO quedan registradas en AuditLog con acciones arco_erase, arco_opt_out, arco_opt_in, arco_public_opt_out.

Aviso de privacidad — IMPLEMENTADO

La LFPDPPP requiere un aviso de privacidad. Disponible en nvito.mx/privacidad.

El aviso cubre las 11 secciones requeridas: identidad del responsable, datos recopilados, finalidades, transferencias a terceros, derechos ARCO, medidas de seguridad, cookies y tecnologias, conservacion de datos, consentimiento, modificaciones y autoridad competente (INAI).

Consentimiento

Organizadores

  • Consentimiento implicito al registrarse y aceptar terminos de servicio
  • Pendiente: Crear terminos de servicio formales

Invitados

  • El organizador importa datos de invitados (email, teléfono, nombre)
  • El invitado NO da consentimiento explicito a Nvito
  • Riesgo legal: El organizador es responsable de tener consentimiento de sus invitados
  • Acción requerida: Agregar clausula en terminos de servicio donde el organizador declara tener consentimiento de los invitados cuyos datos importa

Checklist de compliance

Implementado

  • Encriptacion de PII en BD (AES-256-GCM)
  • HTTPS obligatorio (HSTS)
  • Multi-tenancy con aislamiento de datos
  • Sanitizacion de PII en logs
  • Soft delete en toda la BD
  • Pagos procesados por Stripe (PCI compliant)
  • Aviso de privacidad formal (nvito.mx/privacidad)
  • Endpoint de "derecho al olvido" (DELETE /v1/guests/:id/personal-data)
  • Opción de opt-out de comunicaciones (3 mecanismos)
  • Filtro opt-out en dispatchers de comunicación

Pendiente

  • Terminos de servicio
  • Clausula de consentimiento para organizadores
  • Endpoint de acceso ARCO para invitados (consulta de datos propios)
  • Endpoint de rectificacion ARCO para invitados (correccion de datos)
  • Registro de tratamiento de datos (requerido por LFPDPPP)
Esta pagina fue util?