Расшифровка РНН и проверка контрольного разряда

Мар. 27, 2012| 18:03

Так как РНН с 1 января не отменили, напишу ка я еще и про РНН.

Регистрационный номер налогоплательщика (РНН) — это документ, необходимый для администрирования налогоплательщиков в Республике Казахстан.

Структура РНН

РНН представляет собой 12-тиразрядное число. 

  • Первый фасет (2 разряда) - код области. Для кодирования используются 3, 4 разряды кода классификатора "Система обозначения административнотерриториальных органов" (СОАТО).
  • Второй фасет (2 разряда) - код района. Перечень и номера налоговых комитетов соответствуют кодам районов области, принятые в системе Министерства финансов Республики Казахстан.
  • Третий фасет (1 разряд) - имеет значение: 0 - для юридических лиц, с 1 до 9 - для физических лиц.
  • Четвертый фасет (6 разрядов) - порядковый номер налогоплательщика, присваиваемый налоговым органом.
  • Пятый фасет (1 разряд) - контрольный разряд

Алгоритм проверки контрольного разряда

Каждому разряду РНН (счет слева направо), исключая последний 12-ый разряд, присваивается вес от 1 до 10. 11-ый разряд имеет вес равный 1. Определяется сумма произведений значений каждого разряда на его вес (S = r1*1 + r2*2 + ... + r10*10 + r11*1). Полученная сумма делится на 11 и выделяется целая часть C (т.е. максимальное целое число, на которое S делится без остатка). Определяется разница между суммой произведений и целочисленным вхождением по модулю 11 в эту сумму ( i = S - C*11). Если полученная разница меньше 10, то она является значением контрольного разряда. Если после первого прохода контрольное число получается больше или равное 10, расчет повторяется, но каждому разряду вес присваивается, начиная с 2. Для третьего прохода соответственно с 3 и т.д. Если результат при 10 циклах повторения расчета всегда имеет значение большее или равное 10, то данное число для регистрационного номера налогоплательщика исключается.

Реализация на PHP

<?php
function valid_rnn($rnn)
{
    for (
$i 1$i <= 10$i++)
    {
        
$s 0;
        
$t $i 1;
        for (
$j 1$j <= 11$j++)
        {
            ++
$t;
            if (
$t == 11)
                
$t 1;
            
$s $s $t substr($rnn,$j 1,1);
        }
        
$k $s 11;
        if (
$k 10)
            break;
    }

    return (
$k == substr($rnn,11,1));
}

PS. справочник "Коды областей и районов Республики Казахстан", по которому сопоставляются первые 4 разряда РНН и область/район. Справочник устарел, а закон, которым он принят утратил силу, но хоть так.

 

