Přeskočit na obsah

Generátor a validátor CNPJ - Nástroj pro brazilská identifikační čísla firem

Generujte platná CNPJ čísla pro testování nebo okamžitě ověřujte brazilská identifikační čísla firem. Bezplatný nástroj s kontrolou ověřovacích číslic pro vývojáře pracující s Cadastro Nacional da Pessoa Jurídica.

Generátor a validátor brazilského CNPJ

Generátor CNPJ

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

Validátor CNPJ

Zkontrolujte, zda je brazilské číslo CNPJ platné.

Kalkulačka načítání...
📚

Dokumentace

Porozumění brazilským číslům CNPJ

CNPJ (Cadastro Nacional da Pessoa Jurídica) je brazilská verze firemního daňového identifikátoru — 14-místné číslo, které identifikuje každý právní podnikatelský subjekt v zemi. Pokud vyvíjíte software, který zpracovává brazilská obchodní data, rychle narazíte na tato čísla ve formulářích registrace, fakturách a integracích API.

Zde je to, co tento nástroj činí praktickým: generuje matematicky platné CNPJ pro testování bez použití skutečných identifikátorů společností. Když nastavujete testovací databázi s 1 000 záznamy nebo ladíte validační rutinu ve 2 hodiny ráno, potřebujete CNPJ, které projdou algoritmickými kontrolami, ale náhodně neodpovídají skutečným podnikům. Přesně to tento nástroj generuje.

Čísla vytvořená zde dodržují oficiální validační algoritmus Receita Federal (brazilské federální daňové správy). Mají správné kontrolní číslice a správné formátování — jsou jen nezaregistrované vládní databázi. Můžete je chápat jako syntakticky správná testovací data, která nevytvoří problémy s dodržováním předpisů ve vývojovém prostředí.

Co je CNPJ a proč je důležitý

CNPJ slouží jako identifikátor společností v Brazílii – podobně jako EIN ve Spojených státech nebo registrační číslo společnosti ve Spojeném království. Každý podnikatelský subjekt, který v Brazílii legálně působí, musí mít jeden, vydaný Receita Federal (Federálním finančním úřadem).

Setkáte se s CNPJ v těchto situacích:

  • Zpracování plateb: Brazilské platební brány vyžadují validaci CNPJ pro obchodní účty
  • Daňová shoda: Každá faktura vydaná v Brazílii musí obsahovat platné CNPJ
  • Obchodní registrace: Státní agentury používají CNPJ ke sledování právnických osob v systémech
  • Bankovní operace: Otevírání firemních účtů nebo zpracování mezinárodních převodů
  • Import/export: Celní dokumentace vyžaduje ověření CNPJ
  • Vládní zakázky: Systémy veřejných výběrových řízení ověřují CNPJ před přijetím nabídek

Ze své zkušenosti s brazilskými e-commerce platformami vím, že jedním z nejběžnějších integračních bodů je tok pokladny, kde uživatelé zadávají své CNPJ pro firemní nákupy. Vaše validační logika musí zachytit formátové chyby ještě předtím, než je zachytí platební procesor – jinak uvidíte neúspěšné transakce, kterým by bylo možné předejít.

Struktura a formát CNPJ

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

Rozložení struktury:

  1. Prvních 8 číslic (XX.XXX.XXX): Základní registrační číslo jedinečně přiřazené společnosti
  2. Další 4 číslice (/YYYY): Identifikátor pobočky nebo provozovny—/0001 označuje ústředí, zatímco /0002, /0003 reprezentují pobočky
  3. Poslední 2 číslice (-ZZ): Ověřovací číslice vypočítané pomocí váhového algoritmu

Příklad: 12.345.678/0001-95

Co je zajímavé na identifikátoru pobočky: když společnost otevře více poboček, každá dostane stejných prvních 8 číslic, ale jiné číslo pobočky. Takže pokud maloobchodní řetězec má 50 prodejen, budou mít CNPJ končící /0001/0050, všechny se sdíleným základním číslem. To usnadňuje identifikaci, že více CNPJ patří stejné mateřské organizaci.

