# MGN-015: Billing y Suscripciones ## Descripción del Módulo El módulo de Billing y Suscripciones gestiona todo el ciclo de vida comercial de la plataforma SaaS, incluyendo la definición de planes, gestión de suscripciones, cobros automáticos, facturación, y monitoreo de uso. También soporta un modo single-tenant para instalaciones on-premise. ## Requerimientos Funcionales | ID | Nombre | Prioridad | Story Points | Estado | |----|--------|-----------|--------------|--------| | [RF-MGN-015-001](./RF-MGN-015-001-gestion-planes-suscripcion.md) | Gestión de Planes de Suscripción | P0 | 8 | Definido | | [RF-MGN-015-002](./RF-MGN-015-002-gestion-suscripciones-tenant.md) | Gestión de Suscripciones de Tenant | P0 | 13 | Definido | | [RF-MGN-015-003](./RF-MGN-015-003-metodos-pago.md) | Gestión de Métodos de Pago | P0 | 8 | Definido | | [RF-MGN-015-004](./RF-MGN-015-004-facturacion-cobros.md) | Facturación y Cobros | P0 | 13 | Definido | | [RF-MGN-015-005](./RF-MGN-015-005-registro-uso-metricas.md) | Registro de Uso y Métricas | P1 | 8 | Definido | | [RF-MGN-015-006](./RF-MGN-015-006-modo-single-tenant.md) | Modo Single-Tenant | P1 | 5 | Definido | | [RF-MGN-015-007](./RF-MGN-015-007-pricing-por-usuario.md) | Pricing por Usuario (Per-Seat) | P0 | 13 | Definido | **Total Story Points:** 68 ## Dependencias ### Dependencias Internas - **MGN-001 (Autenticación):** Gestión de tenants y usuarios - **MGN-002 (Core):** Configuraciones del sistema - **MGN-004 (Financiero):** Generación de asientos contables por cobros de suscripción - **MGN-014 (Mensajería):** Notificaciones de eventos y auditoría de cambios ### Dependencias Externas - Gateway de pagos (Stripe, Conekta, MercadoPago) - PAC para CFDI (Facturama, SW Sapien) - Servicio de email para notificaciones ### Es Dependencia de (Bloqueante para) - **MGN-016 (Pagos):** Feature flags de integraciones habilitadas - **MGN-017 (WhatsApp):** Feature flags de canales habilitados - **MGN-018 (AI Agents):** Control de consumo de tokens y límites ## Diagrama de Dependencias entre RFs ``` RF-001 (Planes) │ ▼ RF-002 (Suscripciones) ──────► RF-006 (Single-Tenant) │ ▼ RF-003 (Métodos Pago) │ ▼ RF-004 (Facturación) │ ▼ RF-005 (Uso/Métricas) ``` ## Actores del Módulo | Actor | Descripción | RFs Relacionados | |-------|-------------|------------------| | Super Admin | Administrador de plataforma SaaS | RF-001 | | Tenant Owner | Propietario de organización | RF-002, RF-003, RF-004, RF-005 | | Sistema | Procesos automáticos | RF-002, RF-004, RF-005 | | Gateway | Procesador de pagos externo | RF-003, RF-004 | ## Entidades Principales - `billing.subscription_plans` - Definición de planes disponibles - `billing.subscriptions` - Suscripciones activas por tenant - `billing.tenant_owners` - Propietarios de cuenta - `billing.payment_methods` - Métodos de pago tokenizados - `billing.invoices` - Facturas generadas - `billing.invoice_lines` - Líneas de detalle de factura - `billing.payments` - Registro de pagos/transacciones - `billing.usage_records` - Métricas de uso por período - `billing.coupons` - Cupones de descuento - `billing.coupon_redemptions` - Cupones aplicados - `billing.subscription_history` - Historial de cambios ## Modos de Operación ### SaaS Multi-Tenant - Múltiples organizaciones en una instancia - Billing y cobros automáticos activos - Límites según plan contratado - Registro público de nuevos tenants ### Single-Tenant On-Premise - Una organización por instancia - Billing deshabilitado/oculto - Sin límites de uso - Branding personalizable ## Notas de Implementación 1. **Seguridad de Pagos:** Nunca almacenar datos sensibles de tarjetas; usar tokenización del gateway 2. **CFDI:** Requerido para clientes mexicanos con RFC 3. **Reintentos:** Política de 3 intentos (días 1, 3, 7) antes de suspender 4. **Histórico:** Mantener facturas y registros por 5 años mínimo 5. **Caché:** Uso actual en Redis para validaciones rápidas de límites