RF42: Usuario es degradado de suscripción
Descripción
El sistema degrada al usuario del plan premium al plan Free cuando su suscripción de pago termina (cancelación vencida, fallo de pago persistente tras el dunning, o impago).
La degradación se dispara por webhook validado (customer.subscription.deleted o fin de dunning) y ajusta los límites del plan, incluyendo el de sesiones simultáneas (de 5 premium a 2 gratuito — Control de Sesiones §4.2).
| Campo | Valor |
|---|---|
| Módulo | Subscription Module |
| Actor | Sistema (disparado por webhook) |
| Endpoint | Interno: handler de webhooks |
| Precondiciones | Suscripción de pago terminada/impaga |
| Prioridad | Alta (MVP) |
| Etapa | MVP |
| Requisitos relacionados | RF39, RF41, RF45 |
Reglas de negocio
- RN-42.1 — La degradación se origina en un webhook validado de Stripe.
- RN-42.2 — Al degradar, se revocan accesos a funciones premium y se aplican los límites de Free.
- RN-42.3 — Si el usuario excede el límite de sesiones de Free, se revocan las sesiones más antiguas hasta cumplir el límite.
- RN-42.4 — Los datos del usuario no se borran al degradar; solo se restringe el acceso premium.
- RN-42.5 — Se notifica al usuario la degradación (RF41) con opción de re-suscribirse.
Validaciones / consideraciones
| Aspecto | Regla |
|---|---|
| Origen | Webhook validado o fin de dunning. |
| Idempotencia | Degradar dos veces deja el mismo estado Free. |
| Datos | Se conservan; solo cambia el nivel de acceso. |
Criterios de aceptación
Escenario 1: Degradación por vencimiento de cancelación
Dado que mi suscripción cancelada llega a su fin de periodo,
Cuando Stripe emite customer.subscription.deleted,
Entonces el sistema me pone en plan Free,
Y ajusta mis límites (incluyendo sesiones a 2),
Y me notifica (RF41).
Escenario 2: Degradación por impago tras dunning
Dado que mis reintentos de cobro fallan durante el dunning, Cuando Stripe finaliza el proceso sin éxito, Entonces el sistema me degrada a Free y me notifica.
Escenario 3: Exceso de sesiones al degradar
Dado que tenía 4 sesiones activas en premium, Cuando me degradan a Free (límite 2), Entonces se revocan las sesiones más antiguas hasta dejar 2.
Escenario 4: Conservación de datos
Dado que me degradan a Free, Cuando reviso mi cuenta, Entonces mis datos financieros siguen disponibles dentro de los límites de Free; nada se borra.
Criterios no funcionales
- Operación idempotente; comunicación TLS 1.2+.
- El cambio de límites se aplica de forma consistente con el webhook.