Gerador de número de título de eleitor para teste
Gere números de inscrição eleitoral fictícios, por estado, e confira se os dígitos verificadores de um número fecham a conta.
Para conferir o documento de verdade: Tribunal Superior Eleitoral (TSE) (abre em nova aba)
Número gerado
3661 2682 1325
CSV (Excel) abre com dois cliques no Excel em português (ponto e vírgula, acentos certos). CSV usa vírgula, para programas e scripts. SQL sai sempre sem máscara, para caber na coluna de tamanho fixo. Importe como texto, para não perder os zeros à esquerda.
Conferir os dígitos do número de título
Confere no seu navegador. Nada do que você digita ou cola é enviado.
Conferir em lote: cole uma coluna da planilha
CSV (Excel) abre com dois cliques no Excel em português (ponto e vírgula, acentos certos). CSV usa vírgula, para programas e scripts.
O número do título de eleitor tem 12 dígitos: oito sequenciais, dois do estado e dois dígitos verificadores, calculados por módulo 11. Aqui você gera de 1 a 10.000 números fictícios e confere a conta de um número. A página não consulta o cadastro eleitoral: situação do título, zona e seção só a Justiça Eleitoral (abre em nova aba) informa.
O que esta página confere e o que não confere
A ferramenta refaz a conta dos dois dígitos verificadores e confere se o código do estado existe. Se tudo bate, o número está bem formado.
Ela não diz se a inscrição existe, se o título está regular ou cancelado, nem onde a pessoa vota. Essas respostas dependem do cadastro eleitoral, que só a Justiça Eleitoral consulta.
Como usar
- Escolha o estado, ou deixe em "qualquer" para sortear.
- Informe a quantidade, de 1 a 10.000, e uma semente, se quiser repetir a lista.
- Escolha se o número sai junto (
102385010671) ou em grupos de quatro (1023 8501 0671). - Clique em Gerar e copie ou baixe em lista, CSV, CSV (Excel), JSON ou SQL.
- Para conferir um número, abra a aba "Conferir dígito" e cole. Se o título impresso tem de 9 a 11 dígitos, a página completa com zeros à esquerda até dar 12. Com menos de 9 ou mais de 12, o número é recusado.
Como o número é formado
São até 12 dígitos, em três partes:
- Posições 1 a 8: número sequencial. No título impresso, os zeros à esquerda podem não aparecer; ao conferir, a página completa de 9 a 11 dígitos com zeros.
- Posições 9 e 10: código do estado em que a inscrição foi feita, de 01 a 28.
- Posições 11 e 12: dígitos verificadores.
| Código | UF | Código | UF | Código | UF | Código | UF |
|---|---|---|---|---|---|---|---|
| 01 | SP | 08 | PE | 15 | PI | 22 | AM |
| 02 | MG | 09 | SC | 16 | RN | 23 | RO |
| 03 | RJ | 10 | GO | 17 | AL | 24 | AC |
| 04 | RS | 11 | MA | 18 | MT | 25 | AP |
| 05 | BA | 12 | PB | 19 | MS | 26 | RR |
| 06 | PR | 13 | PA | 20 | DF | 27 | TO |
| 07 | CE | 14 | ES | 21 | SE | 28 | Exterior |
Essa composição vem de resoluções do Tribunal Superior Eleitoral sobre o cadastro eleitoral. O código 28 é usado para eleitores inscritos no exterior.
No banco, guarde o número como texto de 12 caracteres, com os zeros à esquerda.
Como os dígitos verificadores são calculados
O 1º dígito sai do número sequencial. Multiplique os oito dígitos pelos pesos 2, 3, 4, 5, 6, 7, 8 e 9, some e pegue o resto da divisão por 11. O resto é o dígito. Se o resto for 10, o dígito é 0.
O 2º dígito sai do código do estado e do 1º dígito. Multiplique os dois dígitos do estado por 7 e 8, e o 1º dígito verificador por 9. Some, divida por 11 e aplique a mesma regra.
| Dígito | 1 | 0 | 2 | 3 | 8 | 5 | 0 | 1 | Soma |
|---|---|---|---|---|---|---|---|---|---|
| Peso | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | sem valor |
| Produto | 2 | 0 | 8 | 15 | 48 | 35 | 0 | 9 | 117 |
O resto de 117 por 11 é 7, então o 1º dígito é 7. Com o estado 06 (Paraná), a segunda conta é 0 × 7 + 6 × 8 + 7 × 9 = 111. O resto de 111 por 11 é 1, então o 2º dígito é 1. O número completo é 1023 8501 0671.
Digite um número completo para ver a conta.
Conta feita com o número 1023 8501 0671.
Gere ou valide outro acima e a conta muda junto.
1º dígito verificador
| 1º dígito | 1 | 0 | 2 | 3 | 8 | 5 | 0 | 1 |
|---|---|---|---|---|---|---|---|---|
| Dígito | 1 | 0 | 2 | 3 | 8 | 5 | 0 | 1 |
| Peso | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Produto | 2 | 0 | 8 | 15 | 48 | 35 | 0 | 9 |
O DV é o próprio resto: 7.
2º dígito verificador
| 2º dígito | 0 | 6 | 7 |
|---|---|---|---|
| Dígito | 0 | 6 | 7 |
| Peso | 7 | 8 | 9 |
| Produto | 0 | 48 | 63 |
O DV é o próprio resto: 1.
A exceção de São Paulo e Minas Gerais
Nos títulos de São Paulo (código 01) e de Minas Gerais (código 02), quando o resto da divisão é 0, o dígito é 1, e não 0. Nos outros estados, resto 0 dá dígito 0. A exceção vale para os dois dígitos.
Exemplo com o sequencial 27300002: a soma é 55 e o resto é 0. Em São Paulo, o 1º dígito é 1 e o número completo é 2730 0002 0116. No Rio de Janeiro (código 03), o mesmo sequencial tem 1º dígito 0 e fica 2730 0002 0302.
Validador que ignora essa regra recusa títulos corretos de São Paulo e de Minas. Inclua esses dois estados na sua massa de teste.
Números inválidos para teste negativo
O gerador cria números com defeito conhecido:
- Dígito verificador errado.
- Código de estado que não existe, como 00 ou 29.
- Tamanho errado: 13 dígitos.
- Dígitos repetidos, como
000000000000.
Onde usar no teste
O título aparece em cadastro de funcionário, em sistemas de folha e de recursos humanos, em inscrição de concurso e em formulários de órgãos públicos. Para testar esses campos, gere números por estado e inclua os casos de São Paulo e Minas.
Se o cadastro também pede CPF e PIS, a massa de teste gera tudo num arquivo só. As regras dos outros números estão no gerador de CPF e no gerador de PIS.
Cuidados legais
Os números são sorteados no seu navegador e não vêm do cadastro eleitoral. Um número sorteado pode coincidir com a inscrição de um eleitor real, então não use o resultado para identificar ninguém.
O site gera só o número, sem imagem do título. Usar um número inventado para se passar por eleitor ou preencher documento pode configurar crime, como falsidade ideológica (art. 299 do Código Penal).
Código pronto para o seu projeto
// Dígitos verificadores a partir do sequencial (8 dígitos) e do código da UF (2 dígitos).
function dvTitulo(sequencial, uf) {
const excecao = uf === '01' || uf === '02'; // SP e MG: resto 0 vira 1
const digito = (soma) => {
const resto = soma % 11;
if (resto === 10) return 0;
if (resto === 0 && excecao) return 1;
return resto;
};
let soma1 = 0;
for (let i = 0; i < 8; i++) soma1 += Number(sequencial[i]) * (i + 2);
const dv1 = digito(soma1);
const dv2 = digito(Number(uf[0]) * 7 + Number(uf[1]) * 8 + dv1 * 9);
return String(dv1) + String(dv2);
}
function digitoTituloConfere(numero) {
// O título impresso pode vir sem os zeros à esquerda: aceita de 9 a 12 dígitos e completa até 12
const limpo = String(numero).replace(/\D/g, '');
if (limpo.length < 9 || limpo.length > 12) return false;
const n = limpo.padStart(12, '0');
if (/^(\d)\1{11}$/.test(n)) return false;
const uf = n.slice(8, 10);
if (Number(uf) < 1 || Number(uf) > 28) return false;
return dvTitulo(n.slice(0, 8), uf) === n.slice(10);
}
digitoTituloConfere('1023 8501 0671'); // true
digitoTituloConfere('273000020116'); // true (São Paulo, resto 0)
digitoTituloConfere('273000020106'); // false
digitoTituloConfere('23850106'); // false (menos de 9 dígitos) import random
def dv_titulo(sequencial: str, uf: str) -> str:
excecao = uf in ("01", "02") # SP e MG: resto 0 vira 1
def digito(soma: int) -> int:
resto = soma % 11
if resto == 10:
return 0
if resto == 0 and excecao:
return 1
return resto
dv1 = digito(sum(int(c) * (i + 2) for i, c in enumerate(sequencial)))
dv2 = digito(int(uf[0]) * 7 + int(uf[1]) * 8 + dv1 * 9)
return f"{dv1}{dv2}"
def gerar_titulo(rng: random.Random, uf: str | None = None) -> str:
uf = uf or f"{rng.randint(1, 28):02d}"
sequencial = f"{rng.randrange(10**8):08d}"
return sequencial + uf + dv_titulo(sequencial, uf)
rng = random.Random(2026) # mesma semente, mesma lista
massa = [gerar_titulo(rng, uf="01") for _ in range(100)] -- Texto de 12 caracteres, com zeros à esquerda. O estado sai das posições 9 e 10.
CREATE TABLE eleitores_teste (
titulo CHAR(12) NOT NULL CHECK (titulo ~ '^\d{12}$'),
codigo_uf CHAR(2) GENERATED ALWAYS AS (substr(titulo, 9, 2)) STORED
);
INSERT INTO eleitores_teste (titulo) VALUES ('102385010671'), ('273000020116');
SELECT titulo, codigo_uf FROM eleitores_teste WHERE codigo_uf IN ('01', '02'); Perguntas frequentes
Dá para saber se um título de eleitor está regular?
Só pela Justiça Eleitoral. Aqui você gera números fictícios e confere a conta dos dígitos verificadores; a página não busca a situação, a zona nem a seção em nenhum cadastro.
Quantos dígitos tem o título de eleitor?
Tem 12 dígitos: oito sequenciais, dois do código do estado e dois verificadores. Os zeros à esquerda podem não aparecer no documento, e por isso o validador desta página aceita de 9 a 12 dígitos e completa com zeros à esquerda quando faltam.
Como descobrir o estado pelo número do título?
Olhe o 9º e o 10º dígitos, contando com os zeros à esquerda. Eles são o código do estado em que a inscrição foi feita: 01 é São Paulo, 02 é Minas Gerais, 03 é Rio de Janeiro, e assim por diante até 28, usado para o exterior.
O número gerado serve para votar ou para algum cadastro oficial?
Não. Ele passa só no cálculo do dígito e não existe no cadastro eleitoral. Serve para teste de software.
Por que meu validador recusa títulos de São Paulo e de Minas Gerais?
Provavelmente falta a exceção desses dois estados: quando o resto da divisão por 11 é 0, o dígito verificador é 1, e não 0.
Veja também
Gerador de CPF
CPFs fictícios, por estado de emissão, um a um ou em lote.
137.122.747-00Gerador de PIS
PIS, PASEP, NIS e NIT fictícios, com a conta do dígito e a geração em lote.
137.12274.71-7Número de CNH
Números de registro fictícios e a conferência dos dois dígitos verificadores.
10004586749Massa de teste
Vários tipos de número num arquivo só, uma coluna por tipo, até 10.000 linhas.
cnpj,cpf,pisAtualizado em 14/11/2026.