FreeToGenerate.com

Confira um ISIN, veja o dígito verificador sair da conta e descubra o erro de digitação ao qual a norma é cega. Nada é enviado.

Doze caracteres. Espaços e hifens são ignorados, e minúsculas servem.

Experimente

O dígito verificador confere

Prefixo
GBUnited Kingdom
Número nacional
000263494
Dígito verificador
6

Sobre o que o dígito verificador é calculado

1611000263494

Cada letra vira dois dígitos, do A como 10 até o Z como 35, e o cálculo de Luhn roda sobre isso. É por isso que a conta nunca parece bater com o código que você digitou.

Este código tem um gêmeo indetectável

BG0002634946 também é válido, e é Bulgaria.

Trocar as duas primeiras letras nunca pode mudar o dígito verificador, então nenhuma validação vai pegar esse erro de digitação específico. Não é falha desta ferramenta: é aritmética, explicada abaixo.

Todos os pares de prefixo que podem ser trocados sem detecção

Os dois membros de cada par existem de verdade, então um prefixo trocado não parece errado. São essas as trocas às quais o dígito verificador é cego por construção. Quarenta e três são pares de códigos de país ISO 3166; a linha a mais é XS, o prefixo dos eurobônus, que invertido vira São Martinho.

CódigosLugares
AG / GAAntigua & Barbuda / Gabon
AL / LAAlbania / Laos
AM / MAArmenia / Morocco
AQ / QAAntarctica / Qatar
AS / SAAmerican Samoa / Saudi Arabia
AU / UAAustralia / Ukraine
AZ / ZAAzerbaijan / South Africa
BG / GBBulgaria / United Kingdom
BL / LBSt. Barthélemy / Lebanon
BS / SBBahamas / Solomon Islands
CL / LCChile / St. Lucia
CM / MCCameroon / Monaco
CN / NCChina / New Caledonia
CV / VCCape Verde / St. Vincent & Grenadines
DM / MDDominica / Moldova
EG / GEEgypt / Georgia
ER / REEritrea / Réunion
ES / SESpain / Sweden
FM / MFMicronesia / St. Martin
GM / MGGambia / Madagascar
GN / NGGuinea / Nigeria
GP / PGGuadeloupe / Papua New Guinea
GS / SGSouth Georgia & South Sandwich Islands / Singapore
GT / TGGuatemala / Togo
GU / UGGuam / Uganda
HK / KHHong Kong SAR China / Cambodia
HM / MHHeard Island & McDonald Islands / Marshall Islands
HT / THHaiti / Thailand
IL / LIIsrael / Liechtenstein
IN / NIIndia / Nicaragua
IS / SIIceland / Slovenia
KM / MKComoros / North Macedonia
KP / PKNorth Korea / Pakistan
LS / SLLesotho / Sierra Leone
LT / TLLithuania / Timor-Leste
MO / OMMacao SAR China / Oman
MP / PMNorthern Mariana Islands / St. Pierre & Miquelon
MS / SMMontserrat / San Marino
MT / TMMalta / Turkmenistan
MU / UMMauritius / U.S. Outlying Islands
MZ / ZMMozambique / Zambia
NP / PNNepal / Pitcairn Islands
RS / SRSerbia / Suriname
SX / XSSint Maarten / Euroclear or Clearstream

Também disponível em: English · Español · Français · العربية

Validador de ISIN

Valide um ISIN pela ISO 6166, veja a aritmética por trás do dígito verificador e encontre a transposição que nenhum dígito verificador consegue detectar.

O que é um ISIN

Um ISIN é o código de doze caracteres que identifica um valor mobiliário específico no mundo inteiro. É definido pela ISO 6166 e tem três partes: um prefixo de duas letras, um número nacional de nove caracteres atribuído pela agência de codificação local e um único dígito verificador no fim.

O prefixo é quase sempre um código de país ISO 3166, então uma ação americana começa com US e uma britânica com GB. Há algumas exceções reservadas, e a importante é XS, usada para valores internacionais liquidados via Euroclear ou Clearstream. A maioria dos eurobônus carrega essa, de modo que qualquer validador que exija um país no prefixo está errado sobre uma fatia enorme do mercado.

O dígito verificador é o algoritmo de Luhn, o mesmo dos números de cartão. Só que ele não é aplicado ao ISIN como você o lê. Primeiro cada letra é trocada por dois dígitos, do A como 10 até o Z como 35, e a soma de Luhn corre sobre essa cadeia expandida. O US0378331005 da Apple vira 3028037833100 antes de qualquer soma acontecer, e é por isso que a conta nunca parece bater com o código à sua frente.

Como usar

  1. Cole ou digite o ISIN. Espaços, hifens e minúsculas não atrapalham. Doze caracteres é a única exigência.
  2. Leia o detalhamento. Ele identifica o prefixo, separa o número nacional e mostra a cadeia de dígitos expandida sobre a qual o dígito verificador é realmente calculado.
  3. Veja se o seu código tem um gêmeo. Se inverter as duas primeiras letras der outro prefixo real, a ferramenta mostra esse código, porque ele também é válido e nenhum dígito verificador do mundo vai dizer qual dos dois você queria.

A transposição que nunca pode ser pega

Um dígito verificador existe para pegar erros de digitação, e o erro mais comum é trocar dois caracteres vizinhos. O ISIN pega quase todos. Existe um tipo que ele não pega, e a falha é total, não ocasional.

Trocar duas letras vizinhas nunca muda o dígito verificador. Não é raro nem quase nunca: é nunca. Testamos mais de dezoito mil transposições entre letras e todas, sem exceção, produziram um código que continua válido. O motivo é aritmético. Luhn dobra um dígito a cada dois contando da direita, e uma letra ocupa exatamente duas posições depois de expandida. Mover um bloco de dois dígitos em duas posições deixa cada um dos seus dígitos do mesmo lado dessa alternância, então a contribuição dele para a soma não muda, então a soma não muda, então o dígito verificador não muda.

Agora repare onde ficam as letras. Os dois primeiros caracteres de todo ISIN são o prefixo de país, e são sempre letras. A única transposição a que esse esquema é estruturalmente cego está, portanto, na frente de todo código já emitido. E como 43 pares de códigos ISO 3166 são o inverso um do outro, o prefixo corrompido costuma nomear um país real em vez de parecer bobagem.

O exemplo trabalhado é um papel real. GB0002634946 é um instrumento britânico, e BG0002634946 são os mesmos dígitos sob o prefixo da Bulgária. Os dois passam. Espanha e Suécia fazem o mesmo, como ES e SE, e também Hong Kong e Camboja, Israel e Liechtenstein, Malta e Turcomenistão, Coreia do Norte e Paquistão. A lista completa está na tabela acima do artigo.

Vale ser preciso sobre o quanto isso é excepcional. Diante dos outros dígitos verificadores, o ISIN deixa passar apenas 1,90% das transposições entre dígitos, e são justamente as trocas de 0 e 9 que o algoritmo de Luhn sempre deixou escapar. Deixa passar cerca de 11% das trocas entre uma letra e um dígito, que movem os blocos um número ímpar de posições e por isso costumam mudar a soma. O caso letra com letra é o que chega a cem por cento.

Limites honestos e como isto foi conferido

Um dígito verificador que confere significa que os doze caracteres são coerentes entre si. Não significa que o papel exista, que seja negociável ou que o número nacional tenha sido emitido. Qualquer um constrói um ISIN bem formado em segundos, e esta página faz exatamente isso para os botões de exemplo. Aqui não se consulta registro nenhum, porque não existe um público e gratuito para consultar, e uma ferramenta que insinuasse o contrário estaria mentindo sobre o que sabe.

O dígito verificador também é mais fraco do que parece contra um único caractere errado: pega cerca de nove em dez e deixa o resto, o que é o comportamento normal de qualquer dígito único módulo dez, não um defeito próprio do ISIN.

A implementação está fixada em cinco ISINs publicados de três países em vez de em si mesma, e a tabela de países é o mesmo conjunto de dados ISO 3166 por trás da página de códigos de país deste site, então os prefixos aceitos aqui e os códigos listados lá não têm como divergir. São 910 verificações no total. O resultado letra com letra é conferido duas vezes, uma varrendo milhares de códigos gerados e outra como a álgebra que o obriga, e vem com um controle negativo: trocas entre letra e dígito são detectadas em cerca de 89% das vezes, sem o que a afirmação de que tudo se conserva valeria igualmente para uma função que ignorasse a entrada.

Uma armadilha que merece ser citada para quem for implementar por conta própria: é tentador alinhar a duplicação aos doze caracteres originais em vez de à cadeia expandida. Isso acerta com frequência suficiente para sobreviver a um teste superficial e discorda da norma em cerca de nove ISINs a cada dez.

Por que é grátis?

Isto são algumas dezenas de linhas de aritmética e uma tabela de consulta, rodando na aba que você já tem aberta. Nenhum servidor vê o código que você digita, então não há o que cobrar nem conta para criar.

Nada do que você digitar é enviado, guardado ou registrado. Carteiras e ordens são exatamente o tipo de coisa que se cola num validador, então isso merece ser dito com clareza em vez de presumido.