Generator i Walidator CNPJ - Narzędzie do Identyfikacji Biznesowej w Brazylii
Generuj ważne numery CNPJ do testów lub natychmiastowo weryfikuj brazylijski identyfikator biznesowy. Darmowe narzędzie ze sprawdzaniem cyfry kontrolnej dla programistów pracujących z Cadastro Nacional da Pessoa Jurídica.
Generator i Walidator brazylijskiego numeru CNPJ
Generator CNPJ
Wygeneruj prawidłowy brazylijski numer CNPJ do celów testowych.
Walidator CNPJ
Sprawdź, czy brazylijski numer CNPJ jest prawidłowy.
Dokumentacja
Zrozumienie numerów CNPJ w Brazylii
CNPJ (Cadastro Nacional da Pessoa Jurídica) to brazylijski odpowiednik identyfikatora podatkowego dla firm — 14-cyfrowy numer identyfikujący każdy podmiot prawny w kraju. Jeśli budujesz oprogramowanie obsługujące brazylijske dane biznesowe, szybko napotkasz te numery w formularzach rejestracyjnych, fakturach i integracjach API.
Oto, co czyni to narzędzie praktycznym: generuje matematycznie poprawne numery CNPJ do testów bez używania rzeczywistych identyfikatorów firm. Gdy konfigurujesz bazę testową z 1000 rekordami lub debugujesz procedurę walidacji o godzinie 2 nad ranem, potrzebujesz numerów CNPJ, które przechodzą algorytmiczne sprawdzenia, ale przypadkowo nie odpowiadają rzeczywistym firmom. Dokładnie to generuje to narzędzie.
Utworzone numery są zgodne z oficjalnym algorytmem walidacji Receita Federal (Brazylijski Urząd Skarbowy). Mają poprawne cyfry kontrolne i prawidłowe formatowanie — po prostu nie są zarejestrowane w bazie danych rządu. Pomyśl o nich jak o poprawnych składniowo danych testowych, które nie spowodują problemów z zgodnością w twoim środowisku programistycznym.
Co to jest CNPJ i dlaczego ma znaczenie
CNPJ służy jako brazylijski identyfikator firm — podobnie jak EIN w Stanach Zjednoczonych lub numer rejestracyjny firmy w Wielkiej Brytanii. Każdy podmiot gospodarczy działający legalnie w Brazylii musi go posiadać, wydawany przez Receita Federal (Federalną Służbę Skarbową).
Zetkniesz się z CNPJ, gdy:
- Przetwarzanie płatności: Brazylijskie bramy płatnicze wymagają walidacji CNPJ dla kont sprzedawców
- Zgodność podatkowa: Każda faktura wystawiona w Brazylii musi zawierać ważny CNPJ
- Rejestracja biznesowa: Agencje rządowe używają CNPJ do śledzenia podmiotów prawnych w systemach
- Operacje bankowe: Otwieranie kont firmowych lub przetwarzanie transferów międzynarodowych
- Import/eksport: Dokumentacja celna wymaga weryfikacji CNPJ
- Kontrakty rządowe: Systemy przetargowe weryfikują CNPJ przed przyjęciem ofert
W moim doświadczeniu pracy z brazylijnymi platformami e-commerce, jednym z najczęstszych punktów integracji jest przepływ płatności, gdzie użytkownicy wprowadzają swój CNPJ dla zakupów firmowych. Twoja logika walidacji musi wychwytywać błędy formatowania zanim zrobi to procesor płatności — w przeciwnym razie zobaczysz nieudane transakcje, które można było wcześniej zapobiec.
Struktura i format CNPJ
CNPJ składa się z 14 cyfr sformatowanych jako: XX.XXX.XXX/YYYY-ZZ
Rozbicie struktury:
- Pierwsze 8 cyfr (XX.XXX.XXX): Bazowy numer rejestracyjny unikalnie przypisany firmie
- Kolejne 4 cyfry (/YYYY): Identyfikator oddziału lub placówki —
/0001wskazuje siedzibę główną, podczas gdy/0002,/0003reprezentują lokalizacje oddziałów - Ostatnie 2 cyfry (-ZZ): Cyfry weryfikacyjne obliczane za pomocą algorytmu ważonego
Przykład: 12.345.678/0001-95
Co ciekawego w identyfikatorze oddziału: gdy firma otwiera wiele lokalizacji, każda otrzymuje takie same pierwsze 8 cyfr, ale inny numer oddziału. Więc jeśli sieć handlowa ma 50 sklepów, będą miały numery CNPJ kończące się na /0001 do /0050, wszystkie współdzielące ten sam numer bazowy. To ułatwia identyfikację, że wiele numerów CNPJ należy do tej samej organizacji macierzystej.
Cyfry kontrolne nie są losowe — są obliczane przy użyciu algorytmu modulo-11 z określonymi sekwencjami wag. To rozwiązanie, powszechne w brazylijskich dokumentach administracyjnych, sprawia, że matematycznie trudno jest sfałszować ważne numery lub przypadkowo utworzyć ważne numery przez literówki.
Jak działa walidacja CNPJ
Algorytm walidacji używa ważonego obliczenia modulo-11. Oto logika tego procesu:
Obliczenie pierwszej cyfry kontrolnej
- Weź pierwsze 12 cyfr i pomnóż każdą przez wagi:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Zsumuj wszystkie ilorazy
- Podziel sumę przez 11 i oblicz resztę
- Jeśli reszta < 2, cyfra kontrolna wynosi 0; w przeciwnym razie jest to
11 - reszta
Obliczenie drugiej cyfry kontrolnej
- Weź pierwsze 13 cyfr (włączając pierwszą cyfrę kontrolną) i pomnóż przez wagi:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Zsumuj wszystkie ilorazy
- Podziel przez 11 i oblicz resztę
- Jeśli reszta < 2, cyfra kontrolna wynosi 0; w przeciwnym razie jest to
11 - reszta
Dlaczego to działa: System ważonego mnożenia tworzy unikalną relację między wszystkimi 12 cyframi bazowymi a wynikającymi cyframi kontrolnymi. Zmiana nawet jednej cyfry w liczbie bazowej powoduje różne cyfry kontrolne, co pozwala wychwycić typowe błędy przepisywania, takie jak przestawienie dwóch cyfr (wpisanie 12.345 zamiast 12.354).
Praktyczna uwaga: CNPJs ze wszystkimi identycznymi cyframi (jak 11.111.111/1111-11) są automatycznie nieprawidłowe, nawet jeśli przechodzą matematyczną weryfikację. Receita Federal wyraźnie wyklucza te wzorce, aby zapobiec trywialnym przypadkom.
Jak używać generatora i walidatora CNPJ
Generowanie testowych numerów CNPJ
Potrzebujesz ważnego numeru CNPJ do bazy testowej? Oto jak:
- Kliknij "Generuj CNPJ"
- Narzędzie natychmiast tworzy matematycznie poprawny numer
- Kliknij "Kopiuj", aby skopiować go do schowka
- Wklej do formularzy testowych, seedów bazy danych lub testów jednostkowych
Każdy wygenerowany numer CNPJ przechodzi wszystkie algorytmiczne testy walidacji, ale nie jest zarejestrowany w Receita Federal. Oznacza to, że możesz ich swobodnie używać podczas programowania bez obaw o przypadkowe użycie identyfikatora rzeczywistej firmy.
Walidacja numerów CNPJ
Masz numer CNPJ, który chcesz zweryfikować? Walidator sobie z tym poradzi:
- Wklej lub wpisz numer CNPJ w polu wprowadzania
- Nie martw się o formatowanie — działa zarówno z
12345678000195, jak i12.345.678/0001-95 - Kliknij "Waliduj"
- Uzyskaj natychmiastową informację o poprawności cyfr kontrolnych
Co sprawdza walidator: prawidłową długość (14 cyfr), poprawność obliczeń cyfr kontrolnych oraz wykluczenie nieprawidłowych wzorców, takich jak numery ze wszystkimi takimi samymi cyframi. Czego nie sprawdza: czy numer CNPJ jest zarejestrowany w bazie rządowej — do tego wymagane jest bezpośrednie zapytanie do Receita Federal.
Rzeczywiste przypadki użycia generatora i walidatora CNPJ
Tworzenie oprogramowania i testowanie
Zasilanie bazy danych: Podczas konfigurowania środowiska przejściowego z realistycznymi danymi testowymi, potrzebujesz dziesiątek lub setek ważnych numerów CNPJ. Ręczne ich tworzenie jest żmudne, a używanie rzeczywistych identyfikatorów firm budzi obawy prywatności. Generowane numery CNPJ rozwiązują oba problemy.
Testowanie przypadków skrajnych: Twoja funkcja walidacji powinna odrzucić 00.000.000/0000-00, ale zaakceptować 11.222.333/0001-81. Posiadanie generatora pozwala szybko tworzyć zarówno ważne, jak i celowo nieprawidłowe przypadki testowe, aby sprawdzić, czy logika poprawnie obsługuje warunki graniczne.
Testy regresyjne QA: Podczas testowania formularzy rejestracji lub przepływów płatności B2B, zespoły QA potrzebują świeżych danych testowych dla każdego uruchomienia. Częstym problemem jest zanieczyszczenie środowisk testowych tymi samymi 5-6 numerami CNPJ używanymi wielokrotnie, co maskuje błędy pojawiające się tylko z określonymi wzorcami cyfr.
Testowanie integracji API: Jeśli integrujesz się z brazlijskimi procesorami płatności, takimi jak PagSeguro lub Mercado Pago, ich środowiska piaskownicy często wymagają poprawnego formatowania CNPJ. Matematyka musi być poprawna, nawet jeśli nie korzystasz z produkcyjnych baz danych.
Przetwarzanie i walidacja danych
Czyszczenie importowanych danych: Otrzymałeś plik CSV z 10 000 rekordów brazlijskich firm. Przed przetworzeniem musisz zidentyfikować nieprawidłowe numery CNPJ. Przepuszczenie ich przez walidator oznacza wpisy z literówkami, skróceniami lub nieprawidłowymi cyframi kontrolnymi — oszczędzając godziny debugowania.
Walidacja formularza po stronie klienta: Wychwycenie nieprawidłowych numerów CNPJ przed wysłaniem formularza poprawia doświadczenie użytkownika. Nikt nie chce wypełniać 20-polowego formularza rejestracji, aby następnie dostać błąd przy wysyłce z powodu przestawienia dwóch cyfr w numerze CNPJ.
Anonimizacja danych do analizy: Podczas przygotowywania danych produkcyjnych do udostępnienia zespołom analitycznym lub partnerom zewnętrznym, musisz zastąpić prawdziwe numery CNPJ ważnymi, ale fikcyjnymi. Zachowuje to integralność referencyjną w zestawie danych, chroniąc jednocześnie rzeczywiste tożsamości firm.
Międzynarodowe operacje biznesowe
Zrozumienie wymagań brazlijskich: Jeśli rozszerzasz działalność na rynek brazylijski, napotkasz wymagania dotyczące CNPJ w umowach, fakturach i dokumentach wysyłkowych. Posiadanie narzędzia do eksperymentowania z formatem pomaga zrozumieć, co Twoje systemy muszą obsłużyć.
Specyfikacje integracji stron trzecich: Podczas przeglądania dokumentacji API brazlijskich dostawców SaaS często zobaczysz pola CNPJ w przykładowych ładunkach. Możliwość generowania ważnych wartości testowych pomaga szybciej prototypować integracje.
Alternatywne podejścia do walidacji CNPJ
Biblioteki programistyczne
Jeśli potrzebujesz walidacji CNPJ wbudowanej w logikę aplikacji, te biblioteki implementują algorytm sprawdzania cyfry kontrolnej:
- JavaScript/Node.js:
cpf-cnpj-validator(130k+ pobrań tygodniowo),validator.js(obsługuje dokumenty brazylijskie) - Python:
validate-docbr(sprawdza CPF, CNPJ i inne dokumenty brazylijskie),python-cnpj - PHP:
respect/validation(zawiera reguły CNPJ),brazilianutils - Java:
caelum-stella(kompleksowa walidacja dokumentów brazylijskich) - Ruby: biblioteka
cpf_cnpj
Te biblioteki zazwyczaj obsługują formatowanie, parsowanie i walidację wielu typów dokumentów brazylijskich (CPF, CNPJ itp.).
Oficjalne interfejsy API weryfikacji
Dla systemów produkcyjnych, które potrzebują weryfikacji faktowej rejestracji biznesowej:
- Publiczna Służba Receita Federal: Konsultacja API CNPJ umożliwia weryfikację w oficjalnej bazie danych (wymaga odpowiedniego upoważnienia i ograniczenia liczby zapytań)
- Dostawcy danych zewnętrznych: Usługi takie jak Serasa Experian i Boa Vista SCPC oferują komercyjne API zwracające szczegóły firmy, status rejestracji i informacje kredytowe
Uwaga: Te usługi sprawdzają faktyczną rejestrację, a nie tylko matematyczną poprawność. Będziesz potrzebować odpowiedniego upoważnienia i należy spodziewać się kosztów API w użyciu produkcyjnym.
Kiedy używać każdego podejścia
Użyj tego narzędzia przeglądarki, gdy: potrzebujesz szybkiej walidacji bez instalowania zależności, generowania danych testowych do demonstracji lub nauki, jak działa walidacja CNPJ.
Użyj biblioteki, gdy: budujesz aplikację, która wymaga walidacji po stronie klienta lub serwera jako części przetwarzania formularza.
Użyj oficjalnego API, gdy: musisz zweryfikować, czy CNPJ odpowiada rzeczywistemu, aktywnemu podmiotowi biznesowemu z aktualnym statusem rejestracji.
Szczegóły techniczne implementacji
To narzędzie działa całkowicie w przeglądarce przy użyciu JavaScript — bez żadnych żądań serwera, bez opuszczania danych twojej maszyny. Oto jak działają algorytmy pod maską, z kodem, który możesz zaadaptować do własnych projektów:
Algorytm generowania CNPJ
1function generateCNPJ() {
2 // Wygeneruj pierwsze 12 cyfr losowo
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Oblicz pierwszą cyfrę kontrolną
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Oblicz drugą cyfrę kontrolną
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Sformatuj CNPJ
14 return formatCNPJ(digits.join(''));
15}
16
17function calculateCheckDigit(digits) {
18 const weights = digits.length < 13
19 ? [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
20 : [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
21
22 const sum = digits.reduce((acc, digit, index) => {
23 return acc + digit * weights[index];
24 }, 0);
25
26 const remainder = sum % 11;
27 return remainder < 2 ? 0 : 11 - remainder;
28}
29Algorytm walidacji CNPJ
1function validateCNPJ(cnpj) {
2 // Usuń znaki niebędące cyframi
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Sprawdź, czy ma prawidłową długość
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Sprawdź znane nieprawidłowe wzorce (wszystkie takie same cyfry)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Konwertuj na tablicę cyfr
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Sprawdź pierwszą cyfrę weryfikacyjną
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Sprawdź drugą cyfrę weryfikacyjną
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24Funkcja formatowania CNPJ
1function formatCNPJ(cnpj) {
2 // Usuń znaki niebędące cyframi
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formatuj w zależności od długości
6 if (cleanCNPJ.length <= 2) {
7 return cleanCNPJ;
8 } else if (cleanCNPJ.length <= 5) {
9 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2)}`;
10 } else if (cleanCNPJ.length <= 8) {
11 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2, 5)}.${cleanCNPJ.slice(5)}`;
12 } else if (cleanCNPJ.length <= 12) {
13 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2, 5)}.${cleanCNPJ.slice(5, 8)}/${cleanCNPJ.slice(8)}`;
14 } else {
15 return `${cleanCNPJ.slice(0, 2)}.${cleanCNPJ.slice(2, 5)}.${cleanCNPJ.slice(5, 8)}/${cleanCNPJ.slice(8, 12)}-${cleanCNPJ.slice(12, 14)}`;
16 }
17}
18Te podstawowe funkcje można zaimplementować w innych językach programowania, stosując tę samą logikę. Oto przykłady w Pythonie i Javie:
Implementacja w Pythonie
1import random
2
3def calculate_check_digit(digits):
4 weights = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] if len(digits) < 13 else [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
5
6 total = 0
7 for i in range(len(digits)):
8 total += digits[i] * weights[i]
9
10 remainder = total % 11
11 return 0 if remainder < 2 else 11 - remainder
12
13def generate_cnpj():
14 # Wygeneruj pierwsze 12 cyfr losowo
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Oblicz pierwszą cyfrę kontrolną
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Oblicz drugą cyfrę kontrolną
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Sformatuj CNPJ
26 cnpj = ''.join(map(str, digits))
27 return f"{cnpj[:2]}.{cnpj[2:5]}.{cnpj[5:8]}/{cnpj[8:12]}-{cnpj[12:]}"
28
29def validate_cnpj(cnpj):
30 # Usuń znaki niebędące cyframi
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Sprawdź długość
34 if len(cnpj) != 14:
35 return False
36
37 # Sprawdź, czy wszystkie cyfry są takie same
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Konwertuj na listę liczb całkowitych
42 digits = [int(d) for d in cnpj]
43
44 # Sprawdź pierwszą cyfrę kontrolną
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Sprawdź drugą cyfrę kontrolną
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Implementacja w Javie
1import java.util.Random;
2
3public class CNPJUtils {
4
5 public static String generateCNPJ() {
6 Random random = new Random();
7 int[] digits = new int[14];
8
9 // Wygeneruj pierwsze 12 cyfr losowo
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Oblicz pierwszą cyfrę kontrolną
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Oblicz drugą cyfrę kontrolną
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Sformatuj CNPJ
21 return String.format("%02d.%03d.%03d/%04d-%02d",
22 digits[0] * 10 + digits[1],
23 digits[2] * 100 + digits[3] * 10 + digits[4],
24 digits[5] * 100 + digits[6] * 10 + digits[7],
25 digits[8] * 1000 + digits[9] * 100 + digits[10] * 10 + digits[11],
26 digits[12] * 10 + digits[13]);
27 }
28
29 private static int calculateCheckDigit(int[] digits, int length) {
30 int[] weights = length < 13
31 ? new int[]{5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2}
32 : new int[]{6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2};
33
34 int sum = 0;
35 for (int i = 0; i < length; i++) {
36 sum += digits[i] * weights[i];
37 }
38
39 int remainder = sum % 11;
40 return remainder < 2 ? 0 : 11 - remainder;
41 }
42
43 public static boolean validateCNPJ(String cnpj) {
44 // Usuń znaki niebędące cyframi
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Sprawdź długość
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Sprawdź, czy wszystkie cyfry są takie same
53 boolean allDigitsSame = true;
54 for (int i = 1; i < cnpj.length(); i++) {
55 if (cnpj.charAt(i) != cnpj.charAt(0)) {
56 allDigitsSame = false;
57 break;
58 }
59 }
60 if (allDigitsSame) {
61 return false;
62 }
63
64 // Konwertuj na tablicę liczb całkowitych
65 int[] digits = new int[14];
66 for (int i = 0; i < 14; i++) {
67 digits[i] = Character.getNumericValue(cnpj.charAt(i));
68 }
69
70 // Sprawdź pierwszą cyfrę kontrolną
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Sprawdź drugą cyfrę kontrolną
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Ważne ograniczenia i uwagi
Co to narzędzie może i czego nie może zrobić
Co weryfikuje: Poprawność matematyczną — czy cyfry kontrolne zgadzają się z algorytmem obliczeniowym.
Czego nie weryfikuje: Czy CNPJ jest zarejestrowany w Receita Federal, czy należy do aktywnej firmy lub czy jest powiązany z oczekiwaną nazwą firmy.
Pomyśl o tym jak o sprawdzaniu pisowni w przeciwieństwie do sprawdzania faktów. To narzędzie informuje, czy CNPJ jest "napisany" poprawnie zgodnie z regułami matematycznymi, ale nie może stwierdzić, czy numer odpowiada rzeczywistemu, aktywnemu podmiotowi gospodarczemu.
Prawne i etyczne użycie
Generowane CNPJs są przeznaczone tylko do testowania i rozwoju. Są matematycznie poprawne, ale nie zarejestrowane w brazylijskih władzach, co oznacza:
- ✅ Bezpieczne do użycia w: Wypełnianiu testowych baz danych, testach jednostkowych, środowiskach QA, przykładach kodu w dokumentacji
- ❌ Nigdy nie używać do: Składania zeznań podatkowych, rejestracji firmy, podpisywania umów, realizacji rzeczywistych transakcji lub fałszywego przedstawiania tożsamości firmy
Użycie fałszywego CNPJ do celów oficjalnych nie jest tylko nieetyczne — jest nielegalne zgodnie z prawem brazylijskim i może skutkować zarzutami oszustwa.
Techniczne ograniczenia do poznania
Losowa generacja ma konsekwencje: Narzędzie generuje pierwsze 12 cyfr losowo. Prawdziwe CNPJs wydawane przez Receita Federal przestrzegają wewnętrznych wzorców związanych z datą rejestracji, regionalnym biurem i typem firmy. Wygenerowane numery nie będą odpowiadać tym wzorcom, co zaawansowane systemy walidacji mogą oznaczyć.
Brak walidacji semantycznej: Poprawny format CNPJ nie oznacza poprawnego kontekstu biznesowego. Na przykład, podmioty rządowe mają specyficzne zakresy CNPJ — ten generator może przypadkowo utworzyć jeden, ale nie będzie on znaczący.
Obsługa formatu: Walidator akceptuje różne formaty wprowadzania (12345678000195, 12.345.678/0001-95), ale niektóre starsze systemy oczekują dokładnego formatowania. Zawsze testuj ze specyficznymi wymaganiami integracji.
Prywatność i bezpieczeństwo
Całe przetwarzanie odbywa się po stronie klienta w przeglądarce. Żadne generowane lub weryfikowane CNPJs nie są wysyłane na serwery, rejestrowane lub przechowywane. Narzędzie nie żąda, nie obsługuje ani nie przetwarza żadnych danych osobowych.
Często zadawane pytania dotyczące walidacji CNPJ
Jaka jest różnica między walidacją a weryfikacją CNPJ?
Walidacja sprawdza, czy numer jest matematycznie poprawny — ma odpowiedni format, prawidłowe cyfry kontrolne, bez nieprawidłowych wzorców. To narzędzie wykonuje walidację.
Weryfikacja sprawdza, czy CNPJ jest zarejestrowany w bazie danych Receita Federal. Weryfikacja wymaga zapytania do bazy rządowej i nie jest czymś, co to narzędzie robi.
Możesz mieć całkowicie poprawny CNPJ, który nie jest zweryfikowany (jak numery testowe generowane przez to narzędzie), lub nieprawidłowy CNPJ należący do realnej firmy (ponieważ ktoś popełnił błąd przy wprowadzaniu).
Czy mogę używać generowanych CNPJ do testów produkcyjnych?
Zależy, co rozumiesz przez "testy produkcyjne". Są dobre dla środowisk stagingowych, testów obciążeniowych i testów przed uruchomieniem. Ale jeśli przez „testy produkcyjne" rozumiesz testowanie z rzeczywistymi transakcjami, rządowymi API lub systemami finansowymi — wtedy nie, potrzebujesz faktycznie zarejestrowanych CNPJ.
Bezpieczniejsze podejście: używaj generowanych CNPJ w izolowanych środowiskach testowych, a następnie przełącz się na małą grupę prawdziwych testowych CNPJ firm (które kontrolujesz) podczas testowania integracji produkcyjnych.
Dlaczego walidator odrzuca 11.111.111/1111-11?
Mimo że CNPJ ze wszystkimi identycznymi cyframi może matematycznie wygenerować prawidłowe cyfry kontrolne, Receita Federal wyraźnie wyklucza takie wzorce. To reguła biznesowa, nie matematyczna. To samo dotyczy sekwencyjnych wzorców w niektórych systemach walidacji.
Jest to podobne do tego, jak wiele systemów odrzuca hasła takie jak „hasło123", mimo że spełniają wymagania długości — są technicznie poprawne, ale praktycznie niedopuszczalne.
Jak radzić sobie z walidacją CNPJ w różnych lokalizacjach?
Brazylijskie firmy prowadzące biznes międzynarodowy czasami pomijają znaki formatujące podczas wprowadzania CNPJ do zagranicznych systemów. Twoja logika walidacji powinna usuwać znaki nienumeryczne przed sprawdzeniem:
1const cleanCNPJ = input.replace(/\D/g, ''); // Usuń wszystko oprócz cyfr
2Akceptuj 12.345.678/0001-95, 12345678000195 i 12 345 678 0001 95 jako równoważne dane wejściowe.
A co z walidacją CNPJ vs CPF?
CPF (Cadastro de Pessoas Físicas) to brazylijski indywidualny numer identyfikacji podatkowej, podczas gdy CNPJ jest dla firm. Używają różnych algorytmów cyfr kontrolnych i różnej długości (CPF ma 11 cyfr, CNPJ — 14). Jeśli budujesz brazylijską aplikację obsługującą oba, będziesz potrzebować osobnych funkcji walidacji — choć wiele bibliotek obsługuje oba formaty.
Typowy wzorzec: pozwól użytkownikom wprowadzić CPF lub CNPJ w tym samym polu, a następnie wykryj typ na podstawie długości po usunięciu znaków formatujących.
Czy to działa dla zagranicznych firm działających w Brazylii?
Zagraniczne firmy działające w Brazylii muszą również uzyskać CNPJ z Receita Federal. Ich CNPJ stosuje się do tego samego formatu i reguł walidacji co firmy krajowe. Nie ma specjalnego formatu CNPJ dla firm zagranicznych.
Jednak zagraniczne firmy mogą mieć dodatkowe wymagania dokumentacyjne i różne procesy rejestracji — skonsultuj się z brazylijskim adwokatem biznesowym, aby uzyskać szczegóły.
Czy mogę odpytać bazę rządową, aby zweryfikować rejestrację CNPJ?
Tak, Receita Federal udostępnia publiczny dostęp do weryfikacji podstawowych informacji o CNPJ za pośrednictwem ich Consulta Pública CNPJ. Możesz ręcznie wyszukiwać CNPJ lub, po uzyskaniu odpowiedniego zezwolenia, używać ich API do dostępu programowego.
Uwaga: intensywne użycie wymaga rejestracji i istnieją ograniczenia liczby zapytań, aby zapobiec nadużyciom.
Jak często zmieniają się CNPJ?
CNPJ to stałe identyfikatory, które nie zmieniają się, gdy firma zmienia nazwę, adres lub strukturę własności. Jednak jeśli firma zamyka działalność, a później się ponownie rejestruje, może otrzymać nowy CNPJ. Numery oddziałów (część /XXXX) mogą być dodawane, gdy firmy otwierają nowe lokalizacje, ale bazowy 8-cyfrowy numer pozostaje stały.
Referencje i dodatkowe zasoby
Oficjalne źródła rządowe
- Receita Federal do Brasil - Portal Oficjalny - Oficjalna strona internetowa Brazylijskiej Federalnej Służby Skarbowej z usługami rejestracji i weryfikacji CNPJ
- Consulta Pública CNPJ - Publiczne wyszukiwanie CNPJ - Oficjalna usługa rządowa do sprawdzania statusu rejestracji CNPJ
- Instrukcja Normatywna RFB nr 1863/2018 - Przepisy prawne regulujące rejestrację i użycie CNPJ w Brazylii
Standardy techniczne i dokumentacja
- Algorytmy arytmetyki modularnej - Obliczenie cyfry kontrolnej używa arytmetyki modulo 11, standardowego podejścia do walidacji cyfr
- ISO/IEC 7064 - Międzynarodowy standard systemów cyfr kontrolnych, który wpłynął na projekt walidacji dokumentów brazylijskich
- Brazylijski Kodeks Cywilny (Ustawa nr 10.406/2002) - Ramy prawne definiujące klasyfikacje podmiotów gospodarczych wymagających rejestracji CNPJ
Zasoby dla programistów
- Rejestr pakietów NPM - npmjs.com - Repozytorium bibliotek JavaScript, w tym walidatorów dokumentów brazylijskich
- PyPI (Indeks Pakietów Pythona) - pypi.org - Biblioteki Pythona do walidacji CNPJ i przetwarzania dokumentów brazylijskich
- GitHub - Implementacje open-source walidacji CNPJ w wielu językach programowania
Rozpocznij generowanie i walidację numerów CNPJ
Bez względu na to, czy budujesz brazylijski sklep internetowy, testujesz integracje płatności z Mercado Pago, czy po prostu chcesz zrozumieć, jak działa walidacja CNPJ, to narzędzie zapewnia natychmiastowy dostęp do możliwości generowania i weryfikacji.
Bez instalacji, bez kluczy API, bez skomplikowanego ustawiania. Po prostu otwórz przeglądarkę i zacznij pracować z prawidłowymi identyfikatorami brazylijskich firm.