Skip to main content

Descripción general

La API pública de difusión permite que sistemas externos accedan a los números de WhatsApp Business de su organización. Cada solicitud queda asociada a una organización mediante la clave API, y todos los números WABA utilizados deben pertenecer a esa organización. Existen dos familias de endpoints en /broadcast/public:
  • Endpoints v2: se autentican con la clave de su organización y son los documentados en esta página.
  • Endpoints heredados: siguen usando la clave WABA anterior por número y no han cambiado. Consulte Endpoints heredados.

Configuración base

Antes de comenzar

Mantenga la clave en el servidor. Esta clave permite enviar mensajes desde todos los números de WhatsApp de su organización. Guárdela en variables de entorno o en un gestor de secretos; nunca la incluya en código web o móvil.
Comience aquí. Consulte Obtener números de teléfono para saber qué números WABA puede utilizar y Obtener plantillas para confirmar que la plantilla está aprobada antes de enviar mensajes.

Flujo de autenticación

1

Usar la clave de autenticación en los encabezados de solicitud

Todos los endpoints de difusión requieren la clave de autenticación generada en el encabezado x-api-key, que puede encontrar en Espacio de trabajo → Personal.

Guarde su clave API de forma segura. Evite regenerarla innecesariamente.
Busque la clave de autenticación de su organización en la sección Personal

Qué identifica la clave

La clave identifica a su organización. En los endpoints que aceptan un fromPhoneNumber o phone_number, la API verifica además que el número esté registrado en esa organización y que su registro WABA esté completo: waba_id, phone_number_id, phone_number y access_token deben estar presentes. Una discrepancia devuelve 401, no 403.

Índice de endpoints


Obtener números de teléfono

Enumera todos los números de WhatsApp Business registrados en su organización. Utilice el phone_number devuelto como fromPhoneNumber en los endpoints de envío.

Endpoint

Solicitud

Respuesta

200: números de teléfono obtenidos correctamente
Una matriz data vacía significa que la clave es válida pero aún no hay ningún número WABA conectado a la organización. Ese es un estado de configuración, no un error.

Obtener plantillas

Devuelve las plantillas de WhatsApp aprobadas y disponibles para uno de tus números. Llame a esto antes de una difusión: enviar un nombre de plantilla no aprobado o mal escrito falla en toda la solicitud.

Endpoint

Parámetros de consulta

Solicitud

Respuesta

200 — Plantillas obtenidas correctamente
Cuente los marcadores de posición {{n}} en el cuerpo; eso es exactamente cuántos valores debe proporcionar la matriz templateParams de cada destinatario.

Enviar plantilla de difusión

Envía una plantilla aprobada a una lista de destinatarios. El comportamiento cambia con el tamaño de la lista: hasta 1000 destinatarios, la difusión se pone en cola de forma sincrónica; encima de eso, se divide en partes y se procesa como un trabajo en segundo plano que se procesa como un trabajo en segundo plano cuyo estado puede consultar.

Endpoint

Encabezados

Cuerpo

Objeto destinatario

Solicitud

En este ejemplo, el primer destinatario obtiene sus propios valores y el segundo recurre a globalTemplateParams.

Respuestas

200: en cola (1000 destinatarios o menos)
202: Aceptado para procesamiento en segundo plano (más de 1000 destinatarios)
Conserve el jobId; es la única forma de comprobar cómo finalizó la difusión. Consulte Obtener estado de difusión con ese identificador. 400: se superó el límite de destinatarios
400 — Plantilla no aprobada
Los destinatarios duplicados se rechazan, no se fusionan. Si el mismo par countryCode + toPhoneNumber aparece dos veces, toda la solicitud falla con un 400 nombrando el índice del duplicado. Deduplica tu lista antes de enviarla.

Enviar mensaje de formato libre

Envía un solo mensaje a un destinatario. Los ocho tipos de contenido comparten este endpoint: el campo type decide qué otros campos son obligatorios.

Endpoint

Campos comunes

Campos específicos de tipo

La extensión se lee desde la ruta URL, no desde el archivo. Un PNG real servido desde una URL que termina en .webp se rechaza para image, y una URL sin extensión alguna se rechaza para cada tipo de medio. Las cadenas de consulta se ignoran, por lo que …/photo.png?v=2 está bien.

Texto

Imagen

Documento

Audio

Vídeo

Pegatina

Ubicación

latitude y longitude deben ser números JSON, no cadenas. La latitud acepta −90 a 90, longitud −180 a 180.

Interactivo: botones

Hasta 3 botones de respuesta. Se rechaza más de tres.

Interactivo — lista

Hasta 10 filas contadas en todas las secciones combinadas, no por sección.

Respuesta

200: la misma forma para los ocho tipos

Obtener estado de difusión

Devuelve el progreso de un trabajo de difusión grande, los que devolvieron 202 y jobId. Las difusiones de 1.000 destinatarios o menos no crean un trabajo y no tienen ningún estado que consultar.

Endpoint

Solicitud

Respuestas

200: registro del trabajo más un resumen del progreso del fragmento
404 — Trabajo de difusión no encontrado 401 — El trabajo pertenece a una organización diferente Un trabajo creado por otra organización devuelve 401 en lugar de 404; los ID de trabajo no se pueden enumerar entre organizaciones.

Comprobación de estado

Confirma que el servicio está activo y enumera las rutas que expone actualmente. No se necesita clave API.

Endpoint


Reglas de validación

Estos se ejecutan antes de que algo llegue a WhatsApp, por lo que un rechazo aquí no cuesta cuota de mensajes. Cada falla devuelve 400 con message: "Validation error" y un motivo específico.

Límites de solicitudes

Los límites se cuentan en una ventana fija de 60 segundos. La mayoría tiene como alcance su clave API y el número de teléfono en la solicitud, por lo que dos números de envío diferentes no compiten por el mismo presupuesto.

Al superar un límite

El mensaje le indica exactamente cuántos segundos quedan en la ventana. Espere tanto tiempo en lugar de volver a intentarlo inmediatamente: un reintento inmediato no consume nada pero devuelve el mismo error.

Manejo de errores

Cada error utiliza el mismo sobre:

Códigos de estado

Los cuatro errores 401

Los cuatro devuelven 401 pero significan cosas diferentes:
Reintentar política. Reintentar 500 y 503 con retroceso exponencial. Nunca vuelva a intentar 400 o 401: la misma solicitud fallará de manera idéntica. En 429, espere el intervalo en el que aparecen los nombres de las respuestas. Envíe siempre un Idempotency-Key en las solicitudes que desee volver a intentar.

Endpoints heredados

Autenticación diferente. Estos tres son anteriores a la versión 2 y aún usan la clave WABA por número anterior, no la de su organización auth_key. No han cambiado y siguen siendo compatibles, pero las nuevas integraciones deberían utilizar los endpoints v2 anteriores.
Genera una clave API heredada para un número de teléfono. Toma phoneNumber, no un ID de organización.
Envía un mensaje de plantilla. Los campos de destinatario se encuentran en el nivel superior en lugar de en una matriz data.
Envío masivo de plantillas, con un límite de 1000 destinatarios: no hay fragmentación ni identificación de trabajo. Exceder el límite devuelve 400 en el cuerpo de la respuesta con una línea de estado HTTP 200, a diferencia del endpoint v2 que devuelve.