. ИИН. Алгоритм расчета и проверки
ИИН. Алгоритм расчета и проверки

ИИН. Алгоритм расчета и проверки

В моих проектах часто необходимо вносить данные по клиентам, которые обязательно сопровождаются внесением данных ИИН. Долгое время я собирал данные о том, что такое ИИН и как проверять правильность его ввода. На просторах интернета уже есть несколько постов с необходимой информацией, но, к сожалению, часто бывает, что информация неверная, или не подкреплена никакими официальными источниками.

Сегодня мы с вами попытаемся разобраться в этом вопросе с точки зрения Казахстанского законодательства, а также набросаем простой скрипт проверки ИИН на Javascript.

ИИН - индивидуальный идентификационный номер. Это понятие очень схоже с другой аббревиатурой: БИН - бизнес идентификационный номер. Мы будем рассматривать оба понятия.

Мы не будем вдаваться в подробности о том, когда началось зарождение идеи ИИН/БИН, а сразу перейдем к первому важному в этом вопросе постановлению.

Постановление Правительства Республики Казахстан от 11 июня 2003 года №565 "Об утверждении Программы перехода на единый номер физического (юридического) лица (идентификационный номер (бизнес-идентификационный номер) в целях создания Национальных реестров Республики Казахстан"

Здесь нас интересуют подразделы 2, 3, 4 раздела 5.

2. Структура ИИН (БИН) За основу структуры ИИН предлагается взять двенадцатизначный идентификационный код гражданина, используемый в настоящее время Министерством внутренних дел Республики Казахстан. По информации Министерства внутренних дел похожие структуры кода применяются в Дании, Финляндии, Японии, Германии, США, Франции, Кувейте, Малайзии, Мальте, Ботсване, Кипре, Египте, Латвии, Литве, Эстонии, Белоруссии и других странах. В Казахстане данный код используется с 1997 года. Преимущество этого кода заключается в его хорошей запоминаемости и информативности для физических лиц, поскольку в структуре действующего идентификационного кода гражданина присутствуют в определенной комбинации известные гражданину сведения, такие как дата, месяц и год рождения, а также пол и век физического лица. При разработке структуры БИН предлагается использовать двенадцатиразрядный код, контрольный разряд которого будет рассчитываться аналогично расчету контрольного разряда ИИН. В структуре ИИН (БИН) предлагается использовать только цифровые значения. Структура представляет собой характеристику последовательности цифр слева направо. Для удобства описания несколько разрядов, имеющих сходную и (или) одинаковую характеристику, могут быть объединены в один фасет.

3. Алгоритм генерирования ИИН Предлагается следующий алгоритм генерирования ИИН: 1) первый фасет - содержит 6 разрядов (с а1 по а6) и характеризует год (две последние цифры), месяц и дату рождения физического лица; 2) второй фасет - содержит 1 (а7) разряд и характеризует пол физического лица и век его рождения. Причем при определении значения разряда для мужчин используются нечетные цифры, а для женщин - четные цифры. Конкретные значения данного разряда выглядят следующим образом: 1 - для мужчин, родившихся в 19 веке; 2 - для женщин, родившихся в 19 веке; 3 - для мужчин, родившихся в 20 веке; 4 - для женщин, родившихся в 20 веке; 5 - для мужчин, родившихся в 21 веке; 6 - для женщин, родившихся в 21 веке. Следовательно, в данном разряде имеются резервные значения 7, 8, 9 и 0; 3) третий фасет - содержит 4 разряда (с а8 по а11) и характеризует порядковый номер регистрации в системе. По данным Агентства по статистике Республики Казахстан максимальное количество родившихся в один день (начиная с 1999 года) - 1229 человек, поэтому 4 знака для порядкового номера регистрации вполне достаточно. Порядковый номер регистрации проставляется сплошной нумерацией в рамках одной группы (года рождения); 4) четвертый фасет - содержит 1 разряд (а12) и является контрольным разрядом ИИН. Алгоритм расчета контрольного разряда ИИН приведен в параграфе 5 главы 5 Программы.

