WSPerúDocs

Mensajes

Enviar texto, archivos y envíos masivos; consultar estado e historial.

Todos los envíos se encolan y se despachan con delays aleatorios (anti-bloqueo). La respuesta inmediata incluye el messageId para seguimiento.

Enviar texto

POST /messages/send/text
{
  "sessionId": "665f...",
  "to": "51912345678",
  "text": "Su pedido está listo 🎉"
}
  • sessionId es opcional: si lo omites, se usa automáticamente tu primera línea conectada.
  • to acepta un número (con código de país, sin +) o un JID de grupo (...@g.us).
{ "messageId": "665f...", "status": "queued", "jobId": "1234" }

Enviar archivo

POST /messages/send/file
Content-Type: multipart/form-data
Campo Tipo Descripción
sessionId text Línea emisora
to text Destinatario
caption text Texto que acompaña al archivo (opcional) — enviar antes del campo file
file file Imagen, PDF, video o documento

Según la extensión se envía como imagen, video, audio o documento (los PDF llegan como documento con caption).

Envío masivo

POST /messages/send/bulk
{
  "sessionId": "665f...",
  "messages": [
    { "to": "51911111111", "text": "Hola Ana" },
    { "to": "51922222222", "text": "Hola Luis" },
    { "to": "51933333333", "fileUrl": "https://tu-cdn.com/promo.jpg", "caption": "Nueva promo" }
  ]
}

Los mensajes se espacian automáticamente según los delays de tu plan. El total no puede exceder tu cuota mensual disponible.

Estado de un mensaje

GET /messages/{id}/status
{
  "messageId": "665f...",
  "status": "sent",
  "sentAt": "2026-08-12T15:05:11.000Z"
}

status: queuedprocessingsent | failed. Además del estado de envío, el estado de entrega (delivered/read) llega por webhook message.status.

Historial

GET /messages/history?page=1&limit=20&status=sent&from=2026-08-01&to=2026-08-12

Todos los filtros son opcionales. Respuesta paginada con pagination: { page, limit, total }.