Ir para o conteúdo
OmniChannels.ai

OTP por WhatsApp vs OTP por SMS: custo, entrega e fallback

OTP por WhatsApp vs OTP por SMS: modelo de custo, entrega, experiência do usuário, templates de autenticação, fallback para SMS e controles de fraude.

Atualizado em 10 min de leitura

Por OmniChannels.ai Editorial Team · Revisado por BroadNet Messaging Solutions Team

WhatsApp

Resposta curta

Use OTP por WhatsApp quando seus usuários estão ativos no WhatsApp e você quer um template de autenticação com a experiência de copiar código, um toque ou zero toque; use OTP por SMS quando precisar alcançar qualquer telefone sem app nem dados de internet. A maioria dos sistemas em produção envia o OTP primeiro pelo WhatsApp e recorre ao SMS após uma curta espera. Os custos variam por país e pelo preço por mensagem, então simule os dois com os seus próprios volumes.

Nesta página
  1. Qual é a diferença entre OTP por WhatsApp e OTP por SMS?
  2. Como o modelo de custo difere?
  3. Qual oferece melhor entrega e experiência do usuário?
  4. Como crio um template de autenticação pela API?
  5. Como envio o código em cada canal?
  6. Como monto a entrega que começa pelo WhatsApp com fallback por SMS?
  7. Como fraude e abuso diferem?
  8. Qual devo escolher?
  9. Exemplo prático: um app estilo transporte por aplicativo no Golfo
  10. Quais são os erros comuns?
  11. Como a OmniChannels.ai ajuda

Pontos principais

  • O OTP por WhatsApp usa um template de autenticação aprovado, cobrado pela Meta por mensagem entregue; o OTP por SMS é cobrado por segmento, por rota e destino, então compare por país, não de forma global.
  • O SMS alcança qualquer aparelho com sinal, enquanto o WhatsApp exige que o usuário tenha WhatsApp e conexão de dados.
  • Os templates de autenticação oferecem entrega por copiar código, um toque e zero toque; a API expõe isso como deliveryMode com COPY_CODE, ONE_TAP ou ZERO_TAP.
  • Um fluxo que começa pelo WhatsApp com fallback por SMS equilibra custo e alcance, mas o fallback precisa ter um teto para não dobrar as mensagens nem facilitar abusos.
  • Os dois canais são alvos de fraude de inflação de tráfego, então limite a taxa por número e por IP e valide os números antes de enviar.

Este guia é para equipes de produto e engenharia que estão escolhendo como entregar senhas de uso único (OTPs): no WhatsApp, por SMS ou pelos dois. Ele compara modelo de custo, alcance, experiência do usuário e exposição a fraudes, explica os templates de autenticação e mostra como montar um fluxo que começa pelo WhatsApp com fallback por SMS. Para o panorama de segurança mais amplo, veja nosso guia de mensagens de autenticação por OTP.

Qual é a diferença entre OTP por WhatsApp e OTP por SMS?

O OTP por SMS envia o código como mensagem de texto pela rede móvel para qualquer número de telefone. O OTP por WhatsApp o envia como uma mensagem de template de autenticação pela internet para a conta de WhatsApp do usuário. Ambos entregam um código de curta duração que o usuário digita ou toca para confirmar um número.

OTP por WhatsApp OTP por SMS
Alcance Usuários com WhatsApp e conexão de dados Qualquer aparelho com sinal móvel
Tipo de mensagem Template de autenticação aprovado Mensagem de texto simples
Identidade do remetente Seu perfil comercial verificado no WhatsApp Sender ID ou número, sujeito às regras do país
Experiência do usuário Copiar código, preenchimento automático com um toque ou zero toque Digitação manual ou preenchimento automático do SO, onde houver suporte
Base de preço Por mensagem de autenticação entregue, por mercado (Meta) Por segmento, por rota e destino
Aprovação Template aprovado pela Meta Registro de sender ID em muitos países
Roaming e sem dados Precisa de internet Funciona sem dados
Status SUBMITTED, SENT, DELIVERED, READ, FAILED, REJECTED SUBMITTED, SENT, DELIVERED, FAILED, REJECTED

Nenhum dos canais é universalmente melhor. A escolha certa depende dos seus usuários, destinos e risco.

Como o modelo de custo difere?

Compare por país e por verificação bem-sucedida, não por mensagem. A Meta cobra por mensagem entregue na plataforma WhatsApp Business, por categoria de template e mercado do destinatário, e a autenticação é uma categoria própria. O custo do SMS depende do destino, da rota e do número de segmentos.

Pontos que mudam a conta:

  • Segmentos. Um SMS em árabe é Unicode, então um código com texto longo pode ocupar dois segmentos (70 caracteres para um, 67 por segmento quando dividido, conforme a 3GPP TS 23.040). Mantenha o texto do OTP curto.
  • Tentativas com falha. A Meta cobra mensagens entregues, enquanto a cobrança do SMS depende das condições da sua rota. Pergunte o que é cobrado em caso de falha.
  • Volume de fallback. Se 10 por cento dos envios por WhatsApp recorrem ao SMS, você paga pelos dois nesses casos.
  • Taxas do provedor. Seu provedor pode acrescentar taxas. O nosso WhatsApp é cobrado pela tarifa da Meta, sem margem adicional, e o SMS tem preço por destino.

Não digite preços em um business case a partir de um blog. Use o preço do WhatsApp por país, as páginas de preços de SMS, a calculadora de preços do WhatsApp e o estimador de custos e depois confirme na tabela de preços atual da Meta, já que ela muda as tarifas conforme um calendário.

Qual oferece melhor entrega e experiência do usuário?

O SMS alcança mais gente; o WhatsApp pode parecer mais rápido quando funciona. O SMS precisa apenas de sinal, enquanto o WhatsApp precisa do app, de uma conta nesse número e de dados. A entrega de ambos depende de operadoras, rotas e filtragem, e não fazemos nenhuma afirmação universal de velocidade.

A experiência do usuário no WhatsApp é melhor quando o template a suporta:

  • Copiar código: o usuário toca em um botão que copia o código.
  • Preenchimento automático com um toque: o código é preenchido no seu app após um toque.
  • Zero toque: o código é preenchido sem nenhum toque, onde houver suporte no dispositivo.

No SMS, o preenchimento automático depende do sistema operacional e do formato da mensagem, então teste em aparelhos reais. Para usuários de árabe, garanta que o código seja lido com clareza em texto da direita para a esquerda. Consulte a documentação de templates de autenticação da Meta para os requisitos atuais de dispositivo e de app antes de prometer zero toque no seu produto.

Como crio um template de autenticação pela API?

Crie-o com a categoria AUTHENTICATION e escolha o modo de entrega. Na nossa API, POST /whatsapp/template recebe campos multipart; estes são os que importam para OTP.

Campo Valor
name Nome do template em minúsculas, único na sua conta
languageType Código de idioma, por exemplo en_US ou ar
category AUTHENTICATION
templateType OTP
deliveryMode COPY_CODE, ONE_TAP ou ZERO_TAP
codeExpirationMinutes Validade exibida ao usuário (opcional)

Os novos templates começam como PENDING até a Meta aprová-los. Os templates de autenticação têm uma estrutura fixa definida pela Meta, então confirme os demais campos na referência da API de WhatsApp e com a nossa equipe para o seu primeiro template. A aprovação é decisão da Meta, e não prometemos prazo.

Como envio o código em cada canal?

No WhatsApp, envie o template aprovado com o código como variável do corpo. Para um botão de copiar código, passe o mesmo código em buttonsTemplateVariable.

curl -X POST https://api.broadnet.me/whatsapp/message/sendbulk \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -F batchId=0 \
  -F destinationNo=971500000000 \
  -F messageType=TEMPLATE \
  -F templateName=login_code \
  -F templateLanguage=en_US \
  -F bodyTemplateVariables=482913 \
  -F buttonsTemplateVariable=482913

Aqui login_code é um espaço reservado para o seu próprio template de autenticação aprovado. No SMS, chame POST /sms/sendSms com JSON:

curl -X POST https://api.broadnet.me/sms/sendSms \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "senderId": "OmniDemo",
    "destinationNumber": "971500000000",
    "message": "Your OmniDemo code is 482913",
    "messageType": "TEXT"
  }'

