Skip to main content
La Xenda Partner API te permite integrar tu sistema (n8n, un CRM propio, o cualquier backend) con la plataforma Xenda para:
  1. Enviar templates de WhatsApp a uno o más destinatarios — cada envío es una campaña visible en la plataforma, con métricas de entrega y lectura.
  2. Consultar el estado de cada envío (enviado, entregado, leído, respondido).
  3. Recibir un webhook cuando el cliente responde, con el campaign_id y tu external_ref para atar la respuesta a la operación correcta de tu lado.

Cómo funciona un envío

Una sola llamada a POST /campaigns (ver pestaña API Reference, con playground interactivo) hace todo: crea la campaña, carga los destinatarios y ejecuta el envío.
La respuesta incluye el campaign_id — guardalo: es el ID de ese envío puntual y es el mismo que después llega en el webhook de respuestas.

Idempotencia (reintentos seguros)

Cada envío lleva una idempotency_key tuya. Si tu sistema reintenta la llamada (timeout, reejecución de un flow, etc.), no se duplica el envío: devolvemos la respuesta original con replayed: true.
Ante un error 500 (fallo aguas arriba de WhatsApp), reintentá con la misma idempotency_key. Ante un 400, corregí el request — reintentar igual no va a duplicar nada, pero el error va a persistir.

Templates con imagen, video o PDF

Si tu template tiene un header multimedia (imagen, video o documento), tenés que mandar header_media_url en el request: una URL pública https del archivo, descargable sin autenticación. No se acepta base64.
  • Límites de WhatsApp: imagen 5 MB (jpg/png), video 16 MB (mp4), documento 100 MB (PDF).
  • Para documentos, el nombre visible del archivo se toma de la URL.
  • Si el template tiene header multimedia y no mandás header_media_url, el envío devuelve 400 con un mensaje claro (el media de muestra con el que se aprobó el template no se puede reusar para envíos — limitación de WhatsApp).

¿Un destinatario o varios?

Las campañas aceptan de 1 a 1000 destinatarios. Para follow-ups uno a uno, mandá una campaña por envío (te da un campaign_id por operación). Si la comunicación es la misma para muchos contactos y solo cambian las variables, agrupalos en una sola campaña.