Ciclo de vida do resultado
Como armazenar e atualizar resultados de verificação de registro no WhatsApp
Projete um registro útil para resultados de registro no WhatsApp com entrada E.164, true ou false, classe de resultado local, carimbo de data/hora e regras de atualização.

O status de registro é uma observação, não um rótulo permanente
Uma verificação de registro no WhatsApp concluída responde se um número E.164 foi informado como registrado no horário de verificação registrado.
O resultado pode ser útil imediatamente, mas não deve ser armazenado como uma propriedade eterna, como phone.is_valid. Números de telefone e registros em plataformas podem mudar, e uma falha técnica posterior não reverte um resultado concluído anteriormente. Por isso, um modelo durável registra tanto a decisão quanto o contexto que a produziu.
O WA Lookup devolve as informações de registro de forma síncrona. Isso facilita salvar a observação exatamente no ponto em que a aplicação a recebe. Ainda assim, o mesmo modelo deve distinguir uma verificação concluída de uma requisição que nunca produziu uma decisão de registro.
O registro de resultado mínimo útil
| Campo | Exemplo | Por que é importante |
|---|---|---|
source_phone |
Texto original enviado | Permite correção e auditoria sem alterar a origem |
e164_phone |
+17253100591 |
Identifica o valor normalizado efetivamente verificado |
service_type |
ws |
Identifica o contrato do resultado |
outcome |
completed |
A classificação da sua aplicação para um resultado concluído ou uma requisição com falha |
registered |
true ou false |
Armazena o resultado de registro concluído |
received_at |
Carimbo de data/hora da aplicação | Registra quando a resposta síncrona chegou |
api_code |
0 |
Mantém o resultado externo da API separado da observação de registro |
Só defina registered para uma decisão concluída. Registre em log o status HTTP e o código da API separadamente quando a aplicação precisar de um histórico de erros; não transforme essas respostas em mais um valor de registro.
Armazene com precisão os três formatos de resposta
O contrato documentado tem dois formatos de resultado concluído e um formato de erro separado:
- Resultado concluído registrado —
code=0edata.registered=true. - Resultado concluído não registrado —
code=0edata.registered=false. - Sem decisão — um código de API diferente de zero, sem valor de
registeredpara armazenar.
Entrada inválida, saldo insuficiente, limites de concorrência, timeouts, manutenção e falhas internas usam códigos de API diferentes de zero. São erros de requisição, não valores do resultado de registro no WhatsApp.
Preserve o histórico quando uma nova verificação for executada
Se a aplicação precisar de um status mais recente, acrescente uma nova observação ou versione o registro existente. Não sobrescreva o checked_at antigo mantendo o resultado dele, e não substitua o último valor concluído por false apenas porque uma atualização falhou.
Uma visão simples do estado atual pode selecionar a observação concluída mais recente, enquanto a tabela subjacente mantém todas as tentativas. Isso dá à aplicação uma resposta atual quando ela existe e ainda mostra se uma tentativa mais recente ficou sem resolução.
| Situação | Último resultado concluído | Log de requisições separado |
|---|---|---|
| A primeira verificação é concluída como true | true recebido em T1 | Sucesso em T1 |
| Uma requisição posterior à API retorna erro | true recebido em T1 | Erro HTTP/API em T2 |
| Uma verificação posterior é concluída como false | false recebido em T3 | Sucesso em T3 |
Escolha o momento da atualização com base na decisão de negócio
Não existe um prazo de validade universal para um resultado de registro. A janela de atualidade adequada depende de quanto atraso o fluxo ao redor consegue tolerar. Uma ação sob demanda do usuário pode exigir uma nova verificação síncrona, enquanto um relatório analítico pode aceitar um carimbo de data/hora mais antigo, desde que a idade dele esteja visível.
Defina a regra de forma explícita:
- qual idade máxima de resultado o fluxo aceita;
- quais respostas da API com código diferente de zero devem disparar uma chamada posterior;
- após quais erros da API o chamador opta por enviar novamente;
- como os limites de concorrência e os timeouts são respeitados;
- como os carimbos de data/hora são exibidos aos operadores.
O ponto importante é não apresentar um valor antigo do banco de dados como tempo real. O WA Lookup fornece uma observação síncrona atual quando é chamado; a aplicação integradora decide quando precisa chamar novamente.
O princípio de armazenamento confiável
Armazene as evidências de registro como observações com carimbo de data/hora e armazene as tentativas operacionais como estados próprios.
Isso mantém registered=false significativo, torna as novas tentativas mais seguras e permite que cada interface diga exatamente quando o status exibido foi verificado. Também respeita o limite do produto: o WA Lookup fornece resultados de verificação de registro, enquanto o sistema do cliente é responsável pela retenção, pela política de atualização e pelas decisões posteriores.