← Blog

·

WhatsApp ou SMS para códigos e avisos: entrega, custo e conversão

Atualizado em 29/10/2026

Para códigos de verificação e avisos no Brasil, o WhatsApp costuma ser a primeira escolha, e o SMS, o plano B. O WhatsApp entrega mensagens com botões, informa quando a mensagem foi entregue e lida, e tem tarifa oficial publicada pela Meta. O SMS alcança qualquer celular, inclusive quem não tem WhatsApp. A estratégia que funciona melhor é combinada: tente o WhatsApp e, se ele não entregar em alguns segundos, mande SMS.

Este artigo compara os dois canais em alcance, recursos, custo e segurança, e mostra como montar o fallback com código.

Comparação rápida

CritérioWhatsApp (API oficial)SMS
AlcanceSó quem tem conta no WhatsAppQualquer celular com linha ativa
Exige internetSimNão
Status de entregasent, delivered, read, failed via webhookRelatório de entrega da operadora, quando disponível
Confirmação de leituraSim, quando disponívelNão
FormatoTexto, mídia, botões, listasTexto curto, dividido em segmentos
Identificação do remetenteNome de exibição aprovado pela MetaNúmero curto ou longo, conforme a operadora
PreçoTabela oficial da Meta por categoria e paísVaria por fornecedor e operadora
Iniciar contatoTemplate aprovadoTexto livre (sujeito às regras do fornecedor)
Fraude típicaAbuso de formulário (pedidos em massa)SMS pumping

Alcance: quem recebe cada canal

O SMS chega em qualquer celular com linha ativa e sinal, sem depender de aplicativo ou dados móveis. Essa é a vantagem que nenhum app supera.

O WhatsApp só entrega para números com conta ativa no WhatsApp. Se o número não tem WhatsApp, a API aceita a chamada, mas o webhook de status traz failed, geralmente com o código 131026, que a Meta descreve como “Unable to deliver message”. A explicação completa do erro está em erro 131026 na API do WhatsApp.

Por isso, para OTP de cadastro, que precisa funcionar para 100% dos usuários, o SMS continua importante como fallback.

Quer testar enquanto lê? Crie sua conta na Vectalk e envie a primeira mensagem pela API oficial. Criar conta grátis →

Recursos: o que o WhatsApp faz que o SMS não faz

Templates de autenticação

A Meta tem uma categoria própria de template para códigos de verificação. Pela documentação, esse template tem texto fixo, definido pela Meta, e um único botão, que pode ser:

  • copiar código: o usuário toca e o código vai para a área de transferência;
  • preenchimento com um toque (one-tap): no Android, o botão abre o seu app e entrega o código;
  • zero-tap: só no Android, sem botão; o app recebe o código automaticamente.

O template pode ter um aviso de segurança (“não compartilhe este código”) e um aviso de validade de 1 a 90 minutos. A Meta também envia códigos de autenticação apenas para o dispositivo principal do usuário, não para aparelhos vinculados. O passo a passo de criação está em OTP pelo WhatsApp com template de autenticação.

Envio de um código com botão de copiar:

{
  "messaging_product": "whatsapp",
  "to": "5511999999999",
  "type": "template",
  "template": {
    "name": "codigo_verificacao",
    "language": { "code": "pt_BR" },
    "components": [
      {
        "type": "body",
        "parameters": [{ "type": "text", "text": "482913" }]
      },
      {
        "type": "button",
        "sub_type": "url",
        "index": "0",
        "parameters": [{ "type": "text", "text": "482913" }]
      }
    ]
  }
}

Avisos com ação

Para notificações (pedido enviado, consulta amanhã, fatura disponível), o WhatsApp aceita imagem ou documento no cabeçalho e botões de resposta ou de link. O cliente confirma a consulta com um toque, e a resposta chega no seu webhook. No SMS, a mesma ação depende de o cliente abrir um link ou responder um texto.

Status de entrega e leitura

Cada mensagem pela API gera eventos no webhook. Isso permite medir entrega e leitura por template, e disparar o fallback quando a entrega não acontece. Veja status de mensagem via webhook.

Custo

WhatsApp

A Meta cobra por mensagem entregue, com tarifa definida por categoria e país. Para destinatários no Brasil, desde 1º/10/2026:

CategoriaUso típicoTarifa Meta
AutenticaçãoCódigo de verificação, loginR$ 0,0350
UtilidadePedido, entrega, lembrete de consulta, faturaR$ 0,0350
MarketingOferta, novidadeR$ 0,3217

Alguns pontos práticos:

Os detalhes de cobrança no Brasil estão em quanto custa a API do WhatsApp no Brasil.

SMS

O preço do SMS depende do fornecedor, do volume, do tipo de rota e da operadora de destino. Não existe uma tabela pública única como a da Meta. Para comparar, peça a cada fornecedor o preço por segmento entregue para o Brasil e pergunte se a cobrança é por envio ou por entrega.

Lembre que uma mensagem SMS longa é dividida em segmentos: o padrão GSM-7 comporta 160 caracteres por mensagem simples; com caracteres fora do alfabeto GSM-7 (como ã, õ, á, ê e emojis), o texto passa a usar codificação Unicode e o limite cai para 70 caracteres. Em português, um aviso com acento pode virar dois ou três segmentos cobrados.

Fraude: SMS pumping

