ЦНПЈ Генератор и Валидатор - Алат за Бразилски Пословни ID
Генеришите важеће ЦНПЈ бројеве за тестирање или тренутно валидирајте бразилске пословне ID-ове. Бесплатан алат са верификацијом контролне цифре за програмере који раде са Кадастро Националом да Песоа Јуридике.
Генератор и валидатор бразилског CNPJ-а
Генератор CNPJ-а
Генеришите важећи бразилски CNPJ број за сврхе тестирања.
Валидатор CNPJ-а
Проверите да ли је бразилски CNPJ број важећи.
Dokumentacija
Разумевање бразилских CNPJ бројева
CNPJ (Cadastro Nacional da Pessoa Jurídica) је бразилска верзија корпоративног пореског идентификационог броја - 14-цифрени број који идентификује сваки правни пословни субјект у земљи. Ако развијате софтвер који обрађује бразилске пословне податке, брзо ћете наићи на ове бројеве у регистрационим формуларима, фактурама и API интеграцијама.
Оно што чини овај алат практичним јесте да генерише математички исправне CNPJ бројеве за тестирање без коришћења стварних идентификатора компанија. Када постављате тестну базу података са 1.000 записа или отклањате грешке у рутини за валидацију у 2 сата ујутру, потребни су вам CNPJ бројеви који пролазе алгоритамске провере, али случајно не одговарају стварним предузећима. Управо то овде генерише.
Бројеви креирани овде прате званични алгоритам валидације Receita Federal (Бразилске федералне пореске службе). Имају исправне контролне цифре и правилно форматирање - једноставно нису регистровани у владиној бази података. Размислите о њима као о синтаксно исправним тестним подацима који неће створити проблеме са усаглашеношћу у вашем развојном окружењу.
Шта је CNPJ и зашто је важан
CNPJ служи као идентификатор предузећа у Бразилу - сличан EIN-у у Сједињеним Државама или броју регистрације компаније у Уједињеном Краљевству. Свака пословна јединица која законски послује у Бразилу мора да има један, који издаје Receita Federal (Служба федералних прихода).
Сусретаћете се са CNPJ-ом када:
- Обрада плаћања: Бразилски платни системи захтевају CNPJ валидацију за трговачке рачуне
- Пореска усклађеност: Сваки рачун издат у Бразилу мора да садржи важећи CNPJ
- Пословна регистрација: Владине агенције користе CNPJ за праћење правних субјеката кроз системе
- Банковне операције: Отварање корпоративних рачуна или обрада међународних трансфера
- Увоз/извоз: Царинска документација захтева CNPJ верификацију
- Владини уговори: Јавни тендерски системи валидирају CNPJ пре прихватања понуда
Из мог искуства рада са бразилским е-трговинским платформама, једна од најчешћих тачака интеграције је ток плаћања где корисници уносе свој CNPJ за корпоративне куповине. Ваша логика валидације треба да ухвати грешке у формату пре него што то учиниprocessor плаћања - иначе ћете видети неуспеле трансакције које су се могле спречити.
Struktura i format CNPJ-a
CNPJ se sastoji od 14 cifara formatiranih kao: XX.XXX.XXX/YYYY-ZZ
Razlaganje strukture:
- Prvih 8 cifara (XX.XXX.XXX): Osnovni registracioni broj koji se jedinstveno dodeljuje kompaniji
- Sledeće 4 cifre (/YYYY): Identifikator filijale ili poslovne jedinice—
/0001označava sedište, dok/0002,/0003predstavljaju lokacije filijala - Poslednje 2 cifre (-ZZ): Kontrolne cifre izračunate kroz ponderisani algoritam
Primer: 12.345.678/0001-95
Zanimljivo kod identifikatora filijale: kada kompanija otvori više lokacija, svaka dobija iste prve 8 cifara, ali različit broj filijale. Tako ako maloprodajni lanac ima 50 prodavnica, imaće CNPJ-ove koji se završavaju od /0001 do /0050, svi deleći isti osnovni broj. Ovo olakšava identifikaciju da više CNPJ-ova pripada istoj matičnoj organizaciji.
Kontrolne cifre nisu nasumične—računaju se koristeći modulus-11 algoritam sa specifičnim sekvencama ponderisanja. Ovaj dizajn, uobičajen u brazilskim administrativnim dokumentima, čini matematički teškim krivotvorenje validnih brojeva ili slučajno stvaranje validnih brojeva putem tipfelera.
Kako zapravo radi CNPJ validacija
Algoritam validacije koristi izračunavanje ponderisanog modula-11. Evo logike iza toga:
Izračunavanje prvog kontrolnog broja
- Uzmite prvih 12 cifara i pomnožite svaku ponderima:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Saberite sve proizvode
- Podelite zbir sa 11 i uzmite ostatak
- Ako je ostatak < 2, kontrolni broj je 0; u suprotnom je
11 - ostatak
Izračunavanje drugog kontrolnog broja
- Uzmite prvih 13 cifara (uključujući prvi kontrolni broj) i pomnožite ponderima:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Saberite sve proizvode
- Podelite sa 11 i uzmite ostatak
- Ako je ostatak < 2, kontrolni broj je 0; u suprotnom je
11 - ostatak
Zašto ovaj pristup funkcioniše: Sistem ponderisanog množenja stvara jedinstven odnos između svih 12 osnovnih cifara i rezultujućih kontrolnih brojeva. Promena čak i jedne cifre u osnovnom broju dovodi do različitih kontrolnih brojeva, što otkriva uobičajene greške pri prepisivanju poput zamene dva broja (npr. unos 12.345 umesto 12.354).
Praktična napomena: CNPJ brojevi sa svim identičnim ciframa (poput 11.111.111/1111-11) su automatski nevažeći, čak i ako prođu matematičku proveru. Receita Federal izričito isključuje ove obrasce kako bi sprečila trivijalne slučajeve.
Kako koristiti CNPJ Generator i Validator
Generisanje Test CNPJ-ova
Potreban vam je validan CNPJ za vašu test bazu podataka? Evo kako:
- Kliknite "Generiši CNPJ"
- Alat trenutno kreira matematički validan broj
- Kliknite "Kopiraj" da biste ga preuzeli u clipboard
- Nalepite ga u vaše test forme, seed baze podataka ili jedinične testove
Svaki generisani CNPJ prolazi sve algoritamske provere validnosti, ali nije registrovan kod Receita Federal. To znači da ga možete slobodno koristiti u razvoju bez brige da slučajno koristite identifikator stvarne kompanije.
Validacija CNPJ Brojeva
Imate CNPJ koji treba da proverite? Validator to rešava:
- Nalepite ili unesite CNPJ u polje za unos
- Ne brinite oko formatiranja—radi sa
12345678000195ili12.345.678/0001-95 - Kliknite "Validacija"
- Dobijte trenutni povratni signal o ispravnosti kontrolnih cifara
Šta validator proverava: odgovarajuću dužinu (14 cifara), ispravnost izračuna kontrolnih cifara i isključivanje nevalidnih šablona poput brojeva sa istim ciframa. Šta ne proverava: da li je CNPJ registrovan u vladnoj bazi podataka—to zahteva direktno pretraživanje Receita Federal.
Стварни случајеви употребе за CNPJ генератор и валидатор
Развој софтвера и тестирање
Попуњавање базе података: Приликом подешавања staging окружења са реалистичним тест подацима, потребно вам је десетине или стотине важећих CNPJ-ова. Ручно стварање истих је напорно, а коришћење стварних идентификатора компанија подиже питања приватности. Генерисани CNPJ-ови решавају оба проблема.
Јединично тестирање граничних случајева: Ваша функција валидације треба да одбаци 00.000.000/0000-00 али прихвати 11.222.333/0001-81. Поседовање генератора вам омогућава брзо стварање и важећих и намерно неважећих тест случајева да бисте проверили да ли ваша логика исправно обрађује граничне услове.
QA регресионо тестирање: Приликом тестирања образаца за регистрацију или B2B checkout токова, QA тимови требају свеже тест податке за свако покретање. Чест проблем који сам видео: тест окружења се загађују истих 5-6 CNPJ-ова који се понављају, што маскира грешке које се појављују само са одређеним шаблонима цифара.
API интеграционо тестирање: Ако интегришете са бразилским процесорима плаћања попут PagSeguro или Mercado Pago, њихова sandbox окружења често захтевају важећи CNPJ формат. Математика мора бити тачна чак и када не користите продукционе базе података.
Обрада и валидација података
Чишћење увезених података: Добили сте CSV са 10.000 записа бразилских компанија. Пре обраде, треба да идентификујете који CNPJ-ови су неисправни. Пропуштање кроз валидатор означава уносе са штампарским грешкама, скраћивањем или неисправним контролним цифрама - штедећи сате downstream отклањања грешака.
Валидација форме на страни клијента: Хватање неважећих CNPJ-ова пре слања форме побољшава корисничко искуство. Нико не жели да попуни образац са 20 поља само да би добио грешку приликом слања зато што је заменио две цифре у свом CNPJ-у.
Анонимизација података за анализу: Приликом припреме продукционих података за дељење са тимовима за аналитику или спољним партнерима, треба да замените стварне CNPJ-ове важећим али лажним. Ово одржава референцијални интегритет вашег скупа података уз заштиту стварних пословних идентитета.
Међународне пословне операције
Разумевање бразилских захтева: Ако сеширите на бразилско тржиште, сусрешћете се са CNPJ захтевима у уговорима, фактурама и документацији за испоруку. Поседовање алата за експериментисање са форматом помаже вам да разумете шта ваши системи треба да обраде.
Спецификације треће стране интеграције: Приликом прегледања API документације бразилских SaaS пружалаца услуга, често ћете видети CNPJ поља у примерима payload-а. Могућност генерисања важећих тест вредности помаже вам да брже прототипирате интеграције.
Алтернативни приступи валидацији CNPJ
Програмске библиотеке
Ако вам је потребна валидација CNPJ у логици апликације, ове библиотеке имплементирају алгоритам провере цифара:
- JavaScript/Node.js:
cpf-cnpj-validator(130к+ недељних преузимања),validator.js(подржава бразилске документе) - Python:
validate-docbr(валидира CPF, CNPJ и друге бразилске документе),python-cnpj - PHP:
respect/validation(укључује CNPJ правила),brazilianutils - Java:
caelum-stella(свеобухватна валидација бразилских докумената) - Ruby:
cpf_cnpjgem
Ове библиотеке типично обрађују форматирање, парсирање и валидацију за више типова бразилских докумената (CPF, CNPJ, итд.).
Службене API-је за верификацију
За производне системе који треба да провере стварну регистрацију предузећа:
- Јавна служба Receita Federal: Consulta CNPJ API омогућава верификацију према званичној бази података (захтева одговарајућу ауторизацију и ограничавање стопе)
- Пружаоци података треће стране: Услуге попут Serasa Experian и Boa Vista SCPC нуде комерцијалне API-је које враћају детаље о компанији, статус регистрације и кредитне информације
Напомена: Ове услуге проверавају стварну регистрацију, а не само математичку исправност. Требаће вам одговарајућа ауторизација и треба очекивати трошкове API-ја за употребу у производњи.
Када користити сваки приступ
Користите овај веб алат када: вам треба брза валидација без инсталирања зависности, генерисање тестних података за демонстрације или учење како функционише CNPJ валидација.
Користите библиотеку када: градите апликацију којој је потребна валидација на страни клијента или сервера као део обраде формулара.
Користите службени API када: вам треба да проверите да ли CNPJ одговара стварном, активном пословном субјекту са тренутним статусом регистрације.
Технички детаљи имплементације
Овај алат се у потпуности извршава у вашем прегледачу користећи JavaScript — без захтева према серверу, без изношења података ван вашег уређаја. Ево како algoritmi раде испод поклопца, са кодом који можете прилагодити за сопствене пројекте:
Алгоритам генерисања CNPJ-а
1function generateCNPJ() {
2 // Генериши првих 12 цифара насумично
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Израчунај прву контролну цифру
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Израчунај другу контролну цифру
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Форматирај 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Алгоритам валидације CNPJ-а
1function validateCNPJ(cnpj) {
2 // Уклони не-нумеричке карактере
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Провери да ли има исправну дужину
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Провери за познате неважеће обрасце (све исте цифре)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Конвертуј у низ цифара
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Провери прву верификациону цифру
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Провери другу верификациону цифру
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24Функција форматирања CNPJ-а
1function formatCNPJ(cnpj) {
2 // Уклони не-нумеричке карактере
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Форматирај на основу дужине
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Ове основне функције се могу имплементирати и у другим програмским језицима следећи исту логику. Ево примера у Python-у и Java-и:
Python имплементација
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 # Генериши првих 12 цифара насумично
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Израчунај прву контролну цифру
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Израчунај другу контролну цифру
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Форматирај 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 # Уклони не-нумеричке карактере
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Провери дужину
34 if len(cnpj) != 14:
35 return False
36
37 # Провери да ли су све цифре исте
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Конвертуј у листу целих бројева
42 digits = [int(d) for d in cnpj]
43
44 # Валидирај прву контролну цифру
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Валидирај другу контролну цифру
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Java имплементација
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 // Генериши првих 12 цифара насумично
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Израчунај прву контролну цифру
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Израчунај другу контролну цифру
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Форматирај 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 // Уклони не-нумеричке карактере
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Провери дужину
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Провери да ли су све цифре исте
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 // Конвертуј у низ целих бројева
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 // Валидирај прву контролну цифру
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Валидирај другу контролну цифру
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Важна ограничења и разматрања
Шта овај алат може и не може да уради
Шта валидира: Математичку исправност — да ли контролне цифре одговарају израчунавању algoritma.
Шта не валидира: Да ли је CNPJ регистрован код Receita Federal, да ли припада активној компанији или да ли је повезан са пословним именом за које очекујете.
Размислите о томе као о провери правописа насупрот провери чињеница. Овај алат вам говори да ли је CNPJ "написан" исправно према математичким правилима, али не може да вам каже да ли број одговара стварном, активном пословном субјекту.
Правна и етичка употреба
Генерисани CNPJs су само за тестирање и развој. Они су математички исправни, али нису регистровани код бразилских власти, што значи:
- ✅ Безбедно за употребу: Попуњавање тест база података, јединично тестирање логике валидације, QA окружења, примери кода у документацији
- ❌ Никада не користити за: Пореске пријаве, регистрацију предузећа, потписивање уговора, обраду стварних трансакција или лажно представљање пословног идентитета
Коришћење лажног CNPJ-а за службене сврхе није само неетично — већ је и незаконито према бразилском закону и може резултирати оптужбама за превару.
Техничка ограничења која треба знати
Случајно генерисање има импликације: Алат генерише првих 12 цифара случајно. Стварни CNPJs које издаје Receita Federal прате унутрашње обрасце повезане са датумом регистрације, регионалном канцеларијом и типом предузећа. Генерисани бројеви неће одговарати овим обрасцима, што софистициране системе валидације може да означи.
Без семантичке валидације: Валидан CNPJ формат не значи валидан пословни контекст. На пример, владине институције имају специфичне CNPJ опсеге — овај генератор може случајно да створи један, али он не би био значајан.
Руковање форматом: Валидатор прихвата различите улазне формате (12345678000195, 12.345.678/0001-95), али неки legacy системи очекују тачно форматирање. Увек тестирајте са вашим специфичним захтевима интеграције.
Приватност и безбедност
Сва обрада се одвија на страни клијента у вашем прегледачу. Ниједан CNPJ који генеришете или валидирате се не шаље на сервере, не бележи се нити складишти. Алат не захтева, не обрађује нити процесира било какве личне информације.
Често постављана питања о валидацији CNPJ-а
Која је разлика између валидације и верификације CNPJ-а?
Валидација проверава да ли је број математички исправан — правилан формат, исправне контролне цифре, без неважећих образаца. Овај алат врши валидацију.
Верификација проверава да ли је CNPJ регистрован код стварне компаније у бази Receita Federal-а. Верификација захтева упит у владину базу података и није нешто што овај алат ради.
Можете имати потпуно валидан CNPJ који није верификован (попут тест бројева које овај алат генерише), или неважећи CNPJ који припада стварној компанији (зато што је неко направио грешку приликом уноса).
Да ли могу користити генерисане CNPJ-ове за тестирање у продукцији?
Зависи шта подразумевате под „тестирањем у продукцији". Добри су за staging окружења, оптерећујућа тестирања и QA пре покретања. Али ако „тестирање у продукцији" значи тестирање са стварним трансакцијама, владиним API-јима или финансијским системима — онда не, потребни су вам стварно регистровани CNPJ-ови.
Безбеднији приступ: користите генерисане CNPJ-ове у изолованим тест окружењима, а затим пређите на мали скуп стварних тест компанијских CNPJ-ова (оних које контролишете) приликом тестирања интеграција у продукцији.
Зашто валидатор одбацује 11.111.111/1111-11?
Иако CNPJ са свим истим цифрама може математички произвести важеће контролне цифре, Receita Federal изричито искључује ове обрасце. То је пословно правило, а не математичко. Исто важи и за секвенцијалне обрасце у неким системима валидације.
Ово је слично томе како многи системи одбацују лозинке попут „password123" чак и ако испуњавају захтеве дужине — технички су важеће, али практично неприхватљиве.
Како да обрадим валидацију CNPJ-а у различитим локалима?
Бразилске компаније које послују internationally понекад избацују форматирајуће знакове приликом уноса CNPJ-ова у стране системе. Ваша логика валидације треба да уклони не-нумеричке знакове пре провере:
1const cleanCNPJ = input.replace(/\D/g, ''); // Уклони све осим цифара
2Прихватите 12.345.678/0001-95, 12345678000195 и 12 345 678 0001 95 као еквивалентне уносе.
А шта је са валидацијом CNPJ-а у поређењу са CPF-ом?
CPF (Cadastro de Pessoas Físicas) је бразилски порески идентификациони број за појединце, док је CNPJ за предузећа. Користе различите алгоритме за контролне цифре и различите дужине (CPF има 11 цифара, CNPJ 14). Ако градите бразилску апликацију која обрађује обоје, требаћете одвојене функције валидације — иако многе библиотеке подржавају оба формата.
Чест образац: дозволите корисницима да унесу CPF или CNPJ у исто поље, а затим откријте који тип на основу дужине након уклањања форматирања.
Да ли ово функционише за стране компаније које послују у Бразилу?
Стране компаније које послују у Бразилу такође морају добити CNPJ од Receita Federal-а. Њихови CNPJ-ови прате исти формат и правила валидације као домаће компаније. Не постоји посебан „формат за стране компаније".
Међутим, стране компаније могу имати додатне захтеве за документацијом и различите процесе регистрације — консултујте се са бразилским пословним адвокатом за детаље.
Могу ли да упитам владину базу података да верификујем CNPJ регистрацију?
Да, Receita Federal пружа јавни приступ за верификацију основних CNPJ информација преко њихове Consulta Pública CNPJ услуге. Можете ручно тражити CNPJ-ове или, уз одговарајућу дозволу, користити њихове API-је за програмски приступ.
Напомена да интензивно коришћење захтева регистрацију и постоје ограничења стопе да би се спречила злоупотреба.
Колико често се CNPJ-ови мењају?
CNPJ-ови су трајни идентификатори који се не мењају када компанија промени име, адресу или власничку структуру. Међутим, ако компанија затвори па касније поново региструје, може добити нови CNPJ. Бројеви филијала (део /XXXX) могу се додавати како компаније отварају нове локације, али основни осмоцифрени број остаје константан.
Референце и додатни извори
Званични владини извори
- Receita Federal do Brasil - Службени портал - Службени веб сајт Бразилске савезне пореске службе са услугама регистрације и провере CNPJ
- Consulta Pública CNPJ - Јавна провера CNPJ - Службена владина услуга за проверу статуса CNPJ регистрације
- Нормативно упутство RFB бр. 1863/2018 - Правни прописи који регулишу CNPJ регистрацију и употребу у Бразилу
Технички стандарди и документација
- Алгоритми модуларне аритметике - Израчунавање контролне цифре користи модуло 11 аритметику, стандардни приступ за валидационе цифре
- ISO/IEC 7064 - Међународни стандард за системе контролних цифара који је утицао на дизајн валидације бразилских докумената
- Бразилски грађански законик (Закон бр. 10.406/2002) - Правни оквир који дефинише класификације пословних субјеката који захтевају CNPJ регистрацију
Извори за програмере
- NPM регистар пакета - npmjs.com - Складиште JavaScript библиотека укључујући валидаторе бразилских докумената
- PyPI (Python Package Index) - pypi.org - Python библиотеке за валидацију CNPJ и обраду бразилских докумената
- GitHub - Отворени извори имплементација CNPJ валидације у више програмских језика
Почните да генеришете и валидирате CNPJ бројеве
Без обзира да ли градите бразилску е-трговинску платформу, тестирате интеграције плаћања са Mercado Pago-ом или само желите да разумете како функционише валидација CNPJ-а, овај алат вам пружа непосредан приступ могућностима генерисања и валидације.
Без инсталације, без API кључева, без компликованог подешавања. Само отворите прегледач и почните да радите са важећим идентификаторима бразилских предузећа.