Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

inn-tools

Маленькая библиотека на Python для проверки и разбора российских идентификаторов: ИНН, ОГРН, ОГРНИП, КПП, СНИЛС. Без зависимостей, проверка контрольных разрядов по официальным алгоритмам ФНС и СФР, определение региона по ИНН.

from inn_tools import validate_inn, validate_ogrn, region_name

validate_inn("7707083893")    # True  — корректный ИНН юрлица
validate_inn("7707083894")    # False — не сходится контрольный разряд
validate_ogrn("1027700132195")  # True
region_name("7707083893")     # "город Москва"

Установка

pip install inn-tools

Возможности

Функция Что проверяет
validate_inn(x) ИНН 10 или 12 знаков (автоопределение)
validate_inn_ul(x) ИНН юрлица (10 знаков)
validate_inn_fl(x) ИНН физлица / ИП (12 знаков)
validate_ogrn(x) ОГРН юрлица (13 знаков)
validate_ogrnip(x) ОГРНИП ИП (15 знаков)
validate_kpp(x) КПП (9 знаков, формат)
validate_snils(x) СНИЛС (11 знаков, контрольное число)
validate(x, kind=None) универсальный — угадывает тип по длине
region_code(inn) код региона (первые 2 цифры)
region_name(inn) название субъекта РФ

Все функции принимают строку или число, игнорируют пробелы, дефисы и точки: validate_inn("7 707 083 893") и validate_snils("112-233-445 95") работают.

Командная строка

$ inn-tools 7707083893 1027700132195 112-233-445_95
[OK ] 7707083893  →  ИНН (ЮЛ)  ·  регион 77: город Москва
[OK ] 1027700132195  →  ОГРН
[OK ] 112-233-445_95  →  СНИЛС

Или модулем: python -m inn_tools 7707083893.

Алгоритмы

Контрольные разряды считаются строго по спецификациям:

  • ИНН — взвешенная сумма по модулю 11, затем по модулю 10 (для 12-значного проверяются оба контрольных разряда).
  • ОГРН — первые 12 цифр mod 11, затем mod 10.
  • ОГРНИП — первые 14 цифр mod 13, затем mod 10.
  • СНИЛС — взвешенная сумма 9 цифр с обработкой случаев 100/101.
  • КПП — контрольного разряда нет, проверяется только структура формата.

Зачем это

Сделано в KontragentPro — сервисе проверки контрагентов по открытым данным. Валидация идентификаторов — первый шаг любой проверки: отсеять опечатку до обращения к реестрам. Вынесли это ядро в open-source.

Лицензия

MIT — см. LICENSE.


English

Zero-dependency Python library to validate Russian business and personal identifiers (INN, OGRN, OGRNIP, KPP, SNILS) with official checksum algorithms, plus region lookup from an INN. pip install inn-tools. MIT licensed. Maintained by KontragentPro.

Где это применяется на практике

Алгоритмы контрольных сумм из этого репозитория используются в сервисе проверки контрагентов KontragentPro — проверка компаний и ИП по ИНН/ОГРН: финансы, суды, банкротства, связи. Если нужен готовый сервис, а не своя реализация, — можно посмотреть там.

About

Валидация и определение региона для российских ИНН, ОГРН, ОГРНИП, КПП, СНИЛС. Без зависимостей.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages