🛠️

Whiz Tools

Build • Create • Innovate

Generátor a validátor CNPJ pre Brazíliu na testovanie

Generujte platné čísla CNPJ v Brazílii a overte existujúce pomocou tohto jednoduchého nástroja navrhnutého pre vývojárov a testerov pracujúcich s identifikačnými číslami firiem v Brazílii.

Generátor a validátor CNPJ pre Brazíliu

Generátor CNPJ

Vygenerujte platné číslo CNPJ pre testovacie účely.

Validátor CNPJ

Skontrolujte, či je číslo CNPJ platné.

📚

Dokumentácia

Generátor a validátor CNPJ v Brazílii

Úvod

Brazílsky CNPJ (Cadastro Nacional da Pessoa Jurídica) je jedinečné identifikačné číslo pridelené podnikateľom a právnickým osobám v Brazílii. Tento generátor a validátor CNPJ v Brazílii poskytuje jednoduchý a efektívny spôsob, ako generovať platné čísla CNPJ na testovacie účely a overiť existujúce čísla CNPJ podľa oficiálneho brazílskeho algoritmu. Či už ste vývojár testujúci aplikácie, ktoré spracovávajú údaje o brazílskych podnikoch, profesionál QA vytvárajúci testovacie prípady, alebo ktokoľvek pracujúci s informáciami o brazílskych spoločnostiach, tento nástroj zjednodušuje proces práce s číslami CNPJ.

Na rozdiel od skutočných čísel CNPJ, ktoré oficiálne vydáva Brazílska federálna daňová správa (Receita Federal), CNPJs generované týmto nástrojom sú matematicky platné, ale nie sú registrované na skutočné spoločnosti. To ich robí ideálnymi na testovacie scenáre, vzorové údaje a vývojové prostredia, kde potrebujete správne naformátované a platné čísla CNPJ bez použitia skutočných identifikátorov podnikov.

Čo je CNPJ?

CNPJ (Cadastro Nacional da Pessoa Jurídica) je 14-ciferné identifikačné číslo, ktoré prideľuje podnikateľom a právnickým osobám Brazílska federálna daňová správa. Slúži ako brazílsky ekvivalent registračného čísla spoločnosti alebo daňového identifikačného čísla. Každý podnik, ktorý legálne pôsobí v Brazílii, musí mať CNPJ, ktorý sa používa na:

  • Daňové hlásenie a dodržiavanie predpisov
  • Registráciu podnikov u vládnych agentúr
  • Otvorenie bankových účtov
  • Vydávanie faktúr a potvrdení
  • Účasť na vládnych tendroch
  • Dovoz a vývoz tovaru

CNPJ je základným identifikátorom v brazílskom podnikateľskom ekosystéme a objavuje sa na oficiálnych dokumentoch, zmluvách a finančných záznamoch.

Štruktúra a formát CNPJ

Brazílsky CNPJ pozostáva zo 14 číslic, zvyčajne formátovaných ako: XX.XXX.XXX/YYYY-ZZ

Štruktúra sa rozkladá nasledovne:

  1. Prvých 8 číslic (XX.XXX.XXX): Základné číslo pridelené spoločnosti
  2. 4 číslice po lomítku (YYYY): Identifikátor pobočky (0001 pre sídlo, iné čísla pre pobočky)
  3. Posledné 2 číslice (ZZ): Kontrolné číslice na overenie

Napríklad, správne naformátovaný CNPJ by mohol vyzerať takto: 12.345.678/0001-95

Kontrolné číslice (posledné dve číslice) sa vypočítavajú pomocou špecifického matematického algoritmu, ktorý overuje pravosť CNPJ. Tento algoritmus zabezpečuje, že náhodne generované čísla nemôžu prejsť validáciou bez dodržania správnej metódy výpočtu.

Ako funguje validácia CNPJ

