Gestión de Sesiones
Centro de Control de API
O
O
Envía múltiples tipos de mensajes en una sola petición de API
Mensaje de Texto
Imagen
O
Documento
O
Funciones de IA portadas de 'Idea'
Difusión masiva a todos tus contactos
Ejemplo de uso de API (cURL)
Seleccione una opción arriba para ver el ejemplo...
Referencia de API y Ejemplos de Comandos cURL
Gestión de Sesiones
Crear Sesión
curl -X POST "http://localhost:3000/send" \
-H "Content-Type: application/json" \
-d '{
"sid": "miNuevaSesion",
"type": "session_create"
}'
Listar Todas las Sesiones
curl -X GET "http://localhost:3000/send?type=sessions_list"
Eliminar Sesión
curl -X DELETE "http://localhost:3000/send?sid=miSesion"
- Crear Sesión: Requiere la Clave Maestra de API para acceso externo. Retorna un token de sesión.
- Listar Sesiones: Endpoint público - no requiere autenticación.
- Eliminar Sesión: Requiere el token Bearer de la sesión.
- Guarda el token retornado al crear la sesión; es necesario para todas las demás operaciones.
Enviar Mensaje de Texto
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "text",
"message": "¡Hola desde la API!"
}'
Enviar Texto + Imagen
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "image",
"message": "Esta es una imagen de prueba.\n¡Con nueva línea!", "path": "https://picsum.photos/200"
}'
Enviar Texto + Imagen + Documento
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"number": "5491122334455",
"type": "text",
"message": "¡Aquí tienes una imagen y un documento!"
},
{
"number": "5491122334455",
"type": "image",
"message": "Subtítulo de la imagen.", "path": "https://picsum.photos/200"
},
{
"number": "5491122334455",
"type": "document",
"message": "", "path": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "filename": "ejemplo.pdf"
}
]'
Enviar Texto + Documento
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"number": "5491122334455",
"type": "text",
"message": "¡Aquí tienes un documento!"
},
{
"number": "5491122334455",
"type": "document",
"message": "", "path": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "filename": "ejemplo.pdf"
}
]'
Formato: Nuevas líneas, Negrita y Enlaces
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "text",
"message": "¡Hola!\nEsta es una nueva línea.\n*¡Este texto está en negrita!*\nVisita: https://ejemplo.com"
}'
- Usa
\npara saltos de línea. - Usa
*texto en negrita*para negrita (formato de WhatsApp). - Pega una URL directamente para que sea clickable en WhatsApp.
Gestionar Webhook para una Sesión
Establecer Webhook
curl -X POST "http://localhost:3000/send" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "TU_SESSION_ID",
"url": "https://tu-receptor-de-webhook.com/eventos"
}'
Obtener Webhook
curl -X GET "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN"
Eliminar Webhook
curl -X DELETE "http://localhost:3000/send" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "TU_SESSION_ID"
}'
- Establecer Webhook: Asigna una URL de webhook para una sesión específica. Todos los eventos para esa sesión se enviarán a la URL especificada.
- Obtener Webhook: Recupera la URL de webhook actual para una sesión.
- Eliminar Webhook: Elimina el webhook de una sesión. No se enviarán eventos hasta que se establezca un nuevo webhook.
- Cada sesión puede tener su propia URL de webhook. Para actualizar, llama a Establecer Webhook nuevamente con el mismo
sessionId. - Los eventos incluyen: nuevos mensajes, cambios de estado de sesión y más.
- Los payloads de webhook siempre incluyen
sessionIdpara contexto.
Enviar Botones Interactivos
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "buttons",
"title": "¿Confirmar pedido?",
"footer": "Selecciona una opción",
"buttons": [
{ "type": "reply", "text": "Sí", "id": "btn_yes" },
{ "type": "reply", "text": "No", "id": "btn_no" },
{ "type": "url", "text": "Ver web", "url": "https://ejemplo.com" },
{ "type": "copy", "text": "Copiar código", "copyCode": "ABC123" },
{ "type": "call", "text": "Llamar", "phoneNumber": "+5491122334455" }
]
}'
- reply: Botón de respuesta con ID para identificar la selección.
- url: Abre una URL cuando se toca.
- copy: Copia un código al portapapeles.
- call: Inicia una llamada al número especificado.
Enviar Lista de Opciones
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "list",
"title": "Menú Principal",
"footer": "Selecciona una opción",
"buttonText": "Ver Opciones",
"sections": [
{
"title": "Productos",
"rows": [
{ "id": "prod1", "title": "Pizza", "description": "$10 - Pepperoni" },
{ "id": "prod2", "title": "Hamburguesa", "description": "$8 - Doble carne" }
]
},
{
"title": "Bebidas",
"rows": [
{ "id": "bebd1", "title": "Coca Cola", "description": "$2 - 500ml" },
{ "id": "bebd2", "title": "Agua", "description": "$1 - 500ml" }
]
}
]
}'
- Las listas pueden tener múltiples secciones.
- Cada sección tiene un título y filas con ID, título y descripción.
buttonTextes el texto del botón que abre la lista (máx 20 caracteres).
Enviar Ubicación
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "location",
"lat": -34.6037,
"long": -58.3816,
"name": "Obelisco",
"address": "Buenos Aires, Argentina"
}'
latylongson obligatorios (coordenadas GPS).nameyaddressson opcionales pero recomendados.
Enviar Tarjeta de Contacto
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "contact",
"contactName": "Juan Pérez",
"contactPhone": "5491122334455"
}'
- Envía una tarjeta de contacto (VCARD) que el receptor puede guardar.
- El número debe incluir código de país (ej: 54 para Argentina).
Enviar Encuesta (Poll)
curl -X POST "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5491122334455",
"type": "poll",
"pollName": "¿Te gustó el servicio?",
"pollOptions": ["Excelente", "Bueno", "Regular", "Malo"],
"selectableCount": 1
}'
pollNamees la pregunta de la encuesta.pollOptionses un array de opciones (mínimo 2).selectableCountes cuántas opciones puede seleccionar el usuario (default: 1).
Gestión de Etiquetas (Labels)
Listar Etiquetas
curl -X GET "http://localhost:3000/send" \
-H "Authorization: Bearer TU_TOKEN"
Sincronizar Etiquetas (WhatsApp Business)
curl -X POST "http://localhost:3000/send/sync" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "TU_SESSION_ID"
}'
Agregar Etiqueta a Chat
curl -X POST "http://localhost:3000/send/chat" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "TU_SESSION_ID",
"number": "5491122334455",
"labelId": "2",
"action": "add"
}'
Quitar Etiqueta de Chat
curl -X POST "http://localhost:3000/send/chat" \
-H "Authorization: Bearer TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "TU_SESSION_ID",
"jid": "5491122334455@s.whatsapp.net",
"labelName": "Nueva Cliente",
"action": "remove"
}'
- Las etiquetas solo funcionan con WhatsApp Business.
- Usa
labelId(ID numérico) olabelName(nombre). - Las etiquetas se sincronizan automáticamente cuando cambian en WhatsApp.
Gestión de Grupos
Listar Todos los Grupos
curl -X GET "http://localhost:3000/send?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN"
Listar Grupos (Forzar Actualización)
curl -X GET "http://localhost:3000/send?sid=TU_SESSION_ID&refresh=true" \
-H "Authorization: Bearer TU_TOKEN"
Obtener Detalles de un Grupo
curl -X GET "http://localhost:3000/send/123456789@g.us?sid=TU_SESSION_ID" \
-H "Authorization: Bearer TU_TOKEN"
- Los grupos se cachean por 5 minutos para mejor rendimiento.
- Usa
refresh=truepara forzar una actualización. - El bot debe ser miembro del grupo para ver sus detalles.
- Distingue entre grupos regulares y comunidades.