Usar webhooks para rastrear violações de política da WABA

As empresas podem fazer integração com webhooks para receber notificações em tempo real sobre alterações em uma conta do WhatsApp Business (WABA, pelas iniciais em inglês), inclusive quando uma empresa violar uma política do WhatsApp. Este guia explica como configurar webhooks para receber essas notificações, de modo que as empresas possam ajustar rapidamente o comportamento para evitar avisos adicionais e/ou ações de monitoramento.

Antes de começar

Para usar este guia, é necessário inscrever-se como desenvolvedor da Meta. Depois de se inscrever, configure uma conta do Gerenciador de Negócios e um app da Meta for Developers.

Ao criar seu app da Meta, selecione o tipo Empresa e vincule o novo app ao Gerenciador de Negócios.

Após a criação, adicione o WhatsApp como um produto do app. Para fazer isso, siga estas etapas:

  • Acesse developers.facebook.com/apps e clique no aplicativo. Depois disso, redirecionaremos você ao painel do app em questão.
  • No painel do lado esquerdo, encontre Produtos e clique em Adicionar produto. Você verá uma lista dos produtos do Facebook que podem ser adicionados ao app.
  • Encontre o WhatsApp e clique em Configurar.

Além disso, verifique se a análise do app foi concluída e a permissão whatsapp_business_managementfoi solicitada.

Etapa 1: configurar o ponto de extremidade e os webhooks

Siga o nosso guia de introdução aos Webhooks para criar o seu ponto de extremidade e configurar os webhooks.

Etapa 2: fazer a assinatura da WABA no seu aplicativo

Com o aplicativo, é necessário assinar as notificações de Webhook da conta do WhatsApp Business. Isso pode ser feito de duas formas:

Etapa 3: inscrever-se para atualizações da conta

Agora que o aplicativo está inscrito para receber notificações de webhooks sobre a WABA, é possível refinar os tipos de atualização que quer receber. Para acompanhar o status da WABA, selecione a opção account_update. Dessa forma, você receberá uma notificação quando uma WABA violar políticas do WhatsApp.

Para isso, acesse o Painel de Aplicativos e clique na opção Configurações. Você verá a seção Webhooks, com todas as informações fornecidas nas etapas anteriores. Encontre Campos de Webhook e clique em Gerenciar. Uma caixa de diálogo aparecerá, exibindo todos os campos que podem ser assinados. Na opção account_update, clique em "Assinar".

Dessa forma, sempre que a sua WABA violar uma política, você receberá uma notificação semelhante a esta:

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "whatsapp-business-account-id",
      "time": 1604703058,
      "changes": [
        {
          "field": "account_update",
          "value": {
            "phone_number": "16505551111",
            "event": "ACCOUNT_VIOLATION",
            "violation_info": {
            	"violation_type": "ALCOHOL",
            }
          }
        }
      ]
    }
  ]
}


É possível consultar todas as violações de política aqui.

Etapa 4: rastrear restrições da WABA

Fique de olho nos webhooks para verificar se há alguma restrição na sua WABA devido a violações de políticas. Se uma restrição for imposta, você receberá um webhook com o campo restriction_info dentro do objeto "value". O campo restriction_info lista todas as restrições impostas à conta e quando elas expiram.

A WABA pode receber uma ou mais restrições devido a violações de política. No exemplo abaixo, o webhook informa que uma WABA não poderá adicionar novos números de telefone:

{
  "field": "account_update",
  "value": {
    "phone_number": "PHONE_NUMBER",
    "event": "ACCOUNT_RESTRICTION",
    "restriction_info": [
      {
        "restriction_type": "RESTRICTION_ON_ADD_PHONE_NUMBER_ACTION",
        "expiration": TIMESTAMP
      },
    ]
  }
}

Aqui, vemos uma WABA que não tem mais permissão para enviar mensagens iniciadas pela empresa:

{
  "field": "account_update",
  "value": {
    "phone_number": "PHONE_NUMBER",
    "event": "ACCOUNT_RESTRICTION",
    "restriction_info": [
      {
        "restriction_type": "RESTRICTED_BIZ_INITIATED_MESSAGING",
        "expiration": TIMESTAMP
      },
    ]
  }
}

Por fim, vemos uma WABA que não tem mais permissão para responder mensagens iniciadas pelo usuário:

{
  "field": "account_update",
  "value": {
    "phone_number": "PHONE_NUMBER",
    "event": "ACCOUNT_RESTRICTION",
    "restriction_info": [{
        "restriction_type": "RESTRICTED_CUSTOMER_INITIATED_MESSAGING",
        "expiration": TIMESTAMP
      }
    ]
  }
}