# Salud y estado

Cómo saber si la API responde y qué capacidades están afectadas.

[`GET /v1/health`](/docs/operaciones/consultar-salud/) dice si la API responde. [`GET /v1/status`](/docs/operaciones/consultar-estado/) dice qué capacidades de tu empresa están afectadas. No hay página pública de estado.

| Ruta | Acceso | Para qué | Responde |
|---|---|---|---|
| [`GET /v1/health`](/docs/operaciones/consultar-salud/) | Pública | Saber si la API responde | `ok`, `degraded` o `down`, sin detalle |
| [`GET /v1/status`](/docs/operaciones/consultar-estado/) | Con llave | Saber qué capacidades están afectadas | Estado por capacidad |

`/v1/health` sale de una medición en segundo plano, sin llave y sin gastar cuota:

| `status` | HTTP | Qué significa |
|---|---|---|
| `ok` | 200 | La API y sus servicios internos responden |
| `degraded` | 200 | La API responde, pero un servicio interno no, como el que procesa los pagos; o la medición tiene más de 15 segundos |
| `down` | 503 | La API no puede atender peticiones |

`degraded` responde **200**: si tu monitor sólo mira el código HTTP, no lo verá. Lee también `status`.

Capacidades: `payments_mxn`, `payments_latam`, `payments_pix`, `collections`, `webhooks`, `api`. Estados: `operational`, `degraded`, `outage`, `unknown`, `not_enabled`. Una capacidad que tu empresa no tiene sale como `not_enabled`.

## Qué hacer

| Lo que ves | Qué hacer |
|---|---|
| `degraded` en `/v1/health` | Consulta [`GET /v1/status`](/docs/operaciones/consultar-estado/) para ver qué está afectado |
| `degraded` en una capacidad | Sigue operando. Espera más demora y más reintentos |
| `outage` en `payments_mxn` o `payments_latam` | Pausa pagos nuevos de esa capacidad. Conserva cola local. No generes claves nuevas |
| `unknown` | Trátalo como `degraded` y revisa de nuevo en 1 minuto |
| `outage` en `webhooks` | Consulta [`GET /v1/events`](/docs/operaciones/listar-eventos/) para recuperar eventos |
| `503` | Reintenta con la misma clave y espera exponencial con variación |
| Timeout en un pago | Repite con **la misma** `Idempotency-Key`. Nunca lo des por fallido |
| `/v1/health` no responde | Caída total: ver abajo |

Quien tiene login ve lo mismo en la pantalla Estado del panel, con incidentes e historial de 90 días.

## Caída total

- `/v1/health` y `/v1/status` no responderán, y el panel probablemente tampoco.
- Tu integración debe contemplarlo desde el inicio: cola local, reintentos con espera, tope de reintentos y alerta propia.
- No cambies llaves, IP ni claves de idempotencia durante la caída.
- Escribe a [soporte](/docs/soporte/), que no depende de la API.

## Errores comunes

- Usar `/v1/health` para decidir si un pago ocurrió. Consulta el `pay_`.
- Tratar sólo el `503` como problema: `degraded` llega con `200`.
- Pausar todo por una capacidad degradada: pausa sólo lo afectado.

## Qué sigue

[Soporte](/docs/soporte/).