Algoritmus validácie CNPJ používa vážené výpočty na určenie kontrolných číslic. Tu je, ako to funguje:

Výpočet prvej kontrolnej číslice

  1. Násobte každú z prvých 12 číslic váhovou sekvenciou: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Sčítajte výsledky týchto násobení
  3. Vypočítajte zvyšok tohto súčtu delením 11
  4. Ak je zvyšok menší ako 2, prvá kontrolná číslica je 0; inak je to 11 mínus zvyšok

Výpočet druhej kontrolnej číslice

  1. Násobte každú z prvých 13 číslic (vrátane prvej kontrolnej číslice) váhovou sekvenciou: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Sčítajte výsledky týchto násobení
  3. Vypočítajte zvyšok tohto súčtu delením 11
  4. Ak je zvyšok menší ako 2, druhá kontrolná číslica je 0; inak je to 11 mínus zvyšok

Aby bol CNPJ platný, obe kontrolné číslice musia zodpovedať vypočítaným hodnotám.

Ako používať tento nástroj

Náš nástroj na generovanie a validáciu CNPJ v Brazílii ponúka dve hlavné funkcie: generovanie platných CNPJ a validáciu existujúcich čísel CNPJ.

Generovanie CNPJ

Ak chcete vygenerovať platný CNPJ na testovacie účely:

  1. Prejdite do sekcie "Generátor CNPJ" nástroja
  2. Kliknite na tlačidlo "Generovať CNPJ"
  3. Matematicky platný CNPJ sa objaví v naformátovanej zobrazení
  4. Použite tlačidlo "Kopírovať", aby ste skopírovali vygenerovaný CNPJ do schránky

Vygenerovaný CNPJ bude dodržiavať všetky matematické pravidlá validácie skutočného CNPJ, ale nie je registrovaný u Brazílskej federálnej daňovej správy.

Validácia CNPJ

Ak chcete skontrolovať, či je CNPJ matematicky platný:

  1. Prejdite do sekcie "Validátor CNPJ" nástroja
  2. Zadajte CNPJ, ktorý chcete overiť, do vstupného poľa
    • Nástroj akceptuje CNPJs s alebo bez formátovania (bodky, lomítka a pomlčky)
  3. Kliknite na tlačidlo "Validovať"
  4. Nástroj zobrazí, či je CNPJ platný alebo neplatný na základe algoritmu kontrolnej číslice

Validátor kontroluje, či CNPJ dodržiava správny formát a či kontrolné číslice zodpovedajú očakávaným hodnotám podľa validačného algoritmu.

Prípadové štúdie

Tento generátor a validátor CNPJ v Brazílii je obzvlášť užitočný v nasledujúcich scenároch:

Vývoj softvéru a testovanie

  • Vytváranie testovacích údajov: Generujte platné CNPJs na naplnenie testovacích databáz bez použitia skutočných identifikátorov podnikov
  • Jednotkové testovanie: Overte funkcie spracovania CNPJ vo vašom kóde s poznanými platnými a neplatnými príkladmi
  • QA testovanie: Vytvorte testovacie prípady pre formuláre a rozhrania, ktoré vyžadujú vstup CNPJ
  • Integračné testovanie: Testujte systémy, ktoré vymieňajú údaje s brazílskymi vládnymi službami alebo finančnými inštitúciami

Vzdelávanie a školenie

  • Učenie sa formátu CNPJ: Pochopte, ako sú štruktúrované brazílske identifikátory podnikov
  • Štúdium algoritmu: Preskúmajte, ako funguje validácia kontrolnej číslice v praxi
  • Techniky validácie údajov: Študujte reálne príklady požiadaviek na validáciu údajov

Spracovanie údajov

  • Čistenie údajov: Overte CNPJs v existujúcich datasetoch, aby ste identifikovali potenciálne chyby
  • Validácia formulárov: Implementujte validáciu na strane klienta alebo servera pre vstupy CNPJ
  • Anonymizácia údajov: Nahrádzajte skutočné CNPJs platnými generovanými, keď pripravujete datasety na analýzu

