Las claves numéricas GS1 de longitud fija terminan con un dígito de control. Para calcularlo, recorre los datos de derecha a izquierda: multiplica el último por 3, el siguiente por 1 y alterna. El dígito final hace que el total ponderado sea divisible por diez.
Ancla los pesos en el extremo derecho
Al generar, excluye la posición del dígito de control. Desde el último dígito de datos usa 3, 1, 3, 1, sucesivamente. Anclar a la derecha importa porque las longitudes cambian. Al validar, separa primero el dígito final y aplica la misma secuencia al cuerpo.
Completa la suma hasta un múltiplo de diez
Suma cada producto dígito por peso. El control es (10 − suma mod 10) mod 10. El módulo exterior resuelve una suma ya divisible por diez: devuelve 0, no 10. Al añadirlo, el total ponderado completo termina en cero.
Conserva los ceros iniciales y la longitud
Un identificador es una cadena de dígitos, no un entero común. Quitar un cero inicial cambia la longitud declarada y puede desplazar todos los pesos. Hay que rechazar letras, signos, separadores, dígitos ausentes o sobrantes, no repararlos en silencio.