A dart package that can check is the INN valid or

Проверка действительности ИНН

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

Проверку ИНН проводят путем вычисления одного контрольного числа для 10-значных ИНН и двух контрольных чисел для 12-значных ИНН. Коэффициенты для вычисления первого контрольного числа n1 для 10-значного ИНН:

2, 4, 10, 3, 5, 9, 4, 6, 8

Коэффициенты для вычисления первого контрольного числа n1 для 12-значного ИНН:

3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8

Коэффициенты для вычисления второго контрольного числа n2 для 12-значного ИНН:

7, 2, 4, 10, 3, 5, 9, 4, 6, 8

Шаг 1. Контрольное число n1 вычисляется как остаток от деления на 11 суммы из цифр номера (по порядку слева направо), умноженных на соответствующие (приведенные выше) коэффициенты. Если в остатке получается 10, то n1 = 0. Полученное контрольное число n1 должно совпадать с последней цифрой ИНН (как 10-значного, так и 12-значного).

Шаг 2 (только для 12-значного ИНН). Контрольное число n2 - это остаток от деления на 11 суммы из цифр номера, умноженных на соответствующие коэффициенты (аналогично шагу 1). Если в остатке получается 10, то n2 = 0. Полученное контрольное число n2 должно совпадать с предпоследней цифрой 12-значного ИНН.

Usage

A simple usage example:

import 'package:rf_inn_validation/rf_inn_validation.dart';

void main() {
  final someOrganizationInn = '7728168971';
  final somePersonInn = '618620222755';

  print(isOrganizationInnValid(someOrganizationInn));
  print(isPersonInnValid(somePersonInn));
}

Features and bugs

Please file feature requests and bugs at the issue tracker.

Libraries

rf_inn_validation
Support for doing something awesome. [...]