Skip to main content
POST
Enviar texto
Auth: TokenAccount o TokenInstanceRate-limit: Global (100/min) • Idempotente: no

Descripción

Envía un mensaje de texto a un contacto 1 a 1, grupo (@g.us) o canal (@newsletter). Soporta replyTo (cita por ID), replyPrivate (responder privadamente a un mensaje de grupo), mention / mentionAll (solo chats de grupo), linkPreview y delay (en segundos) para simular tipeo real. Es el endpoint más usado y sirve como “Hello World” para validar que la instancia está conectada.

Ejemplos

Mínimo

Envía un mensaje de texto con el payload mínimo (number + message). Sin delay, sin preview, sin citar, útil como “Hello World” para validar que la instancia está conectada.

Con delay y vista previa de enlace

Envía un indicador de “escribiendo…” durante 3 segundos y luego envía el mensaje con una vista previa de la URL detectada.

Como respuesta

Cita un mensaje existente (replyTo recibe el messageId del original). El mensaje original debe pertenecer a la misma instancia y haber sido guardado en la base de datos (cualquier mensaje que fluya por webhook/envío se guarda automáticamente).

Como respuesta privada (desde un grupo)

Cuando alguien envía un mensaje en un grupo y quieres responderle privadamente a esa persona (sin enviar la respuesta de vuelta al grupo), usa replyPrivate: true. El number debe apuntar al JID del grupo donde se envió el mensaje original, el servidor extrae al autor original y redirige la respuesta a su chat privado, manteniendo la cita.

Con menciones a miembros (grupo)

Agrega menciones visibles con @5511... en el cuerpo del mensaje y lista los números en el array mention. El texto y el array deben ser consistentes, WhatsApp solo convierte en enlace clicable lo que está en mention.

Mención oculta (grupo)

Notifica a todos los miembros del grupo sin listar los @ en el texto, usando mentionAll: true. El texto mostrado se mantiene limpio, pero los participantes reciben la notificación de mención. Útil para anuncios silenciosos. Para mencionar a personas específicas de forma oculta, usa simplemente mention: ["..."] sin colocar @número en el texto, también recibirán la notificación sin aparecer etiquetadas.

Respuesta exitosa

La respuesta incluye el messageId (úsalo en replyTo para citar este mensaje en envíos futuros), direction: "outgoing" y los marcadores de chat/sender. Los campos mentions y replyTo solo aparecen cuando aplican, y chat.groupName se incluye en mensajes de grupo.
200 OK

Parámetros de ruta

string
requerido
Nombre de la instancia (p. ej., $Instance_Name).

Cabeceras

string
requerido
TokenAccount o TokenInstance.
string
requerido
application/json

Cuerpo de la solicitud

string
requerido
Destino: teléfono (5511999999999) o JID (@s.whatsapp.net, @lid, @g.us, @newsletter).
string
requerido
Texto del cuerpo. No puede estar vacío.
int
predeterminado:"0"
Tiempo en segundos a esperar antes de enviar. Durante el intervalo, el servidor envía el indicador “escribiendo…” al destinatario y dispara “pausado” antes del envío real.
Cuando es true, el servidor extrae la primera URL de message, obtiene los metadatos Open Graph (título, descripción, miniatura) y envía el mensaje como ExtendedTextMessage con la tarjeta de vista previa incrustada. Cuando es false u omitido, la URL aparece como texto plano.
string
ID del mensaje a citar (respuesta). El mensaje original debe pertenecer a la misma instancia y haber sido guardado en la base de datos. Posibles errores: reply_message_not_found, reply_message_instance_mismatch.
boolean
predeterminado:"false"
Cuando es true y replyTo apunta a un mensaje originado en un grupo, la respuesta se redirige al chat privado del autor original (manteniendo la cita). Útil para responder preguntas individualmente sin saturar el grupo. Ignorado si el mensaje original no es de un grupo.
string[]
Lista de números (o JIDs) a mencionar. Solo en chats de grupo (@g.us). Límite de 10 menciones por mensaje; los números excedentes se ignoran con una advertencia. Para aparecer como enlace clicable, incluye @5511... en message. Sin eso, se vuelven menciones ocultas (solo notifican).
boolean
predeterminado:"false"
Cuando es true, menciona a todos los miembros del grupo (excepto la propia instancia). Equivalente a @everyone. El servidor consulta la lista de participantes e inyecta cada JID en el MentionedJID del contexto, sin alterar el texto mostrado. Solo en chats de grupo.
string
predeterminado:"api"
Identificador de origen para trazabilidad (p. ej., crm, bot-suporte, n8n). Guardado en el registro del mensaje en la base de datos y propagado a los webhooks. Cuando se omite, el default es "api".

Notas

  • delay es en segundos (a diferencia de muchas APIs que usan ms). Un valor de 3 = 3 segundos de “escribiendo”.
  • En grupos, el texto con @5511... solo no se vuelve clicable, es el array mention lo que WhatsApp procesa. Mantenlos consistentes.
  • mention y mentionAll son exclusivos de grupos. Si se envían a un DM/canal, la respuesta es 400 Mentions are only supported in group chats.
  • Para números BR (que comienzan con 55), el servicio prueba automáticamente variaciones con y sin el 9° dígito, evitando la inconsistencia histórica en códigos de área antiguos.
  • linkPreview requiere que el servidor pueda obtener los metadatos Open Graph de la URL; los sitios con bloqueo de bots pueden caer a texto plano sin error visible.
  • Los mensajes enviados vía replyPrivate: true aparecen en el chat privado del destinatario con la tarjeta del mensaje de grupo citado, pueden ver de qué conversación vino.

Errores

Envoltorio de error: