Dígitos verificadores ISO 7064 mod 97-10
Para 123456 os dígitos verificadores ISO 7064 MOD 97-10 são 76, e o código fica 12345676: a mesma regra de dois dígitos que protege o IBAN, aplicada a qualquer código de letras e dígitos. A validação confere um código que já os traz. 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
- Texto
- 123456
- Modo de cálculo
- Compute
- Entrada
- 123456
- Dígitos verificadores
- 76
- Com dígito verificador
- 12345676
Referências de conta longas, identificadores de pagamento e códigos de armazém são fáceis de digitar errado, e um único caractere incorreto pode enviar dinheiro ou mercadoria para o lugar errado. O sistema de dígitos de controle ISO 7064 MOD 97-10 acrescenta dois dígitos decimais para que quase todo erro de um caractere e muitas transposições quebrem a soma de verificação. Esta capacidade calcula esses dois dígitos para uma carga alfanumérica que voce já possui, ou valida uma string completa que já os inclui, e rejeita entrada não alfanumérica com um erro claro em vez de remover lixo em silêncio. As letras são mapeadas de A igual a dez até Z igual a trinta e cinco antes da aritmética modular, coincidindo com o conjunto híbrido usado por esquemas estilo IBAN e outros códigos MOD 97-10.
O que é ISO 7064 MOD 97-10 e por que dois dígitos importam
Dígitos de controle existem porque pessoas, teclados, OCR e cópia manual introduzem danos previsíveis: um caractere errado, dois símbolos vizinhos trocados ou um dígito omitido ou inserido. A ISO 7064 define vários sistemas de verificação modular; MOD 97-10 é o sistema puro (e híbrido alfanumérico) que produz dois caracteres de controle do alfabeto de dígitos de zero a nove.
Na prática voce mapeia as letras de A a Z para os valores de dois dígitos de dez a trinta e cinco, trata a string inteira como um inteiro grande em base dez após essa expansão e exige que esse inteiro seja congruente com um módulo noventa e sete quando os dois dígitos de controle estão incluídos.
Para gerar dígitos de controle voce acrescenta temporariamente dois zeros, toma o resto módulo noventa e sete e define o valor de controle como noventa e oito menos esse resto, sempre escrito como dois dígitos de zero-um a noventa e oito.
Essa construção é exatamente a que os números de conta bancária internacionais usam por baixo dos panos para seus dois dígitos de controle após o código do país, e a mesma matemática protege referências relacionadas a SEPA, alguns identificadores nacionais de credor e códigos internos que escolheram MOD 97-10 por sua forte distribuição residual.
Dois dígitos de controle dão um módulo de noventa e sete, um primo, que oferece cobertura residual muito melhor do que um único dígito módulo dez para os padrões de erro de digitação que as pessoas realmente cometem. Em comparação com esquemas de um único dígito como Damm ou Luhn, MOD 97-10 é a escolha certa quando o domínio de voce já documenta ISO 7064 ou regras da família IBAN e voce precisa de dois dígitos de controle decimais em vez de um.
Como calcular dígitos de controle ou validar um código completo
Envie um campo text que contenha apenas caracteres de A a Z e dígitos de zero a nove. Maiúsculas e minúsculas são ignoradas; o motor converte para maiúsculas antes do mapeamento. O modo validate espera uma string completa de pelo menos três caracteres (um ou mais caracteres de carga útil mais os dois dígitos de controle finais).
O par final deve ser dígitos decimais; se forem letras a solicitação falha antes de qualquer percurso modular. Essa forma facilita mostrar «voce digitou X, esperava-se Y» em um formulário sem uma segunda chamada. Strings vazias, text ausente e valores de mode inválidos falham antes de qualquer aritmética e não são cobrados.
Prefira compute ao criar códigos novos; prefira validate ao receber um código de um usuário, de um arquivo de parceiro ou de uma etiqueta digitalizada e precisar de um portão booleano antes de consultar o registro. Observe que a validação completa de IBAN também reordena país e posições de controle e aplica tabelas de comprimento por país; esta capacidade é o núcleo compartilhado MOD 97-10, não um verificador completo de formato IBAN por país.
Onde os dígitos de controle MOD 97-10 se encaixam em sistemas reais
Equipes de tesouraria e pagamentos que constroem referências de pagamento internas ao lado de campos IBAN precisam da mesma regra de controle de dois dígitos sem puxar uma biblioteca bancária completa. Programas de associação e fidelidade geram IDs alfanuméricos e querem um par final que agentes de call center e teclados móveis não corrompam em silêncio.
Equipes de armazém e logística imprimem códigos de caixa ou de ativo; a transposição de dois dígitos no caminho de um dispositivo portátil é comum, e um módulo de noventa e sete captura muito mais desses erros do que um único dígito módulo dez. Escritórios de saúde e educação que ainda movem formulários em papel com números de referência de vários caracteres podem validar na entrada e mostrar uma correção imediata em vez de criar um prontuário ou matrícula duplicados.
Testes de integração e trabalhos de qualidade de dados recalculam os dígitos de controle esperados para cada linha de uma exportação CSV e marcam linhas em que o código completo armazenado não coincide mais, o que captura tanto edições humanas quanto bugs de deslocamento em geradores. Equipes de produto que já usam Luhn para campos semelhantes a cartão ainda podem adotar MOD 97-10 para identificadores internos em que o padrão do domínio ou o contrato do parceiro já especifica ISO 7064.
Não trate uma verificação MOD 97-10 aprovada como prova de autorização, propriedade ou de que uma string seja uma conta bancária real em um dado país — ela só prova que a string de caracteres está bem formada sob este algoritmo, o mesmo critério de honestidade que voce aplica a qualquer checksum.
Casos de uso
Auditar colunas de códigos exportadas
Valide em lote cada referência alfanumérica em um CSV de parceiro ou exportação de armazém e coloque em quarentena as linhas cujos dígitos de controle não coincidem mais com o valor esperado recalculado.
Perguntas frequentes
O que é o dígito de controle ISO 7064 mod 97-10?
É um controle decimal de dois dígitos calculado com módulo 97 de modo que quase qualquer erro de um caractere em um código alfanumérico faz a string completa falhar na validação.
O que acontece com espaços, hífens ou outros símbolos?
Forneça apenas A-Z e 0-9; tarefas de validação com falha não são cobradas.
A ferramenta de dígitos de controle mod 97-10 é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
Como os dois dígitos verificadores são calculados?
Dois zeros são acrescentados ao fim do código, pega-se o resto da divisão por noventa e sete e o verificador é noventa e oito menos esse resto, sempre escrito com dois dígitos. Para 123456 o resultado é 76.
Posso usar isto para validar um IBAN inteiro?
Só o núcleo do cálculo. A verificação completa de um IBAN também move o código do país e os dígitos verificadores para o fim e confere o comprimento de cada país, o que esta ferramenta não faz. Aqui você tem a etapa MOD 97-10 comum.
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/mod97 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"123456"}'const res = await fetch("https://api.kit.forhosting.com/enc/mod97", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "123456"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/mod97",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "123456"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/mod97", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"123456"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"123456"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/mod97", 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
{
"text": "123456"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.mod97",
"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
Execute grátis no navegador ou chame a API do KIT pelo preço publicado; ambos os caminhos usam a mesma aritmética pura, sem rede e sem segredos armazenados.
O que é ISO 7064 MOD 97-10 e por que dois dígitos importam
Esta ferramenta implementa esse percurso padrão com redução iterativa do resto para que códigos longos nunca estourem os números de JavaScript, e sempre rotula o algoritmo como iso7064_mod97_10 para que sistemas posteriores registrem qual esquema protegeu o valor.
Como calcular dígitos de controle ou validar um código completo
Espaços, hífens, pontuação e outros símbolos são rejeitados como entrada não alfanumérica com invalid_input, para que voce nunca aceite um valor silenciosamente removido. O modo compute é o padrão: o motor mapeia a carga útil, acrescenta dois zeros, reduz módulo noventa e sete, devolve check_digits como uma string de dois caracteres e devolve with_check como a carga útil mais esses dígitos, para que voce possa armazenar ou imprimir uma única string. A resposta informa valid verdadeiro quando o inteiro mapeado completo é congruente com um módulo noventa e sete, e sempre inclui os check_digits finais, os expected_check_digits recalculados só a partir da carga útil e a substring da carga útil sem os dois últimos caracteres. Como o caminho é análise pura sem relógio, fonte aleatória ou rede, a mesma entrada sempre produz o mesmo JSON na ferramenta gratuita do navegador e na API. A US$ 0,002 por solicitação bem-sucedida voce pode proteger importações em massa, formulários de cadastro e impressoras de etiquetas em lote sem negociar um nível sob medida.
Onde os dígitos de controle MOD 97-10 se encaixam em sistemas reais
Em cada fluxo o contrato é o mesmo: somente alfanumérico, calcular ou validar, JSON estruturado que voce pode testar com goldens, comportamento idêntico grátis no navegador ou via saldo pré-pago do KIT, e falha honesta quando a entrada não é alfanumérica.
Casos de integração
Gerar códigos de conta ou referência protegidos
Gere uma carga alfanumérica, chame o modo compute e armazene with_check para que cada código novo carregue dígitos finais ISO 7064 mod 97-10 antes de ser impresso ou enviado por e-mail.
Validar códigos digitados ou digitalizados na entrada
Quando um usuário ou scanner enviar um código completo, chame o modo validate e bloqueie a consulta quando valid for falso, mostrando expected_check_digits para ajudar a corrigir um erro de digitação.
Perguntas técnicas
Como calculo dígitos de controle mod 97-10 com esta API?
Faça POST com text definido como a carga útil (A-Z, 0-9) e mode compute (ou omita mode). A resposta inclui check_digits e with_check (carga útil mais os dois dígitos).
Como valido um código que já tem dígitos de controle?
Faça POST com a string alfanumérica completa e mode validate. A resposta inclui valid, check_digits, expected_check_digits e payload sem os dois últimos caracteres.