Quickstart
Seis pasos desde cero a tu primer mensaje en producción.
1. Registrar cuenta
Section titled “1. Registrar cuenta”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.
2. Conectar un canal
Section titled “2. Conectar un canal”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).
3. Configurar webhook del canal
Section titled “3. Configurar webhook del canal”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.
4. Generar API key
Section titled “4. Generar API key”En Cuenta → API keys, hacés “Crear key”. Elegís un nombre y los scopes:
- Mínimo:
send:messagespara mandar mensajes. - Recomendado:
send:messages+manage:templates+read:channels(para poder consultar tuchannel_idpor 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:channelssolo 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.
5. Obtener tu channel_id
Section titled “5. Obtener tu channel_id”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:
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.
6. Enviar el primer mensaje
Section titled “6. Enviar el primer mensaje”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
wamides 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.
Próximo paso
Section titled “Próximo paso”- Enviar mensajes: estructura de la petición y la respuesta, errores posibles, templates y cuotas.