Como enviar um código de verificação pelo WhatsApp

March 20, 2024
Escrito por
Revisado por
Phil Nash
Twilion

As senhas de uso único (OTPs) do SMS são uma das formas mais comuns de verificação telefônica e autenticação de dois fatores (2FA), mas, em países como Brasil, Alemanha ou Índia, apps de mensagens como o WhatsApp são mais populares que o SMS. Por isso, adicionamos suporte ao WhatsApp em nossa Verify API. Como o WhatsApp realiza sua própria validação do número de telefone durante o cadastro, você pode usar a verificação pelo WhatsApp para substituir diretamente a verificação por SMS.

Neste artigo, você aprenderá como começar rapidamente a enviar e validar mensagens de verificação pelo WhatsApp.

Novidade em 2024: você precisará de um WhatsApp Sender associado à sua conta WhatsApp Business antes de enviar mensagens de verificação. Se você já tiver uma empresa verificada pela Meta, a criação de um WhatsApp Sender deverá levar cerca de uma hora. A verificação da empresa pode demorar até duas semanas. Comece aqui.

Pré-requisitos para enviar senhas de uso único (OTP)

Antes de enviar uma OTP, você precisará de:

Salve o SID do serviço (começa com VA) para usar na solicitação de API abaixo.

Envie uma verificação pelo WhatsApp

Copie o código a seguir para o endpoint Verifications e substitua os espaços reservados por:

  • O SID de serviço Verify criado anteriormente
  • Seu número do WhatsApp para testes
  • O SID da conta da Twilio e o token de autenticação (localizados na página principal do Console)

Verifique seu telefone. Você deve ter uma mensagem do WhatsApp com um código de verificação. Em seguida, você pode validar o código com o endpoint VerificationCheck ou enviar o código por outro canal, como SMS, RCS ou voz.

Como detectar se o WhatsApp está instalado em um dispositivo

Uma forma de melhorar a experiência do usuário é utilizar o WhatsApp como padrão em vez de SMS quando ele estiver disponível. Você pode verificar se o app está instalado no mesmo dispositivo em que está sendo executado. Siga as instruções para iOS e Android para identificar se o app está instalado. Confira um exemplo de implementação para detectar o WhatsApp no Android:

Infelizmente, nem todos os usuários têm uma conta do WhatsApp. Embora seja possível detectar se o aplicativo WhatsApp está instalado em um dispositivo móvel, o WhatsApp não oferece uma API para verificar a existência de uma conta antes do envio da mensagem. Felizmente, o WhatsAppnão cobra por tentativas de envio de mensagens para contas inexistentes, enquanto o SMS gera cobrança da operadora por mensagens não entregues.

Implante rapidamente uma aplicação Twilio Verify

Para implantar um dashboard de verificação como referência, acesse o Code Exchange da Twilio para o projeto de verificação de senha de uso único (OTP) e cole o SID do serviço Verify. Em seguida, clique em "Deploy my application" (Implantar minha aplicação). Após alguns segundos, você verá um botão para iniciar a aplicação em tempo real. Clique nele para acessar sua nova aplicação Verify.

formulário de solicitação de senha de uso único (OTP)

Selecione o canal do WhatsApp, insira seu número de telefone e clique em Get a one-time passcode (Obter uma senha de uso único (OTP)) para testar.

exemplo de mensagem de verificação no whatsapp

Como usar OTPs do Verify em sua aplicação

Se você é como eu, gosta de adaptar códigos existentes às suas necessidades. Esta aplicação fornece os seguintes elementos básicos:

Use este exemplo como ponto de partida para enviar e validar verificações em sua própria aplicação para cadastro, login ou autenticação adicional, como no checkout.

O canal de e-mail exige mais configurações, porém todas as instruções estão descritas na documentação. Enquanto estiver testando, talvez seja interessante criar um dashboard de testes para não exceder os limites de taxa. Mal posso esperar para ver o que você vai criar e proteger!

# code samples in more languages: twilio.com/docs/verify/api/verification

curl -X POST "https://verify.twilio.com/v2/Services/$VERIFY_SERVICE_SID>>/Verifications" \
--data-urlencode "To=$YOUR_PHONE_NUMBER>>" \
--data-urlencode "Channel=whatsapp" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
fun PackageManager.isPackageInstalled(packageName: String): Boolean {
  return try {
    getPackageInfo(packageName, PackageManager.GET_ACTIVITIES)
    true
  } catch (e: NameNotFoundException) {
    false
  }
}

fun isWhatsAppInstalled : Boolean() {
    val whatsAppPackageName = "com.whatsapp"
    val whatsAppBusinessPackageName = "com.whatsapp.w4b"
    return getPackageManager().isPackageInstalled(whatsAppPackageName) || getPackageManager().isPackageInstalled(whatsAppBusinessPackageName)
}