Validador de cartão PAN indiano
AAAPL1234C é um PAN válido de pessoa física: cinco letras, quatro dígitos e uma letra final, com o P na quarta posição. Cole um PAN para conferir a estrutura e ver que tipo de titular a quarta letra indica. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Pan
- AAAPL1234C
- Entrada
- AAAPL1234C
- Formatado
- AAAPL 1234 C
- Código de entidade
- P
- Tipo de entidade
- Individual
O Permanent Account Number (PAN) indiano é um identificador fiscal alfanumérico de dez caracteres emitido pelo Income Tax Department. Todo PAN segue um layout público fixo: cinco letras, quatro dígitos e uma letra final. O quarto caractere não é decoração: codifica a classe de entidade do titular (pessoa física, empresa, Hindu Undivided Family, firma, associação de pessoas, trust, body of individuals, autoridade local, pessoa jurídica artificial ou governo). Formulários, fluxos KYC, importações de folha e scripts de onboarding precisam de uma checagem estrutural rápida antes de uma consulta mais lenta ao registro. Este validador de cartão PAN indiano normaliza espaços e hífens, aplica o padrão oficial, mapeia o quarto caractere para um tipo de entidade legível e devolve um indicador valid claro com as partes decodificadas.
Como um PAN indiano é estruturado e o que o quarto caractere significa
Um Permanent Account Number tem sempre exatamente dez caracteres quando os separadores são removidos. As posições um a três são uma série alfabética escolhida pelo sistema de alocação. A posição quatro é a letra de tipo de entidade definida pelo Income Tax Department: P para pessoa física, C para empresa, H para Hindu Undivided Family, F para firma, A para associação de pessoas, T para trust, B para body of individuals, L para autoridade local, J para pessoa jurídica artificial e G para órgão governamental.
A posição cinco costuma ser a primeira letra do sobrenome (pessoa física) ou do nome da entidade (não pessoas). As posições seis a nove são uma sequência de quatro dígitos de 0001 a 9999. A posição dez é um caractere alfabético final atribuído com o número; diferentemente do dígito Verhoeff do Aadhaar ou da letra módulo do DNI espanhol, esse caractere final não é um checksum modular público que você possa recomputar a partir de uma tabela publicada, por isso esta ferramenta não inventa um.
A validação estrutural ainda captura a grande maioria dos erros de digitação: comprimento errado, dígitos em slots de letras, letras em slots de dígitos e um código de entidade fora do conjunto oficial.
Perguntas frequentes
Qual é o formato de um PAN indiano?
Um PAN tem dez caracteres: cinco letras, quatro dígitos e uma letra final (por exemplo AAAPL1234C). Espaços e hífens podem aparecer em documentos, mas este validador os ignora.
O que o quarto caractere de um PAN significa?
É o código de tipo de entidade. P é Individual, C Company, H HUF, F Firm, A Association of Persons, T Trust, B Body of Individuals, L Local Authority, J Artificial Juridical Person e G Government.
Esta ferramenta contata o Income Tax Department ou a NSDL?
Não. Ela só confere o padrão estrutural público e decodifica a letra de tipo de entidade. Não prova que um PAN esteja alocado, ativo ou vinculado a uma pessoa.
Quanto custa o validador de cartão PAN indiano?
A ferramenta do navegador é gratuita. Um formato válido não é prova de registro fiscal nem de identidade.
A ferramenta confere a última letra do PAN?
Só confere se ela é uma letra. Ao contrário de outros identificadores, a letra final do PAN não é um controle público que possa ser recalculado por uma tabela, então a ferramenta verifica a estrutura e o código de entidade sem inventar nenhuma checagem.
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/enc/pan-india \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pan":"AAAPL1234C"}'const res = await fetch("https://api.kit.forhosting.com/enc/pan-india", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pan": "AAAPL1234C"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/pan-india",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pan": "AAAPL1234C"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/pan-india", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pan":"AAAPL1234C"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pan":"AAAPL1234C"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/pan-india", 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
{
"pan": "AAAPL1234C"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.pan_india",
"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
Cadeias completamente malformadas falham com invalid_input em vez de inventar um número. Use grátis no navegador ou chame a API do KIT ao preço publicado; ambos os caminhos aplicam as mesmas regras determinísticas sem chamada de rede a NSDL ou UTIITSL.
Como um PAN indiano é estruturado e o que o quarto caractere significa
Quando o padrão coincide e o quarto caractere é um dos dez códigos conhecidos, valid é true e entity_type nomeia a classe. Quando o padrão coincide mas a quarta letra não é um código de entidade reconhecido, valid é false e entity_type é Unknown para que o chamador destaque o quarto caractere sem tratar toda a cadeia como lixo. Entrada completamente quebrada nunca devolve um PAN sintético; lança invalid_input com uma mensagem que indica o problema de comprimento ou de classe de caractere.
Contrato de entrada, campos de resposta e como a validação se comporta
Espaços, pontos, hífens, underscores e barras são removidos e as letras passam a maiúsculas antes da checagem do padrão, de modo que valores como AAAPL um dois três quatro C ou AAA-PL-1234-C ainda fazem parse. Após a normalização, o motor exige a expressão regular de cinco letras maiúsculas, quatro dígitos e uma letra maiúscula. Envie por POST um corpo JSON com um campo de string obrigatório chamado pan. Os aliases text, input, value, number, s e id são aceitos para que clientes leves e caixas de texto genéricas reutilizem o mesmo endpoint sem renomear campos. Em caso de sucesso, a resposta ecoa o input original aparado, a string pan limpa, um campo formatted de exibição com espaços ao redor do bloco de dígitos, valid true ou false, entity_code como o único quarto caractere, entity_type como o rótulo em inglês decodificado, series como as três primeiras letras, name_initial como o quinto caractere, sequence como os quatro dígitos, check_letter como o décimo caractere, length dez, scheme pan_india e entity_codes listando o alfabeto oficial do quarto caractere para legendas no cliente. Strings vazias, pan ausente, números puros, comprimentos errados, caracteres ilegais misturados e padrões que não sejam cinco-mais-quatro-mais-um lançam invalid_input e não são faturados. Como o caminho é parse puro, sem relógio, fonte aleatória nem rede, a mesma entrada sempre produz o mesmo JSON na ferramenta gratuita do navegador e na API. Chamadas bem-sucedidas custam o preço base publicado de US$ 0,002 por item; a ferramenta no navegador permanece gratuita para checagens interativas. Prefira este endpoint especializado quando precisar do tipo de entidade decodificado no corpo da resposta, não apenas um booleano de um verificador genérico multi-país de IDs fiscais.
Onde checagens de formato PAN cabem em KYC, folha e pipelines de dados
Formulários de onboarding e KYC para clientes indianos costumam pedir que o usuário digite um PAN antes da assinatura eletrônica ou da vinculação bancária. Sites de conteúdo que ranqueiam por validador de cartão pan indiano ou verificador de formato pan se beneficiam de uma ferramenta ao vivo cujo caminho gratuito no navegador coincide byte a byte com a automação paga. Não trate uma checagem estrutural aprovada como prova de identidade, de alocação, de status de declaração fiscal ou de autorização para agir em nome de alguém: ela só prova que a string de dígitos e letras é coerente com o layout público do PAN e com um código de tipo de entidade reconhecido. Validar o padrão de dez caracteres e a letra de tipo de entidade na borda do navegador ou da API bloqueia erros óbvios de digitação antes de gravar um registro e antes de chamar qualquer serviço fiscal ou de pagamentos posterior. Importações de folha e RH recebem identificadores de funcionários de planilhas em que um único dígito trocado rejeitaria um lote inteiro; um oráculo determinístico que devolve pan, valid e entity_type permite marcar linhas sem chamar portais governamentais a cada linha. Testes de integração de pipelines OCR podem afirmar que uma string limpa de dez caracteres ou valida, ou é rejeitada com uma mensagem clara invalid_input quando ainda há ruído.
Casos de integração
Filtrar campos PAN em formulários web e móveis
Quando um usuário enviar um PAN, valide o padrão cinco-quatro-um e mostre entity_type para rotular corretamente pessoas e empresas antes de salvar o formulário.
Pontuar linhas em importações de folha e CRM
Verifique em lote cada coluna PAN, isole linhas em que valid seja false ou invalid_input seja lançado, e mantenha entity_code para relatórios por segmento.
Montar fixtures sintéticos de PAN para testes
Gere strings de amostra bem formadas com códigos de entidade conhecidos e afirme que a API devolve o entity_type esperado e valid true em testes golden.
Perguntas técnicas
O que acontece se a quarta letra não for um código de entidade conhecido?
Se o padrão geral ainda for cinco letras, quatro dígitos e uma letra, a resposta devolve valid false e entity_type Unknown. Cadeias completamente malformadas falham com invalid_input.