Generator in validator CNPJ za Brazil za testiranje
Ustvarite veljavne številke CNPJ v Braziliji in preverite obstoječe s tem preprostim orodjem, namenjenim razvijalcem in testerjem, ki delajo z brazilskimi poslovnimi ID-ji.
Generator in Validator CNPJ za Brazil
Generator CNPJ
Ustvarite veljavno številko CNPJ za testne namene.
Validator CNPJ
Preverite, ali je številka CNPJ veljavna.
Dokumentacija
Generator in CNPJ in Validator za Brazil
Uvod
Brazilian CNPJ (Cadastro Nacional da Pessoa Jurídica) je edinstvena identifikacijska številka, dodeljena podjetjem in pravnim osebam v Braziliji. Ta generator in validator za CNPJ ponuja preprost in učinkovit način za generiranje veljavnih številk CNPJ za testne namene in validacijo obstoječih številk CNPJ v skladu z uradnim brazilskim algoritmom. Ne glede na to, ali ste razvijalec, ki testira aplikacije, ki obravnavajo podatke o brazilskih podjetjih, strokovnjak za QA, ki ustvarja testne primere, ali kdorkoli, ki dela z informacijami o brazilskih podjetjih, ta orodje poenostavi postopek dela s številkami CNPJ.
V nasprotju z resničnimi številkami CNPJ, ki jih uradno izdaja brazilska zvezna davčna uprava (Receita Federal), so CNPJi, ki jih generira to orodje, matematično veljavni, vendar niso registrirani pri dejanskih podjetjih. To jih naredi popolne za testne scenarije, vzorčne podatke in razvojna okolja, kjer potrebujete pravilno oblikovane in veljavne številke CNPJ brez uporabe pravih poslovnih identifikatorjev.
Kaj je CNPJ?
CNPJ (Cadastro Nacional da Pessoa Jurídica) je 14-mestna identifikacijska številka, ki jo dodeli brazilska zvezna davčna uprava podjetjem in pravnim osebam. Služi kot brazilski ekvivalent številki registracije podjetja ali davčni ID. Vsako podjetje, ki legalno deluje v Braziliji, mora imeti CNPJ, ki se uporablja za:
- Davčno poročanje in skladnost
- Registracijo podjetij pri vladnih agencijah
- Odprtje bančnih računov
- Izdajo računov in potrdil
- Sodelovanje v vladnih razpisih
- Uvoz in izvoz blaga
CNPJ je bistven identifikator v brazilskem poslovnem ekosistemu in se pojavlja na uradnih dokumentih, pogodbah in finančnih evidencah.
Struktura in Oblika CNPJ
Brazilski CNPJ se sestavlja iz 14 številk, običajno oblikovanih kot: XX.XXX.XXX/YYYY-ZZ
Struktura se razdeli na naslednje:
- Prvih 8 številk (XX.XXX.XXX): Osnovna številka, dodeljena podjetju
- 4 številke po poševnici (YYYY): Identifikator podružnice (0001 za sedež, druge številke za podružnice)
- Zadnji 2 številki (ZZ): Kontrolne številke za validacijo
Na primer, pravilno oblikovan CNPJ bi lahko izgledal tako: 12.345.678/0001-95
Kontrolne številke (zadnji dve številki) se izračunajo z uporabo specifičnega matematičnega algoritma, ki potrjuje avtentičnost CNPJ. Ta algoritem zagotavlja, da naključno generirane številke ne morejo prestati validacije, ne da bi sledile pravilni metodi izračuna.
Kako deluje Validacija CNPJ
Algoritem za validacijo CNPJ uporablja tehtano izračunavanje za določitev kontrolnih številk. Tukaj je, kako deluje:
Izračun Prve Kontrolne Številke
- Pomnožite vsako od prvih 12 številk s težko zaporedje: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Seštejte rezultate teh množenj
- Izračunajte ostanek tega seštevka deljenega z 11
- Če je ostanek manjši od 2, je prva kontrolna številka 0; sicer je to 11 minus ostanek
Izračun Druge Kontrolne Številke
- Pomnožite vsako od prvih 13 številk (vključno s prvo kontrolno številko) s težko zaporedje: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Seštejte rezultate teh množenj
- Izračunajte ostanek tega seštevka deljenega z 11
- Če je ostanek manjši od 2, je druga kontrolna številka 0; sicer je to 11 minus ostanek
Da je CNPJ veljaven, morata se ujemati obe kontrolni številki s pričakovanimi vrednostmi.
Kako Uporabiti To Orodje
Naše orodje za generator in validator CNPJ ponuja dve glavni funkciji: generiranje veljavnih CNPJ-jev in validacijo obstoječih številk CNPJ.
Generiranje CNPJ
Za generiranje veljavnega CNPJ za testne namene:
- Pojdite na razdelek "Generator CNPJ" orodja
- Kliknite gumb "Generiraj CNPJ"
- Matematično veljaven CNPJ se bo pojavil v oblikovanem prikazu
- Uporabite gumb "Kopiraj", da kopirate generirani CNPJ v odložišče
Generirani CNPJ bo sledil vsem matematičnim pravilom validacije pravega CNPJ, vendar ni registriran pri brazilski zvezni davčni upravi.
Validacija CNPJ
Za preverjanje, ali je CNPJ matematično veljaven:
- Pojdite na razdelek "Validator CNPJ" orodja
- Vnesite CNPJ, ki ga želite validirati, v vhodno polje
- Orodje sprejema CNPJe s formatiranjem ali brez njega (pike, poševnice in vezaji)
- Kliknite gumb "Validiraj"
- Orodje bo prikazalo, ali je CNPJ veljaven ali neveljaven na podlagi algoritma kontrolnih številk
Validator preveri, ali CNPJ sledi pravilni obliki in ali se kontrolne številke ujemajo s pričakovanimi vrednostmi v skladu z validacijskim algoritmom.
Uporabniški Primeri
To orodje za generator in validator CNPJ je še posebej uporabno v naslednjih scenarijih:
Razvoj in Testiranje Programske Opreme
- Ustvarjanje Testnih Podatkov: Generirajte veljavne CNPJe za polnjenje testnih baz podatkov brez uporabe pravih identifikatorjev podjetij
- Enotno Testiranje: Validirajte funkcije obravnave CNPJ v vaši kodi s poznanimi veljavnimi in neveljavnimi primeri
- QA Testiranje: Ustvarite testne primere za obrazce in vmesnike, ki zahtevajo vnos CNPJ
- Integracijsko Testiranje: Preizkusite sisteme, ki izmenjujejo podatke z brazilskimi vladnimi storitvami ali finančnimi institucijami
Izobraževanje in Usposabljanje
- Učenje Formata CNPJ: Razumeti, kako so strukturirani brazilski poslovni identifikatorji
- Študij Algoritma: Preučite, kako deluje validacija kontrolnih številk v praksi
- Tehnike Validacije Podatkov: Preučite resnične primere zahtev za validacijo podatkov
Obdelava Podatkov
- Čiščenje Podatkov: Validirajte CNPJe v obstoječih podatkovnih nizih za identifikacijo morebitnih napak
- Validacija Obrazcev: Uvedite validacijo na strani odjemalca ali strežnika za vnose CNPJ
- Anonimizacija Podatkov: Zamenjajte prave CNPJe z veljavnim generiranimi, ko pripravljate podatkovne nize za analizo
Mednarodno Poslovanje
- Priprava na Vstop na Trg: Razumevanje zahtev po identifikaciji podjetij v Braziliji
- Priprava Dokumentov: Zagotovite pravilno oblikovanje pri pripravi poslovnih dokumentov za Brazilijo
- Preverjanje Skladnosti: Preverite, ali so zbrani CNPJi vsaj matematično veljavni
Alternativne Rešitve
Medtem ko naše orodje ponuja preprosto, spletno rešitev za generiranje in validacijo CNPJ-jev, obstaja več alternativ, odvisno od vaših specifičnih potreb:
Knjižnice za Programiranje
Za razvijalce, ki integrirajo validacijo CNPJ neposredno v aplikacije, je na voljo več knjižnic, specifičnih za jezike:
- 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 knjižnice pogosto nudijo dodatne funkcionalnosti, kot so oblikovanje, razčlenjevanje in validacija drugih brazilskih dokumentov.
API Storitve
Za aplikacije, ki zahtevajo validacijo brez izvajanja algoritma:
- Brazilske vladne API-je (zahteva registracijo)
- Komercialne validacijske API-je, ki vključujejo preverjanje CNPJ
- Storitve informacij o podjetjih, ki validirajo proti uradni bazi
Ročni Izračun
Za izobraževalne namene ali enkratne validacije lahko ročno uporabite algoritem:
- Izvlecite prvih 12 številk CNPJ
- Izvedite tehtane izračune, kot je opisano prej
- Primerjajte izračunane kontrolne številke s pravimi kontrolnimi številkami
Vendar pa je ročni izračun nagnjen k napakam in neučinkovit za redno uporabo.
Tehnična Implementacija
Generator in validator CNPJ v tem orodju sta implementirana z uporabo JavaScript-a, kar omogoča hitro delovanje in delovanje povsem v vašem brskalniku brez pošiljanja vaših podatkov na strežnik. Tukaj je, kako delujejo osnovne funkcije:
Algoritem za Generiranje CNPJ
1function generateCNPJ() {
2 // Naključno generirajte prvih 12 številk
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Izračunajte prvo kontrolno številko
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Izračunajte drugo kontrolno številko
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Oblikujte 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
Algoritem za Validacijo CNPJ
1function validateCNPJ(cnpj) {
2 // Odstranite nenumerične znake
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Preverite, ali ima pravilno dolžino
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Preverite znane neveljavne vzorce (vse iste številke)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Pretvorite v tabelo številk
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Preverite prvo kontrolno številko
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Preverite drugo kontrolno številko
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24
Funkcija za Oblikovanje CNPJ
1function formatCNPJ(cnpj) {
2 // Odstranite nenumerične znake
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Oblika glede na dolžino
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 osnovne funkcije je mogoče implementirati v drugih programskih jezikih, ki sledijo isti logiki. Tukaj so primeri v Pythonu in Javi:
Implementacija v Pythonu
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 # Naključno generirajte prvih 12 številk
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Izračunajte prvo kontrolno številko
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Izračunajte drugo kontrolno številko
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Oblikujte 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 # Odstranite nenumerične znake
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Preverite dolžino
34 if len(cnpj) != 14:
35 return False
36
37 # Preverite, ali so vse številke enake
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Pretvorite v seznam številk
42 digits = [int(d) for d in cnpj]
43
44 # Validirajte prvo kontrolno številko
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Validirajte drugo kontrolno številko
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55
Implementacija v Javi
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 // Naključno generirajte prvih 12 številk
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Izračunajte prvo kontrolno številko
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Izračunajte drugo kontrolno številko
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Oblikujte 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 // Odstranite nenumerične znake
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Preverite dolžino
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Preverite, ali so vse številke enake
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 v tabelo številk
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 prvo kontrolno številko
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Validirajte drugo kontrolno številko
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
Pomembne Upoštevanja
Ko uporabljate to orodje za generator in validator CNPJ, upoštevajte naslednja upoštevanja:
Pravni in Etični Vidiki
- Ne za Prevaro: Generirani CNPJi se nikoli ne smejo uporabljati za prevarantske namene ali zavajanje
- Samo za Testiranje: Ti CNPJi so namenjeni samo za testiranje in razvojne namene
- Niso Registrirani: Generirani CNPJi so matematično veljavni, vendar niso registrirani pri brazilskih organih
- Brez Prave Veljavnosti: Ne morejo se uporabljati za dejansko registracijo podjetij ali davčne namene
Tehnične Omejitve
- Brez Podatkov o Podjetju: Generirani CNPJi ne vsebujejo pravih kod sektorja podjetja ali informacij o lokaciji
- Brez Preverjanja Baze: Validator preverja le matematično veljavnost, ne pa stanja registracije
- Različne Oblike: Medtem ko orodje obravnava običajne različice oblikovanja, lahko nekatere sisteme zahteva specifične oblike
Varnostne Upoštevanja
- Obdelava na Strani Odjemalca: Vsa obdelava poteka v vašem brskalniku; nobeni podatki niso poslani na strežnike
- Brez Shranjevanja Podatkov: Generirani CNPJi niso shranjeni ali zabeleženi
- Brez Osebnih Podatkov: Orodje ne obravnava ali obdeluje nobenih osebnih informacij
Pogosto Zastavljena Vprašanja
Za kaj se uporablja CNPJ v Braziliji?
CNPJ je nacionalna registracijska številka za podjetja in pravne osebe v Braziliji. Uporablja se za davčne namene, registracijo podjetij, odpiranje bančnih računov in identifikacijo podjetij v uradnih transakcijah.
Ali so CNPJi, generirani s tem orodjem, resnični?
Ne. CNPJi, generirani s tem orodjem, so matematično veljavni v skladu z algoritmom kontrolnih številk, vendar niso registrirani pri brazilski zvezni davčni upravi in ne pripadajo pravim podjetjem.
Ali lahko uporabim generirane CNPJe za svoje podjetje?
Ne. Da bi pridobili legitimni CNPJ za podjetje, se morate registrirati pri brazilski zvezni davčni upravi (Receita Federal) v skladu z uradnim postopkom. Generirani CNPJi so namenjeni samo za testne namene.
Kako lahko ugotovim, ali CNPJ pripada pravemu podjetju?
Za preverjanje, ali je CNPJ registriran na dejansko podjetje, morate poiskati v bazi podatkov brazilske zvezne davčne uprave. Naše orodje preverja le, ali je CNPJ matematično veljaven, ne pa, ali je uradno registriran.
Zakaj validator zavrne CNPJ z vsemi istimi številkami?
CNPJi z vsemi istimi številkami (kot npr. 11.111.111/1111-11) so samodejno obravnavani kot neveljavni, tudi če matematično prestanejo algoritem kontrolnih številk. To je pravilo, ki ga je določila brazilska zvezna davčna uprava.
Ali orodje shranjuje CNPJe, ki jih generiram ali validiram?
Ne. Vsa obdelava poteka v vašem brskalniku, in ne shranjujemo ali prenašamo nobenih CNPJ-jev, ki jih generirate ali validirate.
Ali lahko hkrati generiram več CNPJ-jev?
Trenutna različica orodja generira en CNPJ naenkrat. Za množično generiranje morda želite razmisliti o uporabi ene od programskih knjižnic, omenjenih v razdelku Alternativne Rešitve.
Zakaj je oblika XX.XXX.XXX/XXXX-XX pomembna?
To je uradna oblika, ki jo zahtevajo brazilski organi. Specifično grupiranje pomaga identificirati različne komponente CNPJ, kot so osnovna številka in identifikator podružnice.
Kako lahko programatično validiram CNPJ?
Algoritem za validacijo lahko implementirate v svojem najljubšem programskem jeziku z uporabo primerov kode, ki so navedeni v razdelku Tehnična Implementacija, ali uporabite eno od knjižnic, omenjenih v razdelku Alternativne Rešitve.
Ali obstajajo posebni CNPJi za vladne entitete?
Da. Vladne entitete v Braziliji imajo specifične vzorce CNPJ. Na primer, zvezne vladne entitete pogosto začnejo s specifičnimi številkami. Naš generator ustvarja naključne CNPJe in ne generira specifičnih CNPJ-jev za vladne entitete.
Reference
- Brazilska zvezna davčna uprava (Receita Federal do Brasil) - Uradna Spletna Stran
- "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
- Brazilski civilni zakonik (Zakon št. 10.406/2002) - Pravni okvir za poslovne entitete v Braziliji
- Normativna navodila za registracijo podjetij v Braziliji (IN RFB št. 1863/2018) - Predpisi o registraciji CNPJ
Preizkusite Zdaj
Naše orodje za generator in validator CNPJ omogoča preprosto in učinkovito delo s temi identifikacijskimi številkami. Ne glede na to, ali testirate aplikacije, pripravljate vzorčne podatke ali validirate obstoječe CNPJe, to orodje nudi preprosto rešitev brez zapletenosti integracij API-jev ali naprednih konfiguracij.
Generirajte svoj prvi veljavni CNPJ zdaj ali validirajte obstoječega z uporabo našega preprostega vmesnika!
Povratne informacije
Kliknite na toast za povratne informacije, da začnete dajati povratne informacije o tem orodju
Sorodne orodja
Odkrijte več orodij, ki bi lahko bila koristna za vaš delovni proces