AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Проверка ИНН, КПП, ОГРН, ОГРНИП, БИК, р/с на PHP и JavaScript

Проверка ИНН

ИНН юридических лиц состоит из 10 цифр. ИНН физических лиц и индивидуальных предпринимателей(ИП) состоит из 12 цифр.

Алгоритм проверки ИНН 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) проверяется с двенадцатым знаком ИНН. В случае их равенства ИНН считается правильным.

Функция для проверки правильности ИНН на PHP

<?php
/**
 * Функция проверяет правильность инн
 *
 * @param string $inn
 * @return bool
 */
function is_valid_inn( $inn )
{
    if ( preg_match('/\D/', $inn) ) return false;

    $inn = (string) $inn;
    $len = strlen($inn);

    if ( $len === 10 )
    {
        return $inn[9] === (string) (((
                    2*$inn[0] + 4*$inn[1] + 10*$inn[2] +
                    3*$inn[3] + 5*$inn[4] +  9*$inn[5] +
                    4*$inn[6] + 6*$inn[7] +  8*$inn[8]
                ) % 11) % 10);
    }
    elseif ( $len === 12 )
    {
        $num10 = (string) (((
                    7*$inn[0] + 2*$inn[1] + 4*$inn[2] +
                    10*$inn[3] + 3*$inn[4] + 5*$inn[5] +
                    9*$inn[6] + 4*$inn[7] + 6*$inn[8] +
                    8*$inn[9]
                ) % 11) % 10);

        $num11 = (string) (((
                    3*$inn[0] +  7*$inn[1] + 2*$inn[2] +
                    4*$inn[3] + 10*$inn[4] + 3*$inn[5] +
                    5*$inn[6] +  9*$inn[7] + 4*$inn[8] +
                    6*$inn[9] +  8*$inn[10]
                ) % 11) % 10);

        return $inn[11] === $num11 && $inn[10] === $num10;
    }

    return false;
}
?>

Функция для проверки правильности ИНН на JavaScript

<input type="text" onkeyup="this.style.backgroundColor = is_valid_inn(this.value) ? '#dfd' : '#fdd'" />
<script type="text/javascript">
    // Функция для проверки правильности ИНН
    function is_valid_inn(i)
    {
        if ( i.match(/\D/) ) return false;

        var inn = i.match(/(\d)/g);

        if ( inn.length == 10 )
        {
            return inn[9] == String(((
                        2*inn[0] + 4*inn[1] + 10*inn[2] +
                        3*inn[3] + 5*inn[4] +  9*inn[5] +
                        4*inn[6] + 6*inn[7] +  8*inn[8]
                    ) % 11) % 10);
        }
        else if ( inn.length == 12 )
        {
            return inn[10] == String(((
                        7*inn[0] + 2*inn[1] + 4*inn[2] +
                        10*inn[3] + 3*inn[4] + 5*inn[5] +
                        9*inn[6] + 4*inn[7] + 6*inn[8] +
                        8*inn[9]
                    ) % 11) % 10) && inn[11] == String(((
                        3*inn[0] +  7*inn[1] + 2*inn[2] +
                        4*inn[3] + 10*inn[4] + 3*inn[5] +
                        5*inn[6] +  9*inn[7] + 4*inn[8] +
                        6*inn[9] +  8*inn[10]
                    ) % 11) % 10);
        }

        return false;
    }
</script>

API проверки ИНН

Для проверки ИНН на валидность, включая контрольный разряд, вызовите следующее API:

https://htmlweb.ru/json/validator/inn/1231231230
Если ИНН корректный вы получите:
{"status":200}
Если неверное, то различные варианты:
{"status":400,"error":"Неверный контрольный разряд, ожидается 0"}
{"status":400,"error":"ИНН должен состоять из 10 или 12 цифр"}

Проверка КПП

Код постановки на учет налогоплательщика (КПП) состоит из 9 цифр. Чаще всего первые четыре цифры КПП совпадают с первыми 4 цифрами ИНН и указывают на номер налоговой. Остальные пять цифр = 01001. Например,
ИНН 6167109768
КПП 616701001

Для крупных налогоплательщиков это не так, поэтому тупая подстановка недопустима. У индивидуальных предприниателей (ИП) КПП нет, если программа требует, ставьте 0.

<?php
/**
* Функция проверяет правильность КПП
*
* @param string $kpp
* @return bool
*/

function is_valid_kpp($kpp) {
    return preg_match('#^\d{9}$#', $kpp);
}
?>

API проверки КПП

Для проверки ИНН на валидность, включая контрольный разряд, вызовите следующее API:

https://htmlweb.ru/json/validator/kpp/123123123
Если КПП корректный вы получите:
{"status":200}
Если неверное, то различные варианты:
{"status":400,"error":"КПП должен состоять из 9 цифр"}

Проверка ОГРН и ОГРНИП на PHP

ОГРН (основной государственный регистрационный номер) состоит из 13 или 15 цифр. Алгоритм для 13-ти цифр:

<?php
/**
* Проверка ОГРН и ОГРНИП
* входные параметры:
* ogrn
* Проверяет только валидность. Для проверки действительности используйте /service/org
* @param array $args
* @return array
*/
function is_valid_ogrn($ogrn)
{
    if (!preg_match('#^\d{13,15}$#', $ogrn)){
        return false; // ОГРН должен состоять из 13 или 15 цифр

    } elseif ($ogrn > PHP_INT_MAX) {
        return false; // Проверка невозможна, т.к. скрипт запущен на 32х-разрядной версии PHP
    }
//делаем строкой
    $ogrn = $ogrn . '';
    if (strlen($ogrn) == 13 and $ogrn[12] != substr((substr($ogrn, 0, -1) % 11), -1)){
        return false; // 'Контрольное число равно ' . substr((substr($ogrn, 0, -1) % 11), -1) . '. Ожидалось ' . $ogrn[12]);
    } elseif (strlen($ogrn) == 15 and $ogrn[14] != substr(substr($ogrn, 0, -1) % 13, -1)) {
        return false; //  'Контрольное число равно ' . substr(substr($ogrn, 0, -1) % 13, -1) . '. Ожидалось ' . $ogrn[14]);
    } elseif (strlen($ogrn) != 13 and strlen($ogrn) != 15) {
        return false; // 'ОГРН должен состоять из 13 или 15 цифр');
    }
    return true;
}
?>

Функция для проверки правильности ОГРН и ОГРНИП на JavaScript

function is_valid_ogrn(ogrn) {
    //дальше работаем со строкой
    ogrn += '';

    //для ОГРН в 13 знаков
    if(ogrn.length == 13 && (ogrn.slice(12,13) == ((ogrn.slice(0,-1))%11 + '').slice(-1))){
        return true;

    //для ОГРН в 15 знаков
    }else if(ogrn.length == 15 && (ogrn.slice(14,15) == ((ogrn.slice(0,-1))%13 + '').slice(-1))){
        return true;

    }else{
        return false;
    }
}

API проверки ОГРН

Для проверки ОГРН на валидность, включая контрольный разряд, вызовите следующее API:

https://htmlweb.ru/json/validator/ogrn/123123123
Если ОГРН корректный вы получите:
{"status":200}
Если неверное, то различные варианты:
{"status":400,"error":"ОГРН должен состоять из 13 или 15 цифр"}

Полезные ссылки по теме:


.

© Copyright 2008-2019 by KDG



Rambler's Top100