Note as diferenças: o WhatsApp usa multipart form data e devolve um batchId; o SMS usa JSON e devolve o ID da mensagem como texto simples. Os exemplos completos estão nos nossos guias de envio de WhatsApp por API e de envio de SMS por API.

Como monto a entrega que começa pelo WhatsApp com fallback por SMS?

Envie pelo WhatsApp, aguarde um status e depois envie uma única vez por SMS, se necessário. Nossos status são normalizados entre os canais, então o mesmo handler pode conduzir os dois.

  1. Gere o código no seu servidor, guarde apenas um hash com uma validade e limite as tentativas.
  2. Envie o template de WhatsApp e registre o batchId e o seu ID de operação.
  3. Aguarde o DELIVERED no webhook por uma janela que você escolher, conforme a paciência do usuário.
  4. Se houver FAILED, REJECTED ou nenhuma entrega a tempo, invalide o primeiro código, gere um novo e envie o SMS.
  5. Limite os fallbacks por número e por sessão.
  6. Registre qual canal teve sucesso, para ajustar a ordem por país.

Evite novas tentativas às cegas após timeouts, porque a API não tem chave de idempotência; verifique o status antes de reenviar, como descrito em Erros e limites. A ordem dos canais é configurada por caso de uso na OmniChannels.ai, e o desenho geral está na nossa estratégia de fallback entre canais. Para o tratamento de webhooks, veja o guia de webhooks. O OTP por voz é outra etapa de fallback; veja o guia de OTP por voz e fale com vendas sobre o preço da voz.

Como fraude e abuso diferem?

Os dois canais atraem abusos, então construa controles antes de lançar. O SMS tem um problema bem conhecido: atacantes disparam códigos para números dos quais lucram, inflando o seu tráfego. O WhatsApp não é imune, porque qualquer endpoint que envia uma mensagem sob demanda pode ser abusado para gerar custo ou assediar um número.

Controles que valem para ambos:

  • Limite a taxa de solicitações de código por número de telefone, por endereço IP, por dispositivo e por conta.
  • Valide os números antes de enviar; veja consulta HLR.
  • Limite o fallback para que um atacante não consiga disparar duas mensagens por solicitação.
  • Observe a conversão: muitas solicitações com poucas verificações concluídas são um sinal de alerta.
  • Bloqueie destinos que você não atende.
  • Validade curta e tentativas limitadas, sem reutilização de código.

Leia prevenção de fraude de SMS pumping e use a calculadora de fraude para estimar a exposição. Pela NIST SP 800-63B-4, os códigos fora de banda são um tipo de autenticador com limites conhecidos, então use métodos mais fortes para ações de alto risco, como pagamentos ou recuperação de conta.

Qual devo escolher?

Decida pelo público e pelo risco e depois teste.

Situação Abordagem sugerida
Usuários majoritariamente no WhatsApp, produto baseado em app WhatsApp primeiro, fallback por SMS
Público misto, muitos sem dados SMS primeiro ou só SMS
Transações de alto risco OTP mais um fator mais forte; não confie em nenhum dos dois sozinho
Usuários em roaming ou com dados ruins SMS
Necessidade de preenchimento automático com um toque no app Template de autenticação do WhatsApp
Controle rígido de custos em um mercado Compare os dois para esse país

Exemplo prático: um app estilo transporte por aplicativo no Golfo

O "Rafiq Rides" (sintético) verifica contas de novos motoristas e passageiros nos Emirados Árabes Unidos, na Arábia Saudita e no Egito.

  • Desenho: template de autenticação do WhatsApp com copiar código primeiro; fallback por SMS após uma curta espera sem status DELIVERED.
  • Controles: três solicitações de código por número por hora, um limite por IP, validação do número antes do primeiro envio e um fallback por sessão.
  • Medição: verificação concluída em um curto período, dividida por canal e país; parcela de falhas e de fallback.
  • Ajuste: em um país em que a entrega pelo WhatsApp é mais fraca, a equipe inverte a ordem para SMS primeiro.
  • Custos: simulados por país com as ferramentas de preços, revisados todo mês com os envios reais.