г. Астана
г. Астана 6201
Алматинский район 6202
Сарыаркинский район 6203
г. Астана Новый город 6301
Акмолинская область
Акмолинская область 0301
Аккольский район 0302
Астраханский район 0303
Атбасарский район 0304
Сандыктауский район 0305
Аршалынский район 0306
Ерейментауский район 0307
Егиндыкольский район 0308
Коргалжынский район 0309
Буландинский район 0310
Целиноградский район 0312
Шортандинский район 0313
Степногорский район 0316
Жаркаинский район 0317
Есильский район 0318
Жаксынский район 0321
Зерендинский район 0323
Щучинский район 0324
Енбекшилдерский район 0325
г. Кокшетау 0326
Актюбинская область
Актюбинская область 0601
Алгинский район 0604
Байганинский район 0605
Айтекебийский район 0606
Иргизский район 0607
Каргалинский район 0609
Мартукский район 0610
Mугалжарский район 0612
Темирский район 0613
Уилский район 0614
Кобдинский район 0615
Хромтауский район 0616
Шалкарский район 0617
г. Актобе 0618
г. Алматы
г. Алматы 6001
Ауэзовский район 6003
Бостандыкский район 6004
Жетысуйский район 6005
Турксибский район 6008
Алмалинский район 6007
Медеуский район 6009
Алматинская область
Алматинская область 0901
Балхашский район 0902
Жамбылский район 0903
Илийский район 0904
Карасайский район 0905
Раимбекский район 0908
Талгарский район 0909
Уйгурский район 0910
Енбекшиказахский район 0912
г. Капчагай 0913
Аксуский район 0914
Алакольский район 0915
Каратальский район 0916
Кербулакский район 0917
Коксуский район 0918
Панфиловский район 0919
Саркандский район 0920
Ескельдинский район 0921
г. Талдыкорган 0922
г. Текели 0923
Атырауская область
Атырауская область 1501
Курмангазинский район 1503
Индерский район 1504
Исатайский район 1505
Кзылкогинский район 1506
Макатский район 1507
Махамбетский район 1508
Жалойский район 1509
Жамбылская область
Жамбылская область 2101
Жамбылский район 2102
Жуалынский район 2103
Кордайский район 2104
Район Турара Рыскулова 2105
Меркенский район 2106
Мойынкумский район 2107
Сарысуйский район 2108
Байзакский район 2109
Таласский район 2110
Шусский район 2111
г. Тараз 2115
Восточно Казахстанская область
Восточно Казахстанская область 1801
Катон Карагайский район 1802
Глубоковский район 1803
Зайсанский район 1804
Курчумский район 1806
Тарбагатайский район 1810
Уланский район 1811
Шемонаихинский район 1812
Зыряновский район 1813
г. Лениногорск 1814
г. Усть Каменогорск 1816
Абайский район 1819
Аягузский район 1820
Бескарагайский район 1821
Бородулихинский район 1822
Жарминский район 1823
Кокпектинский район 1824
г. Курчатов 1825
Урджарский район 1826
г. Семипалатинск 1827
Западно Казахстанская область
Западно Казахстанская область 2701
Бурлинский район 2703
Жанибекский район 2704
Джангалинский район 2705
Зеленовский район 2707
Казталовский район 2708
Каратобинский район 2709
Сырымский район 2711
Таскалинский район 2712
Теректинский район 2714
Бокейординский район 2715
Акжаикский район 2716
Чингирлауский район 2717
Карагандинская область
Карагандинская область 3001
Абайский район 3002
г. Караганда 3004
Каркаралинский район 3005
Нуринский район 3008
Осакаровский район 3009
г. Сарань 3010
г. Темиртау 3012
Бухар Жырауский район 3013
г. Шахтинск 3014
Октябрьский район г. Караганды 3019
Район Казыбек би г. Караганды 3020
Актогайский район 3021
Жана Аркинский район 3022
Улытауский район 3023
Шетский район 3024
г. Балхаш 3025
г. Жезказган 3026
г. Приозерск 3027
г. Каражал 3028
Кызылординская область
Кызылординская область 3301
Аральский район 3302
Казалинский район 3303
Кармакчинский район 3304
Жалагашский район 3305
Сырдарьинский район 3306
Шиелийский район 3308
Жанаркорганский район 3309
Костанайская область
Костанайская область 3901
Алтынсаринский район 3902
Мендыкаринский район 3903
Житикаринский район 3904
Камыстинский район 3905
Карасуский район 3906
Карабалыкский район 3907
Костанайский район 3908
Узункольский район 3909
Наурзумский район 3910
Денисовский район 3911
Аулиекольский район 3912
Тарановский район 3913
Сарыкольский район 3914
Федоровский район 3915
г. Костанай 3917
г. Лисаковск 3918
г. Рудный 3919
Амангельдинский район 3920
Жангеладинский район 3923
г. Аркалык 3925
Мангистауская область
Мангистауская область 4301
Бейнеуский район 4302
Каракиянский район 4303
Мангистауский район 4304
Тупкараганский район 4305
г. Жанаозен 4307
Северо Казахстанская область
Северо Казахстанская область 4801
Кызылжарский район 4802
Булаевский район 4803
Жамбылский район 4805
Есильский район 4806
Мамлютский район 4807
Район Шал акына 4810
Аккаинский район 4811
Тимирязевский район 4813
Айыртауский район 4815
Акжарский район 4816
Тайыншинский район 4818
Уалихановский район 4819
Целинный район 4820
Павлодарская область
Павлодарская область 4501
Актогайский район 4503
Байнаульский район 4504
Железинский район 4505
Иртышский район 4506
Качирский район 4507
Лебяжинский район 4508
Майский район 4509
Павлодарский район 4510
Успенский район 4511
Щербактинский район 4512
г. Аксу 4514
г. Павлодар 4515
г. Экибастуз 4516
Южно Казахстанская область
Южно Казахстанская область 5801
Байдибехский район 5802
Ордабасинский район 5803
Отрарский район 5805
Казгуртский район 5808
Толебийский район 5809
Мактааральский район 5810
Сайрамский район 5811
Сарыагашский район 5812
Сузакский район 5813
Тюлькубасский район 5815
Шардаринский район 5816
г. Арысь 5817
г. Кентау 5818
г. Туркестан 5820
г. Шымкент 5821



Вот здесь РНН можно проверить на корректность онлайн


Метки: php, howto
Имя :
Сайт или эл. почта :
Сообщение :
 
  • , Мар. 3, 2016| 18:06
    СПасибо огромное, очень полезная информация.
    reply to this
  • , Окт. 13, 2016| 01:37
    1817 что за район???
    Если кто знает сообщите пожалйста на почту: GoldenScrew@gmail.com или базу Кодов СОАТО
    reply to this