#Autenticación
Cada credencial de la API de Clarisfy es un par API key + API secret, emitido para un entorno concreto. Autenticas enviando ambos con HTTP Basic en el header Authorization.
#El par key + secret
Al crear una credencial obtienes dos valores:
| Valor | Prefijo | Visibilidad |
|---|---|---|
| API key | clf_{env}_key_… | Pública. Identifica la credencial; puedes volver a consultarla en el Panel. |
| API secret | clf_{env}_secret_… | Privada. Se muestra una sola vez al crearla; guárdala de inmediato. |
El servidor solo almacena el sha256 del secret: si lo pierdes, genera una credencial nueva y revoca la anterior. El prefijo clf_ es amigable con el escaneo de secretos (herramientas como el secret-scanning de GitHub detectan una clave filtrada por su patrón).
#Entornos
Cada credencial vive en un entorno, marcado en el prefijo:
| Entorno | Prefijos | Uso |
|---|---|---|
Producción (live) | clf_live_key_… / clf_live_secret_… | Datos fiscales reales del contribuyente. |
Desarrollo (test) | clf_test_key_… / clf_test_secret_… | Datos de prueba. |
#Cómo autenticarte
El método canónico es HTTP Basic: la api_key va como usuario y el api_secret como contraseña (Authorization: Basic base64(api_key:api_secret)). Para pruebas rápidas también se acepta el api_secret solo como Bearer.
# HTTP Basic (recomendado): -u la codifica en base64 por ti
curl https://api.clarisfy.com/api/v1/fiscal-entities \
-u "clf_live_key_2b7f9c1a4d8e6f30a1b2c3d4:clf_live_secret_9K3mZ1pQ7rTx8vB4nH6dLwYe"#Cómo se administran
Las credenciales se crean, rotan y revocan desde el Panel (Configuración → Desarrollo → API keys). Son:
- Por organización — pertenecen a tu
Account, no a un usuario individual. - Por entorno — eliges Producción o Desarrollo al crearlas.
- Rotables — genera una credencial nueva y revoca la anterior sin tiempo fuera de servicio.
#Errores de autenticación
Los errores devuelven el HTTP status correspondiente y un cuerpo { "detail": … }:
| Código HTTP | detail (ejemplo) | Causa |
|---|---|---|
401 | missing or invalid Authorization header | No se envió Authorization o el esquema no es Basic/Bearer. |
401 | invalid Basic credentials | El base64 de Basic no es api_key:api_secret válido. |
401 | invalid or revoked api credentials | La credencial no existe, expiró o fue revocada, o el secret no coincide. |
Ejemplo de respuesta 401:
{
"detail": "invalid or revoked api credentials"
}