Whaio Logo

Soluciones API y Desarrollo Web de Alto Rendimiento

Conectamos empresas con sus usuarios mediante APIs seguras, integraciones personalizadas y aplicaciones web optimizadas.

Nuestros Servicios

Soluciones tecnológicas completas para impulsar tu negocio al siguiente nivel

🚀

API WhatsApp Business

Conecta tu empresa con clientes a través de WhatsApp. APIs robustas y escalables para automatizar comunicaciones, enviar notificaciones y gestionar conversaciones en tiempo real.

📊

Paneles de Control

Dashboards intuitivos y personalizables para monitorear métricas, analizar datos y tomar decisiones informadas. Visualización de datos en tiempo real con interfaces modernas.

💻

Aplicaciones Web

Desarrollo de aplicaciones web responsivas y de alto rendimiento. Desde MVPs hasta plataformas empresariales complejas con tecnologías modernas y escalables.

🌐

Desarrollo de APIs

APIs RESTful y GraphQL seguras, documentadas y optimizadas. Integración perfecta entre sistemas, microservicios y aplicaciones de terceros con alta disponibilidad.

📱

Sitios Web Modernos

Diseño y desarrollo de sitios web modernos, rápidos y SEO optimizados. Desde landing pages hasta portales corporativos con experiencias de usuario excepcionales.

Consultoría Técnica

Asesoramiento estratégico en arquitectura de software, selección de tecnologías y optimización de procesos. Análisis técnico y roadmaps de desarrollo personalizados.

Proyectos Destacados

Soluciones innovadoras que transforman la manera de hacer negocios

Dashboard Analytics
API + Dashboard

Sistema de Análisis Empresarial

Plataforma completa de análisis de datos con APIs en tiempo real y dashboards interactivos para empresas de e-commerce.

WhatsApp Business
WhatsApp API

Bot de Atención al Cliente

Sistema automatizado de atención al cliente vía WhatsApp con IA, procesando +10k consultas diarias para retail.

Aplicación Web
Aplicación Web

Portal Corporativo

Aplicación web empresarial para gestión interna, colaboración y flujos de trabajo optimizados para equipos remotos.

Planes y Paquetes

Planes

Plan Básico

Incluye 2500 mensajes enviados. Duración de 30 días continuos.

$25

Plan Estándar

Incluye 3500 mensajes enviados. Duración de 30 días continuos.

$35

Plan Premium

Incluye mensajes Ilimitados. Duración de 30 días continuos.

$50

Paquetes

Todos los planes incluyen uso de la API. Los paquetes se pueden adquirir solo si tienes un plan activo.

Paquete Carga Masiva

Duración 30 días continuos.

$10

Importa archivos XML, JSON o Excel y envía mensajes masivos de forma rápida y eficiente.

Paquete Menú Interactivo

Duración 30 días continuos.

$10

Diseña y configura menús interactivos para comunicación personalizada con tus clientes.

Paquete IA Asistente

Duración 30 días continuos.

$10

Integra un asistente conversacional inteligente con IA para atención al cliente 24/7 y automatización de procesos.

Paquete Calendario o Promocional

Duración 30 días continuos.

$15

Permite programar mensajes y campañas publicitarias en fechas y horas específicas.

Consulta de Montos en Moneda Local

Precios en USD. Para Colombia o Venezuela, contáctanos por WhatsApp, redes sociales o correo electrónico para cotización en COP o VES según tasa de cambio vigente.

Whaio – Documentación y Guía de Uso

Aprende a integrar y aprovechar al máximo los servicios de Whaio. Nuestra documentación oficial te ayudará a conectar APIs, configurar paneles de control y optimizar tus aplicaciones web.

¿Qué encontrarás aquí?

  • Guías paso a paso para la integración de APIs.
  • Ejemplos de código claros y listos para usar.
  • Buenas prácticas para maximizar el rendimiento de tu aplicación.
  • Solución a problemas frecuentes y soporte técnico.

Beneficios de usar Whaio

Con Whaio podrás desarrollar soluciones escalables, seguras y rápidas, conectando a las empresas con sus usuarios mediante tecnología de última generación.

Endpoint de la API

URL base: https://api.whaio.com/api/whatsapp/

Ejemplo de URL con parámetros requeridos:

POST https://api.whaio.com/api/whatsapp/sendmsg?email=test@whaio.com&token=1234qwer5678

Todos los endpoints utilizan el método POST.

  • sendmsg: Enviar un mensaje con diferentes tipos (chat, documento, sticker, imagen, ubicación, poll_creation).
  • messages: Se obtienen los mensajes recibidos de los usuarios y enviados desde la API del día actual.

Parámetros

