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.