Validador de CEP por Faixa
Identifica a região aproximada do Brasil a partir dos 2 primeiros dígitos do CEP (01-09 = SP capital, 20-28 = RJ, 60-63 = CE etc.).
O CEP legado de 5 digitos e a migracao de 1992 para 8 digitos
O CEP (Codigo de Enderecamento Postal) e o codigo postal brasileiro mantido pelos Correios. Criado em 1971 como codigo de 5 digitos cobrindo regioes amplas, foi redesenhado em 1992 para o formato moderno 8 digitos XXXXX-XXX, capaz de codificar a granularidade de logradouro nos grandes centros urbanos. Esta ferramenta e dedicada ao problema de diagnostico e conversao que ainda aparece em ERPs antigos, documentos escaneados e bases historicas: como tratar CEPs no formato antigo e como (ou se) elevar ao padrao atual.
A migracao nao foi simples padding. Os primeiros 5 digitos do formato novo nao coincidem com o codigo antigo em todos os casos: muitos centros municipais foram recodificados para liberar faixas para novos bairros, agencias e grandes usuarios. Os Correios publicaram uma tabela de equivalencia a epoca, mas hoje so esta disponivel no produto comercial DNE (Diretorio Nacional de Enderecos), nao nas consultas gratuitas do ViaCEP/BrasilAPI.
Regras de deteccao e validacao
Um validador legado robusto deve distinguir tres casos e aplicar regras distintas a cada um:
- Exatamente 5 digitos (
^\d{5}$): formato pre-1992. Valido apenas como referencia historica. - Exatamente 7 digitos: geralmente erro de digitacao ou zero a esquerda perdido em CEP de 8 digitos. A ferramenta sinaliza como provavelmente invalido e sugere prefixar com zero.
- Exatamente 8 digitos (
^\d{5}-?\d{3}$): padrao atual. Formato valido.
Para validacao puramente de formato (sem consulta DNE), esta regex basta: ^\d{5}-?\d{3}$. Para capturar o caso legado explicitamente: ^(\d{5})(-?\d{3})?$, onde o segundo grupo e opcional. Qualquer formulario web moderno que ainda aceite 5 digitos como valido e antipattern — os Correios nao entregam mais correspondencia chaveada apenas pelo codigo antigo.
Converter legado para atual: quando e ou nao possivel
A regra simplista de padding ("acrescentar 000 ao codigo de 5 digitos") so funciona em algumas cidades e somente quando o endereco e univoco no nivel do municipio. Em capitais e regioes metropolitanas, a conversao e um-para-muitos: um unico codigo de 5 digitos pode mapear para dezenas de CEPs de 8 digitos, um por rua ou quadra. Nao existe algoritmo que recupere a informacao perdida; voce precisa de:
- Consulta a tabela historica do DNE dos Correios (pago, sob contrato).
- O endereco original (rua, bairro, cidade) para re-geocodificar contra uma consulta CEP atual como ViaCEP.
- Para cidades pequenas que ainda usam um unico CEP de 8 digitos (chamado CEP geral, terminado em -000), o codigo legado de 5 digitos mais o sufixo padrao
-000pode aproximar o codigo moderno, mas nao e garantido.
Em suma: nunca assuma que 12345 equivale a 12345-000 em producao. Trate a conversao como problema de qualidade de dado, nao como transformacao de string.
Estrutura moderna do CEP e faixas especiais
O CEP de 8 digitos divide-se em 5 digitos de prefixo geografico + 3 digitos de sufixo de distribuicao. O proprio prefixo geografico codifica regiao, sub-regiao, setor, subsetor e divisao, em escala geografica decrescente da esquerda para a direita. O sufixo de 3 digitos identifica o bloco, predio ou grande usuario. Sufixos especiais que vale conhecer:
- -000: CEP geral da cidade (municipios pequenos).
- -899 a -900: faixa reservada para caixas postais e grandes usuarios.
- -970: tipicamente uma agencia dos Correios.
- -999: comunidade de caixa postal em cidades maiores.
Os prefixos regionais de 5 digitos hoje ainda ecoam a divisao de 1971: 0xxxx Grande Sao Paulo, 1xxxx interior de SP, 2xxxx RJ + ES, 3xxxx MG, 4xxxx BA + SE, 5xxxx PE + AL + PB + RN, 6xxxx CE + PI + MA + Norte, 7xxxx DF + Centro-Oeste, 8xxxx PR + SC, 9xxxx RS.
Casos de uso praticos para um validador legado
Onde esta ferramenta realmente ajuda em projetos reais de software brasileiro:
- Migracao de ERP: extrair enderecos de sistemas anteriores a 1992 (mainframes COBOL ainda em uso em alguns bancos e concessionarias).
- Parsing de documentos historicos: OCR de contratos escaneados, registros publicos, escrituras antigas que usam o CEP legado.
- Genealogia e pesquisa academica: cruzar CEPs antigos com dados atuais do IBGE.
- Auditoria de qualidade de dados: identificar campos que ainda contem 5 ou 7 digitos em bases modernas — geralmente sinal de bug de importacao.
- Suporte ao cliente: explicar a um usuario por que o CEP digitado nao localiza no ViaCEP.
Para desenvolvimento novo, sempre valide contra o padrao de 8 digitos. ViaCEP (viacep.com.br/ws/{CEP}/json/) e BrasilAPI (brasilapi.com.br/api/cep/v2/{CEP}) sao APIs gratuitas e publicas que resolvem codigos de 8 digitos para enderecos completos. Ambas sincronizam mensalmente com o DNE dos Correios e tem rate limit em torno de 10.000 requisicoes por dia no tier gratuito.
FAQ
Os Correios ainda aceitam CEP de 5 digitos no envelope?
Nao. Desde o inicio dos anos 1990 as maquinas de triagem oficiais exigem o formato completo de 8 digitos. Envelopes com apenas 5 digitos sao processados manualmente e frequentemente atrasam ou retornam. Servicos de postagem (NF-e, e-commerce) rejeitam CEPs de 5 digitos no nivel da API.
Posso simplesmente acrescentar tres zeros para converter um CEP de 5 digitos?
Apenas como fallback de ultima opcao para cidades muito pequenas que tem CEP geral terminado em -000. Em capitais e regioes metropolitanas, o sufixo codifica rua ou quadra especifica e nao pode ser inferido. O caminho seguro e re-geocodificar usando o nome do logradouro original via ViaCEP.
O formato de 8 digitos e obrigatorio hoje?
Sim. Todo layout que inclui campo CEP (NF-e, eSocial, ERP, checkout de e-commerce) espera 8 digitos. Muitos ERPs aplicam a mascara XXXXX-XXX automaticamente e rejeitam tamanho menor no nivel de entrada.
O que e o DNE e como acesso?
DNE (Diretorio Nacional de Enderecos) e a base oficial e completa de enderecos brasileiros mantida pelos Correios. Inclui as tabelas historicas de conversao. E vendido por assinatura a empresas de logistica, bancos e plataformas de e-commerce. Projetos menores usam os wrappers gratuitos ViaCEP/BrasilAPI, que cobrem todos os CEPs atuais de 8 digitos mas nao os dados completos de conversao legada.
Por que minha base legada mostra CEPs de 7 digitos?
Quase sempre bug de importacao: uma coluna tipada como inteiro descartou o zero a esquerda de um CEP de 8 digitos. A correcao e left-pad com zeros ate 8 digitos e revalidar. Esta ferramenta sinaliza entradas de 7 digitos e sugere a correcao com prefixo de zero.
Ferramentas Relacionadas
Validador de CPF
Valide CPFs instantaneamente pelo algoritmo oficial da Receita Federal, sem enviar dados para nenhum servidor. Gratuito e sem cadastro.
Validador de CPF em Lote
Valida uma lista de CPFs (um por linha) e mostra quais são válidos e quais são inválidos. Sem envio para servidores.
Validador de CNPJ em Lote
Valida uma lista de CNPJs (um por linha) e mostra resumo: válidos, inválidos e total. Sem envio para servidores.