Generator in validator CNPJ - Orodje za brazilsko poslovno identifikacijo
Ustvarjanje veljavnih CNPJ številk za testiranje ali takojšnjo validacijo brazilskih poslovnih ID-jev. Brezplačno orodje s preverjanjem kontrolnih številk za razvijalce, ki delajo s Cadastro Nacional da Pessoa Jurídica.
Generator in validator brazilskega CNPJ
Generator CNPJ
Ustvarite veljaven brazilski CNPJ številko za testne namene.
Validator CNPJ
Preverite, ali je brazilska CNPJ številka veljavna.
Dokumentacija
Razumevanje brazilskih CNPJ številk
CNPJ (Cadastro Nacional da Pessoa Jurídica) je brazilska različica identifikacijske davčne številke za podjetja - 14-mestna številka, ki identificira vsak pravni poslovni subjekt v državi. Če gradite programsko opremo, ki obdeluje brazilske poslovne podatke, boste hitro naleteli na te številke v registracijskih obrazcih, računih in API integracijah.
Tukaj je razlog, zakaj je to orodje praktično: generira matematično veljavne CNPJ številke za testiranje brez uporabe resničnih identifikatorjev podjetij. Ko postavljate testno bazo podatkov s 1.000 zapisi ali odpravljate napake v postopku validacije ob 2. uri zjutraj, potrebujete CNPJ številke, ki prestanejo algoritemske preverjke, a se ne ujemajo z dejanskimi podjetji. Prav to to orodje generira.
Ustvarjene številke sledijo uradnemu algoritmu Receita Federal (brazilske zvezne davčne službe). Imajo pravilne kontrolne številke in ustrezno oblikovanje - preprosto niso registrirane v vladni bazi podatkov. Razmislite jih kot sintaktično pravilne testne podatke, ki ne bodo povzročili težav z usklajevanjem v razvojnem okolju.
Kaj je CNPJ in zakaj je pomemben
CNPJ služi kot identifikator podjetij v Braziliji - podobno kot EIN v Združenih državah ali registracijska številka podjetja v Združenem kraljestvu. Vsak poslovni subjekt, ki deluje zakonito v Braziliji, mora imeti enega, izdan s strani Receita Federal (Zvezni davčni urad).
Srečali se boste s CNPJ-ji pri:
- Procesiranju plačil: Brazilski plačilni prehodi zahtevajo validacijo CNPJ za trgovske račune
- Davčni skladnosti: Vsak račun, izdan v Braziliji, mora vsebovati veljaven CNPJ
- Registraciji podjetja: Vladne agencije uporabljajo CNPJ-je za sledenje pravnim subjektom v sistemih
- Bančnih operacijah: Odpiranje poslovnih računov ali procesiranje mednarodnih transferjev
- Uvozu/izvozu: Carinski dokumenti zahtevajo preverjanje CNPJ
- Vladnih pogodbah: Sistemi javnih razpisov preverjajo CNPJ-je pred sprejemom ponudb
Na podlagi mojih izkušenj z brazilskimi e-commerce platformami je ena najpogostejših integracijskih točk tok blagajne, kjer uporabniki vnašajo svoj CNPJ za poslovne nakupe. Vaša logika validacije mora ujeti napake v oblikovanju še preden jih zazna procesni plačilni sistem - sicer boste videli neuspele transakcije, ki bi jih lahko preprečili.
Struktura in format CNPJ
CNPJ sestoji iz 14 številk, oblikovan kot: XX.XXX.XXX/YYYY-ZZ
Razčlenitev strukture:
- Prvih 8 številk (XX.XXX.XXX): Osnovna registracijska številka, edinstveno dodeljena podjetju
- Naslednje 4 številke (/YYYY): Identifikator podružnice ali poslovne enote—
/0001označuje sedež, medtem ko/0002,/0003predstavljata lokacije podružnic - Zadnji 2 številki (-ZZ): Preveritveni številki, izračunani s pomočjo ponderiranega algoritma
Primer: 12.345.678/0001-95
Zanimivost glede identifikatorja podružnice: ko podjetje odpre več lokacij, vsaka dobi enake prve 8 številk, vendar drugačno številko podružnice. Če ima na primer veriga trgovin 50 poslovalnic, bodo imele CNPJ-je, ki se končujejo z /0001 do /0050, vse z enako osnovno številko. To olajša prepoznavanje, da več CNPJ-jev pripada isti matični organizaciji.
Preveritveni številki nista naključni—izračunani sta z modulnim algoritmom 11 z določenimi zaporedji uteži. Ta izbira, pogosta v brazilskih administrativnih dokumentih, matematično otežuje ponarejanje veljavnih številk ali naključno ustvarjanje veljavnih številk zaradi tipkarskih napak.
Kako deluje preverjanje CNPJ
Algoritem preverjanja uporablja izračun z uteženim modulom-11. Tukaj je logika zadaj:
Izračun prve kontrolne številke
- Vzemite prvih 12 številk in pomnožite vsako z utežmi:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Seštejte vse produkte
- Delite vsoto z 11 in dobite ostanek
- Če je ostanek < 2, je kontrolna številka 0; sicer je
11 - ostanek
Izračun druge kontrolne številke
- Vzemite prvih 13 številk (vključno s prvo kontrolno številko) in pomnožite z utežmi:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Seštejte vse produkte
- Delite z 11 in dobite ostanek
- Če je ostanek < 2, je kontrolna številka 0; sicer je
11 - ostanek
Zakaj ta pristop deluje: Sistem utežene multiplikacije ustvarja edinstveno razmerje med vsemi 12 osnovnimi številkami in rezultirajočimi kontrolnimi številkami. Sprememba celo ene številke v osnovnem številu povzroči različne kontrolne številke, kar zazna pogoste napake pri prepisovanju, kot sta zamenjava dveh številk (npr. vpis 12.345 namesto 12.354).
Praktična opomba: CNPJ-ji z vsemi enakimi številkami (kot 11.111.111/1111-11) so samodejno neveljavni, tudi če matematično prestanejo preverjanje. Receita Federal izrecno izključuje te vzorce, da prepreči trivialne primere.
Kako uporabljati Generator in Validator CNPJ
Generiranje testnih CNPJ
Potrebujete veljaven CNPJ za svojo testno bazo podatkov? Tako:
- Kliknite "Generiraj CNPJ"
- Orodje trenutno ustvari matematično veljaven number
- Kliknite "Kopiraj" za prenos v odložišče
- Prilepite ga v testne obrazce, semena baze podatkov ali enote testov
Vsak generiran CNPJ prestane vse algoritemske preverjanje veljavnosti, vendar ni registriran pri Receita Federal. To pomeni, da jih lahko prosto uporabljate v razvoju brez skrbi, da bi nenamerno uporabili identifikator resničnega podjetja.
Preverjanje CNPJ številk
Imate CNPJ, ki ga želite preveriti? Validator to opravi:
- Prilepite ali vtipkajte CNPJ v vnosno polje
- Ne skrbite za oblikovanje - deluje z
12345678000195ali12.345.678/0001-95 - Kliknite "Preveri"
- Dobite takojšnjo povratno informacijo o pravilnosti kontrolnih številk
Kaj validator preverja: pravilno dolžino (14 številk), pravilne izračune kontrolnih številk in izključitev neveljavnih vzorcev, kot so številke z enakimi števkami. Česa ne preverja: ali je CNPJ registriran v vladni bazi podatkov - to zahteva neposredno poizvedovanje pri Receita Federal.
Realne uporabe generatorja in validatorja CNPJ
Razvoj programske opreme in testiranje
Polnjenje podatkovne baze: Pri postavljanju testnega okolja z realističnimi testnimi podatki potrebujete deset ali sto veljavnih CNPJ-jev. Ročno ustvarjanje teh je zamudno, uporaba resničnih identifikatorjev podjetij pa povzroča pomisleke glede zasebnosti. Generirani CNPJ-ji rešijo oba problema.
Testiranje mejnih primerov enot: Vaša validacijska funkcija mora zavrniti 00.000.000/0000-00, sprejeti pa 11.222.333/0001-81. Generator vam omogoča hitro ustvarjanje tako veljavnih kot namenoma neveljavnih testnih primerov za preverjanje pravilnosti logike pri mejnih pogojih.
Regresijsko testiranje kakovosti: Pri testiranju registracijskih obrazcev ali B2B postopkov nakupa ekipe za zagotavljanje kakovosti potrebujejo sveže testne podatke za vsako izvedbo. Pogosta težava je, da se testna okolja onesnažijo z istimi 5-6 CNPJ-ji, ki se ponavljajo, kar zakriva napake, ki se pojavijo le pri določenih vzorcih številk.
Testiranje integracije API: Če integrirate brazilske ponudnike plačil, kot sta PagSeguro ali Mercado Pago, njihova testna okolja pogosto zahtevajo veljavno oblikovanje CNPJ. Matematika mora biti pravilna, čeprav ne dostopate do produkcijskih podatkovnih zbirk.
Obdelava in validacija podatkov
Čiščenje uvoženih podatkov: Prejeli ste CSV z 10.000 zapisi brazilskih podjetij. Pred obdelavo morate identificirati, kateri CNPJ-ji so nepravilni. Njihovo preverjanje z validatorjem označi vnose s tipkarskimi napakami, okrnjenostjo ali nepravilnimi kontrolnimi številkami - prihrani ure kasnejšega razhroščevanja.
Validacija obrazca na strani odjemalca: Preprečevanje neveljavnih CNPJ-jev pred pošiljanjem obrazca izboljšuje uporabniško izkušnjo. Nihče ne želi izpolnjevati 20-polnega registracijskega obrazca le zato, da bi ob pošiljanju dobil napako zaradi zamenjanih dveh številk v CNPJ-ju.
Anonimizacija podatkov za analizo: Pri pripravi produkcijskih podatkov za deljenje z analitičnimi ekipami ali zunanjimi partnerji morate nadomestiti prave CNPJ-je z veljavnimi, a lažnimi. To ohranja referenčno celovitost nabora podatkov in hkrati ščiti prave poslovne identitete.
Mednarodne poslovne operacije
Razumevanje brazilskih zahtev: Če se širite na brazilski trg, se boste srečali z zahtevami CNPJ v pogodbah, računih in dokumentaciji za pošiljanje. Orodje za eksperimentiranje z obliko vam pomaga razumeti, kaj morajo vaši sistemi obvladovati.
Specifikacije integracije tretjih oseb: Pri pregledovanju dokumentacije API brazilskih ponudnikov SaaS pogosto najdete polja CNPJ v primerih koristnih bremen. Zmožnost generiranja veljavnih testnih vrednosti vam pomaga hitreje prototipirati integracije.
Alternativni pristopi za preverjanje CNPJ
Programske knjižnice
Če potrebujete preverjanje CNPJ v logiki vaše aplikacije, te knjižnice implementirajo algoritem za preverjanje kontrolne številke:
- JavaScript/Node.js:
cpf-cnpj-validator(130k+ tedenskih prenosov),validator.js(podpira brazilske dokumente) - Python:
validate-docbr(preverja CPF, CNPJ in druge brazilske dokumente),python-cnpj - PHP:
respect/validation(vključuje pravila za CNPJ),brazilianutils - Java:
caelum-stella(celovito preverjanje brazilskih dokumentov) - Ruby:
cpf_cnpjgem
Te knjižnice običajno upravljajo oblikovanje, razčlenjevanje in preverjanje več vrst brazilskih dokumentov (CPF, CNPJ itd.).
Uradne verifikacijske API-ji
Za produkcijske sisteme, ki potrebujejo preverjanje dejanske poslovne registracije:
- Javna storitev Receita Federal: Consulta CNPJ API omogoča preverjanje proti uradni podatkovni bazi (zahteva ustrezno pooblastilo in omejitev hitrosti)
- Ponudniki podatkov tretjih oseb: Storitve kot Serasa Experian in Boa Vista SCPC ponujajo komercialne API-je, ki vračajo podatke o podjetju, status registracije in kreditne informacije
Opomba: Te storitve preverjajo dejansko registracijo, ne le matematično veljavnost. Potrebovali boste ustrezno pooblastilo in pričakovati stroške API-ja za produkcijsko uporabo.
Kdaj uporabiti posamezen pristop
Uporabite to orodje v brskalniku, ko: potrebujete hitro preverjanje brez nameščanja odvisnosti, generiranje testnih podatkov za predstavitve ali učenje delovanja preverjanja CNPJ.
Uporabite knjižnico, ko: gradite aplikacijo, ki potrebuje preverjanje na strani odjemalca ali strežnika kot del obdelave obrazca.
Uporabite uradni API, ko: potrebujete preveriti, ali CNPJ ustreza resničnemu, aktivnemu poslovnemu subjektu s trenutnim statusom registracije.
Tehnične podrobnosti implementacije
To orodje deluje v celoti v vašem brskalniku z uporabo JavaScript-a - brez strežniških zahtev, brez pošiljanja podatkov iz vaše naprave. Tako delujejo algoritmi pod pokrovom, s kodo, ki jo lahko prilagodite za lastne projekte:
Algoritem generiranja CNPJ
1function generateCNPJ() {
2 // Naključno generiraj prvih 12 številk
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Izračunaj prvo kontrolno številko
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Izračunaj drugo kontrolno številko
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Oblikuj 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}
29Algoritem validacije CNPJ
1function validateCNPJ(cnpj) {
2 // Odstrani nenumerične znake
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Preveri dolžino
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Preveri znane neveljavne vzorce (vse enake številke)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Pretvori v polje številk
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Preveri prvo kontrolno številko
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Preveri drugo kontrolno številko
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24Funkcija oblikovanja CNPJ
1function formatCNPJ(cnpj) {
2 // Odstrani nenumerične znake
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Oblikuj glede na dolžino
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}
18Te osnovne funkcije lahko implementirate v drugih programskih jezikih po enaki logiki. Tu so primeri v Pythonu in Javi:
Python implementacija
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 # Naključno generiraj prvih 12 številk
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Izračunaj prvo kontrolno številko
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Izračunaj drugo kontrolno številko
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Oblikuj 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 # Odstrani nenumerične znake
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Preveri dolžino
34 if len(cnpj) != 14:
35 return False
36
37 # Preveri, če so vse številke enake
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Pretvori v seznam celih števil
42 digits = [int(d) for d in cnpj]
43
44 # Preveri prvo kontrolno številko
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Preveri drugo kontrolno številko
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Java implementacija
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 // Naključno generiraj prvih 12 številk
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Izračunaj prvo kontrolno številko
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Izračunaj drugo kontrolno številko
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Oblikuj 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 // Odstrani nenumerične znake
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Preveri dolžino
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Preveri, če so vse številke enake
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 // Pretvori v polje celih števil
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 // Preveri prvo kontrolno številko
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Preveri drugo kontrolno številko
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Pomembne omejitve in premisleki
Kaj lahko in česa ne more to orodje
Kaj preverja: Matematično pravilnost - ali se kontrolne številke ujemajo z algoritmom izračuna.
Česa ne preverja: Ali je CNPJ registriran pri Receita Federal, ali pripada aktivnemu podjetju ali ali je povezan z imenom podjetja, ki ga pričakujete.
Razmislite o tem kot o preverjanju črkovanja v primerjavi s preverjanjem dejstev. To orodje vam pove, ali je CNPJ "napisan" pravilno glede na matematična pravila, vendar ne more povedati, ali številka ustreza resničnemu, aktivnemu poslovnemu subjektu.
Zakonita in etična uporaba
Generirani CNPJ-ji so namenjeni samo testiranju in razvoju. So matematično veljavni, vendar niso registrirani pri brazilskih oblasteh, kar pomeni:
- ✅ Varno za uporabo: Polnjenje testnih baz podatkov, enotedensko testiranje logike validacije, okolja QA, primeri kode v dokumentaciji
- ❌ Nikoli ne uporabljajte za: Davčne napovedi, registracijo podjetja, podpisovanje pogodb, izvajanje pravih transakcij ali lažno predstavljanje poslovne identitete
Uporaba lažnega CNPJ-ja za uradne namene ni le neetična - je nezakonita po brazilski zakonodaji in lahko privede do obtožb za goljufijo.
Tehnične omejitve, ki jih je treba poznati
Naključno generiranje ima posledice: Orodje naključno generira prvih 12 številk. Pravi CNPJ-ji, ki jih izdaja Receita Federal, sledijo notranjim vzorcem, povezanim z datumom registracije, regionalno pisarno in vrsto podjetja. Generirane številke se ne bodo ujemale s temi vzorci, kar bi lahko sofisticirani sistemi validacije označili.
Brez semantične validacije: Veljaven format CNPJ ne pomeni veljavnega poslovnega konteksta. Na primer, vladne institucije imajo specifična območja CNPJ-jev - ta generator bi lahko naključno ustvaril enega, vendar ne bi bil pomenljiv.
Upravljanje formata: Validator sprejema različne oblike vnosa (12345678000195, 12.345.678/0001-95), vendar nekateri starejši sistemi pričakujejo natančno oblikovanje. Vedno testirajte glede na vaše specifične zahteve integracije.
Zasebnost in varnost
Vse procesiranje poteka na strani odjemalca v vašem brskalniku. Nobeni CNPJ-ji, ki jih generirate ali preverjate, niso poslani na strežnike, evidentirani ali shranjeni. Orodje ne zahteva, ne obdeluje in ne procesira nobenih osebnih informacij.
Pogosta vprašanja o validaciji CNPJ
Kakšna je razlika med validacijo in preverjanjem CNPJ?
Validacija preveri, ali je številka matematično pravilna - pravilna oblika, pravilne kontrolne številke, brez neveljavnih vzorcev. To orodje izvaja validacijo.
Preverjanje preveri, ali je CNPJ registriran pri dejanski družbi v bazi Receita Federal. Preverjanje zahteva poizvedovanje v vladni bazi in ni nekaj, kar bi to orodje počelo.
Lahko imate popolnoma veljaven CNPJ, ki ni preverjen (kot so testne številke, ki jih to orodje generira), ali neveljaven CNPJ, ki pripada pravi družbi (ker je nekdo naredil tipkovno napako pri vnosu).
Ali lahko uporabljam generirane CNPJ za produkcijsko testiranje?
Odvisno je od tega, kaj mislite s "produkcijskim testiranjem". Primerni so za okolja staging, obremenilno testiranje in QA pred lansiranjem. Toda če "produkcijsko testiranje" pomeni testiranje z resničnimi transakcijami, vladnimi API-ji ali finančnimi sistemi - potem ne, potrebujete dejanske registrirane CNPJ.
Varnejši pristop: uporabite generirane CNPJ v izoliranih testnih okoljih, nato pa preklopite na majhen nabor resničnih testnih CNPJ podjetij (ki jih obvladujete) pri testiranju produkcijskih integracij.
Zakaj validator zavrne 11.111.111/1111-11?
Čeprav lahko CNPJ z vsemi enakimi številkami matematično ustvari veljavne kontrolne številke, Receita Federal izrecno izključuje te vzorce. To je poslovno pravilo, ne matematično. Enako velja za zaporedne vzorce v nekaterih sistemih validacije.
To je podobno, kot da mnogi sistemi zavrnejo gesla kot "password123", čeprav izpolnjujejo zahteve glede dolžine - tehnično so veljavna, a praktično nesprejemljiva.
Kako upravljam z validacijo CNPJ v različnih lokalnih okoljih?
Brazilska podjetja, ki poslujejo mednarodno, včasih opustijo formatne znake pri vnosu CNPJ v tuje sisteme. Vaša logika validacije bi morala odstraniti nekatere numerične znake pred preverjanjem:
1const cleanCNPJ = input.replace(/\D/g, ''); // Odstrani vse razen številk
2Sprejmite 12.345.678/0001-95, 12345678000195 in 12 345 678 0001 95 kot enakovredne vnose.
Kaj pa validacija CNPJ v primerjavi s CPF?
CPF (Cadastro de Pessoas Físicas) je brazilska individualna davčna identifikacija, medtem ko je CNPJ namenjen podjetjem. Uporabljata različne algoritme kontrolnih številk in dolžine (CPF ima 11 številk, CNPJ pa 14). Če gradite brazilsko aplikacijo, ki obravnava oba, boste potrebovali ločene funkcije validacije - čeprav mnoge knjižnice podpirajo oba formata.
Pogost vzorec: uporabnikom dovolite vnos CPF ali CNPJ v isto polje, nato zaznate vrsto glede na dolžino po odstranitvi formatnih znakov.
Ali to deluje za tuja podjetja, ki poslujejo v Braziliji?
Tuja podjetja, ki poslujejo v Braziliji, morajo tudi pridobiti CNPJ od Receita Federal. Njihovi CNPJ sledijo enaki obliki in pravilom validacije kot domača podjetja. Ne obstaja poseben "format tujega podjetja" CNPJ.
Vendar pa imajo tuja podjetja lahko dodatne zahteve glede dokumentacije in različne postopke registracije - za specifike se posvetujte z brazilskim poslovnim odvetnikom.
Ali lahko poizvedujem v vladni bazi za preverjanje registracije CNPJ?
Da, Receita Federal zagotavlja javni dostop za preverjanje osnovnih informacij CNPJ prek njihove storitve Consulta Pública CNPJ. Lahko ročno poiščete CNPJ ali z ustreznim pooblastilom uporabite njihove API-je za programski dostop.
Upoštevajte, da zahteva intenzivna uporaba registracijo in obstajajo omejitve hitrosti, da preprečijo zlorabo.
Kako pogosto se CNPJ spreminjajo?
CNPJ so trajni identifikatorji, ki se ne spremenijo, ko podjetje spremeni ime, naslov ali lastniško strukturo. Vendar pa, če podjetje zapre in kasneje znova registrira, lahko prejme nov CNPJ. Številke podružnic (del /XXXX) se lahko dodajo, ko podjetja odpirajo nove lokacije, vendar osnovna 8-mestna številka ostane konstantna.
Viri in dodatni viri
Uradni vladni viri
- Receita Federal do Brasil - Uradno spletišče - Uradno spletišče brazilske zvezne davčne službe z storitvami registracije in preverjanja CNPJ
- Consulta Pública CNPJ - Javni CNPJ iskalnik - Uradna vladna storitev za preverjanje statusa registracije CNPJ
- Normativna navodila RFB št. 1863/2018 - Pravni predpisi, ki urejajo registracijo in uporabo CNPJ v Braziliji
Tehnični standardi in dokumentacija
- Algoritmi modularne aritmetike - Izračun kontrolne številke uporablja modulo 11 aritmetiko, standardni pristop za validacijske številke
- ISO/IEC 7064 - Mednarodni standard za sisteme kontrolnih številk, ki je vplival na zasnovo brazilske dokumentne validacije
- Brazilski civilni zakonik (Zakon št. 10.406/2002) - Pravni okvir, ki določa klasifikacije poslovnih subjektov, ki zahtevajo registracijo CNPJ
Viri za razvijalce
- NPM register paketov - npmjs.com - Skladišče JavaScript knjižnic, vključno z validatorji brazilskih dokumentov
- PyPI (Python Package Index) - pypi.org - Python knjižnice za validacijo CNPJ in obdelavo brazilskih dokumentov
- GitHub - Odprtokodne implementacije validacije CNPJ v več programskih jezikih
Začnite z generiranjem in preverjanjem CNPJ
Ne glede na to, ali gradite brazilsko platformo e-commerce, testirate plačilne integracije z Mercado Pago ali samo želite razumeti, kako deluje preverjanje CNPJ, vam to orodje omogoča takojšen dostop do zmožnosti generiranja in preverjanja.
Brez namestitve, brez API ključev, brez zapletene nastavitve. Preprosto odprite brskalnik in začnite delati z veljavnimi brazilskimi poslovnimi identifikatorji.