Validar CPF ou CNPJ
Digite 12345678Z para a Espanha e ele volta válido, confirmado pelo dígito verificador. Cada um dos mais de 40 países tem regras próprias, então os dois dígitos do CPF e do CNPJ são conferidos com o cálculo certo. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Confere se um CPF ou CNPJ é matematicamente válido: identifica o tipo de documento, aceita com ou sem pontuação e recalcula os dígitos verificadores. Grátis, direto no navegador, sem cadastro. Para quem confere documento antes de contrato, valida cadastro em sistema ou limpa planilha de clientes.
O que o dígito verificador entrega
Os dois últimos números do CPF (e do CNPJ) não são aleatórios: são calculados a partir dos anteriores por uma regra fixa, o módulo 11. Se alguém digita um número errado ou inventa um documento de cabeça, a conta quase nunca fecha — e a validação pega na hora. É a primeira barreira contra erro de digitação e documento chutado, usada por todo sistema sério do país.
Válido não é o mesmo que ativo na Receita
Atenção à diferença: esta validação confirma que o número é possível, não que ele pertence a alguém nem que está regular. Um CPF pode passar na conta e estar suspenso; um CNPJ pode ser válido e a empresa, baixada. Situação cadastral é consulta aos sistemas da Receita Federal — outra natureza de verificação.
Para barrar erro de digitação e número inventado, que é a necessidade do dia a dia, o dígito verificador resolve.
Use aqui, grátis e sem rastro
Cole o documento na caixa: o veredito sai na hora, com o tipo identificado (CPF ou CNPJ) e o número aceito com ou sem pontos, traço e barra. A conta roda inteira no seu navegador — o documento não é enviado a servidor nenhum, o que importa de verdade quando o dado é o CPF de um cliente. Sem limite, sem cadastro, funcionando no celular.
Para empresas: a mesma conferência no seu sistema
Validação de CPF/CNPJ no front se contorna; no servidor, não. Quem testa software também usa: massa de teste precisa de documentos que passem na validação sem pertencer a ninguém.
Casos de uso
Contrato de aluguel ou de prestação de serviço
Antes de assinar, conferir o CPF do inquilino ou o CNPJ do prestador elimina o erro de transcrição — número válido no contrato é o mínimo para o documento valer na prática.
Checkout e cadastro
E-commerce que emite nota fiscal precisa de CPF/CNPJ válido no pedido. Validar no checkout evita nota rejeitada e retrabalho do financeiro no fim do mês.
Massa de dados para teste
QAs precisam de CPFs que passem na validação sem ser de pessoas reais. A checagem confirma se a massa de teste está bem construída.
Perguntas frequentes
A validação consulta a Receita Federal?
Não. Ela confere a matemática do documento (os dígitos verificadores), o que resolve erro de digitação e número inventado. Situação cadastral — ativo, suspenso, baixado — é informação dos sistemas da Receita, fora do escopo desta ferramenta.
Um CPF “gerado para teste” passa na validação?
Passa, se os dígitos fecharem — é exatamente o que a conta verifica. Por isso a validação de dígito barra erro e chute, mas não substitui verificação cadastral quando o processo exige identidade confirmada.
É seguro colar o CPF de um cliente aqui?
A validação roda no seu navegador: o número não é transmitido nem armazenado por nós. De todo modo, trate dado de terceiro com o cuidado que a LGPD pede — o risco seria colar num site que não processa localmente.
Aceita com e sem pontuação?
Sim: 123.456.789-09 e 12345678909 são o mesmo documento para a ferramenta. Ela identifica sozinha se o número é CPF (11 dígitos) ou CNPJ (14).
Quanto custa usar no meu sistema?
Aqui na página, grátis, sem limite e sem cadastro — de verdade.
Funciona no celular?
Sim — é uma página comum, roda no navegador do celular sem instalar nada. Cole o documento e pronto.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/verify/tax-id \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"tax_id":"12-3456789","country":"US"}'const res = await fetch("https://api.kit.forhosting.com/verify/tax-id", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"tax_id": "12-3456789",
"country": "US"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/tax-id",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"tax_id": "12-3456789",
"country": "US"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/tax-id", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"tax_id":"12-3456789","country":"US"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"tax_id":"12-3456789","country":"US"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/tax-id", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"tax_id": "12-3456789",
"country": "US"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.tax_id",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Para desenvolvedores: no backend, via API
A mesma checagem existe como chamada de API por US$ 0,002, devolvendo JSON com o tipo e o veredito — para o cadastro do seu sistema, a esteira de onboarding ou a auditoria periódica da base.
Casos de integração
Limpeza de base de clientes
Planilhas antigas acumulam documentos com dígito trocado. Passar a coluna pela validação via API aponta as linhas que precisam de conserto antes da migração de sistema.