Generator i Walidator CNPJ w Brazylii do Testów
Generuj ważne numery CNPJ w Brazylii i waliduj istniejące za pomocą tego prostego narzędzia zaprojektowanego dla programistów i testerów pracujących z identyfikatorami firm w Brazylii.
Generator i Walidator CNPJ w Brazylii
Generator CNPJ
Wygeneruj ważny numer CNPJ w Brazylii do celów testowych.
Walidator CNPJ
Sprawdź, czy numer CNPJ w Brazylii jest ważny.
Dokumentacja
Generator i Walidator CNPJ w Brazylii
Wprowadzenie
CNPJ (Cadastro Nacional da Pessoa Jurídica) to unikalny numer identyfikacyjny przypisany do firm i podmiotów prawnych w Brazylii. Narzędzie do generowania i walidacji CNPJ w Brazylii oferuje prosty i efektywny sposób na generowanie ważnych numerów CNPJ do celów testowych oraz walidację istniejących numerów CNPJ zgodnie z oficjalnym algorytmem brazylijskim. Niezależnie od tego, czy jesteś programistą testującym aplikacje obsługujące dane biznesowe z Brazylii, profesjonalistą QA tworzącym przypadki testowe, czy kimkolwiek pracującym z informacjami o firmach brazylijskich, to narzędzie upraszcza proces pracy z numerami CNPJ.
W przeciwieństwie do rzeczywistych numerów CNPJ, które są oficjalnie wydawane przez brazylijską Służbę Skarbową (Receita Federal), numery CNPJ generowane przez to narzędzie są matematycznie ważne, ale nie zarejestrowane na rzeczywiste firmy. To czyni je idealnymi do scenariuszy testowych, danych przykładowych i środowisk deweloperskich, w których potrzebujesz poprawnie sformatowanych i ważnych numerów CNPJ bez używania prawdziwych identyfikatorów biznesowych.
Co to jest CNPJ?
CNPJ (Cadastro Nacional da Pessoa Jurídica) to 14-cyfrowy numer identyfikacyjny przypisany do firm i podmiotów prawnych przez brazylijską Służbę Skarbową. Służy jako brazylijski odpowiednik numeru rejestracyjnego firmy lub identyfikatora podatkowego. Każda firma działająca legalnie w Brazylii musi mieć CNPJ, który jest używany do:
- Raportowania podatkowego i zgodności
- Rejestracji firmy w agencjach rządowych
- Otwierania kont bankowych
- Wystawiania faktur i paragonów
- Uczestniczenia w przetargach rządowych
- Importowania i eksportowania towarów
CNPJ jest niezbędnym identyfikatorem w ekosystemie biznesowym Brazylii i pojawia się na oficjalnych dokumentach, umowach i zapisach finansowych.
Struktura i Format CNPJ
Brazylijski CNPJ składa się z 14 cyfr, zazwyczaj sformatowanych jako: XX.XXX.XXX/YYYY-ZZ
Struktura dzieli się na następujące części:
- Pierwsze 8 cyfr (XX.XXX.XXX): Numer podstawowy przypisany firmie
- 4 cyfry po ukośniku (YYYY): Identyfikator oddziału (0001 dla siedziby głównej, inne numery dla oddziałów)
- Ostatnie 2 cyfry (ZZ): Cyfry kontrolne do walidacji
Na przykład, poprawnie sformatowany CNPJ może wyglądać tak: 12.345.678/0001-95
Cyfry kontrolne (ostatnie dwie liczby) są obliczane za pomocą konkretnego algorytmu matematycznego, który waliduje autentyczność CNPJ. Ten algorytm zapewnia, że losowo generowane numery nie mogą przejść walidacji bez zastosowania odpowiedniej metody obliczeniowej.
Jak działa walidacja CNPJ
Algorytm walidacji CNPJ wykorzystuje ważoną kalkulację do określenia cyfr kontrolnych. Oto jak to działa:
Obliczanie pierwszej cyfry kontrolnej
- Pomnóż każdą z pierwszych 12 cyfr przez sekwencję wag: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Zsumuj wyniki tych mnożeń
- Oblicz resztę z tej sumy podzielonej przez 11
- Jeśli reszta jest mniejsza niż 2, pierwsza cyfra kontrolna to 0; w przeciwnym razie to 11 minus reszta
Obliczanie drugiej cyfry kontrolnej
- Pomnóż każdą z pierwszych 13 cyfr (w tym pierwszą cyfrę kontrolną) przez sekwencję wag: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Zsumuj wyniki tych mnożeń
- Oblicz resztę z tej sumy podzielonej przez 11
- Jeśli reszta jest mniejsza niż 2, druga cyfra kontrolna to 0; w przeciwnym razie to 11 minus reszta
Aby CNPJ był ważny, obie cyfry kontrolne muszą odpowiadać obliczonym wartościom.
Jak korzystać z tego narzędzia
Nasze narzędzie do generowania i walidacji CNPJ w Brazylii oferuje dwie główne funkcje: generowanie ważnych CNPJ i walidację istniejących numerów CNPJ.
Generowanie CNPJ
Aby wygenerować ważny CNPJ do celów testowych:
- Przejdź do sekcji "Generator CNPJ" w narzędziu
- Kliknij przycisk "Generuj CNPJ"
- Matematycznie ważny CNPJ pojawi się w sformatowanym wyświetlaczu
- Użyj przycisku "Kopiuj", aby skopiować wygenerowany CNPJ do schowka
Wygenerowany CNPJ będzie przestrzegał wszystkich reguł matematycznej walidacji rzeczywistego CNPJ, ale nie będzie zarejestrowany w brazylijskiej Służbie Skarbowej.
Walidacja CNPJ
Aby sprawdzić, czy CNPJ jest matematycznie ważny:
- Przejdź do sekcji "Walidator CNPJ" w narzędziu
- Wprowadź CNPJ, który chcesz zwalidować, w polu wejściowym
- Narzędzie akceptuje CNPJ z lub bez formatowania (kropki, ukośniki i myślniki)
- Kliknij przycisk "Waliduj"
- Narzędzie wyświetli, czy CNPJ jest ważny, czy nie, na podstawie algorytmu cyfr kontrolnych
Walidator sprawdza, czy CNPJ przestrzega poprawnego formatu i czy cyfry kontrolne odpowiadają oczekiwanym wartościom zgodnie z algorytmem walidacji.
Przykłady użycia
To narzędzie do generowania i walidacji CNPJ w Brazylii jest szczególnie przydatne w następujących scenariuszach:
Rozwój oprogramowania i testowanie
- Tworzenie danych testowych: Generuj ważne CNPJ do wypełniania baz danych testowych bez używania rzeczywistych identyfikatorów firm
- Testowanie jednostkowe: Waliduj funkcje obsługi CNPJ w swoim kodzie przy użyciu znanych przykładów ważnych i nieważnych
- Testowanie QA: Twórz przypadki testowe dla formularzy i interfejsów wymagających wejścia CNPJ
- Testowanie integracyjne: Testuj systemy wymieniające dane z brazylijskimi usługami rządowymi lub instytucjami finansowymi
Edukacja i szkolenie
- Nauka formatu CNPJ: Zrozum, jak strukturalnie zbudowane są brazylijskie identyfikatory biznesowe
- Studium algorytmu: Zbadaj, jak działa walidacja cyfr kontrolnych w praktyce
- Techniki walidacji danych: Studiuj rzeczywiste przykłady wymagań dotyczących walidacji danych
Przetwarzanie danych
- Czyszczenie danych: Waliduj CNPJ w istniejących zestawach danych, aby zidentyfikować potencjalne błędy
- Walidacja formularzy: Wdrażaj walidację po stronie klienta lub serwera dla wejść CNPJ
- Anonymizacja danych: Zastąp rzeczywiste CNPJ wygenerowanymi, gdy przygotowujesz zestawy danych do analizy
Międzynarodowy biznes
- Przygotowanie do wejścia na rynek: Zrozum wymagania dotyczące identyfikacji biznesowej w Brazylii
- Przygotowanie dokumentów: Upewnij się, że format jest poprawny podczas przygotowywania dokumentów biznesowych dla Brazylii
- Sprawdzanie zgodności: Zweryfikuj, czy zebrane numery CNPJ są przynajmniej matematycznie ważne
Alternatywy
Chociaż nasze narzędzie zapewnia prostą, opartą na przeglądarce rozwiązanie do generowania i walidacji CNPJ, istnieje kilka alternatyw w zależności od Twoich specyficznych potrzeb:
Biblioteki programistyczne
Dla programistów integrujących walidację CNPJ bezpośrednio w aplikacjach dostępnych jest kilka bibliotek specyficznych dla języków:
- JavaScript:
cpf_cnpj.js
,validator.js
- Python:
python-cnpj
,validate-docbr
- PHP:
brazilianutils
,respect/validation
- Java:
caelum-stella
,commons-validator
- Ruby:
cpf_cnpj
,brazilian-rails
Te biblioteki często oferują dodatkową funkcjonalność, taką jak formatowanie, analizowanie i walidacja innych brazylijskich dokumentów.
Usługi API
Dla aplikacji wymagających walidacji bez wdrażania algorytmu:
- Brazylijskie API rządowe (wymaga rejestracji)
- Komercyjne API walidacyjne, które obejmują sprawdzanie CNPJ
- Usługi informacji biznesowej, które walidują w stosunku do oficjalnej bazy danych
Ręczne obliczenia
Dla celów edukacyjnych lub jednorazowych walidacji można ręcznie zastosować algorytm:
- Wyodrębnij pierwsze 12 cyfr CNPJ
- Wykonaj obliczenia ważone, jak opisano wcześniej
- Porównaj obliczone cyfry kontrolne z rzeczywistymi cyframi kontrolnymi
Jednak ręczne obliczenia są podatne na błędy i nieefektywne w regularnym użyciu.
Implementacja techniczna
Generator i walidator CNPJ w tym narzędziu są zaimplementowane przy użyciu JavaScript, co czyni je szybkim i zdolnym do działania całkowicie w Twojej przeglądarce bez wysyłania danych na serwer. Oto jak działają podstawowe funkcje:
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}
29
Algorytm walidacji CNPJ
1function validateCNPJ(cnpj) {
2 // Usuń znaki nienumeryczne
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Sprawdź, czy ma poprawną długość
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Sprawdź znane wzorce nieważne (wszystkie te same cyfry)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Przekształć na tablicę cyfr
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Sprawdź pierwszą cyfrę kontrolną
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Sprawdź drugą cyfrę kontrolną
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24
Funkcja formatowania CNPJ
1function formatCNPJ(cnpj) {
2 // Usuń znaki nienumeryczne
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formatuj na podstawie 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}
18
Te 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 nienumeryczne
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 # Przekształć na listę cyfr
42 digits = [int(d) for d in cnpj]
43
44 # Waliduj pierwszą cyfrę kontrolną
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Waliduj drugą cyfrę kontrolną
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55
Implementacja 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 nienumeryczne
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 // Przekształć na tablicę cyfr
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 // Waliduj pierwszą cyfrę kontrolną
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Waliduj drugą cyfrę kontrolną
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
Ważne uwagi
Podczas korzystania z tego narzędzia do generowania i walidacji CNPJ, pamiętaj o następujących uwagach:
Kwestie prawne i etyczne
- Nie do oszustwa: Wygenerowane CNPJ nie powinny być nigdy używane do oszustw ani fałszywego przedstawiania
- Tylko do testów: Te CNPJ są przeznaczone tylko do celów testowych i rozwojowych
- Nie zarejestrowane: Wygenerowane CNPJ są matematycznie ważne, ale nie zarejestrowane w brazylijskich władzach
- Brak rzeczywistej ważności: Nie mogą być używane do rzeczywistej rejestracji biznesu ani celów podatkowych
Ograniczenia techniczne
- Brak informacji o firmie: Wygenerowane CNPJ nie zawierają rzeczywistych kodów sektorów biznesowych ani informacji lokalizacyjnych
- Brak weryfikacji bazy danych: Walidator sprawdza tylko ważność matematyczną, a nie status rejestracji
- Różnice w formacie: Chociaż narzędzie obsługuje powszechne różnice w formatowaniu, niektóre systemy mogą wymagać specyficznych formatów
Kwestie bezpieczeństwa
- Przetwarzanie po stronie klienta: Całe przetwarzanie odbywa się w Twojej przeglądarce; żadne dane nie są wysyłane na serwery
- Brak przechowywania danych: Wygenerowane CNPJ nie są przechowywane ani rejestrowane
- Brak danych osobowych: Narzędzie nie obsługuje ani nie przetwarza żadnych danych osobowych
Najczęściej zadawane pytania
Do czego używa się CNPJ w Brazylii?
CNPJ to krajowy numer rejestracyjny dla firm i podmiotów prawnych w Brazylii. Jest używany do celów podatkowych, rejestracji firm, otwierania kont bankowych i identyfikowania firm w oficjalnych transakcjach.
Czy CNPJ generowane przez to narzędzie są prawdziwe?
Nie. CNPJ generowane przez to narzędzie są matematycznie ważne zgodnie z algorytmem cyfr kontrolnych, ale nie są zarejestrowane w brazylijskiej Służbie Skarbowej i nie należą do rzeczywistych firm.
Czy mogę używać wygenerowanych CNPJ dla mojej firmy?
Nie. Aby uzyskać legalny CNPJ dla firmy, musisz zarejestrować się w brazylijskiej Służbie Skarbowej (Receita Federal) zgodnie z oficjalnym procesem. Wygenerowane CNPJ są przeznaczone tylko do celów testowych.
Jak mogę sprawdzić, czy CNPJ należy do prawdziwej firmy?
Aby zweryfikować, czy CNPJ jest zarejestrowany na rzeczywistą firmę, musisz skonsultować się z bazą danych brazylijskiej Służby Skarbowej. Nasze narzędzie sprawdza tylko, czy CNPJ jest matematycznie ważne, a nie czy jest oficjalnie zarejestrowane.
Dlaczego walidator odrzuca CNPJ z wszystkimi tymi samymi cyframi?
CNPJ z wszystkimi tymi samymi cyframi (jak 11.111.111/1111-11) są automatycznie uznawane za nieważne, nawet jeśli matematycznie przechodzą algorytm cyfr kontrolnych. To zasada ustalona przez brazylijską Służbę Skarbową.
Czy narzędzie przechowuje CNPJ, które generuję lub waliduję?
Nie. Całe przetwarzanie odbywa się w Twojej przeglądarce, a my nie przechowujemy ani nie przesyłamy żadnych CNPJ, które generujesz lub walidujesz.
Czy mogę wygenerować wiele CNPJ jednocześnie?
Obecna wersja narzędzia generuje jeden CNPJ na raz. Dla masowej generacji możesz rozważyć użycie jednej z bibliotek programistycznych wymienionych w sekcji Alternatywy.
Dlaczego format XX.XXX.XXX/XXXX-XX jest ważny?
To oficjalny format wymagany przez brazylijskie władze. Konkretne grupowanie pomaga zidentyfikować różne komponenty CNPJ, takie jak numer podstawowy i identyfikator oddziału.
Jak mogę programowo walidować CNPJ?
Możesz zaimplementować algorytm walidacji w swoim preferowanym języku programowania, korzystając z przykładów kodu podanych w sekcji Implementacja techniczna, lub użyć jednej z bibliotek wymienionych w sekcji Alternatywy.
Czy istnieją specjalne CNPJ dla podmiotów rządowych?
Tak. Podmioty rządowe w Brazylii mają specyficzne wzorce CNPJ. Na przykład, federalne podmioty rządowe często zaczynają się od konkretnych cyfr. Nasz generator tworzy losowe CNPJ i nie generuje specyficznych CNPJ dla podmiotów rządowych.
Źródła
- Brazylijska Służba Skarbowa (Receita Federal do Brasil) - Oficjalna strona
- "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
- Brazylijski Kodeks Cywilny (Ustawa nr 10.406/2002) - Ramy prawne dla podmiotów biznesowych w Brazylii
- Normatywna Instrukcja Rejestracji Firm w Brazylii (IN RFB nr 1863/2018) - Regulacje dotyczące rejestracji CNPJ
Wypróbuj teraz
Nasze narzędzie do generowania i walidacji CNPJ w Brazylii sprawia, że praca z tymi numerami identyfikacyjnymi jest prosta i efektywna. Niezależnie od tego, czy testujesz aplikacje, przygotowujesz dane przykładowe, czy walidujesz istniejące CNPJ, to narzędzie zapewnia proste rozwiązanie bez złożoności integracji API lub zaawansowanych konfiguracji.
Wygeneruj swój pierwszy ważny CNPJ teraz lub zwaliduj istniejący, korzystając z naszego prostego interfejsu!
Opinie
Kliknij powiadomienie o opinii, aby rozpocząć przesyłanie opinii o tym narzędziu
Powiązane narzędzia
Odkryj więcej narzędzi, które mogą być przydatne w Twoim przepływie pracy