Medzinárodný obchod

  • Príprava na vstup na trh: Pochopte požiadavky na identifikáciu podnikov v Brazílii
  • Príprava dokumentov: Zabezpečte správne formátovanie pri príprave obchodných dokumentov pre Brazíliu
  • Kontrola súladu: Overte, či zhromaždené čísla CNPJ sú aspoň matematicky platné

Alternatívy

Aj keď náš nástroj poskytuje jednoduché, webové riešenie na generovanie a validáciu CNPJ, existuje niekoľko alternatív v závislosti od vašich konkrétnych potrieb:

Knižnice programovania

Pre vývojárov, ktorí integrujú validáciu CNPJ priamo do aplikácií, sú k dispozícii niektoré knižnice špecifické pre jazyk:

  • 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

Tieto knižnice často poskytujú ďalšiu funkcionalitu, ako je formátovanie, analýza a validácia iných brazílskych dokumentov.

API služby

Pre aplikácie, ktoré vyžadujú validáciu bez implementácie algoritmu:

  • Brazílske vládne API (vyžaduje registráciu)
  • Komerčné validačné API, ktoré zahŕňajú kontrolu CNPJ
  • Služby informácií o podnikoch, ktoré overujú proti oficiálnej databáze

Ručný výpočet

Na vzdelávacie účely alebo jednorazové validácie môžete ručne aplikovať algoritmus:

  1. Extrahujte prvých 12 číslic CNPJ
  2. Vykonajte vážené výpočty, ako je popísané vyššie
  3. Porovnajte vypočítané kontrolné číslice so skutočnými kontrolnými číslicami

Avšak ručný výpočet je náchylný na chyby a neefektívny pre pravidelné použitie.

Technická implementácia

Generátor a validátor CNPJ v tomto nástroji sú implementované pomocou JavaScriptu, čo ho robí rýchlym a schopným fungovať úplne vo vašom prehliadači bez odosielania vašich údajov na server. Tu je, ako fungujú základné funkcie:

Algoritmus generovania CNPJ

