Inicio / Comenzar / Endpoint principal

Endpoint principal

Toda la API de Wis.Chat se concentra en un único endpoint que acepta todos los tipos de mensaje. El campo type dentro del body define qué clase de mensaje se envía.

POST https://api.wis.chat/v22.0/{tid}/messages

Estructura base del payload

Todos los mensajes comparten estos campos base. Después se agrega un objeto adicional según el type.

{
  "messaging_product": "whatsapp",
  "to": "593999999999",
  "type": "template",
  // ... payload específico según type
}
Campo baseTipoRequeridoDescripción
messaging_product string requerido Siempre "whatsapp".
to string requerido Número destino en formato E.164 sin +. Ej: 593999999999.
type string requerido Tipo de mensaje. Define qué objeto adicional debe acompañar.
recipient_type string opcional Por defecto "individual".

Tipos de mensaje soportados

Cada valor de type requiere un objeto adicional con los campos específicos. Haz clic para ver la doc completa.

Valor de typeObjeto adicionalCaso de usoDoc
template template Iniciar conversación, OTPs, recordatorios, marketing. Ver →
text text Texto libre dentro de la ventana de 24h. Ver →
image image JPEG / PNG hasta 5 MB. Ver →
video video MP4 / 3GPP hasta 16 MB. Ver →
audio audio MP3, OGG, AAC, M4A, AMR hasta 16 MB. Ver →
document document PDF, Excel, Word, ZIP, etc. hasta 100 MB. Ver →
location location Coordenadas con etiqueta opcional. Ver →
interactive interactive Botones de respuesta o listas desplegables. Ver →

Ejemplo mínimo: enviar un mensaje

Este es el ejemplo más simple posible: un mensaje de texto al destinatario indicado en to. Para tu primera prueba usa tu propio WhatsApp (en el ejemplo 593999999999 es ficticio, reemplázalo por el tuyo en formato E.164 sin +).

Requisito: el número destino debe haberte escrito al WhatsApp de Wis.Chat en las últimas 24 horas. Si no, este envío fallará con outside_24h_window: usa una plantilla aprobada en su lugar.

curl -X POST "https://api.wis.chat/v22.0/TU_ID_LINEA/messages" \
  -H "Authorization: Bearer TU_CODIGO_SEGURIDAD" \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "593999999999",
    "type": "text",
    "text": {
      "body": "Hola 👋 estoy probando WhatsApp con la API de Wis.Chat"
    }
  }'

Respuesta exitosa

Si el envío fue aceptado por Meta, recibes el wamid con el cual podrás trackear el estado:

{
  "success": true,
  "messages": [
    { "id": "wamid.HBgMNTkzOTk5OTk5OTk5FQIAERgS..." }
  ]
}

Validación previa al envío

Antes de reenviar a Meta, Wis.Chat ejecuta automáticamente:

  1. Validación de credencialestid + token deben coincidir.
  2. Validación de reputación — el número debe tener calidad HIGH o MEDIUM. Reputación baja bloquea el envío.
  3. Validación de payload — formato JSON, campos requeridos, tipos válidos.
  4. Forward a Meta — sólo si todo lo anterior pasó.
  5. Notificación de estado — el resultado y los estados sucesivos (sent → delivered → read o failed) se entregan en tu webhook.

Compatibilidad con Meta: el formato JSON del payload es idéntico al de WhatsApp Cloud API de Meta. Si ya tienes código que apunta a graph.facebook.com, sólo cambias la URL base y el token — el resto no se toca.