RF06: Usuario elimina cuenta
Descripción
Como usuario autenticado, quiero eliminar mi cuenta y mis datos para ejercer mi derecho ARCO de cancelación/supresión (LFPDPPP Art. 24 / GDPR Art. 17).
La eliminación revoca todas las sesiones, cancela la suscripción activa en Stripe, y borra o anonimiza los datos personales respetando la Política de retención (algunos datos fiscales deben conservarse por obligación legal antes de la purga definitiva).
| Campo | Valor |
|---|---|
| Módulo | Auth Module (coordina con Subscription) |
| Actor | Usuario autenticado |
| Endpoint | DELETE /auth/account |
| Precondiciones | Sesión activa; reautenticación reciente |
| Prioridad | Media (derecho ARCO — primer trimestre post-MVP) |
| Etapa | MVP |
| Requisitos relacionados | RF05, RF39, Compliance §4 |
Reglas de negocio
- RN-06.1 — La eliminación exige confirmación explícita y reautenticación (contraseña o proveedor social) para prevenir borrados accidentales o por sesión robada.
- RN-06.2 — Antes de borrar se cancela la suscripción Stripe (
cancel_at_period_endo cancelación inmediata según política). - RN-06.3 — Se revocan todas las sesiones del usuario.
- RN-06.4 — Datos con obligación fiscal (movimientos, facturas) se retienen anonimizados/cifrados durante el periodo legal (hasta 5 años) y luego se purgan; el resto se borra de forma segura.
- RN-06.5 — La acción es irreversible y se informa claramente al usuario antes de confirmar.
Validaciones de entrada
| Campo | Reglas | Mensaje de error |
|---|---|---|
confirmation | Debe coincidir con el texto/checkbox de confirmación. | "Confirma que deseas eliminar tu cuenta." |
reauth | Contraseña válida o token social reciente. | "Verifica tu identidad para continuar." |
Criterios de aceptación
Escenario 1: Eliminación exitosa
Dado que confirmo la eliminación y reautentico correctamente,
Cuando envío la solicitud,
Entonces el sistema cancela mi suscripción en Stripe,
Y revoca todas mis sesiones,
Y borra/anonimiza mis datos según la política de retención,
Y responde 200 OK y me cierra la sesión,
Y recibo un email de confirmación de eliminación.
Escenario 2: Reautenticación fallida
Dado que la contraseña/identidad de reautenticación es incorrecta,
Cuando intento eliminar la cuenta,
Entonces el sistema responde 401 y no elimina nada.
Escenario 3: Confirmación no otorgada
Dado que no confirmo explícitamente, Cuando intento continuar, Entonces la acción se bloquea y se muestra "Confirma que deseas eliminar tu cuenta".
Escenario 4: Datos con retención legal
Dado que tengo movimientos y facturas con obligación fiscal, Cuando se elimina mi cuenta, Entonces esos datos se anonimizan/cifran y se conservan el periodo legal, Y el resto de mis datos personales se borra de forma segura.
Criterios no funcionales
- La operación es transaccional: si falla la cancelación en Stripe, no se borran datos y se informa el error.
- Se registra el evento en el log de privacidad/auditoría.
- Comunicación sobre TLS 1.2+.