OTP via WhatsApp oficial: código de confirmação por API

Precisa confirmar o número do usuário no seu sistema? Envie um código de confirmação (OTP) pelo WhatsApp oficial com duas chamadas HTTP: uma para enviar o código e outra para verificar. Autenticação por Bearer API Secret, sem SDK, funciona com qualquer linguagem.

Resumo

  • O que é: API para enviar e verificar código OTP (senha de uso único) pelo WhatsApp oficial.
  • Como integrar: 2 chamadas HTTP — POST /api/otp/send e POST /api/otp/verify, autenticadas por Bearer API Secret.
  • Preço: R$ 0,03 por OTP enviado; a verificação é gratuita.
  • Validade: o código expira em 10 minutos e é de uso único.
  • Requisitos: qualquer linguagem, sem SDK. WhatsApp Business Platform oficial.

Por que OTP no WhatsApp oficial

O OTP (One-Time Password) é o código de uso único que confirma que o usuário realmente controla aquele número — usado em cadastro, login, recuperação de conta e confirmação de operações sensíveis.

Enviando pelo WhatsApp oficial (WhatsApp Business Platform, a partir de um número verificado) você tem melhor entregabilidade que SMS, menor custo e mais confiança para o usuário — sem automação não oficial que corre risco de bloqueio.

WhatsApp vs SMS vs E-mail para OTP

O canal de envio muda o custo, a entrega e a taxa de conversão do seu fluxo de verificação. Comparativo dos três canais mais usados:

CritérioWhatsApp oficialSMSE-mail
EntregabilidadeAltaMédiaBaixa (spam/promoções)
Taxa de leitura~98%~90%~20%
Custo por envioR$ 0,03R$ 0,08–0,15Baixo, mas cai em spam
Confiança do usuárioAlta (número verificado)MédiaBaixa
Copiar códigoBotão “Copiar código”ManualManual

Valores de custo de SMS são estimativas de mercado; o preço do WhatsApp oficial aqui é o praticado pela entrar.api.br (R$ 0,03 por OTP enviado).

Como funciona

A integração são dois endpoints, autenticados com o header Authorization: Bearer SEU_API_SECRET:

  1. Enviar POST /api/otp/send gera o código e o envia pelo WhatsApp, devolvendo um otpId.
  2. Verificar POST /api/otp/verify confere o otpId com o código digitado pelo usuário.

1. Enviar o OTP

Envie o telefone do usuário no formato internacional (E.164). A resposta traz o otpId que você guarda para verificar depois.

A resposta confirma na hora se o envio foi aceito. Você não precisa de webhook nem de polling: a confirmação de que a mensagem chegou é o próprio verify — se o usuário digita o código certo, é porque recebeu.

curl -X POST https://cpf.entrar.api.br/api/otp/send \
  -H "Authorization: Bearer SEU_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"telefone":"+5511999999999"}'

# → { "ok": true, "otpId": "...", "status": "pending" }

Como o usuário recebe no WhatsApp

Exemplo de código OTP recebido pelo usuário no WhatsApp oficial
Onde aparece “SEU APP” na mensagem, o usuário verá o nome do seu app — o mesmo que você cadastrou no painel. O exemplo acima é só demonstrativo.

2. Verificar o OTP

Envie o otpId e o codigo que o usuário digitou. Se conferir, a resposta traz verified: true.

curl -X POST https://cpf.entrar.api.br/api/otp/verify \
  -H "Authorization: Bearer SEU_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"otpId":"...","codigo":"123456"}'

# → { "ok": true, "verified": true }

Exemplos em Node.js, PHP e Python

O mesmo fluxo de envio (/api/otp/send) nas linguagens mais usadas. A verificação segue o mesmo padrão, trocando a URL e o corpo.

Node.js (fetch)

const res = await fetch("https://cpf.entrar.api.br/api/otp/send", {
  method: "POST",
  headers: {
    "Authorization": "Bearer SEU_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ telefone: "+5511999999999" }),
});
const data = await res.json(); // { ok: true, otpId: "...", status: "pending" }

PHP (cURL)

$ch = curl_init("https://cpf.entrar.api.br/api/otp/send");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer SEU_API_SECRET",
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode(["telefone" => "+5511999999999"]),
]);
$data = json_decode(curl_exec($ch), true); // ["ok" => true, "otpId" => "..."]

Python (requests)

import requests

