# Service Level Agreement — AfiniTwin Enterprise

> **Versión:** 1.0 (10 de mayo de 2026)
> **Operador del servicio:** Bilbao AI S.L. (CIF B-13759758, Calle Diputación 8, planta 4ª, dpt. 5, 48008 Bilbao, España)
> **Aplica a:** clientes en tier B2B Enterprise de la API AfiniTwin con contrato firmado.
> **NO aplica a:** clientes en tiers Incluido / Starter / Pro (best-effort, sin SLA formal).

Este documento es legalmente vinculante una vez firmado el Master Service Agreement (MSA) que lo referencia. Hasta entonces es informativo.

---

## 1. Definiciones

- **Servicio:** la API B2B AfiniTwin servida en `https://api.afini.ai`, incluyendo todos los endpoints documentados en https://afini.ai/afinitwin/api.
- **Mes de servicio:** mes natural calendárico (UTC).
- **Disponibilidad mensual (Uptime):** porcentaje del tiempo total del mes durante el cual el Servicio está disponible para el Cliente, calculado como:
  ```
  Uptime = (TotalMinutos − MinutosNoDisponibles − MinutosExcluidos) / (TotalMinutos − MinutosExcluidos) × 100
  ```
- **Indisponibilidad:** el Servicio devuelve `5xx` o no responde en > 2× la latencia p95 histórica del endpoint, durante ≥ 60 segundos consecutivos, verificado desde **al menos 3 de las 5 regiones** de monitorización (Better Stack o sustituto contratado).
- **Mantenimiento programado:** ventanas de hasta 2 horas anunciadas al menos 48h antes en la status page y por email al Cliente. **No cuenta como indisponibilidad.**
- **Incidente:** cualquier desviación del Servicio que afecte la disponibilidad o el rendimiento.

---

## 2. Compromiso de disponibilidad

Bilbao AI S.L. se compromete a mantener una disponibilidad mensual del Servicio **≥ 99,9 %** medida en cada mes calendárico.

Esto equivale a un máximo permitido de **43 minutos y 49 segundos** de indisponibilidad acumulada por mes.

---

## 3. Créditos de servicio

Si la disponibilidad mensual cae por debajo del compromiso, el Cliente tiene derecho a créditos de servicio aplicables al siguiente periodo de facturación:

| Disponibilidad real | Crédito sobre la cuota mensual del tier B2B |
|---------------------|--------------------------------------------|
| ≥ 99,9 % | 0 % (compromiso cumplido) |
| 99,0 % – 99,89 % | 10 % |
| 95,0 % – 98,99 % | 25 % |
| < 95,0 % | 50 % |

**Crédito máximo:** el 100 % de la cuota mensual recurrente del tier B2B Enterprise contratado por el Cliente. Los créditos no son canjeables por dinero ni transferibles.

---

## 4. Solicitud de créditos

El Cliente debe solicitar créditos por escrito a `info@afini.ai` dentro de los **30 días naturales** siguientes al cierre del mes afectado. La solicitud debe incluir:

1. Mes afectado.
2. Evidencia de la indisponibilidad observada por su parte (logs, capturas de la status page, IDs de delivery webhook fallidos, etc.).
3. Cálculo aproximado de la pérdida de uptime.

Bilbao AI S.L. responderá dentro de 10 días laborables con su propio cálculo de uptime y el crédito aplicable, basado en métricas de Better Stack y Sentry.

---

## 5. Exclusiones

No cuentan como indisponibilidad para el cálculo del SLA:

1. **Mantenimiento programado** (§1).
2. **Force majeure:** desastres naturales, guerra, ciberataques organizados a infraestructura de internet global, fallos catastróficos de proveedores de tier 1 (Cloudflare global outage, AWS region down, etc.).
3. **Fallos del Cliente:** API key revocada por el Cliente, agotamiento de cuota mensual del tier (ver pricing), uso fuera de los términos contractuales.
4. **Fallos del Cliente en su lado:** problemas de DNS del Cliente, su firewall bloqueando `api.afini.ai`, su código devolviendo 5xx en el receptor de webhooks.
5. **Endpoints en beta o preview** marcados explícitamente como tales en la documentación.
6. **Uso indebido:** abuso, scraping a alta tasa que provoque autodefensa del rate-limiter, inyección de payloads maliciosos.
7. **Indisponibilidad < 60 segundos consecutivos** (no acumulan; consideramos blip transient).

---

## 6. Compromisos adicionales del operador (Bilbao AI)

Más allá del 99,9 %:

1. **Backups de Postgres diarios** retenidos 30 días (R2 Cloudflare encriptado at-rest).
2. **Status page pública** en `https://afini.betteruptime.com` actualizada en tiempo real por monitores externos (Better Stack), no por anuncio manual.
3. **Notificación proactiva** al Cliente para SEV-1 con downtime previsto > 30 minutos.
4. **Post-mortem público** dentro de 5 días laborables tras cualquier incidente SEV-1 con downtime > 30 minutos (publicado en blog Afini.ai).
5. **Soporte técnico Enterprise:**
   - Email a `info@afini.ai` respondido en < 24h hábiles.
   - Slack compartido o canal dedicado tras solicitud.
   - Ingeniero de contacto asignado al Cliente.
6. **Notificación con 30 días de antelación** de cambios incompatibles (breaking changes) en endpoints `v1`. Lanzamiento en paralelo de `v2` antes de retirar `v1`.

---

## 7. Compromisos del Cliente

Para que el SLA aplique, el Cliente se compromete a:

1. Mantener su API key segura y rotarla si sospecha de filtración.
2. Implementar **retry con backoff exponencial** ante 5xx (mínimo 3 intentos con 1s, 5s, 30s).
3. **Verificar la firma HMAC** de los webhooks recibidos antes de actuar sobre el payload.
4. Respetar los `Retry-After` headers cuando los enviemos.
5. Reportar incidentes percibidos en < 24h del momento de detección.

El incumplimiento sustancial de estas obligaciones puede llevar a denegación de créditos para el incidente concreto.

---

## 8. Métricas y monitorización del SLA

La medición oficial de uptime se realiza desde **Better Stack** (o servicio equivalente contratado) configurado con:

- **Endpoint monitorizado:** `https://api.afini.ai/health`
- **Frecuencia:** cada 60 segundos
- **Regiones:** ≥ 5 (EU, NA, Asia, AU, SA)
- **Criterio de "down":** ≥ 3 regiones reportan fallo simultáneo durante ≥ 60s

El Cliente puede acceder al uptime histórico y a los incidentes registrados en la status page pública. Bilbao AI S.L. reserva el derecho de cambiar de proveedor de monitorización con notificación previa de 30 días, manteniendo la metodología equivalente.

---

## 9. Datos y privacidad

- Bilbao AI procesa datos personales del Cliente y de los usuarios finales según el **Data Processing Agreement (DPA)** firmado entre las partes (referenciado en el MSA).
- En caso de violación de seguridad notificable bajo RGPD Art. 33: notificación al Cliente dentro de las **48h** desde su detección, independientemente de que aplique a usuarios del Cliente.
- Localización de datos: Postgres en Railway (us-west2), R2 en Cloudflare (multi-región EU/NA). Si el Cliente requiere localización exclusiva en EU, contactar para opciones (puede afectar al pricing).

---

## 10. Resolución y vigencia

- **Inicio:** desde la fecha de firma del MSA.
- **Periodo mínimo:** 12 meses, renovación automática anual salvo notificación con 60 días de antelación.
- **Terminación anticipada:** disponible si el SLA cae por debajo del 95 % en 2 meses consecutivos. Reembolso prorrateado del periodo no consumido.
- **Modificaciones:** Bilbao AI puede modificar este SLA con 90 días de notificación. El Cliente puede terminar sin penalización si rechaza el cambio.

---

## 11. Limitación de responsabilidad

Bilbao AI S.L.:
- Su responsabilidad total agregada por incumplimiento del SLA está limitada a la cuota mensual del tier B2B Enterprise contratado por el Cliente.
- No es responsable de daños indirectos, pérdida de oportunidad de negocio, lucro cesante o daños consecuentes derivados de indisponibilidad del Servicio.
- Recomienda al Cliente implementar lógica de degradación graceful en su lado (cache local del último snapshot, fallback a respuestas genéricas, etc.).

---

## 12. Contacto

- **Soporte técnico Enterprise:** `info@afini.ai` (asunto: `[Enterprise SLA] <descripción>`)
- **Reclamaciones de SLA:** `info@afini.ai`
- **Notificación legal:** Bilbao AI S.L., Calle Diputación 8, planta 4ª, departamento 5, 48008 Bilbao, España.
- **Status page pública:** https://afini.betteruptime.com (URL definitiva tras provisión).

---

*Este documento se proporciona como plantilla. La versión legalmente vinculante es la firmada en el MSA correspondiente al contrato Enterprise concreto.*
