Generator i validator CNPJ-a za Brazil za testiranje
Generirajte valjane brazilske CNPJ brojeve i validirajte postojeće pomoću ovog jednostavnog alata namijenjenog programerima i testerima koji rade s brazilski poslovnim identifikatorima.
Generator i Validacija CNPJ-a
Generator CNPJ-a
Generirajte valjani brazilski CNPJ broj za testne svrhe.
Validacija CNPJ-a
Provjerite je li brazilski CNPJ broj valjan.
Dokumentacija
Hrvatski CNPJ Generator i Validator Alat
Uvod
CNPJ (Cadastro Nacional da Pessoa Jurídica) je jedinstveni identifikacijski broj koji se dodjeljuje poslovnim subjektima i pravnim osobama u Brazilu. Ovaj alat za generiranje i validaciju brazilskog CNPJ-a pruža jednostavan i učinkovit način za generiranje valjanih CNPJ brojeva u svrhe testiranja i validaciju postojećih CNPJ brojeva prema službenoj brazilskog algoritmu. Bilo da ste programer koji testira aplikacije koje obrađuju podatke o brazilskim tvrtkama, QA stručnjak koji stvara testne slučajeve, ili bilo tko tko radi s informacijama o brazilskim tvrtkama, ovaj alat pojednostavljuje proces rada s CNPJ brojevima.
Za razliku od pravih CNPJ brojeva koji se službeno izdaju od strane brazilske Savezne porezne uprave (Receita Federal), CNPJ-ovi generirani ovim alatom su matematički valjani, ali nisu registrirani na stvarne tvrtke. To ih čini savršenima za testne scenarije, uzorke podataka i razvojna okruženja gdje su potrebni ispravno formatirani i valjani CNPJ brojevi bez korištenja stvarnih identifikatora tvrtki.
Što je CNPJ?
CNPJ (Cadastro Nacional da Pessoa Jurídica) je 14-cifreni identifikacijski broj koji dodjeljuje brazilska Savezna porezna uprava poslovnim subjektima i pravnim osobama. To je brazilski ekvivalent broju registracije tvrtke ili poreznom identifikacijskom broju. Svaka tvrtka koja legalno posluje u Brazilu mora imati CNPJ, koji se koristi za:
- Porezno izvještavanje i usklađenost
- Registraciju poslovanja kod vladinih agencija
- Otvaranje bankovnih računa
- Izdavanje računa i potvrda
- Sudjelovanje u vladinim natječajima
- Uvoz i izvoz dobara
CNPJ je bitan identifikator u brazilskom poslovnom ekosustavu i pojavljuje se na službenim dokumentima, ugovorima i financijskim evidencijama.
Struktura i Format CNPJ-a
Brazilski CNPJ sastoji se od 14 cifara, obično formatiranih kao: XX.XXX.XXX/YYYY-ZZ
Struktura se razlaže na sljedeći način:
- Prvih 8 cifara (XX.XXX.XXX): Osnovni broj dodijeljen tvrtki
- 4 cifre nakon kose crte (YYYY): Identifikator podružnice (0001 za sjedište, drugi brojevi za podružnice)
- Zadnje 2 cifre (ZZ): Provjerne cifre za validaciju
Na primjer, ispravno formatirani CNPJ može izgledati ovako: 12.345.678/0001-95
Provjerne cifre (posljednje dvije cifre) izračunavaju se pomoću specifičnog matematičkog algoritma koji validira autentičnost CNPJ-a. Ovaj algoritam osigurava da nasumično generirani brojevi ne mogu proći validaciju bez pridržavanja pravilne metode izračuna.
Kako Funkcionira Validacija CNPJ-a
Algoritam validacije CNPJ-a koristi ponderirano izračunavanje za određivanje provjernih cifara. Evo kako to funkcionira:
Izračun Prve Provjerne Cifre
- Pomnožite svaku od prvih 12 cifara s težinskim redoslijedom: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Zbrojite rezultate ovih množenja
- Izračunajte ostatak ovog zbroja podijeljenog s 11
- Ako je ostatak manji od 2, prva provjerna cifra je 0; inače, to je 11 minus ostatak
Izračun Druge Provjerne Cifre
- Pomnožite svaku od prvih 13 cifara (uključujući prvu provjernu cifru) s težinskim redoslijedom: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Zbrojite rezultate ovih množenja
- Izračunajte ostatak ovog zbroja podijeljenog s 11
- Ako je ostatak manji od 2, druga provjerna cifra je 0; inače, to je 11 minus ostatak
Da bi CNPJ bio valjan, obje provjerne cifre moraju odgovarati izračunatim vrijednostima.
Kako Koristiti Ovaj Alat
Naš alat za generiranje i validaciju brazilskog CNPJ-a nudi dvije glavne funkcije: generiranje valjanih CNPJ-ova i validaciju postojećih CNPJ brojeva.
Generiranje CNPJ-a
Za generiranje valjanog CNPJ-a u svrhe testiranja:
- Idite na odjeljak "Generator CNPJ" alata
- Kliknite na gumb "Generiraj CNPJ"
- Matematički valjani CNPJ će se pojaviti u formatiranom prikazu
- Koristite gumb "Kopiraj" za kopiranje generiranog CNPJ-a u međuspremnik
Generirani CNPJ će slijediti sva pravila matematičke validacije stvarnog CNPJ-a, ali nije registriran kod brazilske Savezne porezne uprave.
Validacija CNPJ-a
Da biste provjerili je li CNPJ matematički valjan:
- Idite na odjeljak "Validator CNPJ" alata
- Unesite CNPJ koji želite validirati u ulazno polje
- Alat prihvaća CNPJ-ove s ili bez formatiranja (točaka, kosa crta i crtica)
- Kliknite na gumb "Validiraj"
- Alat će prikazati je li CNPJ valjan ili nevaljan na temelju algoritma provjernih cifara
Validator provjerava slijedi li CNPJ ispravan format i ako provjerne cifre odgovaraju očekivanim vrijednostima prema algoritmu validacije.
Upotrebe
Ovaj alat za generiranje i validaciju brazilskog CNPJ-a posebno je koristan u sljedećim scenarijima:
Razvoj Softvera i Testiranje
- Kreiranje Testnih Podataka: Generirajte valjane CNPJ-ove za populaciju testnih baza podataka bez korištenja stvarnih identifikatora tvrtki
- Jedinično Testiranje: Validirajte funkcije obrade CNPJ-a u svom kodu s poznatim valjanim i nevaljanim primjerima
- QA Testiranje: Kreirajte testne slučajeve za obrasce i sučelja koja zahtijevaju unos CNPJ-a
- Integracijsko Testiranje: Testirajte sustave koji razmjenjuju podatke s brazilskim vladinim uslugama ili financijskim institucijama
Obrazovanje i Obuka
- Učenje Formata CNPJ-a: Razumijevanje kako su strukturirani brazilski identifikatori poslovanja
- Studij Algoritma: Istražite kako provjera provjernih cifara funkcionira u praksi
- Tehnike Validacije Podataka: Proučite stvarne primjere zahtjeva za validaciju podataka
Obrada Podataka
- Čišćenje Podataka: Validirajte CNPJ-ove u postojećim skupovima podataka kako biste identificirali potencijalne greške
- Validacija Obrazaca: Implementirajte validaciju na strani klijenta ili poslužitelja za unose CNPJ-a
- Anonimizacija Podataka: Zamijenite stvarne CNPJ-ove generiranim valjanima kada pripremate skupove podataka za analizu
Međunarodno Poslovanje
- Priprema za Ulazak na Tržište: Razumijevanje zahtjeva za identifikaciju poslovanja u Brazilu
- Priprema Dokumenata: Osigurajte ispravno formatiranje prilikom pripreme poslovnih dokumenata za Brazil
- Provjera Usklađenosti: Provjerite jesu li prikupljeni CNPJ-ovi barem matematički valjani
Alternativne Opcije
Iako naš alat pruža jednostavno rješenje temeljen na pregledniku za generiranje i validaciju CNPJ-ova, postoji nekoliko alternativa ovisno o vašim specifičnim potrebama:
Programske Biblioteke
Za programere koji integriraju validaciju CNPJ-a izravno u aplikacije, dostupne su nekoliko biblioteka specifičnih za jezik:
- 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
Ove biblioteke često pružaju dodatnu funkcionalnost poput formatiranja, parsiranja i validacije drugih brazilskih dokumenata.
API Usluge
Za aplikacije koje zahtijevaju validaciju bez implementacije algoritma:
- Brazilske vladine API usluge (zahtijeva registraciju)
- Komercijalni validacijski API-ji koji uključuju provjeru CNPJ-a
- Usluge informacija o poslovanju koje validiraju prema službenoj bazi podataka
Ručni Izračun
Za obrazovne svrhe ili jednokratne validacije, možete ručno primijeniti algoritam:
- Izdvojite prvih 12 cifara CNPJ-a
- Izvršite ponderirane izračune kako je opisano ranije
- Usporedite izračunate provjerne cifre s stvarnim provjernim ciframa
Međutim, ručni izračun je sklon greškama i neučinkovit za redovitu upotrebu.
Tehnička Implementacija
Generator i validator CNPJ-a u ovom alatu implementirani su pomoću JavaScript-a, što ga čini brzim i sposobnim za rad isključivo u vašem pregledniku bez slanja vaših podataka na poslužitelj. Evo kako funkcioniraju osnovne funkcije:
Algoritam Generiranja CNPJ-a
1function generateCNPJ() {
2 // Generirajte prvih 12 cifara nasumično
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Izračunajte prvu provjernu cifru
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Izračunajte drugu provjernu cifru
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Formatirajte 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
Algoritam Validacije CNPJ-a
1function validateCNPJ(cnpj) {
2 // Uklonite ne-numeričke znakove
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Provjerite ima li ispravnu duljinu
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Provjerite poznate nevaljane obrasce (svi isti brojevi)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Pretvorite u niz cifara
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Provjerite prvu provjernu cifru
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Provjerite drugu provjernu cifru
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24
Funkcija Formatiranja CNPJ-a
1function formatCNPJ(cnpj) {
2 // Uklonite ne-numeričke znakove
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formatirajte prema duljini
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
Ove osnovne funkcije mogu se implementirati u drugim programskim jezicima slijedeći istu logiku. Evo primjera u Pythonu i Javi:
Python Implementacija
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 # Generirajte prvih 12 cifara nasumično
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Izračunajte prvu provjernu cifru
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Izračunajte drugu provjernu cifru
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Formatirajte 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 # Uklonite ne-numeričke znakove
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Provjerite duljinu
34 if len(cnpj) != 14:
35 return False
36
37 # Provjerite jesu li svi brojevi isti
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Pretvorite u niz cijelih brojeva
42 digits = [int(d) for d in cnpj]
43
44 # Validirajte prvu provjernu cifru
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Validirajte drugu provjernu cifru
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55
Java Implementacija
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 // Generirajte prvih 12 cifara nasumično
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Izračunajte prvu provjernu cifru
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Izračunajte drugu provjernu cifru
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Formatirajte 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 // Uklonite ne-numeričke znakove
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Provjerite duljinu
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Provjerite jesu li svi brojevi isti
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 // Pretvorite u niz cijelih brojeva
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 // Validirajte prvu provjernu cifru
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Validirajte drugu provjernu cifru
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
Važne Napomene
Kada koristite ovaj alat za generiranje i validaciju CNPJ-a, imajte na umu sljedeće napomene:
Pravni i Etnički Razlozi
- Ne za Prevaru: Generirani CNPJ-ovi nikada ne bi trebali biti korišteni u prevarantske svrhe ili lažno predstavljanje
- Samo za Testiranje: Ovi CNPJ-ovi su samo za svrhe testiranja i razvoja
- Nisu Registrirani: Generirani CNPJ-ovi su matematički valjani, ali nisu registrirani kod brazilske vlasti
- Nema Stvarne Valjanosti: Ne mogu se koristiti za stvarnu registraciju poslovanja ili porezne svrhe
Tehnička Ograničenja
- Nema Informacija o Poslovanju: Generirani CNPJ-ovi nemaju stvarne kodove sektora poslovanja ili informacije o lokaciji
- Nema Provjere Baze Podataka: Validator provjerava samo matematičku valjanost, a ne status registracije
- Varijacije u Formatu: Iako alat obrađuje uobičajene varijacije formatiranja, neki sustavi mogu zahtijevati specifične formate
Sigurnosna Razmatranja
- Obrada na Klijentskoj Strani: Sva obrada odvija se u vašem pregledniku; podaci se ne šalju na poslužitelje
- Nema Pohrane Podataka: Generirani CNPJ-ovi se ne pohranjuju ili evidentiraju
- Nema Osobnih Podataka: Alat ne obrađuje niti upravlja osobnim informacijama
Često Postavljana Pitanja
Čemu služi CNPJ u Brazilu?
CNPJ je nacionalni registracijski broj za poslovne subjekte i pravne osobe u Brazilu. Koristi se za porezne svrhe, registraciju poslovanja, otvaranje bankovnih računa i identifikaciju tvrtki u službenim transakcijama.
Jesu li CNPJ-ovi generirani ovim alatom stvarni?
Ne. CNPJ-ovi generirani ovim alatom su matematički valjani prema algoritmu provjernih cifara, ali nisu registrirani kod brazilske Savezne porezne uprave i ne pripadaju stvarnim tvrtkama.
Mogu li koristiti generirane CNPJ-ove za svoju tvrtku?
Ne. Da biste dobili legitimni CNPJ za tvrtku, morate se registrirati kod brazilske Savezne porezne uprave (Receita Federal) slijedeći službeni postupak. Generirani CNPJ-ovi su samo za svrhe testiranja.
Kako mogu provjeriti pripada li CNPJ stvarnoj tvrtki?
Da biste provjerili je li CNPJ registriran na stvarnu tvrtku, trebate konzultirati bazu podataka brazilske Savezne porezne uprave. Naš alat samo provjerava je li CNPJ matematički valjan, a ne je li službeno registriran.
Zašto validator odbija CNPJ sa svim istim ciframa?
CNPJ-ovi sa svim istim ciframa (poput 11.111.111/1111-11) automatski se smatraju nevaljanima, čak i ako matematički prođu algoritam provjernih cifara. Ovo je pravilo koje je uspostavila brazilska Savezna porezna uprava.
Pohranjuje li alat CNPJ-ove koje generiram ili validiram?
Ne. Sva obrada odvija se u vašem pregledniku, a ne pohranjujemo ili prenosimo nijedan od CNPJ-ova koje generirate ili validirate.
Mogu li generirati više CNPJ-ova odjednom?
Trenutna verzija alata generira jedan CNPJ odjednom. Za masovno generiranje, možda biste željeli razmotriti korištenje jedne od programskih biblioteka spomenutih u odjeljku Alternativne Opcije.
Zašto je format XX.XXX.XXX/XXXX-XX važan?
Ovo je službeni format koji zahtijevaju brazilske vlasti. Specifično grupiranje pomaže u identifikaciji različitih komponenti CNPJ-a, poput osnovnog broja i identifikatora podružnice.
Kako mogu programatski validirati CNPJ?
Možete implementirati algoritam validacije u svom omiljenom programskom jeziku koristeći primjere koda iz odjeljka Tehnička Implementacija, ili koristiti jednu od biblioteka spomenutih u odjeljku Alternativne Opcije.
Postoje li posebni CNPJ-ovi za vladine entitete?
Da. Vladini entiteti u Brazilu imaju specifične obrasce CNPJ-a. Na primjer, savezni vladini entiteti često započinju s određenim ciframa. Naš generator stvara nasumične CNPJ-ove i ne generira specifične CNPJ-ove za vladine entitete.
Reference
- Brazilska Savezna porezna uprava (Receita Federal do Brasil) - Službena web stranica
- "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
- Brazilski građanski zakonik (Zakon br. 10.406/2002) - Pravni okvir za poslovne entitete u Brazilu
- Normativna uputstva brazilske registracije poslovanja (IN RFB br. 1863/2018) - Propisi o registraciji CNPJ-a
Isprobajte Sada
Naš alat za generiranje i validaciju brazilskog CNPJ-a čini rad s ovim identifikacijskim brojevima jednostavnim i učinkovitim. Bilo da testirate aplikacije, pripremate uzorke podataka ili validirate postojeće CNPJ-ove, ovaj alat pruža jednostavno rješenje bez složenosti integracija API-ja ili naprednih konfiguracija.
Generirajte svoj prvi valjani CNPJ sada ili validirajte postojeći koristeći naš jednostavan sučelje!
Povratne informacije
Kliknite na obavijest o povratnim informacijama da biste započeli davati povratne informacije o ovom alatu
Povezani alati
Otkrijte više alata koji bi mogli biti korisni za vaš radni proces