Kontrolní číslice nejsou náhodné—jsou vypočítány pomocí algoritmu modulus-11 s konkrétními váhovými sekvencemi. Toto návrhové řešení, běžné v brazilských administrativních dokumentech, činí matematicky obtížným falšovat platná čísla nebo je náhodně vytvořit překlepy.

Jak funguje validace CNPJ

Validační algoritmus používá výpočet s váženým modulem 11. Zde je logika pozadí:

Výpočet prvního kontrolního čísla

  1. Vezměte prvních 12 číslic a vynásobte je vahami: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Sečtěte všechny součiny
  3. Vydělte součet 11 a zjistěte zbytek
  4. Pokud je zbytek < 2, kontrolní číslo je 0; jinak je to 11 - zbytek

Výpočet druhého kontrolního čísla

  1. Vezměte prvních 13 číslic (včetně prvního kontrolního čísla) a vynásobte vahami: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Sečtěte všechny součiny
  3. Vydělte 11 a zjistěte zbytek
  4. Pokud je zbytek < 2, kontrolní číslo je 0; jinak je to 11 - zbytek

Proč tento přístup funguje: Systém váženého násobení vytváří jedinečný vztah mezi všemi 12 základními číslicemi a výslednými kontrolními čísly. Změna jediné číslice v základním čísle vytváří odlišná kontrolní čísla, což zachytává běžné chyby při přepisu, jako je prohození dvou číslic (například psaní 12.345 místo 12.354).

Praktická poznámka: CNPJ se všemi identickými číslicemi (jako 11.111.111/1111-11) jsou automaticky neplatné, i když projdou matematickou kontrolou. Receita Federal tyto vzory výslovně vylučuje, aby zabránila triviálním případům.

Jak používat generátor a validátor CNPJ

Generování testovacích CNPJ

Potřebujete platné CNPJ pro testovací databázi? Zde je postup:

  1. Klikněte na "Generovat CNPJ"
  2. Nástroj okamžitě vytvoří matematicky platné číslo
  3. Klikněte na "Kopírovat" pro zkopírování do schránky
  4. Vložte do testovacích formulářů, databázových seedů nebo jednotkových testů

Každé vygenerované CNPJ projde všemi algoritmickými validačními kontrolami, ale není registrováno u Receita Federal. To znamená, že je můžete volně používat ve vývoji bez obav z náhodného použití identifikátoru skutečné společnosti.

Ověřování CNPJ čísel

Máte CNPJ, které potřebujete ověřit? Validátor to zvládne:

  1. Vložte nebo napište CNPJ do vstupního pole
  2. Nedělejte si starosti s formátováním—funguje s 12345678000195 i 12.345.678/0001-95
  3. Klikněte na "Ověřit"
  4. Okamžitě dostanete zpětnou vazbu o správnosti kontrolních číslic

Co validátor kontroluje: správnou délku (14 číslic), správné výpočty kontrolních číslic a vyloučení neplatných vzorů jako jsou čísla se všemi stejnými číslicemi. Co nekontroluje: zda je CNPJ registrováno v databázi vlády—to vyžaduje přímý dotaz na Receita Federal.

Reálné případy použití generátoru a validátoru CNPJ

Vývoj softwaru a testování

Osazení databáze: Při nastavování testovacího prostředí s realistickými testovacími daty potřebujete desítky nebo stovky platných CNPJ. Ruční vytváření je únavné a použití skutečných identifikátorů firem vyvolává obavy o soukromí. Generované CNPJ řeší oba problémy.

Jednotkové testování hraničních případů: Vaše validační funkce by měla zamítnout 00.000.000/0000-00, ale přijmout 11.222.333/0001-81. Mít generátor vám umožňuje rychle vytvářet jak platné, tak záměrně neplatné testovací případy pro ověření, zda vaše logika správně zpracovává hraniční podmínky.

