Валидация и проверка контрольного числа ИНН

На JavaScript
На PHP

Описание

ИНН (идентификационный номер налогоплательщика) организации состоит из 10 цифр:

  • 1-4-я цифры:
    • для российской организации — код налогового органа, который присвоил ИНН;
    • для иностранной организации — индекс, определяемый Федеральной налоговой службой;
  • 5-9-я цифры:
    • для российской организации — порядковый номер записи о лице в территориальном разделе Единого государственного реестра налогоплательщиков налогового органа, который присвоил ИНН;
    • для иностранной организации — код иностранной организации (КИО) согласно Справочнику «Коды иностранных организаций»;
  • 10-я цифра — контрольное число.

ИНН физического лица (индивидуального предпринимателя) состоит из 12 цифр:

  • 1-4-я цифры — код налогового органа, который присвоил ИНН;
  • 5-10-я цифры — порядковый номер записи о лице в территориальном разделе Единого государственного реестра налогоплательщиков налогового органа, который присвоил ИНН;
  • 11-12-я цифры — контрольное число.

Маски ввода

Для 10-значного ИНН:

  • XXXXXXXXXX — маска ввода без разделителей.
  • XXXX-XXXXX-X — маска ввода с разделителями.

Для 12-значного ИНН:

  • XXXXXXXXXXXX — маска ввода без разделителей.
  • XXXX-XXXXXX-XX — маска ввода с разделителями.

Алгоритм проверки контрольного числа

10-значный ИНН

  1. Вычислить сумму произведений цифр ИНН (с 1-й по 9-ю) на следующие коэффициенты — 2, 4, 10, 3, 5, 9, 4, 6, 8 (т.е. 2 * ИНН[1] + 4 * ИНН[2] + ...).
  2. Вычислить остаток от деления полученной суммы на 11.
  3. Сравнить младший разряд полученного остатка от деления с младшим разрядом ИНН. Если они равны, то ИНН верный.

12-значный ИНН

  1. Вычислить 1-ю контрольную цифру:
    1. Вычислить сумму произведений цифр ИНН (с 1-й по 10-ю) на следующие коэффициенты — 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 (т.е. 7 * ИНН[1] + 2 * ИНН[2] + ...).
    2. Вычислить младший разряд остатка от деления полученной суммы на 11.
  2. Вычислить 2-ю контрольную цифру:
    1. Вычислить сумму произведений цифр ИНН (с 1-й по 11-ю) на следующие коэффициенты — 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 (т.е. 3 * ИНН[1] + 7 * ИНН[2] + ...).
    2. Вычислить младший разряд остатка от деления полученной суммы на 11.
  3. Сравнить 1-ю контрольную цифру с 11-й цифрой ИНН и сравнить 2-ю контрольную цифру с 12-й цифрой ИНН. Если они равны, то ИНН верный.

Реализация на JavaScript

Исходный код доступен на GitHub по этой ссылке (функция validateInn).

Реализация на PHP

Исходный код доступен на GitHub по этой ссылке (метод validateInn).