NIP
NIP (Numer Identyfikacji Podatkowej) to 10-cyfrowy numer używany przez osoby fizyczne i prawne do identyfikacji podatkowej w Polsce.
use SlashLab\Numerik\Numerik;
// Szybkie sprawdzenieNumerik::nip()->isValid('5260250274'); // true
// Pełny obiekt z danymi$result = Numerik::nip()->validate('5260250274');$result->isValid; // true
// Parsowanie do obiektu z danymi$nip = Numerik::nip()->parse('5260250274');
// Null zamiast wyjątku$nip = Numerik::nip()->tryParse('zły-numer'); // nullMyślniki i spacje są akceptowane jako separatory:
Numerik::nip()->isValid('526-025-02-74'); // trueNumerik::nip()->isValid('526 025 02 74'); // trueMetody zwracanego obiektu
Dział zatytułowany „Metody zwracanego obiektu”parse() i tryParse() zwracają instancję SlashLab\Numerik\ValueObjects\Nip.
Podstawowe
Dział zatytułowany „Podstawowe”| Metoda | Typ zwracany | Opis |
|---|---|---|
getRaw() |
string |
Oryginalny numer, bez zmian. |
getNormalized() |
string |
Same cyfry po usunięciu myślników i spacji. |
__toString() |
string |
To samo co getNormalized(). |
Formatowanie i metadane
Dział zatytułowany „Formatowanie i metadane”| Metoda | Typ zwracany | Opis |
|---|---|---|
getFormatted() |
string |
Domyślnie używany format NNN-NNN-NN-NN. |
getFormattedAlternative() |
string |
Alternatywna postać NNN-NN-NN-NNN. |
getTaxOfficeCode() |
string |
Pierwsze 3 cyfry — kod wystawiającego urzędu skarbowego. |
Przykłady
Dział zatytułowany „Przykłady”$nip = Numerik::nip()->parse('5260250274');
$nip->getRaw(); // '5260250274'$nip->getNormalized(); // '5260250274'$nip->getFormatted(); // '526-025-02-74'$nip->getFormattedAlternative(); // '526-02-50-274'$nip->getTaxOfficeCode(); // '526'
// Ze sformatowanym numerem wejściowym$nip = Numerik::nip()->parse('526-025-02-74');$nip->getRaw(); // '526-025-02-74'$nip->getNormalized(); // '5260250274'Powody błędów
Dział zatytułowany „Powody błędów”| Powód | Wartość | Warunek |
|---|---|---|
InvalidLength |
invalid_length |
Numer nie ma dokładnie 10 cyfr po usunięciu separatorów. |
InvalidCharacters |
invalid_characters |
Obecne są znaki inne niż cyfry, myślniki i spacje. |
InvalidFormat |
invalid_format |
Pierwsze 3 cyfry to 000 — żaden urząd skarbowy nie ma takiego kodu. |
InvalidChecksum |
invalid_checksum |
Cyfra kontrolna się nie zgadza. |
AllSameDigit |
all_same_digit |
Wszystkie cyfry są identyczne — tylko w trybie ścisłym. |
Algorytm walidacji
Dział zatytułowany „Algorytm walidacji”Wagi: 6, 5, 7, 2, 3, 4, 5, 6, 7
- Usuń myślniki i spacje. Wymagaj dokładnie 10 cyfr.
- Sprawdź, że pierwsze 3 cyfry to nie
000. - Pomnóż każdą z pierwszych 9 cyfr przez jej wagę i zsumuj. Oblicz
mod 11. Wynik musi być równy dziesiątej cyfrze. Wynik równy10jest niemożliwy do zakodowania jako pojedyncza cyfra — każdy taki numer oznacza błądInvalidChecksum.
Pełna dokumentacja w sekcji Algorytmy.
If this saved you time → ☕ Buy me a coffee