Skip to main content

Валидация российских идентификаторов: ИНН, СНИЛС, ОГРН, КПП, БИК, расчётный счёт

Project description

ru-id-validators

Валидация российских идентификаторов с проверкой контрольных сумм.

Установка

pip install ru-id-validators

Быстрый старт

from ru_id import validate_inn, validate_snils, is_valid_inn, ValidationError

# Проверка + очистка ввода (убирает пробелы и дефисы)
inn = validate_inn("7707 083 893")      # → "7707083893"
snils = validate_snils("112-233-445 95")  # → "11223344595"

# Быстрая проверка без исключений
if is_valid_inn("7707083893"):
    print("ИНН корректен")

# Понятная ошибка при неверных данных
try:
    validate_inn("7707083890")
except ValidationError as error:
    print(error)  # inn: неверная контрольная сумма

API

Функция Что проверяет
validate_inn() ИНН юрлица (10 цифр) или физлица/ИП (12 цифр)
validate_snils() СНИЛС
validate_ogrn() ОГРН (13 цифр) и ОГРНИП (15 цифр)
validate_kpp() КПП (9 цифр)
validate_bik() БИК банка (9 цифр)
validate_account(account, bik) Расчётный или корреспондентский счёт

Для каждого идентификатора есть две функции:

  • validate_*() — возвращает очищенную строку из цифр или выбрасывает ValidationError
  • is_valid_*() — возвращает True / False

Пример: проверка формы

from ru_id import ValidationError, validate_inn, validate_kpp, validate_ogrn, validate_bik, validate_account

def validate_company_form(data: dict[str, str]) -> list[str]:
    checks = [
        ("ИНН", lambda: validate_inn(data["inn"])),
        ("КПП", lambda: validate_kpp(data["kpp"])),
        ("ОГРН", lambda: validate_ogrn(data["ogrn"])),
        ("БИК", lambda: validate_bik(data["bik"])),
        ("Счёт", lambda: validate_account(data["account"], data["bik"])),
    ]

    errors = []
    for label, check in checks:
        try:
            check()
        except ValidationError as error:
            errors.append(f"{label}: {error}")
    return errors

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ru_id_validators-0.1.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ru_id_validators-0.1.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file ru_id_validators-0.1.0.tar.gz.

File metadata

  • Download URL: ru_id_validators-0.1.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for ru_id_validators-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fbc3b2e581cd0700078fcf2b8a5a75b795546c162d24c154e112d3be3a997edb
MD5 c75571f06e155c722edb5489145952af
BLAKE2b-256 ff91102d71b60adbe37e158ce3672e321c029a773817d0420458d3ca04c7ae60

See more details on using hashes here.

File details

Details for the file ru_id_validators-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ru_id_validators-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2384c66d21370918ede776ddc1144076c945ea328c8fd679e32189d78b1bb885
MD5 861ed1c3ba0ea997fd4497b64d82a592
BLAKE2b-256 8f08a5dd008606e7f619e31325402e4bd82318c58074532ff2a342ef1f7c2dd8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page