1function generateCNPJ() {
2  // Generujte prvých 12 číslic náhodne
3  const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4  
5  // Vypočítajte prvú kontrolnú číslicu
6  const firstCheckDigit = calculateCheckDigit(digits);
7  digits.push(firstCheckDigit);
8  
9  // Vypočítajte druhú kontrolnú číslicu
10  const secondCheckDigit = calculateCheckDigit(digits);
11  digits.push(secondCheckDigit);
12  
13  // Naformátujte 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

Algoritmus validácie CNPJ

1function validateCNPJ(cnpj) {
2  // Odstráňte nečíselné znaky
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Skontrolujte, či má správnu dĺžku
6  if (cleanCNPJ.length !== 14) return false;
7  
8  // Skontrolujte známe neplatné vzory (všetky rovnaké číslice)
9  if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10  
11  // Preveďte na pole číslic
12  const digits = cleanCNPJ.split('').map(Number);
13  
14  // Skontrolujte prvú kontrolnú číslicu
15  const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16  if (digits[12] !== expectedFirstDigit) return false;
17  
18  // Skontrolujte druhú kontrolnú číslicu
19  const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20  if (digits[13] !== expectedSecondDigit) return false;
21  
22  return true;
23}
24

Funkcia formátovania CNPJ

1function formatCNPJ(cnpj) {
2  // Odstráňte nečíselné znaky
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Formátujte na základe dĺžky
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

Tieto základné funkcie môžu byť implementované v iných programovacích jazykoch podľa rovnakého logiky. Tu sú príklady v Pythone a Jave:

Implementácia v Pythone

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    # Generujte prvých 12 číslic náhodne
15    digits = [random.randint(0, 9) for _ in range(12)]
16    
17    # Vypočítajte prvú kontrolnú číslicu
18    first_check = calculate_check_digit(digits)
19    digits.append(first_check)
20    
21    # Vypočítajte druhú kontrolnú číslicu
22    second_check = calculate_check_digit(digits)
23    digits.append(second_check)
24    
25    # Naformátujte 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    # Odstráňte nečíselné znaky
31    cnpj = ''.join(filter(str.isdigit, cnpj))
32    
33    # Skontrolujte dĺžku
34    if len(cnpj) != 14:
35        return False
36    
37    # Skontrolujte, či sú všetky číslice rovnaké
38    if len(set(cnpj)) == 1:
39        return False
40    
41    # Preveďte na pole číslic
42    digits = [int(d) for d in cnpj]
43    
44    # Overte prvú kontrolnú číslicu
45    first_check = calculate_check_digit(digits[:12])
46    if digits[12] != first_check:
47        return False
48    
49    # Overte druhú kontrolnú číslicu
50    second_check = calculate_check_digit(digits[:13])
51    if digits[13] != second_check:
52        return False
53    
54    return True
55

Implementácia v Jave

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        // Generujte prvých 12 číslic náhodne
10        for (int i = 0; i < 12; i++) {
11            digits[i] = random.nextInt(10);
12        }
13        
14        // Vypočítajte prvú kontrolnú číslicu
15        digits[12] = calculateCheckDigit(digits, 12);
16        
17        // Vypočítajte druhú kontrolnú číslicu
18        digits[13] = calculateCheckDigit(digits, 13);
19        
20        // Naformátujte 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        // Odstráňte nečíselné znaky
45        cnpj = cnpj.replaceAll("\\D", "");
46        
47        // Skontrolujte dĺžku
48        if (cnpj.length() != 14) {
49            return false;
50        }
51        
52        // Skontrolujte, či sú všetky číslice rovnaké
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        // Preveďte na pole číslic
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        // Overte prvú kontrolnú číslicu
71        int firstCheck = calculateCheckDigit(digits, 12);
72        if (digits[12] != firstCheck) {
73            return false;
74        }
75        
76        // Overte druhú kontrolnú číslicu
77        int secondCheck = calculateCheckDigit(digits, 13);
78        if (digits[13] != secondCheck) {
79            return false;
80        }
81        
82        return true;
83    }
84}
85

Dôležité úvahy

Pri používaní tohto generátora a validátora CNPJ majte na pamäti nasledujúce úvahy:

Právne a etické úvahy

  • Nie na podvod: Vygenerované CNPJs by sa nikdy nemali používať na podvodné účely alebo na nepravdivé predstavenie
  • Iba na testovanie: Tieto CNPJs sú určené iba na testovacie a vývojové účely
  • Nie sú registrované: Vygenerované CNPJs sú matematicky platné, ale nie sú registrované u brazílskych úradov
  • Žiadna reálna platnosť: Nemôžu sa používať na skutočnú registráciu podnikov alebo daňové účely

Technické obmedzenia

  • Žiadne obchodné informácie: Vygenerované CNPJs neobsahujú skutočné kódy sektora podnikov alebo informácie o lokalite
  • Žiadna overovacia databáza: Validátor kontroluje iba matematickú platnosť, nie stav registrácie
  • Variácie formátov: Hoci nástroj zvláda bežné variácie formátovania, niektoré systémy môžu vyžadovať špecifické formáty

Bezpečnostné úvahy

  • Spracovanie na strane klienta: Všetko spracovanie prebieha vo vašom prehliadači; žiadne údaje nie sú odosielané na servery
  • Žiadne ukladanie údajov: Vygenerované CNPJs nie sú uložené ani zaznamenané
  • Žiadne osobné údaje: Nástroj nezohľadňuje ani nespracováva žiadne osobné informácie

Často kladené otázky

Na čo sa CNPJ používa v Brazílii?

