API Reference
La API REST de AgentBuilder permite enviar mensajes de WhatsApp, gestionar conversaciones, sincronizar contactos y recibir notificaciones en tiempo real desde tu CRM o backend. Todas las peticiones se autentican con un Bearer token y respetan los permisos (scopes) que asignes a cada API key.
wa_number conectado a tu workspace. Las claves ak_test_… solo funcionan contra wa_numbers de sandbox y no consumen cuota de tu plan.Autenticación
Envía tu API key en el header Authorization con el esquema Bearer. Las claves tienen el formato ak_live_… (producción) o ak_test_… (sandbox) y se generan una sola vez desde el panel — guárdalas en un gestor de secretos.
Respuestas de error de autenticación
Errores y reintentos
Las respuestas no-2xx tienen siempre este formato:
Códigos de estado
Rate limits
El límite se aplica por API key y depende del plan del tenant. Cada respuesta incluye headers para que puedas ajustar tu cliente sin sondear hasta el 429.
Headers de respuesta
Endpoints
Enviar mensajePOST/v1/public/messages
Encola un mensaje de WhatsApp saliente. Requiere scope messages:send. Solo soporta números conectados vía Cloud API (no Baileys / sandbox).
Cuerpo
Ejemplo
message.sent o consulta el endpoint GET /v1/public/messages/:id.Consultar mensajeGET/v1/public/messages/:id
Devuelve el estado y contenido de un mensaje. Requiere scope messages:read.
Listar conversacionesGET/v1/public/conversations
Lista paginada de conversaciones del workspace. Scope: conversations:read.
Query params
Detalle de conversaciónGET/v1/public/conversations/:id
Detalle completo. Scope: conversations:read.
Hand-off a humanoPOST/v1/public/conversations/:id/handoff
Desactiva el bot en la conversación para que un agente humano la atienda. Dispara el webhookbot.handed_off. Scope: conversations:write.
Crear o actualizar contactoPOST/v1/public/contacts
Crea el contacto si no existe, o actualiza nombre / atributos / tags si ya existe (búsqueda por waId). Scope: contacts:write.
Cuerpo
Consultar contactoGET/v1/public/contacts/:waId
Scope: contacts:read.
Actualizar atributosPATCH/v1/public/contacts/:waId
Permite actualizar nombre, atributos o tags sin tocar el resto. Scope: contacts:write.
Webhooks
Cómo funcionan
Los webhooks son HTTP POSTs que enviamos a una URL tuya cada vez que ocurre un evento en tu workspace (mensaje entrante, cita agendada, etc.). Reemplazan la necesidad de hacer polling y son la forma recomendada de mantener tu CRM en sync.
POST /v1/public/webhooks). Te entregamos un secret en claro UNA sola vez para que firmes verificaciones HMAC.Estructura del payload
Todos los eventos comparten esta estructura:
Headers de cada request
Verificar la firma
Firmamos cada request para que puedas confirmar que viene de nosotros y que no fue manipulada. La firma se computa como HMAC_SHA256(secret, "<unix_ts>.<raw_body>").
Ejemplos de verificación
Catálogo de eventos
Eventos que puedes suscribir al registrar un endpoint:
Reintentos
Si tu endpoint no responde 2xx, lo reintentamos con back-off exponencial. Después de 7 intentos sin éxito, marcamos el endpoint como failed y dejamos de enviar.
Calendario de reintentos
Reglas especiales
Gestionar endpoints vía API
Además del panel, puedes registrar/listar/eliminar endpoints programáticamente. Scope: webhooks:manage.
Registrar endpoint
secret se devuelve UNA SOLA VEZ. Guárdalo inmediatamente — no podrás recuperarlo más adelante. Si lo pierdes, deberás eliminar el endpoint y crearlo de nuevo.