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 🎉"
}
sessionIdes opcional: si lo omites, se usa automáticamente tu primera línea conectada.toacepta 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 | El archivo a enviar (cualquier tipo, ver abajo) |
Se acepta cualquier tipo de archivo. Según su extensión se envía como imagen, video, audio o documento:
| Llega como | Extensiones |
|---|---|
| Imagen | png jpg jpeg gif webp |
| Video | mp4 3gp mov |
| Audio | mp3 ogg |
| Documento | pdf doc docx xls xlsx ppt pptx odt ods odp rtf txt csv xml json html zip rar 7z |
Cualquier otra extensión también se envía: llega como documento (archivo descargable con su nombre original). El caption acompaña a imágenes, videos y documentos.
¿Necesitás enviar un PDF en base64 (por ejemplo desde Facturador PRO 8)? Usá el endpoint dedicado Comprobantes PDF.
Enviar archivo en base64
Igual que /send/file pero recibís el archivo como base64 en JSON — útil cuando tu sistema genera el archivo en memoria (comprobantes, reportes). Acepta cualquier tipo y el tipo se detecta por la extensión del filename.
POST /messages/send/document
{
"sessionId": "665f...",
"to": "51912345678",
"file": "UEsDBBQABgAIAAAAIQ...",
"filename": "cotizacion.xlsx",
"caption": "Adjunto tu cotización"
}
sessionIdes opcional: si lo omites, se usa tu primera línea conectada.file: contenido en base64 (acepta el prefijodata:<mime>;base64,).filename: nombre con extensión — de ahí se detecta el tipo (imagen, video, audio o documento; ver tabla de arriba).captiones opcional. Admite archivos de hasta ~35 MB.
{ "messageId": "665f...", "status": "queued", "jobId": "1234" }
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: queued → processing → sent | 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 }.