Skip to main content

Qué es

La API de WhatsApp Messages envía mensajes de plantilla, texto, imagen, video, audio, documento, sticker, ubicación, interactivos, contacto y de reacción desde un número de teléfono de WhatsApp business conectado.

Antes de comenzar

  • Guarda tu clave de API de YCloud en YCLOUD_API_KEY.
  • Conecta una cuenta de WhatsApp Business y un número de teléfono a YCloud.
  • Obtén el número de teléfono del remitente en formato E.164 y el número de teléfono del destinatario, BSUID o BSUID principal.
  • Usa una plantilla APPROVED para envíos de plantillas habituales.
  • Sube el archivo multimedia primero cuando el mensaje haga referencia a un ID de archivo multimedia de YCloud.

Cómo funciona

Elige el endpoint según cuándo deba YCloud enviar el mensaje a la WhatsApp Business API. Ambos endpoints devuelven un objeto de mensaje de YCloud. La respuesta inicial no confirma la entrega final. Los cambios de estado posteriores llegan a través de Webhooks de whatsapp.message.updated.

Direct Send para contenido de utilidad

Direct Send puede enviar contenido de utilidad elegible o convertir una plantilla de utilidad existente. Funciona con cualquiera de los endpoints de envío. El endpoint sendDirectly controla el envío sincrónico; no habilita Direct Send por sí mismo. Sigue las mejores prácticas de Direct Send para elegibilidad, solicitudes, conversión de plantillas, límites y eventos de la cuenta.

Elige el mejor momento de envío

Haz coincidir la hora de envío con el propósito del mensaje y la hora local del destinatario.
  • Envía OTP y otros mensajes urgentes de inmediato. Usa POST /whatsapp/messages/sendDirectly cuando tu flujo de trabajo necesite el resultado del envío antes de continuar.
  • Envía actualizaciones transaccionales cuando ocurra el evento relacionado, como un pago, envío o cambio de cita.
  • Programa los mensajes de marketing en horarios razonables según la zona horaria del destinatario. Usa tus propios datos de entrega, lectura y conversión para probar diferentes franjas horarias para cada audiencia en lugar de asumir una única mejor hora universal.
  • Comienza una campaña programada con un grupo pequeño de destinatarios. Revisa los resultados de entrega, respuesta y cancelaciones de suscripción antes de enviar al resto de la audiencia.
  • Evita envíos repetidos cuando un mensaje se retrase. Guarda externalId y procesa Webhooks de whatsapp.message.updated antes de decidir si reintentar.

Solicitud

Elige cualquiera de los endpoints anteriores y luego usa el cuerpo de solicitud que coincida con el tipo de mensaje. El valor from es tu número de teléfono de WhatsApp business conectado. Dirige el mensaje al destinatario con to en formato E.164 o con recipient establecido en un BSUID o BSUID principal.

Campos de solicitud comunes

filterUnsubscribed y filterBlocked se aplican solo a POST /whatsapp/messages; no se aplican a sendDirectly. Un mensaje en cola filtrado falla con RECIPIENT_UNSUBSCRIBED o RECIPIENT_IN_BLOCK_LIST en su webhook de estado. Para envíos sincrónicos, aplica verificaciones de consentimiento, cancelación de suscripción y bloqueo en tu aplicación.
Proporciona al menos uno de to o recipient. Si incluyes ambos, YCloud usa to e ignora recipient.
Las plantillas de autenticación con un toque, toque cero y copiar código requieren un número de teléfono. Usa to para estos tipos de plantillas.

Ejemplos de solicitud

Respuesta

Una respuesta exitosa devuelve el objeto de mensaje de YCloud. Un status: accepted inicial significa que YCloud aceptó la solicitud de envío. No significa que Meta haya enviado el mensaje ni que se haya entregado al usuario de WhatsApp.

Ejemplo de respuesta

Campos de la respuesta

Estado de entrega

Suscríbete a Webhooks de whatsapp.message.updated para recibir cambios de estado posteriores como sent, failed, delivered o read. Utiliza GET /whatsapp/messages/{id} cuando necesites recuperar un mensaje directamente.
Para mensajes multimedia, sube el archivo primero con POST /whatsapp/media/{phoneNumber}/upload, luego usa el ID multimedia devuelto en el payload del mensaje.

Límites y resolución de problemas

  • Los envíos habituales de plantillas requieren una plantilla APPROVED; las plantillas ARCHIVED no se pueden enviar como mensajes de plantilla ordinarios.
  • No reintentes una solicitud aceptada sin una estrategia de idempotencia. Una solicitud repetida puede enviar un mensaje duplicado.
  • Utiliza id, wamid, externalId de YCloud y el estado de Webhook cuando investigues la entrega.
  • Inspecciona whatsappApiError cuando una solicitud directa llegue a Meta y Meta la rechace.
Para conocer los límites de rendimiento, consulta Límites de velocidad.

Prácticas recomendadas de Direct Send

Envía contenido de utilidad, convierte plantillas y supervisa eventos de categoría y restricciones.

Prácticas recomendadas para producción

Diseña sincronización de estados, reintentos delimitados, comprobaciones de consentimiento, reutilización de archivos multimedia, y controles de rendimiento para una integración en producción.

Usa ID de usuario con ámbito empresarial

Envía mensajes y llamadas por BSUID, solicita números de teléfono, gestiona entradas de la libreta de contactos de Meta y procesa campos de webhook de BSUID.

Ejemplos completos de integración

Para ver el flujo de trabajo completo de creación de plantillas y vinculación de variables, consulta Ejemplos de creación de plantillas y Ejemplos de mensajería. Utiliza Gestión de errores de WhatsApp para distinguir el rechazo de solicitudes de fallos de entrega posteriores, e Implementación del receptor de Webhook para verificar firmas y aceptar actualizaciones de estado de forma duradera.