Dígito verificador IMEI
Os 14 dígitos 49015420323751 recebem o dígito verificador 8, e o IMEI completo fica 490154203237518. Complete o número de um aparelho para uma etiqueta ou um banco de dados, ou confira um IMEI de 15 dígitos vindo de um cliente antes de salvá-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
- Número
- 49015420323751
- Modo de cálculo
- Compute
- Entrada
- 49015420323751
- Dígito verificador
- 8
- Com dígito verificador
- 490154203237518
Todo telefone móvel e muitos módulos celulares carregam uma Identidade Internacional de Equipamento Móvel de quinze dígitos. Os primeiros quatorze identificam o código de alocação de tipo e o serial; o décimo quinto é um dígito verificador Luhn que detecta erros de um único dígito e a maioria das transposições adjacentes antes que o número seja armazenado, impresso na caixa ou enviado a um portal da operadora. Esta capacidade implementa essa regra Luhn padrão apenas para IMEI: o modo compute aceita exatamente quatorze dígitos de carga e devolve o dígito verificador mais a cadeia completa de quinze; o modo validate aceita um IMEI completo de quinze dígitos e informa se o dígito final coincide com o valor esperado recalculado.
Como o dígito verificador Luhn do IMEI é calculado
Um IMEI tem sempre quinze dígitos decimais no plano de numeração 3GPP usado em equipamentos GSM, UMTS, LTE e 5G. Os primeiros oito formam o código de alocação de tipo (TAC), os seis seguintes são um serial do fabricante dentro desse TAC, e o décimo quinto é o dígito verificador.
Para calculá-lo, pegue a carga de quatorze dígitos e aplique o algoritmo de Luhn da direita: dobre cada segundo dígito começando pelo dígito de carga mais à direita (porque esse dígito ocupa a posição dois da cadeia completa de quinze quando o verificador é a posição um da direita). Quando o dobro de um dígito é maior que nove, subtraia nove (de forma equivalente, some as dezenas e as unidades do produto).
Some os quatorze valores ponderados; o dígito verificador é (10 menos essa soma módulo 10) módulo 10 para que o número completo de quinze dígitos tenha soma Luhn divisível por dez. A validação recalcula o dígito esperado a partir dos primeiros quatorze caracteres e o compara com o décimo quinto, o mesmo que executar uma soma Luhn completa sobre os quinze dígitos. O algoritmo é determinístico e local: sem chamada ao registro TAC, sem relógio e sem aleatoriedade.
Esta ferramenta não decodifica o TAC em marcas, não trata formatos hexadecimais MEID e não prova propriedade nem status de lista negra: apenas prova que a cadeia de dígitos está bem formada sob a regra Luhn do IMEI. Em comparação com validadores Luhn genéricos de cartão, a intenção de busca aqui é estreita: quem precisa de uma calculadora de dígito verificador IMEI para cargas de quatorze dígitos ou de um verificador de IMEI móvel de quinze, não de uma ferramenta de cartão de pagamento.
Contrato de entrada, modos e comportamento de erro
Envie um campo number que contenha apenas caracteres de zero a nove. Comprimento errado é um erro explícito que nomeia o modo e o comprimento enviado —quatorze para compute, quinze para validate— para que formulários cliente possam mostrar «precisam de quatorze dígitos» sem adivinhar. Strings vazias, number ausente e valores de mode inválidos falham antes de qualquer soma Luhn e não são cobrados.
Prefira compute quando criar ou completar números de dispositivo para etiquetas e bancos de dados; prefira validate quando condicionar uma consulta, troca ou importação a um IMEI completo de um usuário, arquivo de parceiro ou leitor. Tarefas de validação que rejeitam formato inválido não são cobradas; uma string bem formada de quinze dígitos que simplesmente tem o dígito verificador errado devolve valid false sem lançar erro.
Onde os dígitos verificadores IMEI se encaixam em fluxos reais
Fabricantes de dispositivos e ODMs recebem seriais internos de quatorze dígitos e devem acrescentar o dígito verificador Luhn oficial antes de imprimir o IMEI na caixa, na bandeja SIM ou na etiqueta regulatória. Portais de operadoras e MVNO validam IMEIs de quinze dígitos na ativação para que uma única transposição não crie um dispositivo fantasma e um provisionamento falho.
Sistemas de gestão de ativos e MDM percorrem cada coluna IMEI de uma exportação CSV, chamam o modo validate e colocam em quarentena as linhas em que valid é false, capturando tanto edições humanas quanto bugs de geradores. Não trate um IMEI que passa a verificação como prova de que o aparelho é genuíno, desbloqueado ou livre de lista negra da operadora; só prova que o dígito Luhn é coerente com a carga sob os pesos padrão da identidade de equipamento móvel.
Casos de uso
Auditar colunas IMEI em inventários de dispositivos
Valide em lote cada IMEI de quinze dígitos em um CSV de MDM, ERP ou RMA e coloque em quarentena as linhas cujo dígito verificador não coincida mais com o valor esperado recalculado.
Perguntas frequentes
O que é um dígito verificador IMEI?
É o décimo quinto dígito de um IMEI, calculado com o algoritmo de Luhn sobre os primeiros quatorze dígitos, para que erros de um único dígito ao digitar ou ler costumem ser detectados antes de armazenar ou imprimir o número.
O que acontece com comprimento errado, letras ou hífens?
Tarefas de validação com falha não são cobradas.
A ferramenta de dígito verificador IMEI é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
O que significam os dígitos de um IMEI?
Os oito primeiros formam o código de alocação de tipo (TAC), os seis seguintes são o número de série do fabricante dentro desse código e o décimo quinto é o dígito verificador, calculado a partir dos outros catorze.
Um IMEI válido significa que o celular está registrado ou desbloqueado?
Não. Um dígito verificador correto só mostra que os quinze dígitos foram digitados de forma coerente. Nenhum banco de dados de fabricantes é consultado, então isso não diz se o aparelho está registrado ou desbloqueado.
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/imei \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"49015420323751"}'const res = await fetch("https://api.kit.forhosting.com/enc/imei", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "49015420323751"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/imei",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "49015420323751"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/imei", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"49015420323751"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"49015420323751"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/imei", 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
{
"number": "49015420323751"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.imei",
"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 não numérica e comprimentos incorretos falham com invalid_input em vez de recorte silencioso, para que você nunca persista um identificador pela metade. A mesma aritmética pura roda grátis no navegador e no preço publicado da API, sem consulta de rede a bases de fabricantes e sem afirmar que um checksum válido signifique que o aparelho está registrado ou desbloqueado.
Contrato de entrada, modos e comportamento de erro
Espaços, hífens, letras e pontos decimais são rejeitados como entrada não numérica com invalid_input para que um valor recortado em silêncio nunca chegue ao armazenamento. O modo compute é o padrão: o motor exige exatamente quatorze dígitos, devolve check_digit como string de um caractere e devolve with_check como o IMEI de quinze dígitos que você pode imprimir ou persistir. O modo validate exige exatamente quinze dígitos; a resposta reporta valid true quando o dígito final coincide com o expected_check_digit recalculado, e sempre inclui payload (os primeiros quatorze dígitos), check_digit, expected_check_digit e length quinze. Aliases como digits, imei e code são aceitos para o mesmo campo de carga, para que integrações que já falam «imei» não precisem renomear. Como o caminho é parse puro sem relógio, fonte aleatória ou rede, o mesmo corpo JSON sempre produz o mesmo resultado JSON na ferramenta gratuita do navegador e na API a US$ 0,002 por solicitação bem-sucedida.
Onde os dígitos verificadores IMEI se encaixam em fluxos reais
Oficinas de reparo e balcões RMA recalculam expected_check_digit quando um cliente lê o número ao telefone, capturando erros de digitação antes de abrir um chamado contra o aparelho errado. Em todo fluxo o contrato é o mesmo: só dígitos, comprimento fixo por modo, JSON estruturado que você pode testar com goldens, comportamento idêntico no navegador gratuito e na API pré-paga, e invalid_input honesto quando a string não é uma sequência pura de dígitos do comprimento certo.
Casos de integração
Completar um número de dispositivo de 14 dígitos para etiquetas
Chame o modo compute com a carga de quatorze dígitos, armazene with_check e imprima o IMEI de quinze dígitos em embalagens, bandejas SIM ou etiquetas regulatórias.
Validar IMEI digitado ou lido na entrada
Quando um formulário, leitor ou arquivo de parceiro enviar quinze dígitos, chame o modo validate e bloqueie a consulta se valid for false, mostrando expected_check_digit para corrigir um erro de um único dígito.
Perguntas técnicas
Como calculo um dígito verificador IMEI com esta API?
Faça POST com number igual a exatamente quatorze dígitos e mode compute (ou omita mode). A resposta inclui check_digit e with_check (o IMEI completo de quinze dígitos).
Como valido um IMEI completo de quinze dígitos?
Faça POST com a string de quinze dígitos e mode validate. A resposta inclui valid, check_digit, expected_check_digit e payload (dígitos sem o último).