Regresní testování QA: Při testování registračních formulářů nebo B2B platebních toků potřebují týmy QA čerstvá testovací data pro každý běh. Běžný problém, který jsem viděl: testovací prostředí se znečistí stejnými 5-6 CNPJ používanými opakovaně, což maskuje chyby, které se objevují pouze s konkrétními vzory číslic.

Testování integrace API: Pokud integrujete s brazilskými poskytovateli plateb jako PagSeguro nebo Mercado Pago, jejich sandboxová prostředí často vyžadují platný formát CNPJ. Matematika musí být správná, i když nezasahujete do produkčních databází.

Zpracování a validace dat

Čištění importovaných dat: Obdrželi jste CSV se 10 000 záznamy brazilských společností. Před zpracováním potřebujete identifikovat, které CNPJ jsou poškozené. Jejich průchodem validátorem označíte položky s překlepy, zkrácením nebo nesprávnými kontrolními číslicemi - ušetříte hodiny následného ladění.

Validace formuláře na straně klienta: Zachycení neplatných CNPJ před odesláním formuláře zlepšuje uživatelský zážitek. Nikdo nechce vyplňovat 20-ti polní registrační formulář jen proto, aby dostal chybu při odeslání, protože přehodil dvě číslice v CNPJ.

Anonymizace dat pro analýzu: Při přípravě produkčních dat pro sdílení s analytickými týmy nebo externími partnery potřebujete nahradit skutečné CNPJ platnými, ale falešnými. To zachová referenční integritu vašeho datového souboru a zároveň chrání skutečné identity podniků.

Mezinárodní obchodní operace

Porozumění brazilským požadavkům: Pokud expandujete na brazilský trh, setkáte se s požadavky na CNPJ ve smlouvách, fakturách a přepravních dokumentech. Mít nástroj pro experimentování s formátem vám pomůže pochopit, co vaše systémy potřebují zpracovávat.

Specifikace integrace třetích stran: Při kontrole dokumentace API brazilských poskytovatelů SaaS často uvidíte pole CNPJ v příkladech datových toků. Schopnost generovat platné testovací hodnoty vám pomůže rychleji prototypovat integrace.

Alternativní přístupy k ověřování CNPJ

Programovací knihovny

Pokud potřebujete ověřování CNPJ zabudované do logiky vaší aplikace, tyto knihovny implementují algoritmus kontrolního čísla:

Tyto knihovny typicky zpracovávají formátování, analýzu a ověřování pro více typů brazilských dokumentů (CPF, CNPJ atd.).

Oficiální ověřovací API

Pro produkční systémy, které potřebují ověřit skutečnou obchodní registraci:

  • Veřejná služba Receita Federal: Konzultační CNPJ API umožňuje ověření proti oficiální databázi (vyžaduje řádné oprávnění a omezení rychlosti)
  • Poskytovatelé dat třetích stran: Služby jako Serasa Experian a Boa Vista SCPC nabízejí komerční API, která vrací údaje o společnosti, registrační stav a úvěrové informace

Poznámka: Tyto služby kontrolují skutečnou registraci, ne jen matematickou platnost. Budete potřebovat řádné oprávnění a měli byste počítat s náklady API pro produkční použití.

Kdy použít který přístup

Použijte tento nástroj v prohlížeči, když: potřebujete rychlé ověření bez instalace závislostí, generování testovacích dat pro ukázky nebo učení se, jak ověřování CNPJ funguje.

Použijte knihovnu, když: vytváříte aplikaci, která potřebuje ověřování na straně klienta nebo serveru jako součást zpracování formuláře.

Použijte oficiální API, když: potřebujete ověřit, že CNPJ odpovídá skutečnému, aktivnímu obchodnímu subjektu s aktuálním registračním stavem.

Technické detaily implementace

Tento nástroj běží zcela ve vašem prohlížeči pomocí JavaScriptu — žádné serverové požadavky, žádná data neopouštějí váš počítač. Zde je popis algoritmů, které můžete přizpůsobit pro vlastní projekty:

Algoritmus generování CNPJ

1function generateCNPJ() {
2  // Náhodné vygenerování prvních 12 číslic
3  const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4  
5  // Výpočet první kontrolní číslice
6  const firstCheckDigit = calculateCheckDigit(digits);
7  digits.push(firstCheckDigit);
8  
9  // Výpočet druhé kontrolní číslice
10  const secondCheckDigit = calculateCheckDigit(digits);
11  digits.push(secondCheckDigit);
12  
13  // Formátování 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  // Odstranění nečíselných znaků
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Kontrola správné délky
6  if (cleanCNPJ.length !== 14) return false;
7  
8  // Kontrola známých neplatných vzorů (všechny stejné číslice)
9  if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10  
11  // Převod na pole číslic
12  const digits = cleanCNPJ.split('').map(Number);
13  
14  // Kontrola první ověřovací číslice
15  const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16  if (digits[12] !== expectedFirstDigit) return false;
17  
18  // Kontrola druhé ověřovací číslice
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  // Odstranění nečíselných znaků
3  const cleanCNPJ = cnpj.replace(/\D/g, '');
4  
5  // Formátování 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é vygenerování prvních 12 číslic
15    digits = [random.randint(0, 9) for _ in range(12)]
16    
17    # Výpočet první kontrolní číslice
18    first_check = calculate_check_digit(digits)
19    digits.append(first_check)
20    
21    # Výpočet druhé kontrolní číslice
22    second_check = calculate_check_digit(digits)
23    digits.append(second_check)
24    
25    # Formátování 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    # Odstranění nečíselných znaků
31    cnpj = ''.join(filter(str.isdigit, cnpj))
32    
33    # Kontrola délky
34    if len(cnpj) != 14:
35        return False
36    
37    # Kontrola, zda jsou všechny číslice stejné
38    if len(set(cnpj)) == 1:
39        return False
40    
41    # Převod na seznam celých čísel
42    digits = [int(d) for d in cnpj]
43    
44    # Validace první kontrolní číslice
45    first_check = calculate_check_digit(digits[:12])
46    if digits[12] != first_check:
47        return False
48    
49    # Validace druhé kontrolní číslice
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é vygenerování prvních 12 číslic
10        for (int i = 0; i < 12; i++) {
11            digits[i] = random.nextInt(10);
12        }
13        
14        // Výpočet první kontrolní číslice
15        digits[12] = calculateCheckDigit(digits, 12);
16        
17        // Výpočet druhé kontrolní číslice
18        digits[13] = calculateCheckDigit(digits, 13);
19        
20        // Formátování 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        // Odstranění nečíselných znaků
45        cnpj = cnpj.replaceAll("\\D", "");
46        
47        // Kontrola délky
48        if (cnpj.length() != 14) {
49            return false;
50        }
51        
52        // Kontrola, 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řevod 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        // Validace první kontrolní číslice
71        int firstCheck = calculateCheckDigit(digits, 12);
72        if (digits[12] != firstCheck) {
73            return false;
74        }
75        
76        // Validace druhé kontrolní číslice
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á omezení a úvahy

Co tento nástroj umí a neumí

Co ověřuje: Matematickou správnost – zda kontrolní číslice odpovídají výpočtu algoritmu.

Co neověřuje: Zda je CNPJ registrován u Receita Federal, zda patří aktivní společnosti nebo zda je spojen s názvem firmy, který očekáváte.

Představte si to jako kontrolu pravopisu versus kontrolu faktů. Tento nástroj vám řekne, zda je CNPJ "napsáno" správně podle matematických pravidel, ale nemůže vám říct, zda číslo odpovídá skutečné, aktivní obchodní entitě.

Zákonné a etické použití

Generované CNPJ jsou určeny pouze pro testování a vývoj. Jsou matematicky platné, ale nejsou registrovány u brazilských úřadů, což znamená:

  • Bezpečné pro použití: Naplňování testovacích databází, unit testování validační logiky, QA prostředí, příklady kódu v dokumentaci
  • Nikdy nepoužívat pro: Daňové přiznání, registraci společnosti, podepisování smluv, zpracování skutečných transakcí nebo falšování identity společnosti

Použití falešného CNPJ pro úřední účely není jen neetické – je to nezákonné podle brazilského práva a může vést k trestnímu stíhání za podvod.

Technická omezení, která je třeba znát

Náhodná generace má důsledky: Nástroj generuje prvních 12 číslic náhodně. Skutečné CNPJ vydávané Receita Federal následují interní vzory související s datem registrace, regionální kanceláří a typem podnikání. Generované čísla nebudou odpovídat těmto vzorům, což sofistikované validační systémy mohou označit.

Žádná sémantická validace: Platný formát CNPJ neznamená platný obchodní kontext. Například vládní subjekty mají specifické rozsahy CNPJ – tento generátor může náhodou vytvořit jeden, ale nebude významný.

Zpracování formátu: Validátor přijímá různé vstupní formáty (12345678000195, 12.345.678/0001-95), ale některé starší systémy očekávají přesné formátování. Vždy testujte s vašimi specifickými integračními požadavky.

Soukromí a bezpečnost

Veškeré zpracování probíhá na straně klienta ve vašem prohlížeči. Žádné CNPJ, které generujete nebo ověřujete, nejsou odesílány na servery, zaznamenávány nebo ukládány. Nástroj nevyžaduje, nezpracovává ani neuchovává žádné osobní údaje.

Často kladené dotazy k ověřování CNPJ

Jaký je rozdíl mezi validací a ověřováním CNPJ?

Validace kontroluje, zda je číslo matematicky správné - správný formát, správné kontrolní číslice, žádné neplatné vzory. Tento nástroj provádí validaci.

Ověřování kontroluje, zda je CNPJ registrováno v databázi Receita Federal. Ověřování vyžaduje dotaz do vládní databáze a není něco, co tento nástroj dělá.

Můžete mít zcela platné CNPJ, které není ověřeno (jako testovací čísla, která tento nástroj generuje), nebo neplatné CNPJ, které patří skutečné společnosti (protože někdo udělal překlep při zadávání).

Mohu použít generovaná CNPJ pro produkční testování?

Záleží na tom, co myslíte "produkčním testováním". Jsou v pořádku pro stagingové prostředí, zátěžové testování a předběžné QA. Ale pokud "produkčním testováním" myslíte testování se skutečnými transakcemi, vládními API nebo finančními systémy - pak ne, potřebujete skutečně registrovaná CNPJ.

Bezpečnější přístup: použijte generovaná CNPJ v izolovaném testovacím prostředí, poté přepněte na malou sadu skutečných testovacích CNPJ společností (které ovládáte) při testování produkčních integrací.

Proč validátor zamítá 11.111.111/1111-11?

I když CNPJ se všemi identickými číslicemi může matematicky vytvořit platné kontrolní číslice, Receita Federal tyto vzory výslovně vylučuje. Je to obchodní pravidlo, nikoli matematické. Totéž platí pro sekvenční vzory v některých validačních systémech.

Je to podobné tomu, jak mnoho systémů zamítá hesla jako "heslo123" i přesto, že splňují požadavky na délku - jsou technicky platná, ale prakticky nepřijatelná.

Jak zacházet s validací CNPJ v různých lokalizacích?

Brazilské společnosti podnikající mezinárodně někdy odstraní formátovací znaky při zadávání CNPJ do zahraničních systémů. Vaše validační logika by měla před kontrolou odstranit nečíselné znaky:

1const cleanCNPJ = input.replace(/\D/g, ''); // Odstraní vše kromě číslic
2

Přijměte 12.345.678/0001-95, 12345678000195 a 12 345 678 0001 95 jako ekvivalentní vstupy.

Co CNPJ vs CPF validace?

CPF (Cadastro de Pessoas Físicas) je brazilské individuální daňové ID, zatímco CNPJ je pro společnosti. Používají různé algoritmy kontrolních číslic a délky (CPF má 11 číslic, CNPJ 14). Pokud vytváříte brazilskou aplikaci, která zpracovává obojí, budete potřebovat samostatné validační funkce - i když mnoho knihoven podporuje oba formáty.

Běžný vzor: umožněte uživatelům zadat CPF nebo CNPJ do stejného pole, poté detekujte typ podle délky po odstranění formátovacích znaků.

Funguje to pro zahraniční společnosti podnikající v Brazílii?

Zahraniční společnosti podnikající v Brazílii musí také získat CNPJ od Receita Federal. Jejich CNPJ dodržují stejný formát a validační pravidla jako domácí společnosti. Neexistuje žádný speciální formát CNPJ pro zahraniční společnosti.

Zahraniční společnosti však mohou mít dodatečné požadavky na dokumentaci a odlišné registrační procesy - poraďte se s brazilským obchodním advokátem pro konkrétnosti.

Mohu se dotázat vládní databáze na ověření registrace CNPJ?

Ano, Receita Federal poskytuje veřejný přístup k ověření základních informací o CNPJ prostřednictvím jejich Consulta Pública CNPJ služby. Můžete ručně vyhledávat CNPJ nebo s příslušným oprávněním používat jejich API pro programový přístup.

Poznámka: intenzivní využívání vyžaduje registraci a existují omezení rychlosti, aby se zabránilo zneužití.

Jak často se CNPJ mění?

CNPJ jsou trvalé identifikátory, které se nemění, když společnost změní název, adresu nebo vlastnickou strukturu. Pokud však společnost zavře a později se znovu zaregistruje, může obdržet nové CNPJ. Čísla poboček (část /XXXX) lze přidat při otevírání nových poboček, ale základní 8-místné číslo zůstává konstantní.

Reference a další zdroje

Oficiální vládní zdroje

  1. Receita Federal do Brasil - Oficiální portál - Oficiální webové stránky brazilské Federální daňové správy s registračními a ověřovacími službami CNPJ
  2. Consulta Pública CNPJ - Veřejné vyhledávání CNPJ - Oficiální vládní služba pro ověření stavu registrace CNPJ
  3. Normativní instrukce RFB č. 1863/2018 - Právní předpisy upravující registraci a používání CNPJ v Brazílii

Technické normy a dokumentace

  1. Algoritmy modulární aritmetiky - Výpočet kontrolní číslice používá modulární aritmetiku, standardní přístup pro validační číslice
  2. ISO/IEC 7064 - Mezinárodní standard pro systémy kontrolních číslic, který ovlivnil návrh brazilské validace dokumentů
  3. Brazilský občanský zákoník (Zákon č. 10.406/2002) - Právní rámec definující klasifikace obchodních subjektů vyžadujících registraci CNPJ

Zdroje pro vývojáře

  1. Registr balíčků NPM - npmjs.com - Úložiště knihoven JavaScript včetně validátorů brazilských dokumentů
  2. PyPI (Python Package Index) - pypi.org - Knihovny Python pro validaci CNPJ a zpracování brazilských dokumentů
  3. GitHub - Open-source implementace validace CNPJ v několika programovacích jazycích

Začněte generovat a ověřovat CNPJs

Ať už budujete brazilskou e-commerce platformu, testujete platební integrace s Mercado Pago, nebo jen potřebujete pochopit, jak funguje ověřování CNPJ, tento nástroj vám poskytuje okamžitý přístup k možnostem generování a ověřování.

Žádná instalace, žádné API klíče, žádné komplikované nastavení. Stačí otevřít prohlížeč a začít pracovat s platnými brazilskými identifikátory podnikatelských subjektů.