1001Ferramentas
Validadores

Validador de Título de Eleitor

Valide títulos de eleitor pelo algoritmo oficial do TSE, sem enviar dados para servidores. Gratuito e sem cadastro.

Como funciona a validação do Título de Eleitor?

Os dígitos 11 e 12, que são os verificadores, é que o algoritmo TSE confere. O primeiro vem dos 8 dígitos sequenciais; o segundo, do código de estado junto com esse primeiro verificador. SP e MG seguem uma variação do cálculo.

Toda a conferência roda no próprio navegador.

Validação do título de eleitor: a estrutura 8 + UF + DV

O Título de Eleitor é o documento que autoriza um cidadão brasileiro a votar e é regulamentado pelo Código Eleitoral (Lei 4.737/1965). É emitido pelo TSE (Tribunal Superior Eleitoral) através dos 27 Três estaduais. Validar o título no cliente é uma operação determinística: os 12 dígitos contêm dois dígitos verificadores módulo 11 e um código de UF de 2 dígitos que delimita as combinações legais.

Esta página cobre lógica estrita de validação, a regra especial de SP/MG, a tabela de códigos UF, regex de pré-checagem, bibliotecas e padrões de integração. Para gerar títulos sintéticos para popular um banco, veja a ferramenta geradora correspondente.

Anatomia: 8 sequenciais + 2 UF + 2 DV

  • Dígitos 1 a 8: número sequencial atribuído pelo cartório eleitoral dentro da UF.
  • Dígitos 9 e 10: código da UF (estado de inscrição do eleitor).
  • Dígito 11: DV1, calculado a partir dos 8 primeiros dígitos.
  • Dígito 12: DV2, calculado a partir do código UF de 2 dígitos mais o DV1.

Algoritmo de DV1 e DV2

Os dois dígitos verificadores usam módulo 11 com uma regra especial para SP (UF=01) e MG (UF=02): quando o resto da divisão é 0, o dígito vira 1 em vez de 0. Demais estados mantêm o resto.

function validarTitulo(valor) {
  const d = String(valor).replace(/\D/g, '').padStart(12, '0');
  if (d.length !== 12 || /^(\d)\1+$/.test(d)) return false;
  const uf = d.slice(8, 10);
  if (uf < '01' || uf > '28') return false;
  const ufEspecial = uf === '01' || uf === '02';

  // DV1 dos 8 primeiros, pesos 2..9
  let soma = 0;
  for (let i = 0; i < 8; i++) soma += Number(d[i]) * (i + 2);
  let dv1 = soma % 11;
  if (dv1 === 10) dv1 = 0;
  else if (dv1 === 0 && ufEspecial) dv1 = 1;
  if (dv1 !== Number(d[10])) return false;

  // DV2 da UF + DV1, pesos 7,8,9
  const entradaDV2 = uf + String(dv1);
  let soma2 = 0;
  for (let i = 0; i < 3; i++) soma2 += Number(entradaDV2[i]) * (i + 7);
  let dv2 = soma2 % 11;
  if (dv2 === 10) dv2 = 0;
  else if (dv2 === 0 && ufEspecial) dv2 = 1;
  return dv2 === Number(d[11]);
}

Tabela de códigos UF (dígitos 9 e 10)

O TSE codifica a UF de inscrição em um código de 2 dígitos:

01 SP   02 MG   03 RJ   04 RS   05 BA   06 PR   07 CE
08 PE   09 SC   10 GO   11 MA   12 PB   13 PA   14 ES
15 PI   16 RN   17 AL   18 MT   19 MS   20 DF   21 SE
22 AM   23 RO   24 AC   25 AP   26 RR   27 TO   28 Exterior

O código 28 cobre eleitores inscritos no exterior via consulados brasileiros. Qualquer UF fora da faixa 01-28 é automaticamente inválida — um filtro sintático útil antes de chegar ao módulo 11.

A regra especial de SP e MG explicada

