Ostatnia cyfra w numerze identyfikacji podatkowej pełni rolę sumy kontrolnej.
Jeśli pierwsze 9 cyfr NIPu pomnoży się przez odpowiednie wagi, zsumuje a następnie podzieli modulo przez 11 powinno się w wyniku dostać ostatnią cyfrę. Załóżmy, że mamy nr NIP 726-112-03-85.
7 2 6 1 1 2 0 3 8 * 6 5 7 2 3 4 5 6 7 <- wagi --------------------- suma = 7*6 + 2*5 + 6*7 + 1*2 + 1*3 + 2*4 + 0*5 + 3*6 + 8*7 = 181 181 mod 11 = 5
Poniżej funkcja w PHP weryfikująca poprawność NIPu. Zwraca 1, gdy poprawny i 0 w przeciwnym wypadku. Numer można podać w dowolnym formacie.
function verify_nip($string) { $table=Array(6,5,7,2,3,4,5,6,7); //tablica z wagami for ($licz=0; $licz<strlen($string); $licz++) if (is_numeric($string[$licz])) $NIP[]=$string[$licz]; //petla tworzaca z nipu tablice liczb if (count($NIP)==10) //jesli jest 10 liczb { for ($licz=0; $licz<9; $licz++) $wynik[]=$NIP[$licz]*$table[$licz]; //pomnoz kazda przez odpowiadajaca jej wage for ($licz=0; $licz<9; $licz++) $suma+=$wynik[$licz]; //zsumuj $suma=$suma%11; //podziel modulo przez 11 if ($suma==$NIP[9]) return 1; //w zaleznosci od wynik zwroc odpowiednia wartosc else return 0; } return 0; }