Quais são os erros comuns?

  • Comparar um único preço global, em vez de por país e por usuário verificado.
  • Enviar pelos dois canais ao mesmo tempo, o que dobra o custo e a superfície de abuso.
  • Botões de reenvio ilimitados.
  • Reutilizar o código antigo após o fallback.
  • Registrar códigos em logs ou enviá-los em URLs.
  • Nenhum registro de consentimento para o canal WhatsApp.
  • Prometer zero toque em todo lugar. Confira o suporte atual de dispositivos.
  • Limites: este guia descreve o mecanismo. Entrega, custo e suporte de dispositivos variam por país, rota e pelas regras da Meta, e devem ser testados nos seus mercados.

Como a OmniChannels.ai ajuda

A OmniChannels.ai cobre os dois canais em uma única API: templates de autenticação do WhatsApp (um toque, zero toque e copiar código) como Meta Business Solution Provider oficial e SMS A2P pela conectividade direta com operadoras da BroadNet, com fallback entre canais configurado por caso de uso e status normalizados em um único formato de webhook. Nossa equipe prepara com você os registros de sender ID e de WhatsApp; as aprovações ficam com a Meta e os reguladores. Veja a solução de OTP, a API de SMS para OTP e a documentação para desenvolvedores.

Perguntas frequentes

O OTP por WhatsApp é mais barato que o OTP por SMS?

Depende do país de destino e do seu provedor. A Meta cobra os templates de autenticação por mensagem entregue, por mercado do destinatário, enquanto o SMS é cobrado por segmento em uma rota. Em alguns mercados um é mais barato, em outros é o contrário. Não confie em uma afirmação geral: simule os dois com nossas ferramentas de preços e seus volumes reais.

O OTP por WhatsApp é mais seguro que o OTP por SMS?

Nenhum dos dois é um autenticador forte por si só. O OTP por WhatsApp evita a exposição da rede SMS a SIM swap para a mensagem em si, mas as contas ainda podem ser tomadas e os usuários podem ser induzidos por phishing a compartilhar um código. Ambos são códigos de uso único enviados a um canal. Use validade curta, tentativas limitadas e fatores mais fortes para ações de alto risco.

O que é um template de autenticação do WhatsApp?

É um template da categoria autenticação da Meta, usado apenas para senhas de uso único. A entrega pode ser por copiar código, preenchimento automático com um toque ou zero toque. Os templates precisam da aprovação da Meta e têm estrutura fixa. Na nossa API, você cria um com a categoria AUTHENTICATION e define deliveryMode como COPY_CODE, ONE_TAP ou ZERO_TAP.

Quando devo recorrer do WhatsApp ao SMS?

Quando a mensagem do WhatsApp falha, é rejeitada ou não chegou a um status de entregue dentro de uma curta espera que você define, por exemplo o tempo que um usuário aguardaria razoavelmente. Limite os fallbacks por número e por sessão, invalide o primeiro código ao enviar o segundo e registre qual canal teve sucesso.

Preciso de opt-in para mensagens de OTP?

Sim para o WhatsApp, já que a política da Meta exige que os usuários façam opt-in para receber mensagens de uma empresa. Em geral, o usuário informa o número e solicita o código, o que é uma ação clara, e seus termos e aviso de privacidade devem explicar o canal. As regras de SMS variam por país, então confira os requisitos de sender ID e de consentimento dos seus destinos.

O OTP pode ser enviado pelos dois canais ao mesmo tempo?

É possível, mas raramente sensato. Enviar o mesmo código duas vezes dobra o custo, confunde os usuários e amplia a superfície de abuso. Prefira a entrega sequencial: tente o canal preferido, aguarde um status e depois recorra ao outro uma vez. Escolha o canal pela preferência do usuário ou por dados do país, quando os tiver.

Fontes

  1. Pricing on the WhatsApp Business Platform — Meta for Developers
  2. WhatsApp Business Messaging Policy
  3. NIST SP 800-63B-4: Digital Identity Guidelines, Authentication and Authenticator Management
  4. 3GPP TS 23.040: Technical realization of the Short Message Service (SMS)