Se actualizó este documento.
La traducción en español no está disponible todavía.
Actualización del documento en inglés: 17 de may.

Anulaciones de Webhooks

Solo se aplica a la API de la nube.

Los webhooks de mensajes se envían a la URL de devolución de llamada configurada en tu app, pero puedes anular esto configurando una URL de devolución de llamada alternativa en tu cuenta de WhatsApp Business (WABA) o número de teléfono comercial.

Cuando se active un webhook de mensajes, primero comprobaremos si el número de teléfono comercial asociado con el mensaje tiene una URL de devolución de llamada alternativa. Si la tiene, enviaremos el webhook a la URL de devolución de llamada alternativa. Si no la tiene, comprobaremos si la WABA asociada al número de teléfono tiene una URL de devolución de llamada alternativa y, si es así, enviaremos el webhook allí. Si tampoco hay una URL alternativa para la WABA, usaremos la URL de devolución de llamada de la app.

Requisitos

Antes de configurar una URL de devolución de llamada alternativa, asegúrate de que tu app esté suscrita a webhooks para la WABA y verifica que tu punto de conexión alternativo de devolución de llamada pueda recibir y procesar mensajes de webhooks correctamente.

Configurar una URL de devolución de llamada alternativa en una WABA

Usa el punto de conexión POST /<WABA_ID>/subscribed_apps para configurar una URL de devolución de llamada alternativa en una WABA.

Sintaxis de la solicitud

POST /<WABA_ID>/subscribed_apps

Cuerpo de la solicitud POST

{
  "override_callback_uri":"<WABA_ALT_CALLBACK_URL>",
  "verify_token":"<WABA_ALT_CALLBACK_URL_TOKEN>"
}

Parámetros del cuerpo

Marcador de posiciónDescripciónValor de ejemplo

<WABA_ALT_CALLBACK_URL>

Obligatorio.

URL de devolución de llamada alternativa a donde se deberían enviar los webhooks de mensajes.

No debe superar los 200 caracteres.

https://my-waba-alternate-callback.com/webhook

<WABA_ALT_CALLBACK_URL_TOKEN>

Obligatorio.

Token de verificación de URL de devolución de llamada alternativa.

Sin máximo.

myvoiceismypassport?

Respuesta

En caso de éxito:

{
  "success": true
}

Ejemplo de solicitud

curl -X POST \
'https://graph.facebook.com/v19.0/102290129340398/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...' \
-H 'Content-Type: application/json' \
-d '
{
  "override_callback_uri":"https://my-waba-alternate-callback.com/webhook",
  "verify_token":"myvoiceismypassport?"
}'

Ejemplo de respuesta

{
  "success": true
}

Consultar la URL de devolución de llamada alternativa de una WABA

Usa el punto de conexión GET /<WABA_ID>/subscribed_apps para obtener una lista de todas las apps suscritas a webhooks en la WABA. La respuesta debería incluir una propiedad override_callback_uri con su respectivo valor.

Ejemplo de respuesta

{
  "data" : [
    {
      "whatsapp_business_api_data" : {
        "id" : "670843887433847",
        "link" : "https://www.facebook.com/games/?app_id=67084...",
        "name" : "Lucky Shrub"
      },
      "override_callback_uri" : "https://my-waba-alternate-callback.com/webhook"
    }
  ]
}

Eliminar la URL de devolución de llamada alternativa de una WABA

Usa el punto de conexión POST /<WABA_ID>/subscribed_apps para suscribir tu app a webhooks en la WABA como lo harías normalmente (es decir, sin parámetros en el cuerpo de la solicitud POST). De esta manera, se eliminará la URL de devolución de llamada del punto de conexión alternativo, y los webhooks de mensajes de la WABA se volverán a enviar a la URL de devolución de llamada configurada en el panel de apps.

Configurar la URL de devolución de llamada alternativa del número de teléfono

Usa el punto de conexión POST /<BUSINESS_PHONE_NUMBER_ID> para configurar una URL de devolución de llamada alternativa en el número de teléfono comercial.

Sintaxis de la solicitud

POST /<BUSINESS_PHONE_NUMBER_ID>

Cuerpo de la solicitud POST

{
  "webhook_configuration": {
    "override_callback_uri": "<PHONE_ALT_CALLBACK_URL>",
    "verify_token": "<PHONE_ALT_CALLBACK_URL_TOKEN>"
  }
}

Parámetros del cuerpo

Marcador de posiciónDescripciónValor de ejemplo

<PHONE_ALT_CALLBACK_URL>

Obligatorio.

URL de devolución de llamada alternativa a donde se deberían enviar los webhooks de mensajes.

No debe superar los 200 caracteres.

https://my-phone-alternate-callback.com/webhook

<PHONE_ALT_CALLBACK_URL_TOKEN>

Obligatorio.

Token de verificación de URL de devolución de llamada alternativa.

Sin máximo.

myvoiceismypassport?

Respuesta

En caso de éxito:

{
  "success": true
}

Ejemplo de solicitud

curl 'https://graph.facebook.com/v19.0/106540352242922' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "webhook_configuration": {
    "override_callback_uri": "https://my-phone-alternate-callback.com/webhook",
    "verify_token": "myvoiceismypassport?"
  }
}'

Ejemplo de respuesta

{
  "success": true
}

Consultar la URL de devolución de llamada alternativa del número de teléfono

Usa el punto de conexión GET /<BUSINESS_PHONE_NUMBER_ID> y solicita el campo webhook_configuration para verificar que el número de teléfono del negocio tenga una URL de devolución de llamada alternativa.

Sintaxis de la solicitud

GET /<BUSINESS_PHONE_NUMBER_ID>
  ?fields=webhook_configuration

Respuesta

En caso de éxito:

{
  "webhook_configuration": {
    "phone_number": "<PHONE_ALT_CALLBACK_URL>",
    "whatsapp_business_account": "<WABA_ALT_CALLBACK_URL>",
    "application": "<APP_CALLBACK_URL>"
  },
  "id": "106540352242922"
}

Ten en cuenta que whatsapp_business_account solo se incluye si la WABA asociada con el número de teléfono comercial también tiene una URL de devolución de llamada alternativa.

Ejemplo de solicitud

curl 'https://graph.facebook.com/v17.0/106540352242922?fields=webhook_configuration' \
-H 'Authorization: Bearer EAAJB...'

Ejemplo de respuesta

{
  "webhook_configuration": {
    "phone_number": "https://my-phone-alternate-callback.com/webhook",
    "whatsapp_business_account": "https://my-waba-alternate-callback.com/webhook",
    "application": "https://my-production-callback.com/webhook"
  },
  "id": "106540352242922"
}

Eliminar la URL de devolución de llamada alternativa del número de teléfono

Usa el punto de conexión DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>subscribed_apps para eliminar una URL de devolución de llamada alternativa del número de teléfono comercial. Ten en cuenta que con esto también se cancela por completo la suscripción de la app a los webhooks en la WABA.