Validar telefone: E.164, tipo de linha e portabilidade
Equipe AltiviaCloud · 6 de setembro de 2026 · 3 min de leitura
Quatro formas de escrever o mesmo número viram quatro registros. Por que validar por comprimento quebra e por que o prefixo não diz a operadora.
Guardar telefone parece o campo mais simples do cadastro. É um dos que mais dá trabalho depois, porque quase todo sistema começa guardando o que a pessoa digitou.
(11) 99999-8888, 11999998888, +55 11 99999-8888 e 011 99999 8888 são o mesmo telefone e quatro registros diferentes no seu banco.
Guarde em formato internacional
O formato E.164 é a saída: sinal de mais, código do país, número, sem espaço nem pontuação. +5511999998888.
Três motivos práticos.
Comparação funciona. Duplicado deixa de existir, porque só há uma forma de escrever cada número.
Integração aceita. Praticamente todo serviço de SMS e de voz espera E.164. Se você guarda formatado, converte a cada envio — e converte errado eventualmente.
Cliente estrangeiro deixa de ser problema. Uma base que guarda 99999-8888 sem país funciona até o primeiro cliente de fora, e aí não há como saber para onde ligar.
Formate na hora de exibir. Nunca na hora de gravar.
O nono dígito, e por que a regra não é "onze dígitos"
No Brasil, celular tem nove dígitos depois do DDD e começa com 9. Fixo tem oito.
O erro comum é validar por comprimento total: "onze dígitos, é celular". Isso quebra em fixo com DDD, quebra em número internacional, e quebra em qualquer país com plano de numeração diferente.
O certo é conferir contra o plano de numeração do país informado. Cada país tem regras de DDD válido, comprimento por tipo de linha e prefixos existentes. Uma expressão regular escrita à mão cobre o Brasil de hoje e falha na primeira mudança.
Tipo de linha decide o seu fluxo
Saber que o número é válido não basta. Você precisa saber se ele recebe SMS.
Fixo não recebe. Se o seu cadastro confirma por SMS e a pessoa digitou o telefone de casa, ela fica travada numa tela esperando um código que nunca chega — e o seu suporte recebe o chamado.
Celular recebe.
Virtual ou VoIP costuma receber, e é onde mora uma decisão de produto: aceitar ou não. Rejeitar reduz cadastro descartável e barra gente legítima que usa número virtual por privacidade. Depende do que está em jogo no seu serviço.
Saber o tipo antes de disparar evita pagar por mensagem que não tinha como chegar, e evita a tela travada.
Portabilidade quebra a suposição de operadora
No Brasil o número anda com a pessoa entre operadoras. Isso significa que o prefixo não identifica a operadora.
Se o seu sistema decide rota, preço ou provedor pelo prefixo, ele decide errado para todo número portado — e são muitos. A consulta precisa ser à base de portabilidade, não a uma tabela de prefixos que alguém montou em 2019.
Onde validar
No formulário, enquanto a pessoa digita. É onde vale mais, porque ela ainda pode corrigir.
Dois cuidados: não trave o envio se a validação demorar — deixe passar e marque para revisar depois. E não seja agressivo demais na hora: validar a cada tecla enquanto o número está incompleto mostra erro para quem está fazendo tudo certo.
Na entrada da API e na importação de planilha, que é onde mora a sujeira grande.
Em lote, antes de campanha. Base parada envelhece: gente troca de número, linha é desativada.
O que a validação não faz
Ela confirma que o número existe e pode receber. Não confirma que a pessoa que digitou é dona dele.
Para isso só existe um caminho: mandar um código e pedir que ela devolva. A validação reduz o custo desse envio — ela não substitui.
E é aqui que os dois lados se encontram: validar antes evita disparar para número que não recebe, e o disparo em si é o que prova a posse. Se você precisa receber esses códigos de forma automatizada, para testar o seu próprio fluxo, é o caso de um número virtual.