Skip to content

Quickstart

Seis pasos desde cero a tu primer mensaje en producción.

Andá a devs.kalipto.app/app/register y creá tu cuenta con email + password. La cuenta arranca en el plan Free (200 mensajes inbound/mes + 1 canal).

El plan Free es ideal para arrancar. Podés actualizar a Lite/Pro/Business desde el dashboard cuando tu integración escale.

Desde el dashboard, vas a Canales → Conectar canal:

  • WhatsApp: Embedded Signup de Meta. Conectás tu WABA en ~2 minutos sin app review propio.
  • Instagram: Business Login OAuth. Conectás tu cuenta de Instagram Business con un click.

Kalipto guarda el access_token cifrado con Fernet y refresca tokens automáticamente. Cada canal recibe un meta_identifier único (phone_number_id para WA, ig_account_id para IG).

En el detalle del canal (dentro del dashboard), seteás tu webhook_url (HTTPS, sin redirects) y copiás el webhook_secret. Ese secret es lo que vas a usar para verificar X-Kalipto-Signature (ver Verificación HMAC).

El SSRF guard rechaza IPs privadas, loopback, link-local y metadata (169.254.169.254). Tu webhook DEBE estar accesible desde la Internet pública.

En Cuenta → API keys, hacés “Crear key”. Elegís un nombre y los scopes:

  • Mínimo: send:messages para mandar mensajes.
  • Recomendado: send:messages + manage:templates + read:channels (para poder consultar tu channel_id por API, no solo desde el dashboard) si tu integración manda templates. La gestión de canales y de la cuenta se sigue haciendo desde el dashboard (cookie-only) — read:channels solo habilita la lectura.

El texto plano de la key se muestra una sola vez. Copialo a tu vault ahora. Después se guarda solo el SHA-256.

Todas las rutas de /platform/v1/* piden un channel_id. Si ya lo viste en el dashboard (Canales → ID de canal) podés saltear este paso; si tu integración corre server-side, listalo por API con el scope read:channels:

Terminal window
curl https://api.kalipto.app/platform/v1/channels \
-H "X-API-Key: $KALIPTO_DEVS_KEY"
[
{ "id": 1, "channel_type": "whatsapp", "meta_identifier": "1558...", "status": "active" }
]

id es el channel_id que vas a usar en todas las llamadas siguientes.

Terminal window
curl -X POST https://api.kalipto.app/platform/v1/messages \
-H "X-API-Key: $KALIPTO_DEVS_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel_id": 1,
"to": "59891234567",
"type": "text",
"text": "Hola desde la Plataforma de Devs de Kalipto"
}'

Respuesta 200:

{
"message_id": "wamid.HBgL...AA==",
"channel_id": 1,
"type": "text"
}

Ese wamid es el id de Meta, lo vas a ver también en los webhooks de entrega/lectura que Meta nos manda y que nosotros te reenviamos.

  • Enviar mensajes: estructura de la petición y la respuesta, errores posibles, templates y cuotas.