Para consultar el catálogo exhaustivo basado en el esquema, consulta todos los ejemplos.
Qué es
Gestiona eventos de revisión, actualización y eliminación de cuentas comerciales, además de eliminaciones de números de teléfono, revisiones del nombre para mostrar, calidad y actualizaciones de Business Username. Enruta cada carga útil según sutype exacto: los eventos de cuenta usan whatsappBusinessAccount, mientras que los eventos de número de teléfono usan whatsappPhoneNumber.
Antes de comenzar
- Crea un endpoint HTTPS público en tu aplicación.
- Configura un endpoint de Webhook de YCloud para los tipos de eventos que necesites.
- Guarda el secreto de firma del endpoint de forma segura.
- Haz que el procesamiento de eventos sea idempotente.
Cómo funciona
YCloud envía una solicitud HTTPPOST cuando ocurre el evento. Verifica la firma, registra el evento de forma duradera, devuelve una respuesta 2xx y procesa las tareas lentas de forma asíncrona.
Solicitud
Los escenarios a continuación muestran solicitudes entregadas a tu URL de Webhook. Trata elid del evento como el identificador de entrega y usa type para enrutar la carga útil.
Respuesta
Devuelve un estado2xx tras aceptar el evento.
Para la configuración del endpoint, la validación de la firma y el comportamiento de reintentos, consulta Configurar webhooks.
Eliminación de la cuenta
Usawhatsapp.business_account.deleted para gestionar un evento de eliminación de una cuenta de WhatsApp Business. Lee whatsappBusinessAccount.id para identificar la WABA afectada.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Los campos de eliminación aparecen directamente dentro dewhatsappBusinessAccount cuando están disponibles.
Los valores conocidos de
removedReason incluyen:
Conserva los valores de motivo e iniciador desconocidos. Deduplica las entregas por el
id del evento y tolera los campos de eliminación omitidos.
Authentication-International Rate Eligibility
A partir del 1 de junio de 2024, introduciremos una nueva tarifa de autenticación internacional. Esta tarifa se aplicará en los siguientes países:- 1 de junio de 2024 – Indonesia (código de llamada de país +62, código de país
ID) - 1 de julio de 2024 – India (código de llamada de país +91, código de país
IN)
whatsapp.business_account.updated si tu empresa se considera elegible para tarifas internacionales. El Webhook incluirá las horas de inicio para cada país que tenga una tarifa de autenticación internacional.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.whatsappMessage.pricingCategory en los webhooks whatsapp.message.updated se establecerá en authentication_international.
Aquí tienes un ejemplo:
Explicación
Enruta el evento mediantetype, deduplícalo mediante id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.
Primary Business Location Update
Tu ubicación comercial principal es el país donde tiene su sede tu empresa. Aparecerá en el Business Manager bajo el campo Primary Business Location a partir del 1 de mayo de 2024. Si Meta puede determinar el país donde tiene su sede tu empresa, activaremos un Webhookwhatsapp.business_account.updated con el código de dos dígitos del país.
Aquí tienes un ejemplo:
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Enruta el evento mediantetype, deduplícalo mediante id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.
Actualización del límite de registro de números de teléfono
Meta envía una actualización de la capacidad comercial de una WABA cuando cambia el límite de registro de números de teléfono de la WABA o del Business Portfolio correspondiente. YCloud lo entrega comowhatsapp.business_account.updated con updateEvent=BUSINESS_CAPABILITY_UPDATE.
El webhook es a nivel de WABA: whatsappBusinessAccount.id es el ID de WABA de la entrada del webhook de Meta. Meta actualmente informa maxPhoneNumbersPerBusiness y maxPhoneNumbersPerWaba en actualizaciones independientes. No los trates como mutuamente excluyentes: procesa cada campo por separado y acepta ambos si una actualización futura los incluye juntos. Un valor de 0 es válido.
Aquí tienes un ejemplo de una actualización de límite de números de teléfono de WABA:
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Enruta el evento mediantetype, deduplícalo mediante id y actualiza únicamente el campo de límite incluido en la carga útil.
Infracción de la cuenta
Cuando recibas un eventowhatsapp.business_account.updated con whatsappBusinessAccount.updateEvent configurado como ACCOUNT_VIOLATION, inspecciona whatsappBusinessAccount.violationType para identificar la infracción de política notificada.
Consulta Policy enforcement violations de Meta para conocer los tipos y descripciones de las infracciones. Meta puede actualizar esta lista con el tiempo.
Aquí tienes un ejemplo:
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Enruta el evento mediantetype, deduplícalo mediante id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.
Restricción de la cuenta
Si las cuentas comerciales infringen repetidamente las Condiciones del servicio de WhatsApp Business o categorías de políticas de alto riesgo, como el envío de spam, contenido para adultos, venta de alcohol y tabaco, drogas, juegos de azar y suplementos no seguros, pueden empezar a sufrir restricciones de mensajería que aumentan gradualmente de duración. Para Utility Direct Send, consulta Direct Send notifications para ver una carga útil deACCOUNT_RESTRICTION en YCloud. Consulta Webhook for account restriction de Meta para conocer los tipos de infracciones y los detalles de las restricciones específicos de Direct Send.
Aquí tienes un ejemplo:
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Enruta el evento mediantetype, deduplícalo mediante id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.
Restricción de Utility Direct Send
Recibeswhatsapp.business_account.updated cuando Meta restringe Utility Direct Send tras un uso indebido reiterado de la categoría. Este ejemplo muestra una restricción de siete días.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
UtilizawhatsappBusinessAccount.id para identificar la WABA afectada y pausar su flujo de trabajo de Utility Direct Send. Lee violationType para conocer el motivo, restrictions[].restrictionType para la funcionalidad afectada y restrictions[].expiration para la fecha de vencimiento si se proporciona. La revisión correcta de una plantilla no levanta de manera automática una restricción a nivel de cuenta. Consulta Direct Send restrictions and notifications.
Cuenta desactivada
Las cuentas de WhatsApp Business pueden desactivarse si la empresa no realiza cambios tras múltiples advertencias y bloqueos o límites de funciones. Aquí tienes un ejemplo:Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Enruta el evento mediantetype, deduplícalo mediante id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.
Restablecimiento de la cuenta
Puedes apelar la decisión de bloqueo de la cuenta de WhatsApp Business para restablecerla. Una vez aprobada, el estado de revisión de la cuenta cambia aAPPROVED.
Aquí tienes un ejemplo:
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Enruta el evento mediantetype, deduplícalo mediante id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.
Revisión de la cuenta comercial
Utilizawhatsapp.business_account.reviewed cuando se haya revisado una cuenta de WhatsApp Business.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Identifica la WABA conid. Lee decision para conocer la decisión de revisión (APPROVED o REJECTED) y accountReviewStatus para el estado de revisión de la cuenta si se proporciona. No enrutes este evento como whatsapp.business_account.updated.
Eliminación de número de teléfono
Utilizawhatsapp.phone_number.deleted cuando se elimine un número de teléfono comercial de WhatsApp.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
UtilizawhatsappPhoneNumber.id para identificar el número de teléfono eliminado y wabaId para asociarlo con su cuenta. Este es un evento de número de teléfono; no lo trates como la eliminación de toda la WABA.
Revisión del nombre visible del número de teléfono
Utilizawhatsapp.phone_number.name_updated cuando se apruebe o rechace el nombre visible de un número de teléfono comercial.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
Leedecision y los campos de estado del nombre proporcionados. newNameStatus describe la nueva solicitud de nombre visible, requestedVerifiedName identifica el último nombre solicitado y rejectionReason describe un rechazo cuando esté presente. La revisión del nombre visible es independiente de una actualización del nombre de usuario de la empresa.
Actualización de la calidad del número de teléfono
Utilizawhatsapp.phone_number.quality_updated para cambios en el estado relacionado con la calidad de un número de teléfono comercial.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
LeequalityRating (GREEN, YELLOW o RED) y qualityUpdateEvent para entender la actualización. messagingLimit es el nivel del número de teléfono; whatsappBusinessManagerMessagingLimit es el límite de la cartera comercial propietaria. Mantén estos campos separados y actualiza únicamente los valores proporcionados en el evento.
Business Username activado
Usawhatsapp.phone_number.business_username_updated para sincronizar el Business Username de un número de teléfono.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
businessUsername es el nombre de usuario activo sin un @ inicial. Lee businessUsernameStatus y businessUsernameUpdatedAt junto con el id del número de teléfono. No confundas este valor con el nombre para mostrar verificado.
Solicitud de Business Username reservada
Un Business Username activo puede seguir utilizándose mientras se reserva una solicitud de reemplazo.Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
En este ejemplo,businessUsername permanece como acme.support mientras que requestedBusinessUsername es acme.help. El estado reserved describe la solicitud pendiente, no la activación del reemplazo. Acepta el valor heredado pending_review al leer eventos anteriores; las nuevas operaciones de escritura usan reserved.