Quando SP e MG iniciaram a inscrição eletrônica nos anos 1970, o TSE adotou uma regra que evita DV=0 forçando-o a 1. A motivação era operacional: impressoras da época não distinguiam 0 e O, e os totens de validação confundiam. A regra permaneceu no algoritmo até hoje. Validadores que ignoram isso produzem falsos negativos em títulos perfeitamente legais de SP e MG.

Regex de pré-validação e máscara em formulário

// 12 dígitos, com separadores opcionais
const TITULO_RE = /^\d{4}\s?\d{4}\s?\d{4}$/;
const limpo = input.replace(/\D/g, '');
if (limpo.length < 10 || limpo.length > 12) return 'tamanho inválido';
const completo = limpo.padStart(12, '0');

O cartão físico mostra o número em três grupos de quatro dígitos separados por espaços. As máscaras de UI costumam seguir o mesmo agrupamento.

Bibliotecas: JavaScript, Python, PHP

  • brazilian-values (npm): isTituloEleitor(value).
  • validation-br (npm): isTituloEleitor() e fakeTituloEleitor().
  • validate-docbr (PyPI): TituloEleitoral().validate(num).
  • geekcom/validator-docs (Laravel): regra 'titulo_eleitor'.

e-Título: o título digital oficial

Desde 2017 o TSE emite o e-Título, app disponível para iOS e Android. Ele leva um QR Code que contém os 12 dígitos mais uma assinatura digital do TSE. Em campo, mesários escaneiam o QR Code e o app valida em tempo real contra o servidor TSE, sem o eleitor precisar decorar o número. A partir do ciclo eleitoral de 2024, o e-Título é a forma recomendada e a coleta biométrica é obrigatória para novas inscrições desde 2020.

Onde o título ainda importa em 2026

  • Votar em eleições federais, estaduais e municipais (obrigatório dos 18 aos 70 anos).
  • Licitações públicas (CGU e TCU exigem certidão de quitação eleitoral).
  • Concursos públicos e programas federais de bolsa.
  • Alguns bancos aceitam como documento complementar junto a RG e CPF.
  • Cadastros sociais (CadÚnico, Bolsa Família) aceitam como documento opcional.
  • Renovação de passaporte e emissão de CIN na PF.

Cancelamento: 3 turnos sem votar nem justificar

Pela Lei 13.165/2015, o eleitor que deixa de votar e não apresenta justificativa (pelo e-Título ou presencial no TRE) por três turnos consecutivos tem a inscrição cancelada automaticamente. O número não some — fica no banco do TSE — mas perde validade para qualquer uso oficial até o cidadão pedir regularização presencial no Cartório Eleitoral, pagando multas pendentes.

Validador de título de eleitor

O título de eleitor tem dígitos verificadores calculados pelo algoritmo do TSE. Refazer essa conta confirma que o número está bem formado. O validador roda o cálculo oficial e responde em seguida se o título é matematicamente válido.

Dá para usar na conferência de um cadastro, na validação de um formulário ou na limpeza de uma base que contenha esse documento. A verificação confere a estrutura e os dígitos, pegando erros de digitação, sem tocar na base do TSE, que não é pública.

Toda a validação acontece no navegador, sem mandar dados a servidores. É gratuita e privada, e nada do que você digita sai do dispositivo.

Perguntas frequentes

O título sempre tem 12 dígitos?
Sim, desde a unificação dos anos 1980. Cartões antigos de 10 dígitos devem ser preenchidos com zeros à esquerda para validação.
Por que alguns números de SP e MG terminam com DV=1 quando o algoritmo dá 0?
Pela regra especial: quando o resto do módulo 11 é 0 para UF=01 ou 02, o dígito vira 1.
O app e-Título substitui o cartão físico?
Sim, o TSE reconhece o e-Título como versão digital oficial e ele é aceito nas seções eleitorais.
Existe API pública do TSE?
Acesso público é muito limitado. Apenas o próprio cidadão, após login com CPF no gov.br, vê os dados completos da sua inscrição.
Uma pessoa pode ter mais de um título?
Não. Duplicidade é crime pelo artigo 350 do Código Eleitoral e o sistema biométrico do TSE desde 2020 detecta e cancela ativamente duplicidades.

Ferramentas Relacionadas