Skip to main content
Auth: TokenAccount o TokenInstanceRate-limit: Global (100/min) • Idempotente: no El módulo /api/message/* cubre el envío de todos los formatos compatibles con WhatsApp, texto, media, sticker, ubicación, contacto, reacción, encuesta, carrusel, botones, lista, formulario, PIX y status (historias). Todas las rutas validan la propiedad de la instancia y aceptan tanto TokenAccount como TokenInstance.
Para buscar un mensaje por ID usa GET /api/chat/getMessage/:instance; ese endpoint ya no pertenece al módulo de mensajes.

Endpoints disponibles

Estructura común

Destinatario (number o to)

La mayoría de los endpoints aceptan al destinatario en el campo number. Formatos soportados:
  • Número simple: "5511999999999" (preferido).
  • JID privado: "5511999999999@s.whatsapp.net".
  • JID oculto (@lid): "123456789012345@lid", identificador anónimo que WhatsApp usa en grupos/canales cuando el número real no está expuesto.
  • JID de grupo: "120363406289005073@g.us".
  • JID de newsletter: "120363422585881117@newsletter".
  • Status broadcast: "status@broadcast".

Comportamiento de números brasileños

Para números que comienzan con 55 (Brasil), el servicio prueba automáticamente variaciones:
  • Con 9 (5511999999999)
  • Sin 9 (551199999999)
Esto soluciona una inconsistencia histórica en los códigos de área antiguos. Si el número no se encuentra en ninguna de las variaciones, el handler retorna 400 Number is not registered on WhatsApp.

Campos opcionales comunes

delay es en segundos (no milisegundos). Un valor de 3 = 3 s de “escribiendo”.
Las reacciones (/api/message/reaction/:instance) no soportan delay/replyTo/mention, el payload es mínimo (messageId, reaction, participant). Status (/api/message/status/:instance) tampoco usa number/replyTo (siempre va a status@broadcast).

Respuesta estándar (200)

Todos los endpoints de envío retornan el mismo envoltorio MessageSentDetails:
Campos opcionales en data: mentions (cuando hay una mención), replyTo (cuando hay una cita), chat.groupName (cuando es un grupo), mediaUrl/mediaMimeType/mediaSize/fileName (cuando es media), vcard (cuando es un contacto). statussent | disconnected | invalid_number | mentions_not_supported | reply_message_not_found | reply_message_instance_mismatch | private_reply_failed | send_failed | media_download_failed | media_upload_failed | media_validation_failed | unsupported_media_type | image_conversion_failed | sticker_upload_failed | audio_conversion_failed | invalid_message_id | missing_participant | invalid_request.

Errores comunes

Envoltorio de error:

Límites observados

Próximos pasos

Enviar texto

El endpoint más usado, ideal como “Hello World”.

Enviar media

Imagen, video, audio y documento por URL o base64.

Buscar mensaje por ID

Recupera un mensaje específico del historial.

Webhooks

Recibe eventos message.exchange en tiempo real.