Проверка ИНН: алгоритм валидации по контрольной цифре
Валидация ИНН — обязательный этап обработки данных в любой системе, работающей с российскими реквизитами. Простая проверка длины номера недостаточна: необходимо убедиться, что контрольные цифры рассчитаны верно. В этой статье разберём алгоритм проверки по шагам, покажем примеры и обсудим типичные ошибки.
Зачем валидировать ИНН
ИНН вводится вручную в формы сотнями тысяч раз ежедневно — в бухгалтерских системах, банковских приложениях, на государственных порталах. При ручном вводе неизбежны опечатки: перестановка цифр, пропуск символа, лишний разряд. Валидация по контрольной цифре позволяет мгновенно отсеять подавляющее большинство ошибок ещё до отправки данных на сервер.
Качество данных напрямую влияет на бизнес-процессы. Некорректный ИНН может привести к ошибкам в налоговой отчётности, отказам в проведении платежей и проблемам при обмене документами с контрагентами.
Алгоритм проверки 10-значного ИНН
ИНН юридического лица состоит из 10 цифр. Последняя цифра является контрольной. Алгоритм проверки:
- Шаг 1. Убедитесь, что номер содержит ровно 10 цифр.
- Шаг 2. Возьмите весовые коэффициенты:
[2, 4, 10, 3, 5, 9, 4, 6, 8]. - Шаг 3. Умножьте каждую из первых 9 цифр ИНН на соответствующий коэффициент.
- Шаг 4. Сложите все произведения.
- Шаг 5. Вычислите остаток от деления суммы на 11.
- Шаг 6. Если остаток равен 10, контрольная цифра равна 0; иначе контрольная цифра равна остатку.
- Шаг 7. Сравните полученное значение с 10-й цифрой ИНН. Если совпадает — номер валиден.
Пример расчёта
Допустим, проверяем ИНН 7707083893:
7×2 + 7×4 + 0×10 + 7×3 + 0×5 + 8×9 + 3×4 + 8×6 + 9×8 = 14 + 28 + 0 + 21 + 0 + 72 + 12 + 48 + 72 = 267
267 mod 11 = 3 (поскольку 267 = 24 × 11 + 3)
Контрольная цифра — 3, совпадает с последней цифрой ИНН. Номер валиден.
Алгоритм проверки 12-значного ИНН
ИНН физического лица содержит 12 цифр и две контрольные цифры (11-ю и 12-ю). Проверка выполняется в два этапа:
Проверка 11-й цифры
Весовые коэффициенты: [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]. Умножьте первые 10 цифр на соответствующие коэффициенты, сложите результаты и возьмите остаток от деления на 11. Если остаток равен 10, контрольная цифра — 0.
Проверка 12-й цифры
Весовые коэффициенты: [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]. Умножьте первые 11 цифр на соответствующие коэффициенты, сложите и возьмите остаток от деления на 11. Правило для остатка, равного 10, то же самое.
ИНН считается валидным, если обе контрольные цифры совпали с расчётными значениями.
Частые ошибки при вводе ИНН
На практике пользователи допускают следующие типичные ошибки:
- Перестановка соседних цифр — самая распространённая опечатка. Контрольная сумма почти всегда ловит такие случаи.
- Неверная длина номера — ввод 11 или 9 цифр. Базовая проверка длины отсекает это ещё до расчёта контрольной суммы.
- Буквы в номере — иногда пользователи случайно переключают раскладку клавиатуры. Номер должен содержать только цифры.
- Путаница между ИНН физлица и организации — клиент вводит свой 12-значный ИНН в поле для 10-значного ИНН юрлица.
Интеграция валидации в код
При реализации валидации ИНН в коде рекомендуется придерживаться следующего порядка проверок:
- Удалите пробелы и другие нечисловые символы.
- Проверьте, что строка содержит только цифры.
- Проверьте длину: 10 или 12 символов.
- Рассчитайте контрольные цифры по алгоритму.
- Верните понятное сообщение об ошибке пользователю.
Если вы разрабатываете API, предусмотрите отдельный код ошибки для невалидного ИНН — это упростит отладку на стороне клиента.
Инструмент проверки
Для быстрой проверки ИНН без написания кода воспользуйтесь нашим валидатором ИНН. Он мгновенно проверит контрольные цифры и покажет результат. Если вам нужны тестовые номера для разработки, используйте генератор ИНН. Также рекомендуем ознакомиться с валидатором ОГРН — ещё одним важным реквизитом для работы с данными юридических лиц.