Valide cartões de crédito com o cheque Luhn em uma chamada de API
Detecte erros de digitação e falsificações de números de cartão antes que cheguem ao seu processador de pagamentos. Um POST retorna validade Luhn, marca (Visa, Mastercard, Amex) e crédito ou débito. Nível gratuito, sem SDK.
Um número de cartão digitado incorretamente custa o dobro: o usuário vê uma recusa confusa e seu processador cobra uma taxa pela falha na autorização. Você pode pegar a maioria deles antes que eles saiam do navegador. O algoritmo de Luhn é uma soma de verificação que todo número de cartão real satisfaz, portanto, um número que falhar, é garantido que é inválido e nunca precisa chegar a Stripe ou Adyen.
Este endpoint executa a verificação de Luhn e detecta a marca do cartão em um POST. Aqui está a chamada completa.
O pedido
Envie o número como uma string. Espaços e travessões são removidos automaticamente, então
4111 1111 1111 1111 e 4111-1111-1111-1111 ambos funcionam. A resposta
te diz três coisas:
valid: passa na soma de verificação Luhn ou não.brand: Visa, Mastercard, Amex, Discover, JCB, Diners Club ou UnionPay.type: crédito ou débito, a partir do número de identificação do emissor.
Valide na finalização da compra em Node.js
Chame o endpoint antes de enviar qualquer coisa ao seu processador. Uma verificação falhada de Luhn retorna um resultado claro erro que você pode mostrar ao usuário e pular a taxa de autorização que um número falso teria custado:
Bloquear entradas incorretas em um formulário React
O React Hook Form executa um validador assíncrono antes do envio, portanto, um número inválido nunca dispara o
ordem. Transfira a chamada diretamente para register:
Mantenha seu escopo PCI pequeno. O design de menor risco tokeniza o cartão no navegador por meio de seu processador e valida apenas os dígitos iniciais do logotipo da marca. Execute um completo validação do lado do servidor quando você realmente precisa dela, não a cada pressionamento de tecla, e nunca registre o número completo.
O que isso faz e o que não diz a você
A validação de Luhn é um filtro, não uma garantia. Um número passageiro está bem formado; isso não prova o cartão existe ou tem fundos. Somente uma autorização através do seu processador confirma isso. Usar este endpoint para rejeitar lixo óbvio de forma barata e para impulsionar a interface do usuário da marca do cartão, então deixe seu processador lidar com a carga real.
O validador de cartão de crédito é um dos cerca de 200 terminais de uso único no botoi, junto com IBAN e IVA validação para o resto do seu fluxo de faturamento. Todos eles ficam atrás de uma chave de API com 5 necessidade/min grátis. Tente a chamada no playground interativo ou conecte o Servidor MCP para validar cartões de Claude.
FAQ
- O que a verificação de Luhn realmente prova?
- O algoritmo Luhn é uma soma de verificação que detecta erros de digitação e falsificações geradas aleatoriamente. Um número que falha em Luhn é garantido como inválido, então você pode rejeitá-lo antes que ele chegue ao seu processador de pagamento. Um número que passa por Luhn está bem formado, mas isso não significa que o cartão exista ou tenha fundos. Somente uma autorização através do seu processador confirma isso. Use Luhn para filtrar o lixo óbvio de maneira barata e deixe Stripe ou Adyen fazerem a carga real.
- A API armazena ou registra os números dos cartões que envio?
- Não. O número é validado no servidor e nunca é armazenado ou registrado. Dito isto, o padrão inteligente é nunca enviar um PAN completo pela rede. Execute a detecção de marca nos primeiros 6 a 8 dígitos do lado do cliente para a UI e reserve uma chamada de validação completa para os casos em que você realmente precisa dela no lado do servidor, fora do escopo do PCI.
- Quais marcas de cartão ele detecta?
- Visa, Mastercard, American Express, Discover, JCB, Diners Club e UnionPay, com base no número de identificação do emissor (os dígitos iniciais). A resposta também informa se o número se parece com um produto de crédito ou débito, o que é útil para lógica de roteamento ou sobretaxa onde essa distinção é importante.
- Posso mostrar o logotipo da marca do cartão conforme o usuário digita?
- Sim, e este é o uso de maior valor. Detecte a marca desde os primeiros dígitos e troque o logotipo correspondente antes que o usuário termine de digitar. Ele garante ao usuário que o formulário está funcionando e reduz "meu cartão é aceito?" tíquetes de suporte. Debounce a chamada ou execute a detecção de marca no prefixo localmente e reserve a validação completa para envio.
- A execução de uma verificação Luhn é suficiente para conformidade com PCI?
- Não. Uma verificação de Luhn é uma validação de entrada, não um controle de conformidade. Se seus servidores atingirem um número de cartão completo, você estará no escopo PCI, independentemente da validação. O design de escopo mais baixo é tokenizar por meio de seu processador no navegador e validar apenas o prefixo da IU. Esta API ajuda na camada de validação; isso não altera suas obrigações de escopo.
Comece a construir com botoi
150+ endpoints de API para consultas, processamento de texto, geração de imagens e utilitários para desenvolvedores. Plano gratuito, sem cartão de crédito.