0 votos

En este vinculo podras ver de que se trata este identificador: http://www.isni.org/

Un ISNI se compone de 16 dígitos, el último caracter es un caracter de verificación. El caracter de verificación puede ser un dígito decimal o el carácter "X". Por lo tanto, hay cien mil millones de combinaciones posibles.
EJEMPLO: ISNI 0000 0001 2103 2683 

Necesito saber cual es el algoritmo para el calculo.

Muchas gracias.

por en General

2 Respuestas

0 votos

Hola Laura.

Tienes varios ejemplos de como se calcula en: https://en.wikipedia.org/wiki/International_Securities_Identification_Number

por
0 votos
El ISNI que consulto tiene 16 dígitos. Su norma es 27729:2012. Dejé un vínculo para que se vieran el identificador. El ISIN es muy diferente a lo que consulté (se compone de 12 dígitos, lo regula una norma diferente, etc.). Me puedes ayudar por favor? Gracias de nuevo.
por

Según la documentación de la norma 27729:2012 (https://www.sis.se/api/document/preview/914507/), que hace referencia para el cálculo a la norma ISO 7064 (https://www.sis.se/api/document/preview/914507/). Un cálculo de ejemplo 0000 0001 2103 2683 podría ser (el cálculo es el de Lunh, siguiendo https://jarroba.com/digito-de-control-deteccion-de-errores/ y más concretamente https://en.wikipedia.org/wiki/International_Securities_Identification_Number):

  1. Dado el número de 15 caracteres 0000 0001 2103 268
  2. Separación de los grupos pares e impares: (0,0,0,0,2,0,2,8) y (0,0,0,1,1,3,6)
  3. Múltiplicación x 2 del grupo cuyo número está más a la derecha: 0,0,0,0,4,0,4,16
  4. Suma de los caracteres de más de un dígito: 0,0,0,0,4,0,4,1+6 = 0,0,0,0,4,0,4,7
  5. Suma de ambos grupos: (0+0+0+0+4+0+4+7) + (0+0+0+1+1+3+6) = 15 + 11 = 26
  6. Módulo 11 (porque el dígito de control es de 0 a 9 y X, son 11 caracteres), pero según la ISO 7064 se utiliza mod(11 - 2) = 9: 26 mod (11 - 2) = 8
  7. Sustraer: 11 - 8 = 3
  8. Calculo por si resto cero: 3 mod 11 = 3

Sería interesante disponer del Anexo A de 27729:2012 (esa parte de la normativa es de pago) para comprobar la validez de la última parte, pues los puntos 6, 7 y 8 me he basado en Lunh normal para el cálculo y puede que haya que restar (11 - 2) en vez de a 11, de cualquier manera se quedan fuera 2 caracteres de control que no se usarían nunca.

No funciona para ningun caso mas que el que has propuesto de ejemplo. El costo del Anexo A es muy costoso, no puedo costearlo solo para una clase de consulta. Es por ello que solicitaba asistencia. Gracias de todos modos.
Lo que te indicaba antes es que si juegas con el módulo en los puntos 6, 7 y 8 (cambiando de (11-2) a 11 ) o bien funciona para el ISIN que has pasado o para el que viene en el ejemplo de la documentación (puede que ambos se calculen de diferente manera). Si tienes más ejemplos reales puedes intentar sacar la fórmula deduciendo estos puntos.

En el anexo A, según pone, viene explicado este cálculo que nos faltaría para completar.

Sin más información o ejemplos no te puedo ayudar mucho más.