1001Ferramentas
📮Validadores

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 -000 pode 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