Letra de controle do DNI/NIF espanhol
Digite os oito dígitos de um DNI espanhol e receba a letra de controle: 12345678 deixa resto 14 na divisão por 23, então a letra é Z e o número completo é 12345678Z. Cole um DNI, NIF ou NIE completo para conferi-lo. 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
- Dni
- 12345678
- Entrada
- 12345678
- Tipo
- dni
- Número
- 12345678
- Letra
- Z
O documento nacional de identidade espanhol (DNI) e o identificador fiscal pessoal (NIF) compartilham um único controle público: oito dígitos seguidos de uma letra tirada de uma tabela fixa de vinte e três caracteres. Residentes, expatriados que preenchem formulários, ferramentas de folha de pagamento e fluxos KYC precisam descobrir a letra correta a partir do corpo numérico ou confirmar que o identificador completo digitado obedece à regra oficial. Esta calculadora da letra do DNI/NIF espanhol aceita um corpo de oito dígitos — ou um DNI completo de nove caracteres com letra —, aplica o mapeamento módulo vinte e três da Agencia Tributaria e devolve a letra de controle, o identificador completo e um indicador valid claro quando uma letra foi fornecida. Identificadores NIE que começam com X, Y ou Z usam a mesma tabela após a substituição padrão de dígitos. Espaços e hífens são removidos para que a colagem a partir de documentos funcione.
Como a letra de controle do DNI espanhol é calculada
Todo DNI espanhol de pessoa física tem oito dígitos decimais mais um caractere alfabético de controle. Os dígitos formam um inteiro N entre zero e noventa e nove milhões novecentos e noventa e nove mil novecentos e noventa e nove; zeros à esquerda são significativos e permanecem no corpo exibido, de modo que um documento impresso como zero zero um dois três quatro cinco seis ainda é o número cento e vinte e três mil quatrocentos e cinquenta e seis para a aritmética.
A letra de controle não é escolha livre do cidadão: fica totalmente determinada por N. Calcule o resto de N dividido por vinte e três e consulte esse resto na tabela oficial ordenada de vinte e três letras: T R W A G M Y F P D X B N J Z S Q V H L C K E. O resto zero corresponde a T, um a R, quatorze a Z, e assim por diante até vinte e dois, que é E.
As letras I, Ñ, O e U nunca aparecem nesta tabela, desenho deliberado para evitar confusão visual com dígitos e com a ortografia espanhola. A mesma regra modular é o controle do NIF pessoal em formulários fiscais: para residentes o NIF é simplesmente o DNI com a sua letra.
Números NIE de residentes estrangeiros começam com X, Y ou Z seguidos de sete dígitos e uma letra; antes do módulo, X é trocado por zero, Y por um e Z por dois para o motor continuar a trabalhar com um inteiro de oito dígitos.
Onde conferir a letra do DNI evita problemas
Formulários de onboarding e KYC para clientes espanhóis costumam pedir um DNI ou NIF e precisam de uma verificação instantânea no cliente antes de uma revisão mais lenta no back-office. Importações de folha e RH recebem identificadores de funcionários de planilhas em que uma única letra errada rejeitaria um lote inteiro; um oráculo determinístico que devolve a letra esperada e valid permite marcar linhas sem chamar portais governamentais.
Sites educacionais que ranqueiam por frases como calculadora letra dni espanhol ou letra de controle dni nif precisam de uma ferramenta gratuita ao vivo cujo caminho no navegador coincida com a automação para que capturas de tutorial continuem corretas. Expatriados e residentes que recuperam um documento desgastado podem lembrar apenas os oito dígitos e precisar da letra para consultas online, declarações fiscais ou contratos de celular.
Como a implementação é parse puro de nível A, cada chamada bem-sucedida permanece no modelo de custo analítico sem tokens de modelo e sem rede de saída.
Casos de uso
Pré-checagens de formulário e KYC
Valide a letra de um DNI ou NIF espanhol digitado antes do envio, para que o usuário corrija erros de digitação sem ida e volta ao servidor de sistemas governamentais.
Recuperar a letra de controle a partir dos dígitos
Calcule a letra oficial a partir de um corpo de oito dígitos quando o documento está gasto, parcialmente legível ou armazenado sem a letra.
Importações em lote de folha e CRM
Pontue linhas de identificadores espanhóis em scripts: recalcule a letra, defina valid e isole divergências antes de chegarem aos sistemas de RH.
Perguntas frequentes
Como a letra de controle do DNI espanhol é calculada?
Tome o corpo de oito dígitos como inteiro, calcule esse número módulo vinte e três e escolha a letra nesse índice da tabela oficial TRWAGMYFPDXBNJZSQVHLCKE. Por exemplo, 12345678 módulo 23 é 14, que mapeia para Z.
Qual a diferença entre DNI e NIF nesta ferramenta?
Para pessoas físicas o NIF pessoal é o DNI incluindo a letra de controle. Esta ferramenta calcula e verifica essa letra compartilhada. Números CIF de empresas usam outro esquema e ficam fora desta calculadora.
Há suporte a números NIE?
Sim. Formas NIE com X, Y ou Z mais sete dígitos (letra opcional) usam a mesma tabela após mapear X para 0, Y para 1 e Z para 2.
O que acontece se a letra estiver errada?
Quando você envia um identificador completo, a resposta ainda inclui a letra esperada e a string full, e valid fica false se a letra fornecida não coincidir.
Por que um DNI nunca termina em I, Ñ, O ou U?
Porque essas letras ficaram de fora da tabela de 23 letras de controle de propósito, para não serem confundidas com dígitos nem com a ortografia espanhola. Um DNI que termine em uma delas não pode estar certo.
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/dni-spain \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dni":"12345678"}'const res = await fetch("https://api.kit.forhosting.com/enc/dni-spain", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dni": "12345678"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/dni-spain",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dni": "12345678"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/dni-spain", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dni":"12345678"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dni":"12345678"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/dni-spain", 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
{
"dni": "12345678"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.dni_spain",
"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
Entrada malformada falha com invalid_input em vez de inventar uma letra.
Contrato de entrada, formato da resposta e modos de validação
O valor pode ser apenas um corpo de oito dígitos; nesse caso a capacidade roda em modo compute: devolve a letra de controle, o identificador completo, o resto usado como índice da tabela, kind igual a dni, mode igual a compute e valid true porque nenhuma letra conflitante foi fornecida. Corpos NIE na forma letra X, Y ou Z mais sete dígitos, com ou sem letra de controle final, seguem os mesmos dois modos com kind nie. Espaços, pontos, hífens, underscores e barras são removidos antes do parse para que números copiados de PDFs ou documentos espanhóis com separadores ainda sejam analisados. Em caso de sucesso o corpo também inclui a string fixa da tabela para os clientes renderizarem o mapeamento completo ao lado da resposta sem hard-code de uma segunda cópia. Envie um corpo JSON com um campo de string obrigatório chamado dni. Os aliases text, input, number, nif, value e s são aceitos para que clientes leves e caixas de texto genéricas reutilizem o mesmo endpoint sem renomear campos. O valor também pode ser oito dígitos mais uma letra, por exemplo um dois três quatro cinco seis sete oito Z; esse caminho é o modo validate: o motor recalcula a letra esperada, compara com a letra fornecida após uppercasing, define valid como true ou false e ecoa provided_letter para que as UIs destaquem um caractere digitado errado sem adivinhar. Strings vazias, objetos que não são string, contagens de dígitos erradas, letras fora da tabela oficial e padrões que não são DNI nem NIE geram invalid_input com uma mensagem que nomeia o problema; essas falhas não são cobradas. Chamadas API bem-sucedidas custam o preço base publicado de US$ 0,002 por item; a ferramenta no navegador permanece gratuita para checagens interativas.
Onde uma API de letra do DNI gera valor
Desenvolvedores de suítes fiscais multi-país podem chamar este endpoint especializado quando o país é a Espanha e querem a letra em si, não só um booleano, mantendo um verificador de formato multi-país separado para outras jurisdições.
Perguntas técnicas
Quanto custa a calculadora da letra do DNI/NIF espanhol?
A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago do KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.