res = requests.post(
    "https://cpf.entrar.api.br/api/otp/send",
    headers={"Authorization": "Bearer SEU_API_SECRET"},
    json={"telefone": "+5511999999999"},
)
data = res.json()  # { "ok": True, "otpId": "...", "status": "pending" }

Autenticação

Toda requisição precisa do header Authorization: Bearer SEU_API_SECRET. Você gera, revela e rotaciona o API Secret no painel, dentro do seu app. Mantenha o segredo apenas no back-end — nunca exponha em código de front-end.

Preço

R$ 0,03 por OTP enviado (chamada ao /api/otp/send). A verificação (/api/otp/verify) é gratuita — você paga apenas pelo envio. Créditos por PIX, sem mensalidade.

Segurança e boas práticas

  • Códigos de uso único, que expiram em 10 minutos.
  • Limite tentativas de verificação por otpId para evitar força bruta.
  • Aplique rate-limit no seu lado para não reenviar OTP em excesso ao mesmo número.
  • Guarde o API Secret só no servidor.

Confiabilidade e suporte

99,9%

Disponibilidade-alvo da API. Ver status ao vivo

24/7

Suporte por WhatsApp e e-mail, todos os dias.

Quem já usa a entrar.api.br

Empresas e instituições que usam a entrar.api.br em produção — de cadastro de vestibular a plataformas com alto volume de envios diários:

Perguntas frequentes

Quanto custa enviar um OTP pelo WhatsApp?

R$ 0,03 por OTP enviado (chamada ao endpoint /api/otp/send). A verificação (/api/otp/verify) é gratuita — você só paga pelo envio do código.

É o WhatsApp oficial?

Sim. Os códigos são enviados pela API oficial do WhatsApp (WhatsApp Business Platform), a partir de um número verificado. Não é automação de WhatsApp Web nem envio não oficial, o que garante melhor entregabilidade e evita bloqueios.

Como funciona a autenticação da API?

Toda requisição usa o header Authorization: Bearer SEU_API_SECRET. Você gera e gerencia o API Secret no painel, na seção de apps, onde também pode revelar e rotacionar o segredo.

Em quanto tempo o código expira?

O código OTP expira em 10 minutos e é de uso único. Após expirar ou ser verificado com sucesso, ele deixa de ser válido — basta chamar /api/otp/send novamente para gerar um novo.

Funciona com qualquer linguagem?

Sim. A integração é uma API HTTP REST com JSON, então funciona com qualquer stack (PHP, Node, Python, Java, .NET, Go, etc.) sem SDK específico. Basta fazer dois POST: um para enviar e outro para verificar.

WhatsApp ou SMS para OTP: qual é melhor?

Para a maioria dos casos no Brasil, o WhatsApp oficial supera o SMS: entregabilidade mais alta, taxa de leitura em torno de 98%, botão de copiar código e custo menor (R$ 0,03 por envio contra R$ 0,08 a R$ 0,15 do SMS). O SMS ainda é útil como fallback para quem não usa WhatsApp.

O envio de OTP por WhatsApp é seguro e compatível com a LGPD?

Sim. O código é de uso único, expira em 10 minutos e trafega por conexão criptografada do WhatsApp Business Platform. Você envia apenas o telefone do usuário para gerar o código, sem expor outros dados pessoais. Recomenda-se limitar tentativas de verificação e aplicar rate-limit no reenvio.

Aparece o nome do meu app na mensagem?

Sim. O remetente e o texto da mensagem exibem o nome do seu app, cadastrado no painel. No exemplo onde aparece 'SEU APP', o usuário final verá o nome real do seu aplicativo.

Posso reenviar o código se o usuário não receber?

Sim. Basta chamar /api/otp/send novamente para gerar e enviar um novo código. Cada envio custa R$ 0,03. Recomenda-se aplicar um intervalo mínimo entre reenvios para evitar abuso.

Preciso de webhook para saber se o OTP chegou?

Não. Para OTP, a própria verificação já é a confirmação de entrega: se o usuário digita o código correto em /api/otp/verify, é porque a mensagem chegou. A resposta de /api/otp/send confirma na hora se o envio foi aceito; a entrega no aparelho é assíncrona (como em qualquer canal). Ou seja, você não precisa de webhook nem de polling — o fluxo enviar → verificar → reenviar se necessário cobre o caso de uso.

Comece a enviar OTP por WhatsApp oficial no seu sistema.

Criar conta e obter API Secret