ForHosting KIT · Dados e planilhas

Validar cartão de crédito com o algoritmo de Luhn

Este validador remove espaços e hífens comuns do número informado, confirma que todos os caracteres restantes são algarismos e aplica a soma de verificação determinística de Luhn.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Ele também indica a provável bandeira usando prefixos reconhecidos de Visa, Mastercard, American Express e Discover. O resultado ajuda você a encontrar erros frequentes antes de solicitar um pagamento, mas não comprova que a conta existe, está ativa, pertence ao cliente ou pode concluir uma compra.

Como funcionam a normalização e a validação da entrada

Informe o número do cartão como uma string, somente com algarismos ou no formato habitual com grupos separados por espaços ou hífens. O validador remove exclusivamente esses dois separadores. Em seguida, exige que cada caractere restante seja um algarismo ASCII. Letras, pontuação, barras, sublinhados e outros símbolos geram um erro de entrada, em vez de serem descartados silenciosamente. Esse comportamento rigoroso é importante porque uma limpeza permissiva demais pode transformar um valor digitado por engano em outro número e produzir um resultado enganoso. Uma string vazia, um valor formado apenas por separadores ou um valor que não seja string também é recusado. O objeto retornado nunca repete o número normalizado; ele contém somente o resultado da soma de verificação e a bandeira provável. Trate a entrada original como dado de pagamento confidencial em seu aplicativo, embora o cálculo seja local e não exija consulta ao emissor, autorização, solicitação de rede, valor aleatório nem estado persistente.

O que o resultado de Luhn realmente significa

O algoritmo de Luhn calcula um dígito verificador para detectar erros comuns de transcrição. A partir do algarismo mais à direita, o validador alterna entre manter um valor e duplicá-lo. Quando o valor duplicado passa de nove, nove é subtraído; todos os resultados são somados e o número passa no teste quando o total é divisível por dez. Um resultado positivo significa apenas que a sequência é matematicamente compatível com seu dígito verificador final. Ele não demonstra que um banco emitiu o número, que a conta continua aberta, que há saldo nem que a pessoa está autorizada a usá-la. Uma sequência inventada pode passar em Luhn, enquanto um cartão real com um algarismo incorreto geralmente falha. Use o resultado como retorno inicial do formulário ou controle de qualidade dos dados. Depois, confie em um processador de pagamentos adequado para tokenização, autenticação, autorização, controles antifraude e a decisão definitiva sobre a transação.

Como a provável bandeira é identificada

A bandeira é inferida pelo prefixo de identificação do emissor, e não consultada em um cadastro remoto. Um número iniciado por 4 é classificado como Visa. Mastercard inclui a faixa tradicional de 51 a 55 e a faixa mais recente de 2221 a 2720. American Express utiliza os prefixos 34 e 37. Discover abrange 6011, 65, os valores de 644 a 649 e o intervalo atribuído de 622126 a 622925. Se nenhuma regra corresponder, a bandeira será desconhecida, mas a verificação de Luhn continuará sendo calculada normalmente. A palavra provável é essencial: as atribuições mudam, existem produtos compartilhados e esta ferramenta reconhece deliberadamente apenas as quatro bandeiras solicitadas. A detecção do prefixo e a soma de verificação são independentes; um número pode ter prefixo conhecido e falhar em Luhn, ou passar em Luhn e permanecer desconhecido. Cada solicitação usa o preço-base publicado de US$ 0,002, sem cobrança variável pelo tamanho do número ou pela bandeira detectada.

Aviso durante o preenchimento

Encontre um possível algarismo digitado incorretamente antes de enviar os dados a um processador adequado para autorização.

Qualidade de registros importados

Confira se números de arquivos antigos têm estrutura válida sem afirmar que as respectivas contas continuam ativas.

Teste de formulário de pagamento

Confirme que separadores de formatação são aceitos e caracteres incorretos são recusados de maneira consistente.

Passar no teste de Luhn comprova que o cartão é real?

Não. Isso comprova apenas que os algarismos satisfazem uma soma de verificação. Existência, titularidade, situação, saldo e autorização dependem do processador e do emissor.

Quais caracteres de formatação posso usar?

Você pode usar espaços e hífens. Eles são removidos antes do teste; qualquer outro caractere que não seja algarismo gera erro de entrada.

Quais bandeiras podem ser identificadas?

As regras de prefixo identificam provavelmente Visa, Mastercard, American Express e Discover. Outros prefixos retornam desconhecido.

Um prefixo reconhecido pode ter soma inválida?

Sim. A classificação do prefixo e o cálculo de Luhn são independentes; portanto, um prefixo Visa não garante aprovação.

O validador consulta algum banco ou bandeira?

Não. O resultado vem de aritmética determinística e regras de prefixo, sem consulta externa nem tentativa de autorização.

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.

POSThttps://api.kit.forhosting.com/data/credit-card-luhn-validate

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/data/credit-card-luhn-validate \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"4111 1111 1111 1111"}'
{
  "number": "4111 1111 1111 1111"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "data.credit_card_luhn_validate",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_mb25
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →