Contatos

/v1/contacts

Use o nó contacts para gerenciar os usuários do WhatsApp no seu banco de dados. Para fazer isso, valide-os antes de enviar mensagens e verifique a identidade deles por meio de hashes de identidade.

Veja o que você pode fazer com o nó contacts:

  • Verifique se um número de telefone no banco de dados pertence a uma conta do WhatsApp válida. É preciso garantir que o status seja valid antes de enviar mensagens a um usuário.
  • Obtenha o ID do WhatsApp de um número de telefone. Os IDs do WhatsApp são necessários para enviar mensagens e notificações do usuário.

A partir da versão 2.39.1, o nó messages pode ser usado diretamente com um número de telefone, sem a necessidade de primeiro traduzi-lo para um ID do WhatsApp usando o nó contacts.

Estamos alterando o objetivo do nó contacts para que a partir da versão 2.43, ele não forneça mais informações de status sobre um número de telefone. Independentemente de o usuário ter o WhatsApp, a resposta sempre será retornada com valid para status e um wa_id.

Antes de começar

Você precisa fornecer aos clientes a opção de ativar a comunicação no WhatsApp com sua empresa. Esse fluxo de ativação é mantido pela sua empresa. Depois que o cliente aceitar, use o nó contacts para validar o número registrado. Consulte Obter aceitação para o WhatsApp para mais informações.

Limitações

  • Use esse ponto de extremidade para verificar se um número de telefone no banco de dados da empresa pertence a uma conta do WhatsApp válida.
  • O número de chamadas não deve exceder a quantidade de mensagens que o telefone está enviando.

Monitoramento

Se uma empresa usar o ponto de extremidade de forma indevida, serão realizadas as seguintes ações:

  • Todos os administradores do Gerenciador de Negócios receberão um aviso por email caso haja suspeita de uso indevido.
  • Após o recebimento do email, a empresa terá 7 dias para ajustar o comportamento.
  • Se as chamadas não forem ajustadas dentro desse prazo, o número de telefone será desabilitado permanentemente.

Recomendações

Recomendamos verificar os contatos antes de enviar mensagens. No entanto, você não precisa verificar os contatos ao responder às mensagens dos clientes, já que é possível fazer isso usando o wa_id fornecido. Não há custo adicional quando os resultados são armazenados em cache.

Criação

Antes de enviar mensagens a usuários que ativaram a comunicação, envie uma solicitação POST ao ponto de extremidade /v1/contacts para criar uma solicitação de validação do usuário da conta do WhatsApp. Na sua chamada, inclua a lista dos números de telefone que você quer validar.

Exemplo

POST /v1/contacts
{
  "blocking": "wait" | "no_wait",
  "contacts": [
  	"16315551000",
  	"+1 631 555 1001",
  	"6315551002",
  	"+1 (631) 555-1004",
  	"1-631-555-1005"
  ],
  "force_check": false | true
}

Você receberá uma resposta com o status atual dos números solicitados e os respectivos IDs do WhatsApp (wa_id):

