Una API simple para hablar con tus clientes
Enviá WhatsApp, códigos de verificación y recibí los eventos de cada conversación en tu sistema.
Pedir una clave de pruebaProbala sin costo
Te damos una clave de prueba y un número de WhatsApp de sandbox para tu entorno de desarrollo.
Pedir mi clave# Enviar un WhatsApp desde tu sistema curl -X POST https://tu-cuenta.ideacenter.com.ar/api/v1/integrations/whatsapp/messages \ -H "Authorization: Bearer $IDEACENTER_KEY" \ -H "Idempotency-Key: pedido-1042" \ -d '{ "to": "5492615551234", "type": "text", "text": "Tu pedido #1042 está en camino 🚚", "client_ref": "pedido-1042" }'
// Laravel / Guzzle $response = Http::withToken(env('IDEACENTER_KEY')) ->withHeaders(['Idempotency-Key' => 'pedido-1042']) ->post('https://tu-cuenta.ideacenter.com.ar/api/v1/integrations/whatsapp/messages', [ 'to' => '5492615551234', 'type' => 'text', 'text' => 'Tu pedido #1042 está en camino 🚚', 'client_ref' => 'pedido-1042', ]);
// Node 18+ (fetch nativo) const res = await fetch('https://tu-cuenta.ideacenter.com.ar/api/v1/integrations/whatsapp/messages', { method: 'POST', headers: { Authorization: `Bearer ${process.env.IDEACENTER_KEY}`, 'Content-Type': 'application/json', 'Idempotency-Key': 'pedido-1042', }, body: JSON.stringify({ to: '5492615551234', type: 'text', text: 'Tu pedido #1042 está en camino 🚚', client_ref: 'pedido-1042', }), });
Autenticación
Cada pedido lleva una clave en el encabezado Authorization: Bearer cck_live_…. Las claves se crean desde el panel, tienen permisos por alcance (messages:write, templates:read, otp:send, account:read, branches:write), pueden vencer y se revocan en el momento. El límite es de 120 pedidos por minuto por clave.
Endpoints
| Método y ruta | Para qué sirve |
|---|---|
POST /whatsapp/messages | Enviar un texto dentro de la ventana de 24 h o una plantilla fuera de ella. Acepta Idempotency-Key y client_ref. |
GET /whatsapp/templates | Listar las plantillas aprobadas. |
POST /whatsapp/templates | Crear una plantilla y enviarla a aprobación. |
POST /whatsapp/otp | Enviar un código de verificación. No abre ticket ni consume la cuota de mensajes. |
POST /whatsapp/opt-in | Reactivar a un contacto que se había dado de baja. |
PUT /whatsapp/conversations/bot | Prender o apagar el bot en una conversación. |
GET /whatsapp/window | Saber si la ventana de 24 h de un contacto está abierta (sin costo). |
GET /usage | Consultar el consumo de la cuota (sin costo). |
GET · PUT /branches | Sincronizar las sucursales con tu sistema. |
GET /media/{tenant}/{message} | Descargar adjuntos con una URL firmada válida por 7 días. |
Webhooks
Registrás una URL y la plataforma te envía cada evento firmado con el estándar Standard Webhooks. Si tu servidor no responde, reintenta durante unas 28 horas.
message.received,message.sent,message.statuscontact.opted_out,contact.opted_inticket.created,ticket.closed,conversation.handofftemplate.status,ping
Envíos sin duplicados
Mandá el mismo Idempotency-Key si reintentás un pedido: la plataforma devuelve la respuesta original en lugar de enviar el mensaje dos veces.
¿Tenés un proyecto en mente?
Contanos qué necesitás atender, automatizar o conectar y armamos una propuesta a tu medida.