CNPJ je národné registračné číslo pre podniky a právnické osoby v Brazílii. Používa sa na daňové účely, registráciu podnikov, otváranie bankových účtov a identifikáciu spoločností v oficiálnych transakciách.

Sú CNPJs generované týmto nástrojom skutočné?

Nie. CNPJs generované týmto nástrojom sú matematicky platné podľa algoritmu kontrolnej číslice, ale nie sú registrované u Brazílskej federálnej daňovej správy a nepatria skutočným spoločnostiam.

Môžem použiť vygenerované CNPJs pre moju firmu?

Nie. Na získanie legitímneho CNPJ pre podnik musíte registrovať u Brazílskej federálnej daňovej správy (Receita Federal) podľa oficiálneho postupu. Vygenerované CNPJs sú určené iba na testovacie účely.

Ako môžem zistiť, či CNPJ patrí skutočnej spoločnosti?

Aby ste overili, či je CNPJ registrované na skutočnú spoločnosť, musíte sa obrátiť na databázu Brazílskej federálnej daňovej správy. Náš nástroj kontroluje iba to, či je CNPJ matematicky platné, nie či je oficiálne registrované.

Prečo validátor odmieta CNPJ so všetkými rovnakými číslicami?

CNPJs so všetkými rovnakými číslicami (ako 11.111.111/1111-11) sú automaticky považované za neplatné, aj keď matematicky prejdú algoritmom kontrolnej číslice. Toto je pravidlo stanovené Brazílskou federálnou daňovou správou.

Ukladá nástroj CNPJs, ktoré generujem alebo validujem?

Nie. Všetko spracovanie prebieha vo vašom prehliadači a neukladáme ani neprenášame žiadne z CNPJ, ktoré generujete alebo validujete.

Môžem generovať viacero CNPJs naraz?

Aktuálna verzia nástroja generuje jeden CNPJ naraz. Pre hromadné generovanie by ste mali zvážiť použitie jednej z programovacích knižníc uvedených v sekcii Alternatívy.

Prečo je formát XX.XXX.XXX/XXXX-XX dôležitý?

Toto je oficiálny formát vyžadovaný brazílskymi úradmi. Špecifické skupiny pomáhajú identifikovať rôzne komponenty CNPJ, ako je základné číslo a identifikátor pobočky.

Ako môžem programovo overiť CNPJ?

Môžete implementovať algoritmus validácie vo vašom preferovanom programovacom jazyku pomocou kódových príkladov uvedených v sekcii Technická implementácia, alebo použiť jednu z knižníc uvedených v sekcii Alternatívy.

Existujú špeciálne CNPJs pre vládne subjekty?

Áno. Vládne subjekty v Brazílii majú špecifické vzory CNPJ. Napríklad, federálne vládne subjekty často začínajú špecifickými číslicami. Náš generátor vytvára náhodné CNPJs a nevytvára špecificky CNPJs vládnych subjektov.

Odkazy

  1. Brazílska federálna daňová správa (Receita Federal do Brasil) - Oficiálna stránka
  2. "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
  3. Brazílsky občiansky zákonník (Zákon č. 10.406/2002) - Právny rámec pre podnikateľské subjekty v Brazílii
  4. Normatívna inštrukcia Brazílskej obchodnej registrácie (IN RFB č. 1863/2018) - Predpisy o registrácii CNPJ

Vyskúšajte to teraz

Náš nástroj na generovanie a validáciu CNPJ v Brazílii robí prácu s týmito identifikačnými číslami jednoduchou a efektívnou. Či už testujete aplikácie, pripravujete vzorové údaje alebo overujete existujúce CNPJs, tento nástroj poskytuje priamy a jednoduchý spôsob bez zložitosti integrácie API alebo pokročilých konfigurácií.

Vygenerujte svoj prvý platný CNPJ teraz alebo overte existujúci pomocou nášho jednoduchého rozhrania!