Enviar mensaje plantilla por WhatsApp

Este endpoint permite enviar mensajes preaprobados por WhatsApp (plantillas) a uno o más destinatarios. Se usa para iniciar o continuar una conversación.

Características principales:

  • Soporta hasta 20 destinatarios por envío
  • Permite variables dinámicas en el cuerpo, encabezado y botones
  • Soporta archivos multimedia en el encabezado
  • Permite controlar el estado del chatbot y la conversación
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Cuerpo de la plantilla de WhatsApp

Cuerpo de la petición para enviar una plantilla de WhatsApp.

Notas importantes:

  • El campo recipients puede contener hasta 20 números de teléfono o IDs de contactos
  • Las variables dinámicas (body_vars, header_var, cta_var) son opcionales y dependen de la estructura de la plantilla
  • El chatbot_status y conversation_status solo funcionan cuando contact_type es 'contact'
  • contact_type es opcional: si se omite, cada destinatario se detecta por su
    formato (ver abajo). Envíelo solo para forzar una interpretación.
  • Un destinatario que no se pueda identificar no rompe el lote: se reporta como
    fallo de ese destinatario y el envío continúa con los demás.

Detección automática del destinatario

Omitiendo contact_type, cada valor de recipients puede ser un teléfono, un ID de
contacto, un uuid, un bsuid o un wa_username — incluso mezclados en la misma
petición. La resolución es:

Formato del valorSe interpreta como
XX.<alfanumérico>bsuid
UUIDuuid del contacto
No numéricowa_username
Solo dígitosID de contacto; si no existe, teléfono de un contacto conocido

La respuesta incluye resolved_as por destinatario, para que pueda verificar qué
interpretó el sistema.

⚠️ Los dígitos son ambiguos — un número puede ser un ID de contacto o un teléfono.
La precedencia es ID primero, que es el comportamiento histórico del endpoint, y solo
después se busca como teléfono de un contacto. Si necesita certeza, envíe
contact_type explícito.

⚠️ La detección no envía a números desconocidos. Unos dígitos que no coincidan ni
con un ID de contacto ni con el teléfono de un contacto de su libreta se reportan como
destinatario no identificado, y no se envía nada — igual que hoy, donde ese valor se
trata como ID de contacto inexistente y la llamada falla.

Es deliberado: si la detección cayera a «teléfono crudo», las llamadas que hoy fallan
en silencio empezarían a enviar mensajes reales y a consumir crédito sin que nadie lo
pidiera. Para escribirle a un número que no está en su libreta, envíe
contact_type: phone — explícito, como siempre.

⚠️ Un wa_username compuesto solo por dígitos no es alcanzable en modo
automático: se leería como ID o teléfono. Para ese caso use
contact_type: wa_username.

  • Para adjuntar archivos en el encabezado, usar los campos file, url_file y file_name
  • El file_name solo funciona para archivos de tipo 'document'

Ejemplo de uso:

{
  "template_id": "9ec1e19a-24db-4a1e-95a0-869481bd7627",
  "from_id": 11672,
  "file": "document",
  "url_file": "https://wasapi-assets.s3.us-east-2.amazonaws.com/media/file.pdf",
  "file_name": "Test.pdf",
  "recipients": "573122116233",
  "body_vars": [{"text": "{{1}}", "val": "1234"}],
  "contact_type": "phone",
  "conversation_status": "closed",
  "chatbot_status": "enable"
}

string
required

Lista de destinatarios separados por coma. Lo que contiene depende de
contact_type:

  • phone: números de teléfono con código de país
  • contact: IDs de contactos existentes
  • wa_username: usernames de WhatsApp (para contactos que ocultan su número)
string
required

Identificador único de la plantilla aprobada por WhatsApp.

string | null
enum

Opcional. Si se omite, Wasapi detecta el tipo de cada destinatario por su
formato — ver la nota «Detección automática» arriba. Envíelo solo si necesita
forzar una interpretación:

  • phone: los valores son teléfonos crudos
  • contact: los valores son IDs de contacto
  • wa_username: los valores son usernames de WhatsApp

Cuando se envía, no hay detección automática y la respuesta no incluye
resolved_as.

Allowed:
integer

ID del número de teléfono de Wasapi desde el cual se enviará el mensaje.

string
enum

Tipo de archivo a adjuntar en el encabezado de la plantilla:

  • document - Archivos PDF, DOC, XLS, etc.
  • video - Archivos MP4, MOV, etc.
  • image - Archivos JPG, PNG, etc.
  • audio - Archivos MP3, WAV, etc.
Allowed:
uri

URL del archivo a adjuntar en el encabezado de la plantilla. El archivo debe ser accesible públicamente.

string

Nombre personalizado para el archivo. Este campo solo funciona cuando el tipo de archivo es "document".

body_vars
array of objects

Variables para personalizar el cuerpo del mensaje. Cada variable debe coincidir con los placeholders definidos en la plantilla.

body_vars
header_var
array of objects

Variable para personalizar el encabezado del mensaje. Solo aplica si la plantilla tiene un encabezado configurado.

header_var
cta_var
array of objects

Variables para personalizar los botones de llamada a la acción. Solo aplica si la plantilla tiene botones configurados.

cta_var
string
enum

Controla el comportamiento del chatbot para los contactos:

  • enable - Activa el chatbot para responder automáticamente
  • disable - Desactiva el chatbot por 24 horas
  • disable_permanently - Desactiva el chatbot permanentemente
Allowed:
string
enum

Define el estado de la conversación después del envío:

  • open - Inicia una nueva conversación o reabre una existente
  • hold - Pone la conversación en espera
  • closed - Cierra la conversación
  • unchanged - Mantiene el estado actual de la conversación
Allowed:
Responses

401

No autenticado - Token inválido o no proporcionado

500

Error interno del servidor

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json