Documentación legal

SLA y Recuperación ante Desastres

suba — Service Level Agreement & DRP · Última actualización: Marzo 2026

6. Acuerdo de Nivel de Servicio (SLA)

Aplicable a planes de pago (Básico, Profesional, Premium)

6.1 Disponibilidad (Uptime)

suba se compromete a mantener una disponibilidad del servicio de:

PlanUptime GarantizadoCrédito por incumplimiento
Básico99.5% mensual5% del mes facturado por cada 0.5% por debajo
Profesional99.9% mensual10% del mes facturado por cada hora de caída adicional
Premium99.9% mensual + soporte prioritario15% del mes facturado por cada hora de caída adicional

Cálculo de disponibilidad:
Uptime % = ((Total minutos del mes - Minutos de inactividad no planificada) / Total minutos del mes) × 100

El SLA NO aplica para:

  • Mantenimiento programado (notificado con ≥24h de antelación)
  • Interrupciones causadas por el usuario (uso indebido, exceso de carga intencional)
  • Causas de fuerza mayor (desastres naturales, cortes masivos de infraestructura de terceros)
  • Ataques DDoS activos fuera del rango de mitigación contratado

6.2 Tiempos de Respuesta de Soporte

PlanCanalTiempo de primera respuesta
GratisDocumentaciónSin SLA
BásicoEmail48 horas hábiles
ProfesionalEmail24 horas hábiles
PremiumChat + Email4 horas hábiles

6.3 Ventanas de Mantenimiento

  • Mantenimiento planificado: Domingos entre 02:00 y 06:00 hora Perú (UTC-5)
  • Notificación mínima: 24 horas antes por email y notificación in-app
  • El mantenimiento planificado no cuenta como tiempo de inactividad para el cálculo de SLA

6.4 Monitoreo

El estado del servicio y el historial de incidentes se publican en status.suba.app. Internamente el sistema usa:

  • Prometheus para métricas en tiempo real
  • Grafana para dashboards de infraestructura
  • Alertas automáticas vía Prometheus Alertmanager
  • Endpoint /health con estado de MongoDB y Redis en tiempo real

6.5 Solicitud de Créditos por SLA

Para solicitar créditos por incumplimiento del SLA:

  1. Enviar email a [email protected] dentro de los 7 días posteriores al incidente
  2. Incluir: fecha/hora del incidente y evidencia del impacto
  3. suba verificará contra los logs internos y responderá en ≤5 días hábiles
  4. Los créditos se aplican al siguiente período de facturación (no se emiten reembolsos en efectivo)

7. Plan de Recuperación ante Desastres (DRP)

Documento público — Versión 1.0 — Marzo 2026

7.1 Objetivos

RTO

4 horas

Recovery Time Objective — tiempo máximo hasta restaurar el servicio

RPO

24 horas

Recovery Point Objective — máxima pérdida de datos aceptable

7.2 Estrategia de Backups

Base de Datos MongoDB

  • Backup completo: diario, generado a las 03:00 hora Perú (UTC-5)
  • Retención: 30 días de backups diarios
  • Almacenamiento en ubicación geográficamente separada del servidor principal
  • Verificación de integridad: hash SHA-256 de cada backup
  • Restauración probada mensualmente en entorno de staging

Redis (caché y sesiones)

  • Redis Persistence (AOF + RDB snapshot) habilitado
  • Snapshots cada 15 minutos en producción
  • Los datos de Redis son recuperables desde la última snapshot; las sesiones activas se recrean al reconectar

Archivos de uploads (imágenes)

  • Sincronización a almacenamiento secundario: diaria
  • Retención: 90 días de versiones

7.3 Procedimiento de Recuperación ante Fallo Crítico

Paso 1

0–15 min

Detección

  • Alertas automáticas de Prometheus/Alertmanager notifican al equipo técnico
  • Verificación del estado en dashboards de Grafana
  • Comunicación pública en página de estado
Paso 2

15–60 min

Diagnóstico

  • Identificación del componente afectado: MongoDB, Redis, servidor Node.js, red
  • Evaluación del impacto y decisión de recuperación
Paso 3

1–4 horas

Recuperación

  • Si es fallo de servidor: activar instancia de standby/failover
  • Si es corrupción de datos: restaurar desde último backup verificado
  • Si es fallo de Redis: reiniciar con persistencia AOF; las sesiones se recrean desde MongoDB
Paso 4

Post-recuperación

Verificación

  • Pruebas de smoke test en todos los módulos críticos
  • Confirmación de integridad de datos con hash comparison
  • Comunicación de resolución en página de estado
Paso 5

48h post-incidente

Post-Mortem

  • Análisis de causa raíz
  • Implementación de medidas preventivas
  • Actualización de este DRP si corresponde

7.4 Graceful Shutdown

El servidor implementa manejo de señales SIGTERM y SIGINT para:

  • Dejar de aceptar nuevas conexiones
  • Completar las peticiones HTTP en curso
  • Cerrar conexiones a MongoDB y Redis de forma limpia
  • Registrar el cierre en los logs

7.5 Notificación a Usuarios

  • Incidentes que afecten disponibilidad por más de 15 minutos: notificación en página de estado y email a usuarios afectados
  • Incidentes de seguridad que involucren datos de usuarios: notificación dentro de 72 horas conforme a normativa aplicable

8. Portabilidad de Datos

Todo usuario tiene derecho a exportar sus datos en cualquier momento, sin costo adicional.

8.1 Datos Exportables

MóduloFormatosPlan requerido
Catálogo de productosCSV, JSONProfesional+
Historial de ventasCSV, JSONProfesional+
Registro de clientesCSV, JSONProfesional+
Historial de gastosCSV, JSONProfesional+
Lotes y vencimientoCSV, JSONProfesional+
ProveedoresCSV, JSONProfesional+
Logs de auditoríaJSONPremium
Reporte completo del negocioPDF, JSONProfesional+

8.2 Cómo Exportar

Desde la app Android

  1. Ir a Reportes → botón Exportar
  2. Seleccionar rango de fechas y módulos a exportar
  3. Elegir formato (CSV o JSON)
  4. Descargar o compartir el archivo

Desde el panel web

  1. Ir a ReportesExportar datos
  2. Seleccionar período y tipo de datos
  3. Descargar archivo

8.3 Eliminación de Cuenta y Datos

Al solicitar la eliminación de cuenta:

  1. Los datos están disponibles para exportación durante 30 días
  2. Pasado ese período, se eliminan de forma permanente e irrecuperable
  3. Los datos cifrados con E2EE son irrecuperables incluso para suba (zero-knowledge)
  4. Los logs de auditoría de seguridad se retienen por obligación legal por 90 días adicionales antes de eliminarse

¿Tienes preguntas sobre el SLA?

Escríbenos a [email protected] · Soporte general: [email protected]