В конце цифровых идентификационных ключей GS1 фиксированной длины стоит контрольная цифра. Для её расчёта двигайтесь по предшествующим цифрам справа налево: крайнюю справа умножьте на 3, следующую на 1 и продолжайте чередовать. Итоговая цифра делает взвешенную сумму кратной десяти.

Привяжите веса к правому краю

При расчёте исключите позицию контрольной цифры. Начиная с крайней правой цифры данных, используйте веса 3, 1, 3, 1 и так далее. Привязка справа важна, потому что длины идентификаторов различаются. При проверке сначала отделите введённую последнюю цифру и примените ту же последовательность к остальным.

Дополните сумму до десятка

Сложите все произведения цифры на вес. Контрольная цифра равна (10 − остаток суммы по модулю 10) по модулю 10. Внешний модуль обрабатывает сумму, уже кратную десяти: результатом будет 0, а не 10. После добавления цифры полная взвешенная сумма оканчивается нулём.

Пример: для 629104150021 контрольная цифра равна 3

Для двенадцати цифр 629104150021 применяйте справа веса 3, 1, 3, 1 и продолжайте чередование. Произведения равны 6, 6, 9, 3, 0, 12, 1, 15, 0, 0, 2 и 3; их сумма — 57. Следующий десяток — 60, поэтому 60 − 57 = 3. Добавьте 3 и получите полный GTIN-13: 6291041500213.

Сохраняйте начальные нули и точную длину

Идентификатор — строка цифр, а не обычное целое число. Удаление начального нуля меняет заявленную длину и может сдвинуть все чередующиеся веса. Буквы, знаки, десятичные разделители, недостающие и лишние цифры нужно отклонять, а не исправлять незаметно.