Wolna encyklopedia
Numer Identyfikacji Podatkowej (NIP) — dziesięciocyfrowy kod, służący do identyfikacji podmiotów płacących podatki w Polsce. Nadawany jest przez urzędy skarbowe.
Spis treści |
Znaczenie numeru
Trzy pierwsze cyfry każdego NIP-u oznaczają kod urzędu skarbowego, który nadał dany numer. W kodzie tym występują wyłącznie cyfry od 1 do 9 - teoretycznie cyfra 0 nie powinna być w nim generowana. W wyjątkowych przypadkach kod urzędu skarbowego może zawierać jednak cyfrę 0 na drugiej pozycji, gdyż w roku 2004 dla kilkudziesięciu urzędów skarbowych uczyniono wyjątek od dotychczasowej reguły, i tak np. kod 106 oznacza Małopolski Urząd Skarbowy w Krakowie, więc nadany przez niego NIP 106-00-00-062 jest prawidłowy. Zwyczajowo NIP zapisuje się, oddzielając grupy cyfr łącznikiem. Dla osób fizycznych numer dzielony jest na grupy 123-456-78-90, a dla firm na grupy 123-45-67-890. Firmy będące własnością osoby fizycznej mają zwykle NIP swojego właściciela.
Dziesiąta cyfra NIP-u jest cyfrą kontrolną, obliczaną według specjalnego algorytmu:
- 1. Pomnożyć każdą z pierwszych dziewięciu cyfr odpowiednio przez wagi: 6, 5, 7, 2, 3, 4, 5, 6, 7.
- 2. Zsumować wyniki mnożenia.
- 3. Obliczyć resztę z dzielenia przez 11 (operacja modulo 11).
NIP jest tak generowany, aby nigdy w wyniku tego dzielenia nie wyszła liczba 10.
Przykład
| Niektóre informacje zawarte w artykule wymagają weryfikacji. Zajrzyj na stronę dyskusji, by dowiedzieć się, jakie informacje budzą wątpliwości. |
NIP 123-456-32-18
| CK | SUMA | MOD11 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NIP | 1 | 2 | 3 | 4 | 5 | 6 | 3 | 2 | 1 | |||
| wagi | 6 | 5 | 7 | 2 | 3 | 4 | 5 | 6 | 7 | |||
| 1. | 6 | 10 | 21 | 8 | 15 | 24 | 15 | 12 | 7 | |||
| 2. | 118 | |||||||||||
| 3. | 8 | 8 |
Implementacja algorytmu w języku Python
def check_NIP(nip): weights = (6, 5, 7, 2, 3, 4, 5, 6, 7, -1) if len(nip) != len(weights): return False try: nip = [int(n) for n in nip] except: return False checksum = sum(n * w for n, w in zip(nip, weights)) if checksum % 11 % 10 != 0: return False return True
Implementacja algorytmu w języku PHP
function isNipValid($pNip) { $weights = array(6, 5, 7, 2, 3, 4, 5, 6, 7); $nip = preg_replace('/[\s-]/', '', $pNip); if (!(strlen($nip) == 10 && is_numeric($nip))) { return false; } for($x=0; $x<=8; $x++) { $sum += $nip[$x] * $weights[$x]; } if (($sum % 11) == $nip[9]) { return true; } else { return false; } }
Bibliografia
- prof. Andrzej Borodo, Polskie prawo finansowe. Zarys ogólny, Toruń 2005, ISBN 83-7285-253-7.
- prof. Andrzej Gomułowicz, prof. Jerzy Małecki, Polskie prawo finansowe, Lexis Nexis, 2006, ISBN 83-7334-585-X.
- prof. Zbigniew Ofiarski, Prawo finansowe, C.H. Beck, ISBN 83-7483-506-0.
Linki zewnętrzne
- Zasady weryfikacji numerów NIP - Strona R.J. Żyłły z Politechniki Łódzkiej
- Algorytm weryfikacji NIP - Strona zawiera również listę 3-cyfrowych kodów Urzędów Skarbowych