SMS OTP/2FA para SaaS: Login Seguro com Código Único (Configuração para PME)
Um código de 6 dígitos enviado por SMS — simples, mas eficaz. A autenticação de dois fatores via SMS é o standard mais amplamente utilizado para logins seguros e autorização de pagamentos. Este artigo mostra como as PME configuram 2FA por SMS, quando o WhatsApp é mais eficiente e como funciona o failover automático.
TL;DR
O SMS OTP é o standard mais amplamente utilizado para a autenticação de dois fatores: taxa de entrega de 97-99% nas rotas premium, latência de 5-15 segundos, compatível com qualquer telemóvel. O WhatsApp Authentication pode ser mais barato a partir de cerca de 500 logins por dia, mas requer que o utilizador tenha o WhatsApp instalado. Uma lógica de failover combina o melhor dos dois canais. Este artigo mostra como implementar o 2FA por SMS de forma tecnicamente correta — com base legal (Art. 6.º n.º 1 al. b) RGPD) e boas práticas de segurança.
Como funciona o SMS OTP
Um OTP (One-Time Password, palavra-passe de uso único) é um código temporário que é válido apenas por um breve período e para uma única ação. O processo no login:
- O utilizador introduz nome de utilizador e palavra-passe.
- O sistema gera um código OTP de 6 dígitos com validade de 5-10 minutos.
- O código é enviado por SMS para o número de telemóvel registado do utilizador.
- O utilizador introduz o código — apenas então o login é bem-sucedido.
Este segundo fator protege contra o roubo de palavras-passe: mesmo que alguém tenha a palavra-passe, não consegue fazer login sem o código do telemóvel. Por isso a autenticação de dois fatores é recomendada para todas as áreas de cliente, portais de pagamento e ferramentas de gestão.
Para as empresas, isso significa: um SMS A2P automatizado é enviado para cada tentativa de login — transacional, sem opt-in de marketing necessário, e com base legal clara através do Art. 6.º n.º 1 al. b) RGPD (execução do contrato).
Taxa de entrega e latência: o que esperar
O 2FA por SMS só funciona se o código chegar rápida e previsivelmente. A SendSeven envia mensagens OTP através de rotas premium da UE, com os seguintes valores típicos:
- Taxa de entrega: 97-99% nas rotas premium da UE
- Latência: 5-15 segundos para a maioria dos destinatários na Europa
- Pico de entrega: menos de 30 segundos em mais de 95% dos casos
Um código que só chega após 3 minutos torna o 2FA inutilizável na prática. É por isso que a qualidade das rotas é um critério decisivo na escolha do fornecedor. As rotas premium encaminham diretamente através dos operadores de rede, sem intermediários adicionais que possam causar atrasos.
Fatores que podem influenciar a entrega:
- Congestionamento de rede em horários de pico
- Cobertura do operador na região do destinatário
- Roaming internacional (para utilizadores no estrangeiro)
- Número de telemóvel incompleto ou desatualizado na conta do utilizador
Boas práticas de segurança para códigos OTP
Um SMS OTP é tão seguro quanto a sua implementação. As boas práticas técnicas mais importantes:
- Comprimento do código: 6 dígitos. 4 dígitos são demasiado fáceis de adivinhar por força bruta; 8 dígitos prejudicam a usabilidade. 6 dígitos é o equilíbrio adequado.
- Validade: 5-10 minutos. Curto o suficiente para reduzir a janela de ataque, longo o suficiente para que o utilizador consiga introduzir o código.
- Bloquear após 3-5 tentativas falhadas. Sem limite de tentativas, os codes de 6 dígitos podem ser adivinhados em poucos minutos.
- Cada código válido apenas uma vez. Após utilização bem-sucedida, o código é imediatamente invalidado.
- Sem link de login no SMS OTP. «Clique aqui para fazer login» em mensagens OTP é um vetor de phishing clássico. O SMS deve conter apenas o código, nunca um link de autenticação.
- Nenhum dado sensível no texto SMS. O texto da mensagem não deve conter nome, endereço de email ou outros dados — apenas o código e o nome da empresa.
Base legal: RGPD e OTP transacional
Os SMS OTP são mensagens transacionais que servem a execução de um contrato. Por isso não precisam de um opt-in de marketing separado. A base legal ao abrigo do RGPD é o Art. 6.º n.º 1 al. b) RGPD (execução do contrato ou de diligências pré-contratuais).
Isso significa: quando um utilizador cria uma conta num portal SaaS e confirma o seu número de telemóvel para o 2FA, o envio de OTP para logins é permitido, pois faz parte do serviço contratado. Um consentimento de marketing separado não é necessário para isto.
O que é necessário:
- Informação clara na política de privacidade sobre o envio de SMS para fins de 2FA
- Tratamento dos dados em conformidade com o RGPD (servidor na UE, contrato de processamento de dados)
- Não usar o número de telemóvel do utilizador para fins de marketing sem consentimento separado
A SendSeven processa dados em servidores na UE e disponibiliza um contrato de processamento de dados standard. A autoridade de proteção de dados em Portugal é a CNPD (Comissão Nacional de Proteção de Dados).
Custos: SMS vs. WhatsApp Authentication
Para volumes elevados, a comparação de custos entre SMS OTP e WhatsApp Authentication Templates torna-se relevante. O WhatsApp disponibiliza um tipo de template especialmente otimizado para autenticação, com custos de mensagem mais baixos do que os templates de marketing.
Estrutura de custos típica (valores orientativos para a Europa):
| Canal | Custo por mensagem (orientativo) | Nota |
|---|---|---|
| SMS OTP | ca. 0,05-0,15 € | Consoante país de destino e rota |
| WhatsApp Authentication | ca. 0,05-0,07 € | Apenas para utilizadores com WhatsApp instalado |
O WhatsApp Authentication pode ser mais económico por mensagem. A desvantagem: não chega a utilizadores sem WhatsApp. O SMS funciona em qualquer telemóvel. A partir de cerca de 500 logins por dia, uma mudança para WhatsApp como canal primário começa a compensar — com SMS como fallback para utilizadores sem WhatsApp. Esta estratégia híbrida está explicada na secção seguinte.
Failover: quando o SMS falha, o WhatsApp assume
Uma arquitetura de autenticação robusta não depende de um único canal. O padrão de failover recomendado para OTP:
- Canal primário: WhatsApp (para utilizadores com WhatsApp instalado, como canal mais económico)
- Fallback para SMS se a entrega via WhatsApp falhar
Como funciona tecnicamente:
- O backend envia o OTP via WhatsApp Authentication Template através da API da SendSeven.
- A SendSeven devolve um webhook de estado de entrega.
- Se o estado for «entregue»: processo concluído.
- Se o estado for «falhou» ou se não houver resposta em 30 segundos: o backend envia o OTP por SMS como fallback.
Esta lógica é implementada do lado do backend — a SendSeven disponibiliza os webhooks de estado para ambos os canais. A taxa de entrega combinada com esta estratégia aproxima-se de praticamente 100% para utilizadores europeus.
Nota importante sobre os triggers: a lógica de failover é controlada pelo seu backend. A SendSeven não tem um trigger de inbound-webhook automático que reconheça falhas e reencaminhe automaticamente. O seu sistema escuta os webhooks de estado da SendSeven e decide quando enviar o SMS de fallback.
Implementação técnica com a API da SendSeven
O envio de SMS OTP via SendSeven é feito através da API REST. O fluxo básico para o 2FA por SMS:
POST /api/v1/messages
{
"channel": "sms",
"to": "+351912345678",
"text": "O seu código SendSeven: 847291. Válido por 5 minutos.",
"type": "transactional"
}
O que é importante na implementação:
- Tipo «transactional». Marca o SMS como mensagem transacional, não como campanha de marketing. Isto influencia o encaminhamento e a prioridade.
- Texto da mensagem. Manter curto: nome da empresa, código, validade. Sem links, sem dados adicionais.
- Webhook de estado. Registar um webhook endpoint para receber confirmações de entrega. Necessário para a lógica de failover.
- Rate limiting do lado do servidor. Limitar o número de OTP enviados por número de telemóvel por unidade de tempo para prevenir abusos.
A documentação técnica e exemplos de código estão disponíveis na documentação da API da SendSeven.
Perguntas frequentes
Preciso de opt-in de marketing para o SMS OTP?
Não. Os SMS OTP são mensagens transacionais ligadas à execução do contrato (Art. 6.º n.º 1 al. b) RGPD). Quando um utilizador confirma o seu número de telemóvel para o 2FA, isso é suficiente como base legal. Não é necessário um consentimento de marketing separado.
Qual é a taxa de entrega do SMS OTP?
Nas rotas premium da UE, a taxa de entrega de SMS OTP situa-se em 97-99%. A latência típica é de 5-15 segundos. Com uma estratégia de failover que usa SMS e WhatsApp, a taxa de entrega combinada aproxima-se de praticamente 100%.
Por que é que o WhatsApp Authentication é mais barato do que o SMS?
O WhatsApp disponibiliza authentication templates com taxas de mensagem mais baixas do que os templates de marketing. Para volumes elevados a partir de cerca de 500 logins por dia, a troca para WhatsApp como canal primário com SMS como fallback pode reduzir os custos em cerca de 30-45%.
Como funciona o failover de OTP entre WhatsApp e SMS?
O backend envia o OTP primeiramente via WhatsApp. Se o webhook de estado da SendSeven devolver «falhou» ou se não houver resposta em 30 segundos, o backend envia o OTP de novo por SMS. A lógica de failover corre do lado do backend, a SendSeven disponibiliza os webhooks de estado necessários.
Quantos dígitos deve ter um código OTP para ser seguro?
6 dígitos é o comprimento recomendado: suficientemente longo para ser seguro contra ataques de força bruta, suficientemente curto para ser introduzido rapidamente pelo utilizador. Adicionalmente, o número de tentativas deve ser limitado a 3-5 antes de bloquear a sessão.
Por quanto tempo deve ser válido um código OTP?
Recomenda-se uma validade de 5-10 minutos. Mais curto cria pressão desnecessária para utilizadores mais lentos; mais longo alarga a janela de ataque se o código for intercetado.
Os dados de telemóvel dos utilizadores estão seguros com a SendSeven?
Sim. A SendSeven processa dados em servidores na UE, disponibiliza um contrato de processamento de dados (DPA) e opera em conformidade com o RGPD. A autoridade de proteção de dados em Portugal é a CNPD.
Posso usar o mesmo número de telemóvel para 2FA e SMS Marketing?
Tecnicamente sim, mas juridicamente requer bases legais separadas. O número de telemóvel confirmar para 2FA não pode ser utilizado para mensagens de marketing sem consentimento explícito separado. Manter estritamente separados os opt-ins de marketing dos registos 2FA.
Conclusão
O SMS OTP é o standard mais amplamente comprovado para a autenticação de dois fatores. Com 97-99% de taxa de entrega, latência de 5-15 segundos e base legal clara (Art. 6.º n.º 1 al. b) RGPD), é a solução certa para logins seguros em SaaS, portais e aplicações.
Para volumes elevados, uma combinação de WhatsApp Authentication como canal primário e SMS como fallback oferece o melhor equilíbrio entre custo e alcance. A lógica de failover é controlada do lado do backend usando os webhooks de estado da SendSeven — nenhuma magia de encaminhamento automático, mas controlo total.
Artigos relacionados: