🛠️

Whiz Tools

Build • Create • Innovate

Nástroj pro generování a validaci brazilských CNPJ pro testování

Generujte platná brazilská čísla CNPJ a validujte existující pomocí tohoto jednoduchého nástroje určeného pro vývojáře a testery pracující s brazilskými identifikačními čísly podniků.

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

Generátor CNPJ

Vygenerujte platné číslo CNPJ pro testovací účely.

Validátor CNPJ

Zkontrolujte, zda je číslo CNPJ platné.

📚

Dokumentace

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

Úvod

CNPJ (Cadastro Nacional da Pessoa Jurídica) je jedinečné identifikační číslo přidělené podnikům a právnickým osobám v Brazílii. Tento generátor a validátor CNPJ pro Brazílii poskytuje jednoduchý a efektivní způsob, jak generovat platná čísla CNPJ pro testovací účely a validovat existující čísla CNPJ podle oficiálního brazilského algoritmu. Ať už jste vývojář testující aplikace, které zpracovávají brazilská podniková data, profesionál v oblasti QA vytvářející testovací případy, nebo kdokoli pracující s informacemi o brazilských společnostech, tento nástroj zjednodušuje práci s čísly CNPJ.

Na rozdíl od skutečných čísel CNPJ, která jsou oficiálně vydávána Brazilskou federální daňovou službou (Receita Federal), jsou CNPJ generované tímto nástrojem matematicky platné, ale nejsou registrovány na skutečné společnosti. To je činí ideálními pro testovací scénáře, vzorová data a vývojová prostředí, kde potřebujete správně formátovaná a platná čísla CNPJ, aniž byste používali skutečné identifikátory podniků.

Co je to CNPJ?

CNPJ (Cadastro Nacional da Pessoa Jurídica) je 14místné identifikační číslo přidělené podnikům a právnickým osobám Brazilskou federální daňovou službou. Slouží jako brazilský ekvivalent registračního čísla společnosti nebo daňového identifikačního čísla. Každý podnik, který legálně působí v Brazílii, musí mít CNPJ, který se používá pro:

  • Daňové hlášení a dodržování předpisů
  • Registraci podniků u vládních agentur
  • Otevírání bankovních účtů
  • Vydávání faktur a pokladních dokladů
  • Účast na vládních výběrových řízeních
  • Dovoz a vývoz zboží

CNPJ je zásadním identifikátorem v brazilském podnikatelském ekosystému a objevuje se na oficiálních dokumentech, smlouvách a finančních záznamech.

Struktura a formát CNPJ

Brazilsko CNPJ se skládá ze 14 číslic, obvykle formátovaných jako: XX.XXX.XXX/YYYY-ZZ

Struktura se rozpadá následovně:

  1. Prvních 8 číslic (XX.XXX.XXX): Základní číslo přidělené společnosti
  2. 4 číslice za lomítkem (YYYY): Identifikátor pobočky (0001 pro sídlo, jiná čísla pro pobočky)
  3. Poslední 2 číslice (ZZ): Kontrolní číslice pro validaci

Například správně formátované CNPJ může vypadat takto: 12.345.678/0001-95

Kontrolní číslice (poslední dvě číslice) se vypočítávají pomocí specifického matematického algoritmu, který ověřuje autentičnost CNPJ. Tento algoritmus zajišťuje, že náhodně generovaná čísla nemohou projít validací, pokud nebudou následovat správnou metodu výpočtu.

Jak funguje validace CNPJ

Algoritmus validace CNPJ používá vážený výpočet k určení kontrolních číslic. Zde je, jak to funguje:

Výpočet první kontrolní číslice

  1. Vynásobte každou z prvních 12 číslic sekvencí vah: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Sečtěte výsledky těchto násobení
  3. Vypočítejte zbytek této sumy dělené 11
  4. Pokud je zbytek menší než 2, první kontrolní číslice je 0; jinak je to 11 minus zbytek

Výpočet druhé kontrolní číslice

  1. Vynásobte každou z prvních 13 číslic (včetně první kontrolní číslice) sekvencí vah: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Sečtěte výsledky těchto násobení
  3. Vypočítejte zbytek této sumy dělené 11
  4. Pokud je zbytek menší než 2, druhá kontrolní číslice je 0; jinak je to 11 minus zbytek

Aby bylo CNPJ platné, obě kontrolní číslice musí odpovídat vypočítaným hodnotám.

Jak používat tento nástroj

Náš nástroj pro generování a validaci CNPJ nabízí dvě hlavní funkce: generování platných CNPJ a validaci existujících čísel CNPJ.

Generování CNPJ

Chcete-li vygenerovat platné CNPJ pro testovací účely:

  1. Přejděte do sekce "Generátor CNPJ" nástroje
  2. Klikněte na tlačítko "Generovat CNPJ"
  3. V matematicky platném CNPJ se objeví v naformátovaném zobrazení
  4. Použijte tlačítko "Kopírovat", abyste zkopírovali vygenerované CNPJ do schránky

Vygenerované CNPJ bude dodržovat všechna pravidla matematické validace skutečného CNPJ, ale nebude registrováno u Brazilské federální daňové služby.

Validace CNPJ

Chcete-li zkontrolovat, zda je CNPJ matematicky platný:

  1. Přejděte do sekce "Validátor CNPJ" nástroje
  2. Zadejte CNPJ, který chcete validovat, do vstupního pole
    • Nástroj přijímá CNPJ s nebo bez formátování (tečky, lomítka a pomlčky)
  3. Klikněte na tlačítko "Validovat"
  4. Nástroj zobrazí, zda je CNPJ platný nebo neplatný na základě algoritmu kontrolních číslic

Validátor kontroluje, zda CNPJ dodržuje správný formát a zda kontrolní číslice odpovídají očekávaným hodnotám podle validačního algoritmu.

Případy použití

Tento nástroj pro generování a validaci CNPJ je obzvlášť užitečný v následujících scénářích:

Vývoj a testování softwaru

  • Vytváření testovacích dat: Generujte platná CNPJ pro naplnění testovacích databází bez použití skutečných identifikátorů podniků
  • Jednotkové testování: Validujte funkce zpracování CNPJ ve svém kódu s dobře známými platnými a neplatnými příklady
  • Testování QA: Vytvářejte testovací případy pro formuláře a rozhraní, která vyžadují vstup CNPJ
  • Integrační testování: Testujte systémy, které vyměňují data s brazilskými vládními službami nebo finančními institucemi

Vzdělávání a školení

  • Učení se formátu CNPJ: Pochopte, jak jsou strukturovány brazilské identifikátory podniků
  • Studium algoritmu: Zkoumejte, jak funguje validace kontrolních číslic v praxi
  • Techniky validace dat: Studujte příklady požadavků na validaci dat v reálném světě

Zpracování dat

  • Údržba dat: Validujte CNPJ v existujících sadách dat, abyste identifikovali potenciální chyby
  • Validace formulářů: Implementujte validaci na straně klienta nebo serveru pro vstupy CNPJ
  • Anonymizace dat: Nahraďte skutečné CNPJ vygenerovanými platnými čísly při přípravě sad dat pro analýzu

Mezinárodní obchod

  • Příprava na vstup na trh: Pochopte požadavky na identifikaci podniků v Brazílii
  • Příprava dokumentů: Zajistěte správné formátování při přípravě obchodních dokumentů pro Brazílii
  • Kontrola souladu: Ověřte, že shromážděná čísla CNPJ jsou alespoň matematicky platná

Alternativy

Zatímco náš nástroj poskytuje jednoduché, webové řešení pro generování a validaci CNPJ, existuje několik alternativ v závislosti na vašich specifických potřebách:

Knihovny programování

Pro vývojáře, kteří integrují validaci CNPJ přímo do aplikací, je k dispozici několik knihoven specifických pro 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

Tyto knihovny často poskytují další funkce, jako je formátování, analýza a validace dalších brazilských dokumentů.

API služby

Pro aplikace vyžadující validaci bez implementace algoritmu:

  • Brazilské vládní API (vyžaduje registraci)
  • Komerční validační API, která zahrnují kontrolu CNPJ
  • Služby informací o podnicích, které validují proti oficiální databázi

Ruční výpočet

Pro vzdělávací účely nebo jednorázové validace můžete ručně aplikovat algoritmus:

  1. Extrahujte prvních 12 číslic CNPJ
  2. Proveďte vážené výpočty, jak je popsáno výše
  3. Porovnejte vypočítané kontrolní číslice se skutečnými kontrolními číslicemi

Nicméně, ruční výpočet je náchylný k chybám a neefektivní pro pravidelné použití.

Technická implementace

Generátor a validátor CNPJ v tomto nástroji jsou implementovány pomocí JavaScriptu, což zajišťuje rychlost a schopnost běžet zcela ve vašem prohlížeči bez odesílání vašich dat na server. Zde je, jak fungují základní funkce:

Algoritmus generování CNPJ

1function generateCNPJ() {
2  // Náhodně vygenerujte prvních 12 číslic
3  const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4  
5  // Vypočítejte první kontrolní číslici
6  const firstCheckDigit = calculateCheckDigit(digits);
7  digits.push(firstCheckDigit);
8  
9  // Vypočítejte druhou kontrolní číslici
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 validace CNPJ

1function validateCNPJ(cnpj) {
2  // Odstraňte nečíselné znaky
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Zkontrolujte, zda má správnou délku
6  if (cleanCNPJ.length !== 14) return false;
7  
8  // Zkontrolujte známé neplatné vzory (všechny stejné číslice)
9  if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10  
11  // Převeďte na pole číslic
12  const digits = cleanCNPJ.split('').map(Number);
13  
14  // Zkontrolujte první ověřovací číslici
15  const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16  if (digits[12] !== expectedFirstDigit) return false;
17  
18  // Zkontrolujte druhou ověřovací číslici
19  const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20  if (digits[13] !== expectedSecondDigit) return false;
21  
22  return true;
23}
24

Funkce formátování CNPJ

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

Tyto základní funkce mohou být implementovány v jiných programovacích jazycích podle stejné logiky. Zde jsou příklady v Pythonu a Javě:

Implementace 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    # Náhodně vygenerujte prvních 12 číslic
15    digits = [random.randint(0, 9) for _ in range(12)]
16    
17    # Vypočítejte první kontrolní číslici
18    first_check = calculate_check_digit(digits)
19    digits.append(first_check)
20    
21    # Vypočítejte druhou kontrolní číslici
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    # Odstraňte nečíselné znaky
31    cnpj = ''.join(filter(str.isdigit, cnpj))
32    
33    # Zkontrolujte délku
34    if len(cnpj) != 14:
35        return False
36    
37    # Zkontrolujte, zda jsou všechny číslice stejné
38    if len(set(cnpj)) == 1:
39        return False
40    
41    # Převeďte na seznam celých čísel
42    digits = [int(d) for d in cnpj]
43    
44    # Validujte první kontrolní číslici
45    first_check = calculate_check_digit(digits[:12])
46    if digits[12] != first_check:
47        return False
48    
49    # Validujte druhou kontrolní číslici
50    second_check = calculate_check_digit(digits[:13])
51    if digits[13] != second_check:
52        return False
53    
54    return True
55

Implementace v Javě

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        // Náhodně vygenerujte prvních 12 číslic
10        for (int i = 0; i < 12; i++) {
11            digits[i] = random.nextInt(10);
12        }
13        
14        // Vypočítejte první kontrolní číslici
15        digits[12] = calculateCheckDigit(digits, 12);
16        
17        // Vypočítejte druhou kontrolní číslici
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        // Odstraňte nečíselné znaky
45        cnpj = cnpj.replaceAll("\\D", "");
46        
47        // Zkontrolujte délku
48        if (cnpj.length() != 14) {
49            return false;
50        }
51        
52        // Zkontrolujte, zda jsou všechny číslice stejné
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        // Převeďte na pole celých čísel
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        // Validujte první kontrolní číslici
71        int firstCheck = calculateCheckDigit(digits, 12);
72        if (digits[12] != firstCheck) {
73            return false;
74        }
75        
76        // Validujte druhou kontrolní číslici
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

Při používání tohoto nástroje pro generování a validaci CNPJ mějte na paměti následující úvahy:

Právní a etické úvahy

  • Není pro podvod: Vygenerované CNPJ by nikdy neměly být použity pro podvodné účely nebo zkreslování
  • Pouze pro testování: Tato CNPJ jsou určena pouze pro testovací a vývojové účely
  • Není registrováno: Vygenerované CNPJ nejsou registrovány u brazilských úřadů
  • Žádná reálná platnost: Nemohou být použity pro skutečnou registraci podniků nebo daňové účely

Technická omezení

  • Žádné obchodní informace: Vygenerované CNPJ neobsahují skutečné kódy sektoru podnikání nebo informace o umístění
  • Žádná databázová verifikace: Validátor kontroluje pouze matematickou platnost, nikoli stav registrace
  • Variace formátu: I když nástroj zvládá běžné formátovací variace, některé systémy mohou vyžadovat specifické formáty

Bezpečnostní úvahy

  • Zpracování na straně klienta: Všechny procesy probíhají ve vašem prohlížeči; žádná data nejsou odesílána na servery
  • Žádné ukládání dat: Vygenerované CNPJ nejsou ukládány ani logovány
  • Žádná osobní data: Nástroj nezpracovává žádné osobní informace

Často kladené otázky

K čemu se CNPJ v Brazílii používá?

CNPJ je národní registrační číslo pro podniky a právnické osoby v Brazílii. Používá se pro daňové účely, registraci podniků, otevírání bankovních účtů a identifikaci společností v oficiálních transakcích.

Jsou CNPJ generované tímto nástrojem skutečné?

Ne. CNPJ generované tímto nástrojem jsou matematicky platné podle algoritmu kontrolních číslic, ale nejsou registrovány u Brazilské federální daňové služby a nepatří skutečným společnostem.

Mohu použít vygenerované CNPJ pro svou firmu?

Ne. Abyste získali legitimní CNPJ pro podnik, musíte se registrovat u Brazilské federální daňové služby (Receita Federal) podle oficiálního postupu. Vygenerované CNPJ jsou určeny pouze pro testovací účely.

Jak mohu zjistit, zda CNPJ patří skutečné společnosti?

Abyste ověřili, zda je CNPJ registrován na skutečnou společnost, musíte se obrátit na databázi Brazilské federální daňové služby. Náš nástroj pouze kontroluje, zda je CNPJ matematicky platný, nikoli zda je oficiálně registrován.

Proč validátor odmítá CNPJ se všemi stejnými číslicemi?

CNPJ se všemi stejnými číslicemi (například 11.111.111/1111-11) jsou automaticky považovány za neplatné, i když matematicky projdou algoritmem kontrolních číslic. To je pravidlo stanovené Brazilskou federální daňovou službou.

Ukládá nástroj CNPJ, které generuji nebo validuji?

Ne. Všechny procesy probíhají ve vašem prohlížeči a my neukládáme ani nepřenášíme žádná CNPJ, která generujete nebo validujete.

Mohu generovat více CNPJ najednou?

Aktuální verze nástroje generuje jedno CNPJ najednou. Pro hromadné generování byste měli zvážit použití jedné z programovacích knihoven zmíněných v sekci Alternativy.

Proč je formát XX.XXX.XXX/XXXX-XX důležitý?

Toto je oficiální formát požadovaný brazilskými úřady. Specifické seskupení pomáhá identifikovat různé komponenty CNPJ, jako je základní číslo a identifikátor pobočky.

Jak mohu programově validovat CNPJ?

Můžete implementovat validační algoritmus ve svém preferovaném programovacím jazyce pomocí kódu uvedeného v sekci Technická implementace, nebo použít jednu z knihoven zmíněných v sekci Alternativy.

Existují speciální CNPJ pro vládní subjekty?

Ano. Vládní subjekty v Brazílii mají specifické vzory CNPJ. Například federální vládní subjekty často začínají na specifických číslicích. Náš generátor vytváří náhodné CNPJ a nevytváří specificky CNPJ pro vládní subjekty.

Odkazy

  1. Brazilská federální daňová služba (Receita Federal do Brasil) - Oficiální web
  2. "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
  3. Brazilský občanský zákoník (Zákon č. 10.406/2002) - Právní rámec pro podnikatelské subjekty v Brazílii
  4. Normativní instrukce brazilské registrace podniků (IN RFB č. 1863/2018) - Předpisy o registraci CNPJ

Vyzkoušejte to nyní

Náš nástroj pro generování a validaci CNPJ pro Brazílii činí práci s těmito identifikačními čísly jednoduchou a efektivní. Ať už testujete aplikace, připravujete vzorová data nebo validujete existující CNPJ, tento nástroj poskytuje přímé řešení bez složitosti integrací API nebo pokročilých konfigurací.

Vygenerujte své první platné CNPJ nyní nebo validujte existující pomocí našeho jednoduchého rozhraní!