Skip to content

Autenticación

La API pública de Zelta CRM se autentica mediante API Keys que se envían en el header Authorization de cada solicitud.

¿Cómo funciona?

Todas las solicitudes a la API pública deben incluir el header de autenticación con el esquema Bearer:

http
Authorization: Bearer zk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

La API valida la clave en cada solicitud. Si la clave es inválida, está expirada, fue revocada o no se incluye, la API retorna un error de autenticación.

Prefijo de las claves

Todas las API Keys de Zelta CRM comienzan con el prefijo zk_. Esto te permite identificarlas fácilmente y distinguirlas de otras credenciales en tu sistema.

Obtener una API Key

  1. Inicia sesión en tu espacio de trabajo de Zelta CRM.
  2. Navega a Configuración → API Keys en el menú lateral.
  3. Haz clic en Crear API Key.
  4. Ingresa un nombre descriptivo para la clave (por ejemplo, Integración ERP, Bot de sincronización).
  5. Selecciona los permisos que necesita la clave.
  6. Opcionalmente, define una fecha de expiración.
  7. Haz clic en Crear y copia la clave generada.

La clave solo se muestra una vez

Por seguridad, el valor completo de la API Key solo se muestra en el momento de creación. Una vez que cierras el diálogo, no podrás verla de nuevo. Cópiala y guárdala en un lugar seguro antes de continuar. En el servidor solo se almacena un hash SHA-256 de la clave.

Permisos

Cada API Key tiene asociado un conjunto de permisos que determinan qué operaciones puede realizar. Los permisos siguen el formato recurso:acción.

Permisos disponibles

RecursoPermisoDescripción
Contactoscontacts:readListar y consultar contactos
Contactoscontacts:createCrear nuevos contactos
Contactoscontacts:updateActualizar contactos existentes
Contactoscontacts:deleteEliminar contactos
Empresascompanies:readListar y consultar empresas
Empresascompanies:createCrear nuevas empresas
Empresascompanies:updateActualizar empresas existentes
Empresascompanies:deleteEliminar empresas
Negociosdeals:readListar y consultar negocios
Negociosdeals:createCrear nuevos negocios
Negociosdeals:updateActualizar negocios existentes
Negociosdeals:deleteEliminar negocios
Actividadesactivities:readListar y consultar actividades
Actividadesactivities:createCrear nuevas actividades
Actividadesactivities:updateActualizar actividades existentes
Actividadesactivities:deleteEliminar actividades
Productosproducts:readListar y consultar productos
Productosproducts:createCrear nuevos productos
Productosproducts:updateActualizar productos existentes
Productosproducts:deleteEliminar productos

Comodines de permisos

PatrónDescripción
*Acceso completo a todos los recursos y acciones
contacts:*Acceso completo al recurso de contactos
deals:*Acceso completo al recurso de negocios

Principio de mínimo privilegio

Crea claves con solo los permisos que tu integración realmente necesita. Una clave de lectura para un sistema de reportes no necesita permisos de escritura ni eliminación.

Uso de la API Key

bash
curl -X GET "https://api-crm.zelta.dev/public/v1/contacts" \
  -H "Authorization: Bearer zk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Ejemplo JS

javascript
const response = await fetch('https://api-crm.zelta.dev/public/v1/contacts', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.ZELTA_API_KEY}`
  }
});

const result = await response.json();

Ejemplo Py

python
import requests

response = requests.get(
    'https://api-crm.zelta.dev/public/v1/contacts',
    headers={
        'Authorization': f"Bearer {os.environ['ZELTA_API_KEY']}"
    }
)

result = response.json()

URLs base

EntornoURL
Producciónhttps://api-crm.zelta.dev/public/v1
Desarrollohttps://dev-api-crm.zelta.dev/public/v1

Errores de autenticación

HTTPCódigo de errorDescripción
401INVALID_API_KEYLa clave no existe o el formato es incorrecto
401API_KEY_EXPIREDLa clave superó su fecha de expiración
401API_KEY_REVOKEDLa clave fue revocada manualmente
403API_KEY_FORBIDDENLa clave no tiene permiso para esta operación
423TENANT_SUSPENDEDEl espacio de trabajo está suspendido

Ejemplo de respuesta de error:

json
{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "API Key inválida o no encontrada"
  }
}

Buenas prácticas de seguridad

  • Usa variables de entorno — nunca escribas la clave directamente en el código fuente ni en repositorios
  • Rota las claves periódicamente — no esperes a que expiren; reemplázalas de forma proactiva
  • Una clave por integración — crea claves independientes para cada sistema o servicio que se conecte al CRM
  • Asigna solo los permisos necesarios — una integración de lectura no necesita permisos de escritura
  • Monitorea el uso — revisa las claves activas desde Configuración → API Keys para detectar accesos inesperados
bash
# Ejemplo: almacena la clave en una variable de entorno
export ZELTA_API_KEY="zk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

curl -X GET "https://api-crm.zelta.dev/public/v1/contacts" \
  -H "Authorization: Bearer $ZELTA_API_KEY"

Siguientes pasos

  • — URL base, límites de uso, formato de respuestas y códigos de error
  • — Listar, crear y gestionar contactos por API
  • — Listar, crear y gestionar empresas por API

Documentación oficial de Zelta