🛠️

Whiz Tools

Build • Create • Innovate

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:

  1. Prvih 8 številk (XX.XXX.XXX): Osnovna številka, dodeljena podjetju
  2. 4 številke po poševnici (YYYY): Identifikator podružnice (0001 za sedež, druge številke za podružnice)
  3. 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

  1. Pomnožite vsako od prvih 12 številk s težko zaporedje: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Seštejte rezultate teh množenj
  3. Izračunajte ostanek tega seštevka deljenega z 11
  4. Če je ostanek manjši od 2, je prva kontrolna številka 0; sicer je to 11 minus ostanek

Izračun Druge Kontrolne Številke

  1. 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
  2. Seštejte rezultate teh množenj
  3. Izračunajte ostanek tega seštevka deljenega z 11
  4. Č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:

  1. Pojdite na razdelek "Generator CNPJ" orodja
  2. Kliknite gumb "Generiraj CNPJ"
  3. Matematično veljaven CNPJ se bo pojavil v oblikovanem prikazu
  4. 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:

  1. Pojdite na razdelek "Validator CNPJ" orodja
  2. Vnesite CNPJ, ki ga želite validirati, v vhodno polje
    • Orodje sprejema CNPJe s formatiranjem ali brez njega (pike, poševnice in vezaji)
  3. Kliknite gumb "Validiraj"
  4. 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:

  1. Izvlecite prvih 12 številk CNPJ
  2. Izvedite tehtane izračune, kot je opisano prej
  3. 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

  1. Brazilska zvezna davčna uprava (Receita Federal do Brasil) - Uradna Spletna Stran
  2. "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
  3. Brazilski civilni zakonik (Zakon št. 10.406/2002) - Pravni okvir za poslovne entitete v Braziliji
  4. 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!