php проверка инн на корректность
Проверка ИНН, КПП, ОГРН, ОГРНИП, БИК, к/с, р/с на PHP и JavaScript
Проверка ИНН
Алгоритм проверки ИНН 10 знаков:
Алгоритм проверки ИНН 12 знаков.
Функция для проверки правильности ИНН на PHP
Функция для проверки правильности ИНН на JavaScript
API проверки ИНН
Для проверки ИНН на валидность, включая контрольный разряд, вызовите следующее API:
Этот API проверяет только валидность номера, но не проверяет фактическое наличие организации. Для проверки организации используйте API получения данных об организации по ИНН, ОГРН
Проверка КПП
Для крупных налогоплательщиков это не так, поэтому тупая подстановка недопустима. У индивидуальных предприниателей (ИП) КПП нет, если программа требует, ставьте 0.
API проверки КПП
Для проверки ИНН на валидность, включая контрольный разряд, вызовите следующее API:
https://htmlweb.ru/json/validator/kpp/123123123
Если КПП корректный вы получите:
<"status":200>
Если неверное, то различные варианты:
<"status":400,"error":"КПП должен состоять из 9 цифр">
Проверка ОГРН и ОГРНИП на PHP
ОГРН (основной государственный регистрационный номер) состоит из 13 или 15 цифр. Алгоритм для 13-ти цифр:
Функция для проверки правильности ОГРН и ОГРНИП на JavaScript
API проверки ОГРН
Для проверки ОГРН на валидность, включая контрольный разряд, вызовите следующее API:
https://htmlweb.ru/json/validator/ogrn/123123123
Если ОГРН корректный вы получите:
<"status":200>
Если неверное, то различные варианты:
<"status":400,"error":"ОГРН должен состоять из 13 или 15 цифр">
Проверка корреспондентского счета (к/с) и БИК банка на корректность и взаимное соответствие на PHP
API проверки БИК банка на корректность
Для проверки к/с и БИК банка на валидность, включая контрольный разряд, вызовите следующее API:
API проверки корреспондентского счета (к/с) и БИК банка на корректность и взаимное соответствие
Для проверки к/с и БИК банка на валидность, включая контрольный разряд, вызовите следующее API:
Проверка расчетного счета (р/с) и БИК банка на корректность и взаимное соответствие на PHP
Проверка расчетного счета (р/с) и БИК банка на корректность и взаимное соответствие на JavaScript
API проверки расчетного счета (р/с) и БИК банка на корректность и взаимное соответствие
Для проверки р/с и БИК банка на валидность, включая контрольный разряд, вызовите следующее API:
Две функции для проверки валидности ИНН, на пхп и яваскрипте
Не так давно столкнулся с проблемой — каким образом выявить неправильные ИННы из довольно большого списка? Поначалу я попытался сделать ограничение на длину вводимого номера не меньше шести цифр. Но это исключило лишь совсем неправильные записи. Важнее было исключить опечатки. Почитав об ИНН на википедии, я выяснил, что сам номер содержит в себе контрольное число, по которому с большой вероятностью можно выявить ошибочные записи. После этого родились две функции, которые работают по разные стороны сервера 🙂
Функция на пхп с успехом была протестирована на более чем тысяче записей и показала очень впечатляющий результат. Функция на яваскрипте возникла в результате копипаста из пхп и, вероятно, также успешно работает (я проверял лишь на паре записей).
Зачем нужен ИНН?
У Вас возник вопрос: «А чего такого ценного в ИНН, что его надо так проверять?». Ответ прост — только ИНН гарантирует правильную автоматизацию безналичных денежных расчётов между двумя юридическими лицами. То есть, если Вы автоматизируете крупное предприятие, которое завязано на безналичном расчёте, то только ИНН, как уникальный идентификатор юр. лица, даст гарантию правильного учёта поступивших/отправленных денежных средств.
При этом существует серьёзная проблема — если ИНН заводится руками, то велика вероятность ошибки. Такие ошибки легко сделать, но трудно выявить, хотя именно на ИНН строится вся система бухгалтерских счетов на оплату. Именно поэтому очень важно отследить правильность ввода ИНН на начальном этапе.
Примеры использования
Пример проверки на PHP:
Пример проверки ИНН при вводе в текстовое поле средствами JavaScript:
Дата публикации: 4 августа 2009 года.
© 2021 Антон Прибора. При копировании материалов с сайта, пожалуйста, указывайте ссылку на источник.
Проверка ИНН
Алгоритм проверки ИНН 10 знаков:
1. Вычисляется контрольная сумма со следующими весовыми коэффициентами: (2,4,10,3,5,9,4,6,8,0)
2. Вычисляется контрольное число как остаток от деления контрольной суммы на 11
3. Если контрольное число больше 9, то контрольное число вычисляется как остаток от деления контрольного числа на 10
4. Контрольное число проверяется с десятым знаком ИНН. В случае их равенства ИНН считается правильным.
Алгоритм проверки ИНН 12 знаков.
1. Вычисляется контрольная сумма по 11-ти знакам со следующими весовыми коэффициентами: (7,2,4,10,3,5,9,4,6,8,0)
2. Вычисляется контрольное число(1) как остаток от деления контрольной суммы на 11
3. Если контрольное число(1) больше 9, то контрольное число(1) вычисляется как остаток от деления контрольного числа(1) на 10
4. Вычисляется контрольная сумма по 12-ти знакам со следующими весовыми коэффициентами: (3,7,2,4,10,3,5,9,4,6,8,0).
5. Вычисляется контрольное число(2) как остаток от деления контрольной суммы на 11
6. Если контрольное число(2) больше 9, то контрольное число(2) вычисляется как остаток от деления контрольного числа(2) на 10
7. Контрольное число(1) проверяется с одиннадцатым знаком ИНН и контрольное число(2) проверяется с двенадцатым знаком ИНН.
В случае их равенства ИНН считается правильным.
Получите электронную выписку из ЕГРЮЛ или ЕГРИП для Арбитражного суда за 15 минут, не выходя из офиса.
Выписки из ЕГРЮЛ
Разобраться в наиболее частых ситуациях, в которых необходимо использование выписок, Вы можете, прочитав наши материалы по ссылке:
Все права защищены
111396, г.Москва, а/я 86,
ООО «Справочная Служба Юридических Лиц»
Формула проверки ИНН для Sharepoint
Заказчик поставил задачу на создание формы InfoPath 2010 для Sharepoint
форма содержит набор полей которые можно увидеть на скриншоте, среди них стоит отметить поле ИНН
Ранее не приходилось делал проверку полей ИНН и КПП на соответствие.
Правила проверки
Алгоритм проверки ИНН
1.Алгоритм проверки 10-го значного ИНН.
ИНН.10. 1)Находим произведения первых 9-ти цифр ИНН на специальные множители соответственно. 9 множителей ( 2 4 10 3 5 9 4 6 8 ).
ИНН.10. 2) Складываем все 9-ть получившихся произведений.
ИНН.10. 3) Получившуюся сумму делим на число 11 и извлекаем целую часть частного от деления.
ИНН.10. 4) Умножаем получившееся число на 11.
ИНН.10. 5) Сравниваем числа получившиеся на шаге 2 и шаге 4, их разница, и есть контрольное число, которое и должно равняться 10-й цифре в ИНН. (Если контрольное число получилось равным 10-ти, в этом случае принимаем контрольное число равным 0.)
2.Алгоритм проверки 12-го значного ИНН.
ИНН.12. 1)Находим произведения первых 10-ти цифр ИНН на специальные множители соответственно (10-ю цифру принимаем за 0). 10 множителей ( 7 2 4 10 3 5 9 4 6 8 ).
ИНН.12. 2) Складываем все 10-ть получившихся произведений.
ИНН.12. 3) Получившуюся сумму делим на число 11 и извлекаем целую часть частного от деления.
ИНН.12. 4) Умножаем получившееся число на 11. ИНН.12. 5) Сравниваем числа получившиеся на шаге 2 и шаге 4, их разница, и есть первое контрольное число, которое и должно равняться 11-й цифре в ИНН.(Если контрольное число получилось равным 10-ти, в этом случае принимаем контрольное число равным 0.) Если получившееся число не не равно 11-ой цифре ИНН, значит ИНН не верный, если же совпадает, тогда высчитываем следующее контрольное число, которое должно быть равным 12-ой цифре ИНН
ИНН.12. 6)Находим произведения первых 11-ти цифр ИНН на специальные множители соответственно (10-ю цифру принимаем за 0). 11 множителей ( 3 7 2 4 10 3 5 9 4 6 8 ).
ИНН.12. 7) Складываем все 11-ть получившихся произведений.
ИНН.12. 8) Получившуюся сумму делим на число 11 и извлекаем целую часть частного от деления.
ИНН.12. 9) Умножаем получившееся число на 11.
ИНН.12. 10) Сравниваем числа получившиеся на шаге 7 и шаге 9, их разница, и есть контрольное число, которое и должно равняться 12-й цифре в ИНН. (Если контрольное число получилось равным 10-ти, в этом случае принимаем контрольное число равным 0.) Если высчитанное число равно 12-ой цифре ИНН, и на первом этапе все контрольное число совпало с 11-ой цифрой ИНН, следовательно ИНН считается верным.
Формулы вычисляемых полей в Microsoft SharePoint Foundation основаны на функциях и синтаксисе Microsoft Excel
Описание: http://msdn.microsoft.com/ru-ru/library/bb862071(v=office.14).aspx
А это значит что очень много можно сделать без программирования, просто указывая нужные формулы в столбцах.
Правила составления выражений для валидации полей, практически такие же.
Из доступных примеров проверки ИНН в Excel, мне удалось найти следующую формулу, на ресурсах посвященных Excel.
=ЕСЛИ(ДЛСТР(A1)=10;ЕСЛИ(ЕСЛИ(СУММПРОИЗВ((ПСТР(A1;СТРОКА($1:$10);1)*1)*<2:4:10:3:5:9:4:6:8:0>)-ЦЕЛОЕ((СУММПРОИЗВ((ПСТР(A1;СТРОКА($1:$10);1)*1)*<2:4:10:3:5:9:4:6:8:0>)/11))*11>10;0;СУММПРОИЗВ((ПСТР(A1;СТРОКА($1:$10);1)*1)*<2:4:10:3:5:9:4:6:8:0>)-ЦЕЛОЕ((СУММПРОИЗВ((ПСТР(A1;СТРОКА($1:$10);1)*1)*<2:4:10:3:5:9:4:6:8:0>)/11))*11)=ПСТР(A1;10;1)*1;»верно»;»неверно»);ЕСЛИ(СУММПРОИЗВ(ЕСЛИ(ЕСЛИ(СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<7:2:4:10:3:5:9:4:6:8:0:0>)-ЦЕЛОЕ(СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<7:2:4:10:3:5:9:4:6:8:0:0>)/11)*11=10;0;СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<7:2:4:10:3:5:9:4:6:8:0:0>)-ЦЕЛОЕ(СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<7:2:4:10:3:5:9:4:6:8:0:0>)/11)*11)=ПСТР(A1;11;1)*1;1;0);ЕСЛИ(ЕСЛИ(СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<3:7:2:4:10:3:5:9:4:6:8:0>)-ЦЕЛОЕ(СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<3:7:2:4:10:3:5:9:4:6:8:0>)/11)*11=10;0;СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<3:7:2:4:10:3:5:9:4:6:8:0>)-ЦЕЛОЕ(СУММПРОИЗВ(—(ПСТР(A1;СТРОКА($1:$12);1));<3:7:2:4:10:3:5:9:4:6:8:0>)/11)*11)=ПСТР(A1;12;1)*1;1;0))=1;»верно»;»не верно»))
Безусловно формула нуждается в переработке и содержит диапазоны, а при их удалении перестает работать.
При этом возможность закончить форму без программирования, остается очень вкусной.
В качестве хаба публикации я также иронично указал, ненормальное программирование, так как пока мне не удалось найти проверку ИНН для Sharepoint.
О песочнице
Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.
Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.
Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.
О модерации
Не надо пропускать:
Проверить инн на корректность
Проверка ИНН, КПП, ОГРН, ОГРНИП, БИК, к/с, р/с на PHP и JavaScript
Проверка ИНН
Алгоритм проверки ИНН 10 знаков:
Алгоритм проверки ИНН 12 знаков.
Функция для проверки правильности ИНН на PHP
Функция для проверки правильности ИНН на JavaScript
API проверки ИНН
Для проверки ИНН на валидность, включая контрольный разряд, вызовите следующее API:
Этот API проверяет только валидность номера, но не проверяет фактическое наличие организации. Для проверки организации используйте API получения данных об организации по ИНН, ОГРН
Проверка КПП
Для крупных налогоплательщиков это не так, поэтому тупая подстановка недопустима. У индивидуальных предприниателей (ИП) КПП нет, если программа требует, ставьте 0.
API проверки КПП
Для проверки ИНН на валидность, включая контрольный разряд, вызовите следующее API:
https://htmlweb.ru/json/validator/kpp/123123123
Если КПП корректный вы получите:
Если неверное, то различные варианты:
Проверка ОГРН и ОГРНИП на PHP
ОГРН (основной государственный регистрационный номер) состоит из 13 или 15 цифр. Алгоритм для 13-ти цифр:
Функция для проверки правильности ОГРН и ОГРНИП на JavaScript
API проверки ОГРН
Для проверки ОГРН на валидность, включая контрольный разряд, вызовите следующее API:
https://htmlweb.ru/json/validator/ogrn/123123123
Если ОГРН корректный вы получите:
Если неверное, то различные варианты:
Проверка корреспондентского счета (к/с) и БИК банка на корректность и взаимное соответствие на PHP
API проверки БИК банка на корректность
Для проверки к/с и БИК банка на валидность, включая контрольный разряд, вызовите следующее API:
API проверки корреспондентского счета (к/с) и БИК банка на корректность и взаимное соответствие
Для проверки к/с и БИК банка на валидность, включая контрольный разряд, вызовите следующее API:
Проверка расчетного счета (р/с) и БИК банка на корректность и взаимное соответствие на PHP
Проверка расчетного счета (р/с) и БИК банка на корректность и взаимное соответствие на JavaScript
API проверки расчетного счета (р/с) и БИК банка на корректность и взаимное соответствие
Для проверки р/с и БИК банка на валидность, включая контрольный разряд, вызовите следующее API:
Валидация и проверка контрольного числа ИНН
Описание
ИНН (идентификационный номер налогоплательщика) организации состоит из 10 цифр:
ИНН физического лица (индивидуального предпринимателя) состоит из 12 цифр:
Маски ввода
Для 10-значного ИНН:
Для 12-значного ИНН:
Алгоритм проверки контрольного числа
10-значный ИНН
12-значный ИНН
Реализация на JavaScript
Исходный код доступен на GitHub по этой ссылке (функция validateInn).
Реализация на PHP
Исходный код доступен на GitHub по этой ссылке (метод validateInn).
Проверить инн на корректность
Для организации ИНН (10-ти значный цифровой код):
– с 1 по 4 — код налогового органа, согласно СОУН*, присвоившего ИНН;
– с 5 по 9 — порядковый номер записи о налогоплательщике;
– 10 — контрольное число, рассчитываемое по специальному алгоритму.
Для физического лица ИНН (12-ти значный цифровой код):
– с 1 по 4 — код налогового органа, согласно СОУН, присвоившего ИНН;
– с 5 по 10 — порядковый номер записи о налогоплательщике;
– с 11 по 12 — контрольное число, рассчитываемое по специальному алгоритму.
* СОУН — это справочник кодов обозначения налоговых органов для целей учёта налогоплательщиков, который использует ФНС РФ при назначении кодов ИНН.
Контрольное число ИНН
Рассматриваемый способ проверки основан на том, что ИНН не является случайным набором цифр.
Первые четыре являются номерами региона и территориальной налоговой инспекции, в которых зарегистрирован налогоплательщик.
Следующие пять – это обыкновенный порядковый номер.
А вот последняя – десятая – цифра представляет собой так называемое контрольное число ИНН.
Для того, чтобы убедиться в подлинности того или иного налогоплательщика, нужно провести несколько небольших вычислений и сравнить полученный результат с этим самым числом.
Возьмем произвольный ИНН: 7713456564.
Сначала необходимо умножить первые девять цифр ИНН на особые множители, разработанные специалистами Федеральной налоговой службы.
Каждой цифре соответствует свой множитель: 2, 4, 10, 3, 5, 9, 4, 6, 8.
Произведем вычисления:
(7 x 2) + (7 x 4) + (1 x 10) + (3 x 3) + (4 x 5) + (5 x 9) + (6 x 4 )+ (5 x 6) + (6 x 8) = 228
Полученную сумму нужно разделить на 11
228 : 11 = 20,7
Затем от полученной величины необходимо взять целое число и умножить его на 11
20 х 11 = 220
Разница между 228 и 220 составляет 8.
Это и есть контрольное число ИНН – оно должно быть равно последней цифре ИНН.
В нашем случае (ИНН: 7713456564) цифры не совпадают, поскольку мы изначально взяли номер несуществующего налогоплательщика.
Вы можете убедиться в том, что метод работает, взяв ИНН реального контрагента и самостоятельно произведя указанные вычисления.
https://ru.wikipedia.org/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%B3%D0%BE%D1%81%D1%83%D0%B4%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80
Гарант
http://base.garant.ru/12127193/
http://rf-zakupki.ru/tools.html
Скрипт
http://murzix.ru/2011/10/%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D0%BE%D0%B3%D1%80%D0%BD-%D0%B8-%D0%BE%D0%B3%D1%80%D0%BD%D0%B8%D0%BF-%D0%BD%D0%B0-javascript/
Что такое ОГРН или ОГРНИП
ОГРНИП — основной государственный регистрационный номер индивидуального предпринимателя. Состоит из 15 цифр, последняя — контрольная. От ОГРН отличается тем, что:
под номер записи в реестре выделено семь, а не пять цифр;
контрольная цифра равна последней цифре остатка от деления на 13,а не на 11, предыдущего 14-значного числа;