Autenticación
Cómo crear una clave de API, enviarla en cada request y cambiarla sin cortar tu integración.
Todas las llamadas a la WABA API y a la API de CRM se autentican con una clave de API de tu empresa, enviada en el header Authorization:
curl https://api.whapi.chat/waba-api/phone-numbers \
--header 'Authorization: Bearer whk_TU_CLAVE'
Una misma clave sirve para las dos APIs.
Crear una clave
- En Whapi, entra a Configuración de la empresa → Claves de API. Solo los administradores ven esta pestaña.
- Pulsa Crear clave y ponle un nombre que identifique dónde la vas a usar (por ejemplo, «CRM interno»).
- Copia la clave. Se muestra una sola vez: Whapi la guarda cifrada y después solo verás su prefijo.
Puedes tener hasta 5 claves activas. Usa una por integración: así puedes cambiar o revocar una sin afectar a las demás.
Si tu empresa tenía una clave antes de que existiera esta pantalla, aparece con la etiqueta «Formato anterior» y sigue funcionando hasta que la regeneres.
Regenerar una clave
Al regenerar, Whapi crea una clave nueva con el mismo nombre. Eliges qué pasa con la anterior:
| Opción | Qué pasa con la clave anterior | Cuándo usarla |
|---|---|---|
| Mantener la anterior 7 días | Sigue funcionando 7 días; las dos valen al mismo tiempo. | Para migrar con calma. |
| Invalidar la anterior ahora | Deja de funcionar en el acto. | Si la clave se filtró. |
Mientras la clave anterior está en su período de gracia, cada respuesta incluye el header X-Whapi-Api-Key-Expires-At con la fecha en que dejará de funcionar. Si tu integración lo registra, sabrás a tiempo que falta reemplazarla.
Revocar una clave
Revocar invalida la clave de inmediato y no se puede deshacer. Antes de confirmar, Whapi te avisa si la clave se usó en las últimas 24 horas.
Errores de autenticación
Todos responden 401 con un code que indica la causa:
code | Causa | Qué hacer |
|---|---|---|
AUTH_HEADER_MISSING | Falta el header Authorization: Bearer <clave>. | Revisa que tu cliente HTTP lo envíe. |
API_KEY_INVALID | La clave no existe. | Revisa que esté completa, sin espacios. |
API_KEY_REVOKED | La clave fue revocada. | Crea una clave nueva. |
API_KEY_EXPIRED | La clave fue regenerada y terminó su período de gracia. expiredAt indica cuándo. | Usa la clave nueva. |
{
"error": "This API key was revoked",
"code": "API_KEY_REVOKED"
}
Buenas prácticas
- Guarda la clave en una variable de entorno o un gestor de secretos, nunca en el código ni en el navegador.
- Llama a la API desde tu servidor. Una clave en una página web queda a la vista de cualquiera.
- Si sospechas que una clave se filtró, regenérala con Invalidar la anterior ahora.