O número não tem WhatsApp
Cadastro desatualizado ou número digitado errado. A mensagem é disparada e não chega a ninguém. Conferindo antes, esse contato vai para outro canal.
Você manda a lista como está no cadastro. O Preenvia pergunta ao próprio WhatsApp se existe conta em cada número e devolve o formato exato para enviar, com ou sem o nono dígito.
(31) 98888-7777tem WhatsApp 553188887777 registrada sem o 9(11) 97777-0000sem WhatsAppnão enviar(21) 96666-5555tem WhatsApp 5521966665555 registrada com o 9(41) 1234-56número inválidocorrigir o cadastroOs dois aparecem só depois do disparo, quando a mensagem já foi perdida.
Cadastro desatualizado ou número digitado errado. A mensagem é disparada e não chega a ninguém. Conferindo antes, esse contato vai para outro canal.
Contas criadas antes do nono dígito podem continuar registradas sem ele. O cadastro está com 9, a mensagem vai para o número com 9 e o envio falha. O Preenvia devolve o formato em que a conta existe.
Uma chamada de API por lista. O mesmo caminho vale para cada número que você mandar.
(31) 98888-7777Do jeito que estiver: máscara, espaço, parênteses, com ou sem DDI.5531988887777Só dígitos, com o DDI do Brasil.5531988887777 · 553188887777Celular brasileiro é consultado com o 9 e sem o 9.existe conta, sem o 9Quem responde é o próprio WhatsApp, não uma regra fixa por DDD.553188887777O campo send_to traz o destino exato. É para ele que a mensagem vai.Resultados recentes ficam em cache por um período configurado. Consultar de novo o mesmo número não gera nova consulta ao WhatsApp.
Cada número volta com um status. Seu sistema de envio decide com base nele.
status | O que significa | O que fazer |
|---|---|---|
| valid | Existe conta de WhatsApp no número. | Enviar para send_to, nunca para o número digitado. |
| not_on_whatsapp | Não existe conta de WhatsApp, nem com 9 nem sem 9. | Não enviar por WhatsApp. Usar outro canal. |
| ambiguous | Com 9 e sem 9 são duas contas diferentes. | Não enviar. Encaminhar para revisão humana. |
| invalid_number | O formato do número não é válido. | Corrigir o cadastro na origem. |
| unknown | Não foi possível consultar agora. | Não enviar. Tentar de novo mais tarde. |
Regra de integração: envie somente quando status for valid, e sempre para send_to.
API REST com chave por cliente. Listas pequenas respondem na hora; listas grandes vão em lote.
curl -X POST https://<seu-host>/v1/validate \ -H "X-API-Key: $CHAVE" \ -H "Content-Type: application/json" \ -d '{"numbers": ["(31) 98888-7777"]}'
{
"request_id": "9f2c1a7b3e4d5f60",
"results": [{
"input": "(31) 98888-7777",
"normalized": "5531988887777",
"status": "valid",
"has_whatsapp": true,
"send_to": "553188887777",
"variant": "without_9"
}]
}Idempotency-Key devolve o mesmo lote, sem gastar a quota de novo.429 com Retry-After dizendo quando tentar de novo.O serviço confere os números sem montar uma base com os telefones dos seus destinatários.
A chave do cache é um HMAC do número. O uso por cliente é guardado só como contagem diária.
Os números de um lote ficam guardados só enquanto ele existe e são apagados ao fim da retenção configurada.
A chave de API aparece só na criação. No banco ficam o hash e um prefixo para identificação.
Revogar uma chave ou desativar um cliente interrompe o acesso imediatamente.
A mesma API e a mesma regra de envio vão valer para os próximos canais.
Se existe conta no número e em qual formato ela está registrada, incluindo o caso do nono dígito.
Validação de endereços antes do envio. Ainda sem data definida.
Crie a conta, compre créditos e gere a chave de API. Cada número consultado usa 1 crédito. Volume maior ou contrato: fale com o time comercial.