Parámetro Tipo Descripción Requerido
email string Correo electrónico del usuario, obtenido de un usuario registrado en www.whaio.com y asociado a la compañía.
token string Token de autenticación generado al registrar el dispositivo mediante un código QR en www.whaio.com.
type string Tipo de mensaje (chat, documento, sticker, imagen, ubicación, poll_creation).
phone string Número de teléfono del destinatario.
title string Título del mensaje (opcional, según el tipo). No
message string Contenido del mensaje. Sí (para chat)
url string URL del archivo o recurso (documento, imagen, sticker). Sí (para documento, imagen, sticker)
latitude string Latitud para mensajes de ubicación. Sí (para ubicación)
longitude string Longitud para mensajes de ubicación. Sí (para ubicación)
address string Dirección para mensajes de ubicación. Sí (para ubicación)
questions string Pregunta para encuestas. Sí (para poll_creation)
options array Opciones para encuestas. Sí (para poll_creation)

Ejemplos de Solicitudes

Mensaje de Chat


{
    "type": "chat",
    "phone": "573111111111",
    "message": "Hola Mundo 😊"
}
            

Documento


{
    "type": "document",
    "phone": "573111111111",
    "title": "Hola Mundo 😊",
    "url": "https://www.document.com/document.pdf"
}
            

Sticker


{
    "type": "sticker",
    "phone": "573111111111",
    "title": "Hola Mundo 😊",
    "url": "https://www.document.com/document.png"
}
            

Imagen


{
    "type": "image",
    "phone": "573111111111",
    "title": "Hola Mundo 😊",
    "url": "https://image.tmdb.org/t/p/original/oE7xDqZn7tFHwb8M91w6h.jpg"
}
            

Ubicación


{
    "type": "location",
    "phone": "573111111111",
    "title": "Hola Mundo 😊",
    "latitude": "40.6892534",
    "longitude": "-74.847753",
    "address": "Estatua de la Libertad"
}
            

Encuesta


{
    "type": "poll_creation",
    "phone": "573111111111",
    "questions": "Color Favorito",
    "options": ["blanco", "azul", "verde", "rojo"]
}
            

Respuestas

Todas las respuestas se devuelven en formato JSON con la siguiente estructura:

Endpoint sendmsg


{
    "success": true,
    "message": "Mensaje enviado",
    "entityresult": null
}
            

Endpoint messages


{
    "success": true,
    "message": "Mensaje enviado",
    "entityresult": [
        {
            "company": "whaio",
            "phone": "5731111111@c.us",
            "action": "SEND_API",
            "type": "chat",
            "message": "Hola Mundo 😊",
            "timestamp": "2025-07-21T02:20:42.000Z",
            "id_serialized": "false_57311111@c.us_31324"
        },
        {
            "company": "whaio",
            "phone": "5731111111@c.us",
            "action": "RECEIVED",
            "type": "chat",
            "message": "Me puedes ayudar?",
            "timestamp": "2025-07-21T02:20:50.000Z",
            "id_serialized": "false_131555@c.us_C1234"
        },
        {
            "company": "whaio",
            "phone": "573111111111@c.us",
            "action": "SEND_API",
            "type": "chat",
            "message": "Claro que sí, ¿en qué puedo ayudarte?",
            "timestamp": "2025-07-21T02:20:58.000Z",
            "id_serialized": "false_3121345"
        }
    ]
}
            
  • success: Booleano que indica si la solicitud fue exitosa.
  • message: Mensaje de estado.
  • entityresult: Array de resultados (null para sendmsg, contiene detalles de mensajes para messages).

Estructura de Archivos para Carga de Mensajes Masivos

Introducción

Este documento describe los formatos de archivo soportados (JSON, XML y Excel) para cargar lotes de mensajes masivos en el sistema. Los archivos contienen una lista de mensajes con los datos necesarios para enviar mensajes de WhatsApp, incluyendo un token que identifica a tu empresa. El sistema genera automáticamente un identificador de lote (id_batch) basado en el ID del lote creado.

Formatos de Archivo Soportados

Los archivos deben estar en uno de los siguientes formatos:

  • JSON: Un archivo con estructura JSON que contiene una lista de mensajes.
  • XML: Un archivo XML con una lista de mensajes estructurada.
  • Excel: Un archivo .xlsx con columnas que representan los campos de los mensajes.

Estructura General

Cada archivo debe contener una lista de mensajes, donde cada mensaje incluye los siguientes campos:

Campo Tipo Descripción Requerido
token string Token de autenticación asociado a la compañía (obtenido al configurar la cuenta).
phone string Número de teléfono del destinatario.
message string Contenido del mensaje (requerido para tipo chat). Sí (para chat)
type string Tipo de mensaje (chat, document, sticker, image, location, poll_creation).
url string URL del archivo o recurso (para document, sticker, image). Sí (para document, sticker, image)
title string Título del mensaje (opcional). No
latitude float Latitud para mensajes de ubicación. Sí (para location)
longitude float Longitud para mensajes de ubicación. Sí (para location)
address string Dirección para mensajes de ubicación. Sí (para location)
questions string Pregunta para encuestas. Sí (para poll_creation)
options array Opciones para encuestas (en JSON o XML como lista, en Excel como texto). Sí (para poll_creation)
fecha_envio_programada string Fecha y hora programada para el envío (formato AÑO-MES-DÍA HORA:MINUTOS:SEGUNDOS).

Notas:

  • El campo id_batch no debe incluirse en el archivo, ya que se genera automáticamente como batch_{id} donde {id} es el ID del lote.
  • El token se valida contra el sistema para obtener el identificador de la compañía.

