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