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 \n para 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 sessionId para 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.
  • buttonText es 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"
}'
  • lat y long son obligatorios (coordenadas GPS).
  • name y address son 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
}'
  • pollName es la pregunta de la encuesta.
  • pollOptions es un array de opciones (mínimo 2).
  • selectableCount es 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) o labelName (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=true para forzar una actualización.
  • El bot debe ser miembro del grupo para ver sus detalles.
  • Distingue entre grupos regulares y comunidades.