Ejemplos de Archivos

JSON

Un archivo JSON debe tener una clave messages que contenga un arreglo de mensajes.


    {
        "messages": [
            {
                "token": "abc123xyz",
                "phone": "+573111111111",
                "message": "Hola, este es un mensaje de prueba",
                "type": "chat",
                "fecha_envio_programada": "2025-07-25 10:00:00"
            },
            {
                "token": "abc123xyz",
                "phone": "+573222222222",
                "type": "location",
                "title": "Ubicación de prueba",
                "latitude": 40.7128,
                "longitude": -74.0060,
                "address": "123 Main St",
                "fecha_envio_programada": "2025-07-25 10:30:00"
            },
            {
                "token": "abc123xyz",
                "phone": "+573333333333",
                "type": "poll_creation",
                "questions": "Color favorito",
                "options": ["Blanco", "Azul", "Verde"],
                "fecha_envio_programada": "2025-07-25 11:00:00"
            }
        ]
    }
                

XML

Un archivo XML debe tener un elemento raíz batch con un elemento messages que contenga elementos message.


    <batch>
        <messages>
            <message>
                <token>abc123xyz</token>
                <phone>+573111111111</phone>
                <message>Hola, este es un mensaje de prueba</message>
                <type>chat</type>
                <fecha_envio_programada>2025-07-25 10:00:00</fecha_envio_programada>
            </message>
            <message>
                <token>abc123xyz</token>
                <phone>+573222222222</phone>
                <type>location</type>
                <title>Ubicación de prueba</title>
                <latitude>40.7128</latitude>
                <longitude>-74.0060</longitude>
                <address>123 Main St</address>
                <fecha_envio_programada>2025-07-25 10:30:00</fecha_envio_programada>
            </message>
            <message>
                <token>abc123xyz</token>
                <phone>+573333333333</phone>
                <type>poll_creation</type>
                <questions>Color favorito</questions>
                <options>["Blanco", "Azul", "Verde"]</options>
                <fecha_envio_programada>2025-07-25 11:00:00</fecha_envio_programada>
            </message>
        </messages>
    </batch>
                

Excel

Un archivo Excel (.xlsx) debe tener una hoja con encabezados en la primera fila y los datos de los mensajes en las filas siguientes.

token phone message type url title latitude longitude address questions options fecha_envio_programada

Notas para Excel:

  • Los encabezados deben coincidir exactamente con los nombres de los campos (case-sensitive).
  • Los campos opcionales pueden dejarse vacíos.
  • El campo options debe ser un string JSON válido (por ejemplo, ["Blanco","Azul","Verde"]).

Proceso de Carga

  1. Validación del Archivo: El sistema verifica que el archivo sea de tipo .json, .xml o .xlsx y no supere los 10 MB. Si el archivo no cumple con estos requisitos, se muestra un mensaje de error en la interfaz.
  2. Procesamiento de Mensajes: Cada mensaje se revisa para asegurar que los campos requeridos estén completos y correctos. El token se verifica contra el sistema para identificar la empresa asociada. Si el token no es válido o no está registrado, el mensaje se marca como no procesado y se muestra un error.
  3. Almacenamiento: Se crea un lote con un identificador único (batch_{id}) generado automáticamente. Los mensajes válidos se guardan en el sistema con el identificador del lote. Se registran estadísticas sobre cuántos mensajes se procesaron correctamente y cuántos tuvieron errores.
  4. Retroalimentación: La interfaz muestra un resumen indicando cuántos mensajes se cargaron correctamente y cuántos no. Los errores específicos (por ejemplo, tokens inválidos o datos incorrectos) se muestran en una lista.

Notas para un Uso Correcto

  • Verificación del Token: Asegúrate de que el token incluido en el archivo sea válido y esté registrado en el sistema. Este token identifica a tu empresa y debe coincidir con uno proporcionado al configurar tu cuenta. Si el token no es válido, los mensajes no se procesarán y se mostrará un error.
  • Formato de la Fecha: El campo fecha_envio_programada debe especificar la fecha y hora en que deseas enviar los mensajes, usando el formato AÑO-MES-DÍA HORA:MINUTOS:SEGUNDOS (por ejemplo, 2025-07-25 10:00:00). Asegúrate de que la fecha sea correcta para evitar problemas al programar los envíos.
  • Archivos con Muchos Mensajes: Si tu archivo contiene una gran cantidad de mensajes, el proceso de carga puede tomar algo de tiempo. Para agilizarlo, el sistema puede manejar los mensajes en segundo plano, pero te recomendamos contactar al soporte si planeas enviar lotes muy grandes.
  • Seguridad: Para cargar archivos, debes iniciar sesión en el sistema con tu cuenta autorizada. Esto asegura que solo usuarios registrados puedan enviar mensajes.

¿Listo Para Transformar Tu Negocio?

Conversemos sobre tu proyecto. Ofrecemos consultoría gratuita y presupuestos personalizados para hacer realidad tus ideas tecnológicas.

¿Necesitas Ayuda?