# Preguntas frecuentes

> Cómo pedir acceso, a quién escribir para soporte y las dudas que suelen salir al integrar.

Página: https://safeonuba.com/desarrolladores/preguntas-frecuentes · API de SafeOnuba v1 (`api_version: "2026-09-24"`), en vista previa: el contrato puede cambiar.

## Acceso y soporte

### ¿Cómo pido acceso a la API?

Escríbenos a [info@safeonuba.com](mailto:info@safeonuba.com?subject=Acceso%20a%20la%20API%20de%20SafeOnuba) con tu empresa, la planta y qué quieres integrar. El acceso lo damos de alta nosotros, cliente a cliente, con un motivo que queda registrado y que la planta ve en su panel.

### ¿Puedo probar antes de tener acceso a producción?

Sí, y es lo recomendado: se integra en el [sandbox](https://safeonuba.com/desarrolladores/sandbox), con relojes simulados. Producción se activa al dar de alta al cliente.

### ¿Está abierta ya la API de producción?

Todavía no está abierta al público. `https://api.safeonuba.com` se activa al dar de alta a cada cliente.

### ¿A quién escribo si algo no funciona?

A [info@safeonuba.com](mailto:info@safeonuba.com?subject=Soporte%20de%20la%20API%20de%20SafeOnuba). Si es un error de la API, incluye el `code` y el `instance` del cuerpo del error, la hora (UTC) y, si es un webhook, el `X-SafeOnuba-Event-Id`. **Nunca mandes el `client_secret`, un token ni el secreto de un webhook.**

## Integración

### ¿Puedo llamar a la API desde el navegador o desde una página de la intranet?

No directamente. La API no tiene CORS, y además el `client_secret` no debe estar nunca en un navegador. Pon un servicio tuyo en medio: tu servidor llama a la API y tu página habla con tu servidor.

### ¿Puedo abrir una evacuación desde mi sala?

No en v1. El sistema propone y una persona decide en el panel de SafeOnuba. Tu sala recibe la evacuación en cuanto empieza.

### ¿Cuánto tarda en llegar una alerta?

Desde que salta un SOS hasta que llega a tu receptor pasan normalmente 1 o 2 segundos. Es una medición típica, no un compromiso de servicio.

### Me ha llegado el mismo evento dos veces.

Es normal: la entrega es «al menos una vez». Deduplica por el `id` del evento. Ver [Duplicados](https://safeonuba.com/desarrolladores/webhooks#duplicados).

### Los eventos me llegan desordenados.

También es normal: lo urgente sale primero y los reintentos llegan cuando llegan. Quédate con el más reciente. Ver [Orden](https://safeonuba.com/desarrolladores/webhooks#orden).

### Mi receptor ha estado caído. ¿He perdido eventos?

No, si lo recuperas antes de 30 días: `GET /v1/events` devuelve los mismos eventos, byte a byte. Ver [Recuperar lo perdido](https://safeonuba.com/desarrolladores/eventos#recuperar-lo-perdido).

### La firma no me cuadra.

Casi siempre es que se está calculando sobre el JSON ya parseado y vuelto a serializar, y no sobre el cuerpo en bruto. Ver [Verificar la firma](https://safeonuba.com/desarrolladores/webhooks/verificar-firma#errores-frecuentes).

### Una alerta me llega sin posición.

Es la privacidad de la planta: la alerta está por debajo de la gravedad que deja ver la posición, y trae `location_withheld: true`. Ver [Posiciones](https://safeonuba.com/desarrolladores/conceptos/posiciones).

### ¿Por qué no veo los nombres de los trabajadores?

Los nombres son opcionales por contrato. Sin ellos, cada persona se identifica por su `external_id`. Ver [Trabajadores y relojes](https://safeonuba.com/desarrolladores/conceptos/trabajadores-y-relojes#sin-nombres).

### ¿Puedo usar un asistente de IA para integrar?

Sí. Cada página tiene el botón **Copiar**, arriba a la derecha, que la copia en Markdown, y su versión en texto añadiendo `.md` a la dirección. Para dárselo todo de una vez, [/llms-full.txt](https://safeonuba.com/llms-full.txt). Ver [Usar esta documentación con IA](https://safeonuba.com/desarrolladores#usar-esta-documentacion-con-ia).

### ¿Puede SafeOnuba recibir alarmas de mis sistemas?

Existe una entrada para alarmas de terceros, pero se configura bajo petición y no forma parte de esta API pública. Escríbenos si lo necesitas.
