Generátor a validátor CNPJ - Nástroj pre brazílske identifikačné číslo podniku
Generujte platné CNPJ čísla pre testovanie alebo okamžite overujte brazílske identifikačné čísla podnikov. Bezplatný nástroj s overovaním kontrolných číslic pre vývojárov pracujúcich s Cadastro Nacional da Pessoa Jurídica.
Generátor a validátor brazílskeho CNPJ
Generátor CNPJ
Vygenerujte platné brazílske číslo CNPJ na testovacie účely.
Validátor CNPJ
Skontrolujte, či je brazílske číslo CNPJ platné.
Dokumentácia
Pochopenie brazílskych čísel CNPJ
CNPJ (Cadastro Nacional da Pessoa Jurídica) je brazílska verzia firemného daňového identifikátora — 14-miestne číslo, ktoré identifikuje každý právny podnikateľský subjekt v krajine. Ak vyvíjate softvér, ktorý spracováva brazílske podnikové údaje, rýchlo narazíte na tieto čísla vo registračných formulároch, faktúrach a API integráciách.
Tu je to, čo robí tento nástroj praktickým: generuje matematicky platné CNPJ pre testovanie bez použitia skutočných identifikátorov spoločností. Keď nastavujete testovaciu databázu so 1 000 záznamami alebo ladíte validačnú rutinu o 2. hodine ráno, potrebujete CNPJ, ktoré prejdú algoritmickými kontrolami, ale náhodou nezodpovedajú skutočným podnikom. Presne to tento nástroj generuje.
Vytvorené čísla dodržiavajú oficiálny validačný algoritmus Receita Federal (brazílsky federálny daňový úrad). Majú správne kontrolné číslice a správne formátovanie — jednoducho nie sú registrované v štátnej databáze. Môžete ich považovať za syntakticky správne testové údaje, ktoré nevytvoria problémy so súladom vo vašom vývojovom prostredí.
Čo je CNPJ a prečo je dôležitý
CNPJ slúži ako identifikátor spoločností v Brazílii - podobne ako EIN v Spojených štátoch alebo registračné číslo spoločnosti vo Veľkej Británii. Každý podnikateľský subjekt, ktorý v Brazílii funguje legálne, musí mať jeden, vydaný Receita Federal (Federálnym daňovým úradom).
Stretnete sa s CNPJ v týchto situáciách:
- Spracovanie platieb: Brazílske platobné brány vyžadujú validáciu CNPJ pre obchodné účty
- Daňový súlad: Každá faktúra vydaná v Brazílii musí obsahovať platný CNPJ
- Registrácia spoločnosti: Štátne agentúry používajú CNPJ na sledovanie právnických osôb v systémoch
- Bankové operácie: Otváranie firemných účtov alebo spracovanie medzinárodných prevodov
- Import/export: Colná dokumentácia vyžaduje overenie CNPJ
- Vládne zmluvy: Systémy verejných súťaží overujú CNPJ pred prijatím ponúk
Podľa mojich skúseností s brazílskymi e-commerce platformami je jedným z najčastejších integračných bodov tok pokladne, kde používatelia zadávajú svoj CNPJ pre firemné nákupy. Vaša validačná logika musí zachytiť chyby vo formátovaní skôr, než tak urobí platobný procesor - inak uvidíte zlyhané transakcie, ktorým sa dalo zabrániť.
Štruktúra a formát CNPJ
CNPJ pozostáva z 14 číslic vo formáte: XX.XXX.XXX/YYYY-ZZ
Rozdelenie štruktúry:
- Prvých 8 číslic (XX.XXX.XXX): Základné registračné číslo jedinečne priradené spoločnosti
- Ďalšie 4 číslice (/YYYY): Identifikátor pobočky alebo prevádzky—
/0001označuje ústredie, kým/0002,/0003reprezentujú pobočky - Posledné 2 číslice (-ZZ): Overovacie číslice vypočítané pomocou váhového algoritmu
Príklad: 12.345.678/0001-95
Zaujímavosť o identifikátore pobočky: keď spoločnosť otvorí viacero prevádzok, každá dostane rovnakých prvých 8 číslic, ale odlišné číslo pobočky. Takže ak maloobchodný reťazec má 50 predajní, budú mať CNPJ končiace sa /0001 až /0050, všetky zdieľajúce rovnaké základné číslo. To uľahčuje identifikáciu, že viaceré CNPJ patria tej istej materskej organizácii.
Overovacie číslice nie sú náhodné—sú vypočítané pomocou algoritmu modulus-11 so špecifickými váhovými sekvenciami. Toto dizajnové riešenie, bežné v brazílskych administratívnych dokumentoch, robí matematicky ťažkým falšovať platné čísla alebo náhodou vytvoriť platné čísla preklepom.
Ako funguje validácia CNPJ
Validačný algoritmus používa výpočet s váhovaným modulom 11. Tu je logika behind ním:
Výpočet prvého kontrolného čísla
- Zoberte prvých 12 číslic a vynásobte každú váhami:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Sčítajte všetky súčiny
- Vydeľte súčet 11 a zistite zvyšok
- Ak je zvyšok < 2, kontrolné číslo je 0; inak je to
11 - zvyšok
Výpočet druhého kontrolného čísla
- Zoberte prvých 13 číslic (vrátane prvého kontrolného čísla) a vynásobte váhami:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Sčítajte všetky súčiny
- Vydeľte 11 a zistite zvyšok
- Ak je zvyšok < 2, kontrolné číslo je 0; inak je to
11 - zvyšok
Prečo tento prístup funguje: Systém váhovaného násobenia vytvára jedinečný vzťah medzi všetkými 12 základnými číslicami a výslednými kontrolnými číslami. Zmena jedinej číslice v základnom čísle vytvára rozdielne kontrolné čísla, čo zachytáva bežné chyby pri prepise, ako je zámena dvoch číslic (napísanie 12.345 namiesto 12.354).
Praktická poznámka: CNPJ so všetkými identickými číslicami (ako 11.111.111/1111-11) sú automaticky neplatné, aj keď prejdú matematickou kontrolou. Receita Federal explicitne vylučuje tieto vzory, aby zabránila triviálnym prípadom.
Ako používať generátor a validátor CNPJ
Generovanie testovacích CNPJ
Potrebujete platné CNPJ pre vašu testovaciu databázu? Tu je postup:
- Kliknite na "Generovať CNPJ"
- Nástroj okamžite vytvorí matematicky platné číslo
- Kliknite na "Kopírovať" pre skopírovanie do schránky
- Vložte ho do testovacích formulárov, databázových seedov alebo jednotkových testov
Každé vygenerované CNPJ prejde všetkými algoritmickými validačnými kontrolami, ale nie je registrované na Receita Federal. To znamená, že ich môžete voľne používať vo vývoji bez obáv z náhodného použitia identifikátora skutočnej spoločnosti.
Validácia CNPJ čísel
Máte CNPJ, ktoré potrebujete overiť? Validátor to zvládne:
- Vložte alebo napíšte CNPJ do vstupného poľa
- Nerobte si starosti s formátovaním—funguje s
12345678000195aj12.345.678/0001-95 - Kliknite na "Validovať"
- Dostanete okamžitú spätnú väzbu o správnosti kontrolných číslic
Čo validátor kontroluje: správnu dĺžku (14 číslic), správne výpočty kontrolných číslic a vylúčenie neplatných vzorov ako sú čísla so všetkými rovnakými číslicami. Čo nekontroluje: či je CNPJ registrované v štátnej databáze—to vyžaduje priamy dopyt na Receita Federal.
Reálne prípady použitia generátora a validátora CNPJ
Vývoj softvéru a testovanie
Napĺňanie databázy: Pri nastavovaní stagingového prostredia s realistickými testovacími údajmi potrebujete desiatky alebo stovky platných CNPJ. Manuálne vytváranie je únavné a používanie skutočných identifikátorov spoločností vyvoláva obavy o súkromie. Generované CNPJ riešia oba problémy.
Jednotkové testovanie hraničných prípadov: Vaša validačná funkcia by mala odmietnuť 00.000.000/0000-00, ale akceptovať 11.222.333/0001-81. Generátor vám umožňuje rýchlo vytvárať platné aj úmyselne neplatné testovacie prípady na overenie správneho spracovania hraničných podmienok.
QA regresné testovanie: Pri testovaní registračných formulárov alebo B2B platobných tokov potrebujú QA tímy čerstvé testovacie údaje pre každý beh. Bežný problém, ktorý som videl: testovacie prostredia sa znečistia rovnakými 5-6 CNPJ používanými opakovane, čo maskuje chyby, ktoré sa objavia len s konkrétnymi vzormi číslic.
Testovanie integrácie API: Ak integrujete s brazílskymi poskytovateľmi platieb ako PagSeguro alebo Mercado Pago, ich sandboxové prostredia často vyžadujú platný formát CNPJ. Matematika musí byť správna, aj keď nezasahujete do produkčných databáz.
Spracovanie a validácia údajov
Čistenie importovaných údajov: Dostali ste CSV so 10 000 záznamami brazílskych spoločností. Pred spracovaním potrebujete identifikovať chybné CNPJ. Spustenie cez validátor označí položky s preklepmi, skrátením alebo nesprávnymi kontrolnými číslicami - ušetrí hodiny následného ladenia.
Validácia formulára na strane klienta: Zachytenie neplatných CNPJ pred odoslaním formulára zlepšuje používateľský zážitok. Nikto nechce vyplniť registračný formulár s 20 poliami len preto, aby dostal chybu pri odoslaní kvôli zámene dvoch číslic v CNPJ.
Anonymizácia údajov pre analýzu: Pri príprave produkčných údajov na zdieľanie s analytickými tímami alebo externými partnermi potrebujete nahradiť skutočné CNPJ platnými, ale falošnými. Toto zachováva referenčnú integritu vašej databázy a chráni skutočné identifikátory podnikov.
Medzinárodné obchodné operácie
Pochopenie brazílskych požiadaviek: Ak expandujete na brazílsky trh, stretnete sa s požiadavkami CNPJ v zmluvách, faktúrach a prepravných dokumentoch. Nástroj na experimentovanie s formátom vám pomôže pochopiť, čo vaše systémy potrebujú spracovať.
Špecifikácie integrácie tretích strán: Pri kontrole dokumentácie API brazílskych SaaS poskytovateľov často nájdete polia CNPJ v príkladoch payloadu. Schopnosť generovať platné testovacie hodnoty vám pomôže rýchlejšie vytvárať prototypy integrácií.
Alternatívne prístupy k validácii CNPJ
Programovacie knižnice
Ak potrebujete validáciu CNPJ zabudovanú do logiky vašej aplikácie, tieto knižnice implementujú algoritmus kontrolného čísla:
- JavaScript/Node.js:
cpf-cnpj-validator(130k+ týždenných stiahnutí),validator.js(podporuje brazílske dokumenty) - Python:
validate-docbr(validuje CPF, CNPJ a iné brazílske dokumenty),python-cnpj - PHP:
respect/validation(obsahuje pravidlá pre CNPJ),brazilianutils - Java:
caelum-stella(komplexná validácia brazílskych dokumentov) - Ruby:
cpf_cnpjgem
Tieto knižnice typicky spracúvajú formátovanie, parsovanie a validáciu pre viaceré typy brazílskych dokumentov (CPF, CNPJ atď.).
Oficiálne overovacie API
Pre produkčné systémy, ktoré potrebujú overiť skutočnú obchodnú registráciu:
- Verejná služba Receita Federal: Konzultačné CNPJ API umožňuje overenie voči oficiálnej databáze (vyžaduje správnu autorizáciu a obmedzenie rýchlosti)
- Poskytovatelia tretích strán: Služby ako Serasa Experian a Boa Vista SCPC ponúkajú komerčné API, ktoré vrátia podrobnosti o spoločnosti, registračný stav a úverové informácie
Poznámka: Tieto služby kontrolujú skutočnú registráciu, nielen matematickú platnosť. Budete potrebovať správnu autorizáciu a mali by ste počítať s nákladmi API pre produkčné použitie.
Kedy použiť ktorý prístup
Použite tento nástroj v prehliadači, keď: potrebujete rýchlu validáciu bez inštalácie závislostí, generovanie testovacích dát pre ukážky alebo sa učíte, ako funguje validácia CNPJ.
Použite knižnicu, keď: budujete aplikáciu, ktorá potrebuje validáciu na strane klienta alebo servera ako súčasť spracovania formulára.
Použite oficiálne API, keď: potrebujete overiť, že CNPJ zodpovedá skutočnému, aktívnemu obchodnému subjektu s aktuálnym registračným stavom.
Technické detaily implementácie
Tento nástroj beží úplne vo vašom prehliadači pomocou JavaScriptu - žiadne serverové požiadavky, žiadne dáta opúšťajúce váš počítač. Tu je vysvetlenie, ako algoritmy fungujú pod kapotou, s kódom, ktorý môžete prispôsobiť pre vlastné projekty:
Algoritmus generovania CNPJ
1function generateCNPJ() {
2 // Náhodné vygenerovanie prvých 12 číslic
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Výpočet prvej kontrolnej číslice
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Výpočet druhej kontrolnej číslice
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Formátovanie 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}
29Algoritmus validácie CNPJ
1function validateCNPJ(cnpj) {
2 // Odstránenie non-numerických znakov
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Kontrola správnej dĺžky
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Kontrola známych neplatných vzorov (všetky rovnaké číslice)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Konverzia na pole číslic
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Kontrola prvej overovacej číslice
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Kontrola druhej overovacej číslice
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24Funkcia formátovania CNPJ
1function formatCNPJ(cnpj) {
2 // Odstránenie non-numerických znakov
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formátovanie podľa 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}
18Tieto základné funkcie môžu byť implementované v iných programovacích jazykoch podľa rovnakej 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 # Náhodné vygenerovanie prvých 12 číslic
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Výpočet prvej kontrolnej číslice
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Výpočet druhej kontrolnej číslice
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Formátovanie 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ánenie non-numerických znakov
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Kontrola dĺžky
34 if len(cnpj) != 14:
35 return False
36
37 # Kontrola, či sú všetky číslice rovnaké
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Konverzia na zoznam celých čísel
42 digits = [int(d) for d in cnpj]
43
44 # Validácia prvej kontrolnej číslice
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Validácia druhej kontrolnej číslice
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Implementá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 // Náhodné vygenerovanie prvých 12 číslic
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Výpočet prvej kontrolnej číslice
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Výpočet druhej kontrolnej číslice
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Formátovanie 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ánenie non-numerických znakov
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Kontrola dĺžky
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Kontrola, č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 // Konverzia 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 // Validácia prvej kontrolnej číslice
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Validácia druhej kontrolnej číslice
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Dôležité obmedzenia a úvahy
Čo tento nástroj vie a nevie robiť
Čo overuje: Matematickú správnosť – či kontrolné číslice zodpovedajú výpočtu algoritmu.
Čo neoveruje: Či je CNPJ registrovaný na Receita Federal, či patrí aktívnej spoločnosti alebo či je spojený s názvom firmy, ktorý očakávate.
Predstavte si to ako kontrolu pravopisu oproti overovaniu faktov. Tento nástroj vám povie, či je CNPJ "napísané" správne podľa matematických pravidiel, ale nemôže vám povedať, či číslo zodpovedá skutočnej, aktívnej obchodnej jednotke.
Zákonné a etické použitie
Generované CNPJ sú určené len na testovanie a vývoj. Sú matematicky platné, ale nie sú registrované u brazílskych úradov, čo znamená:
- ✅ Bezpečné na použitie pre: Napĺňanie testovacích databáz, unit testovanie validačnej logiky, QA prostredia, príklady kódu v dokumentácii
- ❌ Nikdy nepoužívať na: Daňové podania, registráciu firmy, podpisovanie zmlúv, spracovanie skutočných transakcií alebo falošné zastupovanie identity firmy
Použitie falošného CNPJ na úradné účely nie je len neetické – je to protizákonné podľa brazílskych zákonov a môže viesť k trestným oznámeniam za podvod.
Technické obmedzenia, ktoré je potrebné poznať
Náhodná generácia má dôsledky: Nástroj generuje prvých 12 číslic náhodne. Skutočné CNPJ vydávané Receita Federal sa riadia internými vzormi súvisiacimi s dátumom registrácie, regionálnym pracoviskom a typom firmy. Generované čísla nebudú zodpovedať týmto vzorom, čo sofistikované validačné systémy môžu odhaliť.
Žiadna sémantická validácia: Platný formát CNPJ neznamená platný obchodný kontext. Napríklad vládne subjekty majú špecifické rozsahy CNPJ – tento generátor môže náhodou vytvoriť jeden, ale nebol by zmysluplný.
Spracovanie formátu: Validátor akceptuje rôzne vstupné formáty (12345678000195, 12.345.678/0001-95), ale niektoré staršie systémy vyžadujú presný formát. Vždy testujte s vašimi špecifickými integračnými požiadavkami.
Súkromie a bezpečnosť
Všetko spracovanie prebieha na strane klienta vo vašom prehliadači. Žiadne CNPJ, ktoré generujete alebo overujete, nie sú odosielané na servery, zaznamenávané alebo ukladané. Nástroj nevyžaduje, nespracováva ani nespracúva žiadne osobné informácie.
Často kladené otázky o validácii CNPJ
Aký je rozdiel medzi validáciou a overením CNPJ?
Validácia kontroluje, či je číslo matematicky správne - správny formát, správne kontrolné číslice, žiadne neplatné vzory. Tento nástroj vykonáva validáciu.
Overenie kontroluje, či je CNPJ zaregistrované v databáze Receita Federal. Overenie vyžaduje dopyt do vládnej databázy a nie je niečo, čo tento nástroj robí.
Môžete mať úplne platné CNPJ, ktoré nie je overené (ako testovacie čísla, ktoré tento nástroj generuje), alebo neplatné CNPJ, ktoré patrí skutočnej spoločnosti (pretože niekto urobil preklep pri zadávaní).
Môžem použiť generované CNPJ pre produkčné testovanie?
Záleží na tom, čo myslíte pod "produkčným testovaním". Sú v poriadku pre stagingové prostredia, záťažové testovanie a QA pred spustením. Ale ak "produkčné testovanie" znamená testovanie so skutočnými transakciami, vládnymi API alebo finančnými systémami - potom nie, potrebujete skutočne registrované CNPJ.
Bezpečnejší prístup: použite generované CNPJ v izolovaných testovacích prostrediach, potom prepnite na malú sadu skutočných testovacích CNPJ spoločností (ktoré kontrolujete) pri testovaní produkčných integrácií.
Prečo validator odmieta 11.111.111/1111-11?
Aj keď CNPJ so všetkými identickými číslicami môže matematicky vyprodukovať platné kontrolné číslice, Receita Federal ich explicitne vylučuje. Je to obchodné pravidlo, nie matematické. To isté platí pre sekvenčné vzory v niektorých validačných systémoch.
Je to podobné tomu, ako mnohé systémy odmietajú heslá ako "heslo123" aj napriek tomu, že spĺňajú požiadavky na dĺžku - sú technicky platné, ale prakticky neprijateľné.
Ako mám riešiť validáciu CNPJ v rôznych lokalizáciách?
Brazílske spoločnosti podnikajúce medzinárodne niekedy vynechávajú formátovacie znaky pri zadávaní CNPJ do zahraničných systémov. Vaša validačná logika by mala odstrániť nečíselné znaky pred kontrolou:
1const cleanCNPJ = input.replace(/\D/g, ''); // Odstráni všetko okrem číslic
2Akceptujte 12.345.678/0001-95, 12345678000195 a 12 345 678 0001 95 ako ekvivalentné vstupy.
Čo tak CNPJ vs CPF validácia?
CPF (Cadastro de Pessoas Físicas) je brazílske individuálne daňové ID, zatiaľ čo CNPJ je pre podniky. Používajú rôzne algoritmy kontrolných číslic a dĺžky (CPF má 11 číslic, CNPJ 14). Ak vytvárate brazílsku aplikáciu, ktorá spracováva oboje, budete potrebovať samostatné validačné funkcie - hoci mnohé knižnice podporujú oba formáty.
Bežný vzor: umožnite používateľom zadať CPF alebo CNPJ do toho istého poľa, potom zistite typ na základe dĺžky po odstránení formátovania.
Funguje to pre zahraničné spoločnosti pôsobiace v Brazílii?
Zahraničné spoločnosti pôsobiace v Brazílii musia tiež získať CNPJ z Receita Federal. Ich CNPJ dodržiavajú rovnaký formát a validačné pravidlá ako domáce spoločnosti. Neexistuje žiadny špeciálny "zahraničný" formát CNPJ.
Zahraničné spoločnosti však môžu mať dodatočné požiadavky na dokumentáciu a odlišné registračné procesy - poraďte sa s brazílskym obchodným advokátom pre konkrétnosti.
Môžem sa dotazovať vládnej databázy na overenie registrácie CNPJ?
Áno, Receita Federal poskytuje verejný prístup na overenie základných informácií o CNPJ prostredníctvom ich Consulta Pública CNPJ služby. Môžete manuálne vyhľadávať CNPJ alebo s príslušným povolením používať ich API pre programový prístup.
Poznámka: intenzívne používanie vyžaduje registráciu a existujú limity na zabránenie zneužitia.
Ako často sa CNPJ menia?
CNPJ sú trvalé identifikátory, ktoré sa nemenia, keď spoločnosť zmení svoj názov, adresu alebo štruktúru vlastníctva. Avšak ak spoločnosť zanikne a neskôr sa znovu zaregistruje, môže dostať nové CNPJ. Čísla pobočiek (časť /XXXX) sa môžu pridávať, keď spoločnosti otvárajú nové lokality, ale základné 8-miestne číslo zostáva konštantné.
Referencie a ďalšie zdroje
Oficiálne vládne zdroje
- Receita Federal do Brasil - Oficiálny portál - Oficiálna webová stránka brazílskej Federálnej daňovej správy so službami registrácie a overovania CNPJ
- Consulta Pública CNPJ - Verejné vyhľadávanie CNPJ - Oficiálna vládna služba na overenie stavu registrácie CNPJ
- Normatívna inštrukcia RFB č. 1863/2018 - Právne predpisy upravujúce registráciu a používanie CNPJ v Brazílii
Technické normy a dokumentácia
- Algoritmy modulárnej aritmetiky - Výpočet kontrolnej číslice používa modulárnu aritmetiku modulo 11, štandardný prístup pre validačné číslice
- ISO/IEC 7064 - Medzinárodná norma pre systémy kontrolných číslic, ktorá ovplyvnila návrh validácie brazílskych dokumentov
- Brazílsky občiansky zákonník (Zákon č. 10.406/2002) - Právny rámec definujúci klasifikácie obchodných subjektov vyžadujúcich registráciu CNPJ
Zdroje pre vývojárov
- Registri balíčkov NPM - npmjs.com - Úložisko JavaScript knižníc vrátane validátorov brazílskych dokumentov
- PyPI (Python Package Index) - pypi.org - Knižnice Python pre validáciu CNPJ a spracovanie brazílskych dokumentov
- GitHub - Open-source implementácie validácie CNPJ vo viacerých programovacích jazykoch
Začnite generovať a overovať CNPJs
Či už budujete brazílsku e-commerce platformu, testujete platobné integrácie s Mercado Pago, alebo len potrebujete pochopiť, ako funguje overovanie CNPJ, tento nástroj vám poskytuje okamžitý prístup k možnostiam generovania a overovania.
Žiadna inštalácia, žiadne API kľúče, žiadne komplikované nastavenie. Stačí otvoriť váš prehliadač a začať pracovať s platnými brazílskymi identifikátormi podnikateľských subjektov.