SMS pumping (também chamado de tráfego artificialmente inflado) é uma fraude em que robôs usam o seu formulário de cadastro ou de login para pedir códigos para faixas de números controladas por quem lucra com a terminação das mensagens. Você paga cada SMS, e ninguém real recebe. O Twilio, por exemplo, documenta esse ataque e oferece ferramentas próprias para bloqueá-lo.

No WhatsApp, a mensagem não passa pela cobrança de terminação das operadoras e só é cobrada quando entregue a uma conta do WhatsApp, o que tira o incentivo financeiro desse tipo de fraude. Isso não elimina abuso: robôs ainda podem pedir códigos em massa para números válidos. As defesas valem para os dois canais:

  • limite de pedidos por número, por IP e por dispositivo;
  • CAPTCHA ou verificação invisível antes de enviar o código;
  • bloqueio de prefixos de países onde você não atua;
  • alerta quando a taxa de conversão do código (pedidos x validações) cai de repente.

Estratégia combinada: WhatsApp primeiro, SMS de fallback

O fluxo mais comum para OTP:

  1. O usuário informa o número.
  2. Seu sistema envia o template de autenticação pelo WhatsApp e guarda o ID da mensagem (wamid).
  3. Se o webhook trouxer delivered em poucos segundos, aguarde o código.
  4. Se trouxer failed (por exemplo, 131026) ou nada chegar dentro do prazo, envie o mesmo código por SMS.
  5. Mostre na tela por onde o código foi enviado e ofereça “reenviar por SMS”.

Exemplo em Node.js:

const VECTALK = 'https://apis.vectalk.com.br/api/messages';
const PRAZO_MS = 8000;

async function enviarOtp(numero, codigo, { aguardarStatus, enviarSms }) {
  const r = await fetch(VECTALK, {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.VECTALK_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      messaging_product: 'whatsapp',
      to: numero,
      type: 'template',
      template: {
        name: 'codigo_verificacao',
        language: { code: 'pt_BR' },
        components: [
          { type: 'body', parameters: [{ type: 'text', text: codigo }] },
          { type: 'button', sub_type: 'url', index: '0', parameters: [{ type: 'text', text: codigo }] },
        ],
      },
    }),
  });

  if (r.ok) {
    const { messages } = await r.json();
    // aguardarStatus resolve quando o webhook trouxer delivered/failed para esse wamid
    const status = await aguardarStatus(messages[0].id, PRAZO_MS);
    if (status === 'delivered' || status === 'read') return 'whatsapp';
  }

  await enviarSms(numero, `Seu código: ${codigo}`);
  return 'sms';
}

A função aguardarStatus lê os eventos que o seu webhook grava (por exemplo, numa fila ou no Redis) e devolve o primeiro status do wamid dentro do prazo. Ajuste o prazo medindo o tempo real até o delivered nos seus usuários.

Para avisos que não são urgentes, como lembrete de consulta para amanhã, o prazo pode ser de minutos, e o SMS só sai para quem não recebeu no WhatsApp.

E o RCS?

O RCS é a evolução do SMS, com recursos parecidos com os do WhatsApp dentro do app de mensagens do celular. Ele tem disponibilidade e regras próprias. A comparação está em RCS x WhatsApp.

Como fazer isso com a Vectalk

A Vectalk é um proxy da WhatsApp Cloud API oficial. Você cria o template de autenticação ou de utilidade no painel (há uma Biblioteca de Modelos para partir de exemplos), envia pelo endpoint POST https://apis.vectalk.com.br/api/messages com o payload da Meta e recebe os status no seu webhook, no formato da documentação da Meta. A cobrança é por saldo pré-pago: cada mensagem entregue desconta do saldo, e você não cadastra cartão na Meta.

A Vectalk não envia SMS. O fallback por SMS fica com o fornecedor de SMS que você já usa, acionado pelo seu sistema quando o status do WhatsApp não chega. Veja o guia da API oficial do WhatsApp, a documentação ou crie sua conta.

Perguntas frequentes

WhatsApp ou SMS: qual é mais barato?

Depende do fornecedor de SMS e do tamanho da mensagem. No WhatsApp, a tarifa da Meta para autenticação e utilidade no Brasil é de R$ 0,0350 por mensagem entregue desde 1º/10/2026. Compare com o preço por segmento entregue que o seu fornecedor de SMS cobra.

O WhatsApp cobra quando o número não tem WhatsApp?

Não. A Meta cobra só mensagens entregues. Se o número não tem WhatsApp, o status volta como failed, sem cobrança da Meta.

Posso mandar código de verificação em template de utilidade?

Não. Códigos de verificação têm categoria própria, a de autenticação, com texto fixo definido pela Meta. Usar outra categoria para OTP leva à reprovação ou reclassificação do template.

Quanto tempo esperar antes de mandar o SMS?

Não há número oficial. Meça o tempo até o delivered nos seus usuários e escolha um prazo que cubra a maior parte deles, oferecendo sempre o botão “reenviar por SMS”.

O WhatsApp acaba com o SMS pumping?

Ele tira o incentivo financeiro dessa fraude, porque a mensagem não gera receita de terminação para operadoras. Mas robôs ainda podem abusar do formulário, então mantenha limites por número e por IP.


Fontes oficiais consultadas em 29/10/2026: templates de autenticação, códigos de erro da Cloud API, preços da Cloud API, Twilio: proteção contra SMS pumping, documentação da Vectalk.

Coloque o WhatsApp oficial da sua empresa para funcionar

Crie sua conta, conecte seu número à API oficial (dá para manter o app com coexistência) e comece a atender e enviar mensagens.