Индивидуальные предприниматели, осуществляющие свою деятельность в форме личного предпринимательства (далее - ИП(Л)), будут использовать ИИН, который был присвоен физическому лицу при рождении.

4. Алгоритм генерирования БИН Предлагается следующий алгоритм генерирования БИН: 1) первый фасет - содержит 4 разряда (с а1 по а4) и характеризует год (две последние цифры) и месяц регистрации юридического лица или индивидуального предпринимателя, осуществляющего деятельность на основе совместного предпринимательства (далее - ЮЛ или ИП(С)); 2) второй фасет - содержит 1 разряд (а5) и характеризует тип ЮЛ или ИП(С). Кроме того, алгоритм задания значения данного разряда также используется для исключения возможности совпадения БИН с ИИН. Поскольку в структуре ИИН а5 (пятый разряд) означает первую цифру даты рождения, то, учитывая, что дата рождения может начинаться только с 0, 1, 2 или 3 (например, 01, 11, 21, 31), обязательным условием в генерировании в структуре БИН а5 (пятого разряда) будет исключение использования цифр 0, 1, 2 и 3. Предлагается использовать следующие конкретные значения данного разряда: 4 - для юридических лиц-резидентов; 5 - для юридических лиц-нерезидентов; 6 - для индивидуальных предпринимателей, осуществляющих деятельность на основе совместного предпринимательства. Следовательно, в данном разряде имеются резервные значения 7, 8 и 9; 3) третий фасет - содержит 1 разряд (а6) и характеризует специальный признак, являющийся дополнительной детализацией разряда а5: 0 - признак головного подразделения ЮЛ или ИП(С); 1 - признак филиала ЮЛ или ИП(С); 2 - признак представительства ЮЛ или ИП(С); 3 - признак иного обособленного структурного подразделения ЮЛ или ИП(С); 4 - признак крестьянского (фермерского) хозяйства, осуществляющего деятельность на основе совместного предпринимательства; 4) четвертый фасет - содержит 5 разрядов (с а7 по а11) и характеризует порядковый номер регистрации в системе ЮЛ или ИП(С), а также их структурных подразделений; 5) пятый фасет - содержит 1 разряд (а12) и является контрольным разрядом БИН. Алгоритм расчета контрольного разряда БИН приведен в параграфе 5 главы 5 Программы и аналогичен расчету контрольного разряда ИИН.

Мы не стали брать из этого постановления подраздел 5 раздела 5, где приводится алгоритм проверки контрольного разряда (a12), потому что он был изменен в другом постановлении.

Постановление Правительства Республики Казахстан от 30 апреля 2007 года № 352 "О внесении изменений и дополнений в некоторые решения Правительства Республики Казахстан"

Здесь нас интересует часть пункта 11 - алгоритм расчета значения контрольного разряда:

подраздел 5 изложить в следующей редакции: «5. Алгоритм расчета значения контрольного разряда В целях осуществления контроля и снижения ошибок клавиатурного ввода в составе ИИН (БИН) предусматривается наличие контрольного 12-го разряда, при расчете которого будет использоваться следующий алгоритм в два цикла: а12=(а1*b1+а2*b2+а3*b3+а4*b4+а5*b5+а6*b6+а7*b7+а8*b8+а9*b9+a10*b10+a11*b11) mod 11, где: ai - значение i-гo разряда; bi - вес i-гo разряда. разряд ИИН: 1 2 3 4 5 6 7 8 9 10 11 вес разряда: 1 2 3 4 5 6 7 8 9 10 11. 1. Если полученное число равно 10, то расчет контрольного разряда производится с другой последовательностью весов: разряд ИИН: 1 2 3 4 5 6 7 8 9 10 11 вес разряда: 3 4 5 6 7 8 9 10 11 1 2. 2. Если полученное число также равно 10, то данный ИИН не используется. 3. Если полученное число имеет значение от 0 до 9, то данное число берется в качестве контрольного разряда.».

В итоге у нас вполне достойное понимание того, что такое ИИН, и как можно проверить правильность его ввода.

Привожу пример алгоритма на javascript, который позволит проверить правильность ввода ИИН:

📎📎📎📎📎📎📎📎📎📎