/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
:
status
seja valid
antes de enviar mensagens a um 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.
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.
Se uma empresa usar o ponto de extremidade de forma indevida, serão realizadas as seguintes açõ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.
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.
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.
Os parâmetros a seguir são compatíveis com as chamadas POST
para /v1/contacts
:
Nome | Descrição |
---|---|
| 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: |
| 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 ( |
| 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 Valores possíveis: |
As seguintes bordas estão relacionadas ao nó:
Borda | Descrição |
---|---|
Use esta borda para gerenciar as identidades dos usuários. Consulte Identity Change para saber mais. |
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ção | Descrição |
---|---|
| O processamento do número de telefone é assíncrono. A resposta pode incluir alguns números com o
|
| 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. |
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 telefone | Número de telefone traduzido |
---|---|
|
|
|
|
|
|
|
|
|
|
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 |
---|---|
| O valor enviado no campo |
Versão 2.41 e anteriores | O status do usuário. Valores possíveis:
|
A partir da versão 2.43 | O status do usuário. Valores possíveis:
|
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 |
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.
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.
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." } ] }
Os parâmetros a seguir são compatíveis com as chamadas POST para /v1/contacts/{phone_number}/block
:
Configuração | Descrição |
---|---|
| 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. |
| 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. |
Faça esta chamada para desbloquear um contato.
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" } ] }
Os parâmetros a seguir são compatíveis com as chamadas POST para /v1/contacts/{phone_number}/unblock
:
Configuração | Descrição |
---|---|
| 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. |
Veja como obter uma lista dos seus contatos bloqueados.
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 } }
Os parâmetros a seguir são compatíveis com chamadas GET para /v1/contacts/blocklist
:
Configuração | Descrição |
---|---|
| Opcional. A faixa aceita é (0; 200). Padrão: 100. |
| Opcional. Padrão: 0. |
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.
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." } ] }
Os parâmetros a seguir são compatíveis com as chamadas POST para /v1/contacts/{phone_number}/report
:
Configuração | Descrição |
---|---|
| 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. |
| Opcional. O padrão é Se você quer apenas denunciar ou também bloquear o contato. |
| Opcional. O ID da mensagem a ser denunciada. Caso não seja especificado, as últimas 5 mensagens serão enviadas para o WhatsApp. |
| 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. |