{
  "contacts": [ {
    "wa_id": "16315551000",
    "input": "16315551000",
    "status": "valid"
  },
  {
    "wa_id": "16315551001",
    "input": "+1 631 555 1001",
    "status": "processing" # Only applicable when request is non-blocking
  },
  {
    "input": "6315551002",
    "status": "invalid"
  },
  {
    "input": "+163155588",
    "status": "failed"
  }
}

Salve os IDs do WhatsApp para números que retornaram o status de valid. Os usuários válidos são aqueles com uma conta do WhatsApp. Use os IDs do WhatsApp para enviar mensagens e notificações.

Repita essas etapas com frequência para gerenciar sua lista de usuários válidos. Os resultados são armazenados em cache no banco de dados do cliente da API Local do WhatsApp Business por 7 dias.

Parâmetros

Os parâmetros a seguir são compatíveis com as chamadas POST para /v1/contacts:

Nome Descrição

blocking

Opcional.

Indica se a solicitação deve aguardar a conclusão do processamento antes de retornar uma resposta. Para obter mais informações, leia a seção Bloqueio abaixo.


Valores possíveis: no_wait (padrão) e wait

contacts

Obrigatório.

Matriz de números de telefone que você está validando.


Os números podem estar em qualquer formato de número de telefone. O formato recomendado para números de telefone de contato inclui um sinal de adição (+) e o código do país. Para obter mais informações, consulte a seção Formatos de número de telefone abaixo.

force_check

Opcional.

Indica se o cache de contatos será verificado. Em geral, as informações de contato são armazenadas em cache por 7 dias. Ao definir o parâmetro force_check como true, o cache será ignorado, garantindo que a verificação seja realizada.


Valores possíveis: false (padrão) e true

Bordas

As seguintes bordas estão relacionadas ao nó:

BordaDescrição

/{user-whatsapp-id}/identity

Use esta borda para gerenciar as identidades dos usuários. Consulte Identity Change para saber mais.

Bloqueio

Há duas opções para o parâmetro blocking: no_wait e wait. Se o parâmetro blocking não for especificado em uma chamada, ele será definido como no_wait por padrão.

O parâmetro blocking determina se a solicitação deve aguardar o processamento ser concluído (síncrono) ou não (assíncrono).

ConfiguraçãoDescrição

no_wait

O processamento do número de telefone é assíncrono.


A resposta pode incluir alguns números com o status definido como processing. Se isso acontecer, recomendamos que você siga estas etapas:

  1. Você recebe uma resposta com alguns números marcados com o status processing.
  2. Emita outra solicitação de verificação de contato incluindo os números com o status processing.
  3. Se o processamento for concluído na sua nova solicitação, você obterá um status correto para o número em questão (válido ou inválido).
  4. Caso você ainda veja números marcados como processing, repita a Etapa 2 até obter uma resposta para cada um deles.

wait

O processamento dos números é síncrono. Você verá o status final de todos os contatos após a sincronização com o servidor. Essa configuração faz o bloqueio de consultas aguardar até que todos os números sejam verificados antes de retornar os resultados. Isso pode demorar um pouco.

Formatos de números de telefone

Os números de telefone na solicitação contacts podem estar em qualquer formato discável.

Se não houver um sinal de adição (+) antes do número de telefone, o código do país será determinado com base no número de registro do seu cliente da WhatsApp Business API. Por isso, números de telefone com códigos de países diferentes resultarão em erros.

A melhor prática é sempre especificar o código do país com o número de telefone e usar o sinal de adição como prefixo (+).

O código do país ainda pode ser usado caso o número depois de + seja inválido. Para obter o comportamento esperado, valide os números de telefone antes de usar a API Local.

Confira a seguir alguns exemplos que demonstram esse comportamento. Nestes casos, o cliente da API Local do WhatsApp Business está registrado com um número de telefone indiano (que tem o código do país +91):

Número de telefoneNúmero de telefone traduzido

"+1-631-555-1002"

"+16315551002"

"6315551002"

"+916315551002"

"1-631-555-1002"

"+9116315551002"

"+1 (516) 283-7151"

"+15162837151"

"+54 9 11 5612-1008"

"+5491156121008"

Campos retornados

A carga da resposta contacts contém a mesma matriz de números de telefone enviada na solicitação com as propriedades input, status e wa_id:

Nome Descrição

input

O valor enviado no campo contacts da solicitação.

status

Versão 2.41 e anteriores

O status do usuário.


Valores possíveis:

  • processing: a entrada ainda está em processamento
  • valid: um usuário válido do WhatsApp
  • invalid: não é um usuário válido do WhatsApp
  • failed: houve um erro no processamento da verificação

status

A partir da versão 2.43

O status do usuário.


Valores possíveis:

  • processing: a entrada ainda está em processamento
  • valid: a verificação de contato foi concluída, e é possível prosseguir com o envio de mensagem
  • failed: houve um erro no processamento da verificação

wa_id

Versão 2.41 e anteriores

O número de identificação do usuário que pode ser usado em outras chamadas. É retornado apenas se status é valid.

wa_id

A partir da versão 2.43

O ID de usuário do WhatsApp retornado, que pode ou não ser válido.

Não é possível ter certeza de que esse valor será válido, por isso, evite usá-lo em chamadas consecutivas.

Além do status processing, você verá um status HTTP de 200 OK.

Se um modelo de mensagem for enviado a um número de telefone que não tenha uma conta do WhatsApp, você receberá a mensagem de erro "User is not valid" com o código de erro 1013.

Caso a resposta retorne outros erros, consulte Mensagens de erro e status.

Como bloquear contatos

O bloqueio pode ser considerado um recurso de defesa para impedir que indivíduos mal-intencionados continuem executando ações prejudiciais. Para bloquear um contato, é preciso que você tenha recebido uma mensagem dele nas últimas 24 horas.

Exemplo

Envie uma chamada de API a /v1/contacts/{phone_number}/block com um motivo para o bloqueio de outra conta do WhatsApp.

POST /v1/contacts/+16315551000/block
{
   "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked"
}

A resposta bem-sucedida inclui o status HTTP 200 e não tem o objeto "errors".

A resposta com falha é semelhante a esta:

{   
    "errors": [
        {
            "code": 2048,
            "title": "Not engaged contact",
            "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs."
        }
    ]
}

Parâmetros

Os parâmetros a seguir são compatíveis com as chamadas POST para /v1/contacts/{phone_number}/block:

ConfiguraçãoDescrição

reason

Opcional.

Razão do bloqueio em formato de texto livre. Será usado durante o processo de bloqueio de outra conta do WhatsApp. Deve ter menos de 60 caracteres.

phone_number

Obrigatório.

Os números podem estar em qualquer formato de número de telefone. O formato recomendado para números de telefone de contato inclui um sinal de adição (+) e o código do país. Para mais informações, consulte Formatos de número de telefone.

Como desbloquear contatos

Faça esta chamada para desbloquear um contato.

Exemplo

Envie uma chamada de API para /v1/contacts/{phone_number}/unblock.

POST /v1/contacts/+16315551000/unblock

A resposta bem-sucedida inclui o status HTTP 200 e não tem o objeto "errors".

A resposta com falha é semelhante a esta:

{   
    "errors": [
        {
            "code": 1009,
            "title": "Parameter value is not valid",
            "details": "Provided WhatsApp ID is not valid. Please provide a valid WhatsApp ID or a phone number with a country code"
        }
    ]
}

Parâmetros

Os parâmetros a seguir são compatíveis com as chamadas POST para /v1/contacts/{phone_number}/unblock:

ConfiguraçãoDescrição

phone_number

Obrigatório.

Os números podem estar em qualquer formato de número de telefone. O formato recomendado para números de telefone de contato inclui um sinal de adição (+) e o código do país. Para mais informações, consulte Formatos de número de telefone.

Lista de bloqueio

Veja como obter uma lista dos seus contatos bloqueados.

Exemplo

Envie uma chamada de API para /v1/contacts/blocklist a fim de receber uma lista paginada dos seus contatos bloqueados.

GET /v1/contacts/blocklist?limit=10&offset=0

Você receberá uma resposta com uma página da sua lista de bloqueio e informações de paginação.

{
   "contacts": [
       {
           "wa_id": "16315551000@s.whatsapp.net"
       }
   ],
   "pagination": {
       "limit": 10,
       "offset": 0,
       "total": 1
   }
}

Parâmetros

Os parâmetros a seguir são compatíveis com chamadas GET para /v1/contacts/blocklist:

ConfiguraçãoDescrição

limit

Opcional.

A faixa aceita é (0; 200). Padrão: 100.

offset

Opcional.

Padrão: 0.

Geração de relatórios

Os relatórios fornecem sinais cruciais para criar uma solução preventiva contra indivíduos mal-intencionados. Para denunciar um contato, é preciso que você tenha recebido uma mensagem dele nas últimas 24 horas.

Exemplo

Envie uma chamada de API para /v1/contacts/{phone_number}/report incluindo um motivo caso você esteja bloqueando outra conta do WhatsApp.

POST /v1/contacts/+16315551000/block
{
   "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked",
   "block": "true | false optional boolean with default of false",
   "message_id": "message-id. Optional reported message id"
}

A resposta bem-sucedida inclui o status HTTP 200 e não tem o objeto "errors".

A resposta com falha é semelhante a esta:

{  
    "errors": [
        {
            "code": 2048,
            "title": "Not engaged contact",
            "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs."
        }
    ]
}

Parâmetros

Os parâmetros a seguir são compatíveis com as chamadas POST para /v1/contacts/{phone_number}/report:

ConfiguraçãoDescrição

reason

Opcional.

Razão do bloqueio em formato de texto livre. Será usado durante o processo de bloqueio de outra conta do WhatsApp. Deve ter menos de 60 caracteres.

block

Opcional.

O padrão é False.

Se você quer apenas denunciar ou também bloquear o contato.

message_id

Opcional.

O ID da mensagem a ser denunciada. Caso não seja especificado, as últimas 5 mensagens serão enviadas para o WhatsApp.

phone_number

Obrigatório.

Os números podem estar em qualquer formato de número de telefone. O formato recomendado para números de telefone de contato inclui um sinal de adição (+) e o código do país. Para mais informações, consulte Formatos de número de telefone.