Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  ALGORITHM::CHECKDIGITS::M11_011 (3)

.ds Aq ’

### NAME

CheckDigits::M11_011 - compute check digits for VAT Registration Number (NL)

### SYNOPSIS

```

use Algorithm::CheckDigits;

\$ustid = CheckDigits(ustid_nl);

if (\$ustid->is_valid(123456782)) {
# do something
}
if (\$ustid->is_valid(123456782B04)) {
# do something
}

\$cn = \$ustid->complete(12345678);
# \$cn = 123456782
\$cn = \$ustid->complete(12345678.B04);
# \$cn = 123456782B04

\$cd = \$ustid->checkdigit(123456782);
# \$cd = 2
\$cd = \$ustid->checkdigit(123456782B04);
# \$cd = 2

\$bn = \$ustid->basenumber(123456782);
# \$bn = 12345678;
\$bn = \$ustid->basenumber(123456782B04);
# \$bn = 12345678.B04;

```

### DESCRIPTION

This VATRN has 12 digits, the third last must be a B, the fourth last is the checkdigit. I don’t know anything about the meaning of the last two digits.

You may use the whole VATRN or only the first eight digits to compute the checkdigit with this module.

#### ALGORITHM

 1. Beginning right with the digit before the checkdigit all digits are weighted with their position. I.e. the digit before the checkdigit is multiplied with 2, the next with 3 and so on. 2. The weighted digits are added. 3. The sum from step 2 is taken modulo 11. 4. If the sum from step 3 is 10, the number is discarded.

#### METHODS

 is_valid(\$number) Returns true only if the first eight positions of \$number consist solely of digits (maybe followed by ’B’ and to further digits) and the eighth digit is a valid check digit according to the algorithm given above. Returns false otherwise, complete(\$number) The check digit for \$number is computed and inserted at position eight of \$number. Returns the complete number with check digit or ’’ if \$number does not consist solely of digits a dot and maybe ’B’ at the ninth position. basenumber(\$number) Returns the basenumber of \$number if \$number has a valid check digit. Return ’’ otherwise. checkdigit(\$number) Returns the check digits of \$number if \$number has valid check digits. Return ’’ otherwise.

#### EXPORT

None by default.

perl, CheckDigits, www.pruefziffernberechnung.de,

### AUTHOR

Mathias Weidner, <mamawe@cpan.org>