Часто буває потрібно провести валідацію ЄДРПОУ коду при реєстрації чи в інших бізнес-процесах.

Приклад валідатора по чексуммі ЕДРПОУ для Django:

def check_sum_edrpou(value, coefficients):
    def get_mod(val, add=0):
        total = 0
        for ind, l in enumerate(val):
            d = int(l)
            total += d * (coefficients[ind] + add)
        return divmod(total, 11)

chars = str(value)
length = len(chars)
div, mod = get_mod(chars[:length - 1])
if mod >= 10:
    div, mod = get_mod(chars[:length - 1], 2)
if mod < 10:
    return mod == int(value[-1])
return False


def validate_edrpou(value):
"""
Validate code with official formula by checking control sum.
Inspired from: http://1cinfo.com.ua/Articles/Proverka_koda_po_EDRPOU.aspx

:param value: can be string or integer, other not tested
:return bool: if edrpou code is valid return True or False when not
"""

coef_table_1 = [1, 2, 3, 4, 5, 6, 7]
coef_table_2 = [7, 1, 2, 3, 4, 5, 6]
edrpou = int(value)
coef = coef_table_1 if edrpou < 30000000 or edrpou > 60000000 else coef_table_2

if not check_sum_edrpou(value, coef):
    raise ValidationError(
        _('%(value)s control sum error. Its look like wrong edrpou'),
        params={'value': value},
    )