Generator și Validator CNPJ - Instrument pentru Identificarea Afacerilor din Brazilia
Generați numere CNPJ valide pentru testare sau validați instant identificatorii de afaceri brazilieni. Instrument gratuit cu verificare de cifre de control pentru developeri care lucrează cu Cadastro Nacional da Pessoa Jurídica.
Generator și Validator CNPJ Brazilian
Generator CNPJ
Generează un număr CNPJ brazilian valid pentru testare.
Validator CNPJ
Verifică dacă un număr CNPJ brazilian este valid.
Documentație
Înțelegerea Numerelor CNPJ Braziliene
CNPJ (Cadastro Nacional da Pessoa Jurídica) este versiunea braziliană a unui identificator fiscal corporativ - un număr de 14 cifre care identifică fiecare entitate juridică de afaceri din țară. Dacă dezvoltați software care gestionează date de afaceri braziliene, veți întâlni rapid aceste numere în formulare de înregistrare, facturi și integrări API.
Iată ce face acest instrument practic: generează CNPJ-uri matematic valide pentru testare fără a utiliza identificatori reali de companie. Atunci când configurați o bază de date de test cu 1.000 de înregistrări sau depanați o rutină de validare la ora 2 dimineața, aveți nevoie de CNPJ-uri care trec verificările algoritmice, dar nu se potrivesc accidental cu întreprinderi reale. Exact asta generează.
Numerele create aici urmează algoritmul oficial de validare al Receita Federal (Serviciul Fiscal Federal Brazilian). Acestea au cifre de control corecte și formatare corespunzătoare - pur și simplu nu sunt înregistrate în baza de date guvernamentală. Gândiți-vă la ele ca la date de test sintactic corecte care nu vor crea probleme de conformitate în mediul dumneavoastră de dezvoltare.
Ce este un CNPJ și de ce este important
Un CNPJ servește drept identificator corporativ în Brazilia - similar cu un EIN în Statele Unite sau un Număr de Înregistrare a Companiei în Regatul Unit. Fiecare entitate de afaceri care operează legal în Brazilia trebuie să aibă unul, eliberat de Receita Federal (Serviciul Federal de Venituri).
Veți întâlni CNPJ-uri atunci când:
- Procesarea plăților: Platformele de plăți braziliene necesită validarea CNPJ pentru conturile de comercianți
- Conformitate fiscală: Fiecare factură emisă în Brazilia trebuie să includă un CNPJ valid
- Înregistrarea afacerii: Agențiile guvernamentale utilizează CNPJ-uri pentru a urmări entitățile juridice în diferite sisteme
- Operațiuni bancare: Deschiderea conturilor corporative sau procesarea transferurilor internaționale
- Import/export: Documentația vamală necesită verificarea CNPJ
- Contracte guvernamentale: Sistemele de licitații publice validează CNPJ-urile înainte de a accepta ofertele
Din experiența mea de lucru cu platformele de comerț electronic braziliene, unul dintre cele mai frecvente puncte de integrare este fluxul de checkout unde utilizatorii introduc CNPJ-ul pentru achiziții corporative. Logica dvs. de validare trebuie să prindă erorile de formatare înainte ca procesatorul de plăți să o facă - altfel veți vedea tranzacții eșuate care ar fi putut fi prevenite.
Structura și Formatul CNPJ
Un CNPJ constă din 14 cifre formatate astfel: XX.XXX.XXX/YYYY-ZZ
Defalcarea structurii:
- Primele 8 cifre (XX.XXX.XXX): Numărul de înregistrare de bază unic atribuit companiei
- Următoarele 4 cifre (/YYYY): Identificator de sucursală sau punct de lucru—
/0001indică sediul central, în timp ce/0002,/0003reprezintă locațiile sucursalelor - Ultimele 2 cifre (-ZZ): Cifre de verificare calculate printr-un algoritm ponderat
Exemplu: 12.345.678/0001-95
Ceea ce este interesant la identificatorul de sucursală: atunci când o companie deschide mai multe locații, fiecare primește aceleași prime 8 cifre, dar un număr de sucursală diferit. Astfel, dacă un lanț de retail are 50 de magazine, vor avea CNPJ-uri care se termină cu /0001 până la /0050, toate partajând același număr de bază. Acest lucru facilitează identificarea faptului că mai multe CNPJ-uri aparțin aceleiași organizații-mamă.
Cifrele de verificare nu sunt aleatoare—ele sunt calculate folosind un algoritm modulus-11 cu secvențe de greutate specifice. Această alegere de proiectare, obișnuită în documentele administrative braziliene, face matematic dificilă falsificarea numerelor valide sau crearea accidentală a unor numere valide prin greșeli de tastare.
Cum funcționează validarea CNPJ
Algoritmul de validare utilizează un calcul cu modul-11 ponderat. Iată logica din spatele acestuia:
Calcularea primei cifre de control
- Luați primele 12 cifre și înmulțiți fiecare cu ponderile:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Sumați toate produsele
- Împărțiți suma la 11 și obțineți restul
- Dacă restul < 2, cifra de control este 0; altfel este
11 - rest
Calcularea celei de-a doua cifre de control
- Luați primele 13 cifre (inclusiv prima cifră de control) și înmulțiți cu ponderile:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Sumați toate produsele
- Împărțiți la 11 și obțineți restul
- Dacă restul < 2, cifra de control este 0; altfel este
11 - rest
De ce această abordare funcționează: Sistemul de înmulțire ponderată creează o relație unică între toate cele 12 cifre de bază și cifrele de control rezultate. Schimbarea chiar și a unei singure cifre în numărul de bază produce cifre de control diferite, ceea ce prinde erorile comune de transcriere precum interschimbarea a două cifre (tastarea 12.345 în loc de 12.354).
O notă practică: CNPJ-urile cu toate cifrele identice (precum 11.111.111/1111-11) sunt automat invalide, chiar și atunci când trec verificarea matematică. Receita Federal exclude în mod explicit aceste tipare pentru a preveni cazurile triviale.
Cum să utilizezi Generatorul și Validatorul de CNPJ
Generarea de CNPJs de Test
Ai nevoie de un CNPJ valid pentru baza ta de date de test? Iată cum:
- Apasă "Generează CNPJ"
- Instrumentul creează un număr matematic valid instant
- Apasă "Copiază" pentru a-l prelua în clipboard
- Lipește-l în formularele de test, semințele bazei de date sau testele unitare
Fiecare CNPJ generat trece toate verificările de validare algoritmică, dar nu este înregistrat la Receita Federal. Acest lucru înseamnă că îl poți folosi liber în dezvoltare fără să te îngrijorezi că folosești accidental identificatorul unei companii reale.
Validarea Numerelor de CNPJ
Ai un CNPJ pe care trebuie să-l verifici? Validatorul se ocupă de asta:
- Lipește sau tastează CNPJ-ul în câmpul de introducere
- Nu te îngrijora de formatare—funcționează cu
12345678000195sau12.345.678/0001-95 - Apasă "Validează"
- Primește feedback instant dacă cifrele de control sunt corecte
Ce verifică validatorul: lungimea corectă (14 cifre), calculele corecte ale cifrelor de control și excluderea modelelor invalide precum cifre identice. Ce nu verifică: dacă CNPJ-ul este înregistrat în baza de date guvernamentală—pentru asta este necesară interogarea directă a Receita Federal.
Cazuri de utilizare reale pentru Generator și Validator CNPJ
Dezvoltare de software și testare
Popularea bazei de date: Atunci când configurezi un mediu de staging cu date de test realiste, ai nevoie de zeci sau sute de CNPJ-uri valide. Crearea manuală a acestora este obositoare, iar utilizarea identificatorilor reali de companii ridică probleme de confidențialitate. CNPJ-urile generate rezolvă ambele probleme.
Testarea cazurilor limită în unit testing: Funcția de validare ar trebui să respingă 00.000.000/0000-00, dar să accepte 11.222.333/0001-81. Utilizarea unui generator îți permite să creezi rapid cazuri de test atât valide, cât și intenționat invalide pentru a verifica dacă logica gestionează corect condițiile limită.
Testare de regresie QA: Atunci când testezi formulare de înregistrare sau fluxuri de checkout B2B, echipele QA au nevoie de date de test proaspete pentru fiecare rulare. O problemă obișnuită pe care am văzut-o: mediile de testare se poluează cu aceleași 5-6 CNPJ-uri folosite repetat, ceea ce maschează erorile care apar doar cu anumite tipare de cifre.
Testare de integrare API: Dacă integrezi procesatori de plăți brazilieni precum PagSeguro sau Mercado Pago, mediile lor sandbox necesită adesea formatare validă CNPJ. Matematica trebuie să fie corectă chiar și atunci când nu accesezi baze de date de producție.
Procesare și validare de date
Curățarea datelor importate: Ai primit un CSV cu 10.000 de înregistrări de companii braziliene. Înainte de procesare, trebuie să identifici care CNPJ-uri sunt defecte. Rularea lor printr-un validator marchează intrările cu greșeli de tastare, trunchere sau cifre de control incorecte - economisind ore de depanare.
Validare formular la nivel de client: Detectarea CNPJ-urilor invalide înainte de trimiterea formularului îmbunătățește experiența utilizatorului. Nimeni nu dorește să completeze un formular de 20 de câmpuri doar pentru a primi o eroare la trimitere din cauză că a transpus două cifre în CNPJ.
Anonimizarea datelor pentru analiză: Atunci când pregătești date de producție pentru a le partaja cu echipe de analiză sau parteneri externi, trebuie să înlocuiești CNPJ-urile reale cu unele valide, dar false. Acest lucru menține integritatea referențială a setului de date, protejând în același timp identitățile reale de afaceri.
Operațiuni comerciale internaționale
Înțelegerea cerințelor braziliene: Dacă te extinzi pe piața braziliană, vei întâlni cerințe CNPJ în contracte, facturi și documentație de expediere. Utilizarea unui instrument pentru a experimenta formatul te ajută să înțelegi ce trebuie să gestioneze sistemele tale.
Specificații de integrare terță parte: Atunci când treci în revistă documentația API de la furnizorii brazilieni de SaaS, vei vedea adesea câmpuri CNPJ în exemple de payload. Capacitatea de a genera valori de test valide te ajută să prototipezi integrări mai rapid.
Abordări Alternative de Validare a CNPJ
Biblioteci de Programare
Dacă aveți nevoie de validare CNPJ încorporată în logica aplicației, aceste biblioteci implementează algoritmul de verificare a cifrei de control:
- JavaScript/Node.js:
cpf-cnpj-validator(130k+ descărcări săptămânale),validator.js(suportă documente braziliene) - Python:
validate-docbr(validează CPF, CNPJ și alte documente braziliene),python-cnpj - PHP:
respect/validation(include reguli CNPJ),brazilianutils - Java:
caelum-stella(validare cuprinzătoare a documentelor braziliene) - Ruby: biblioteca
cpf_cnpj
Aceste biblioteci gestionează în mod tipic formatarea, analiza și validarea pentru mai multe tipuri de documente braziliene (CPF, CNPJ etc.).
API-uri Oficiale de Verificare
Pentru sistemele de producție care trebuie să verifice înregistrarea efectivă a afacerii:
- Serviciul Public Receita Federal: API-ul Consulta CNPJ permite verificarea în baza de date oficială (necesită autorizație corespunzătoare și limitare de rată)
- Furnizori de date terți: Servicii precum Serasa Experian și Boa Vista SCPC oferă API-uri comerciale care returnează detalii despre companie, starea înregistrării și informații de credit
Notă: Aceste servicii verifică înregistrarea efectivă, nu doar validitatea matematică. Veți avea nevoie de autorizație corespunzătoare și ar trebui să vă așteptați la costuri API pentru utilizarea în producție.
Când să Utilizați Fiecare Abordare
Utilizați acest instrument browser când: Aveți nevoie de validare rapidă fără a instala dependențe, generare de date de test pentru demonstrații sau pentru a învăța cum funcționează validarea CNPJ.
Utilizați o bibliotecă când: Construiți o aplicație care are nevoie de validare la client sau server ca parte a procesării formularului.
Utilizați un API oficial când: Aveți nevoie să verificați că un CNPJ corespunde unei entități comerciale reale, active, cu stare de înregistrare curentă.
Detalii Tehnice de Implementare
Această unealtă rulează integral în browser folosind JavaScript—fără cereri de server, fără date care să părăsească mașina dumneavoastră. Iată cum funcționează algoritmii sub capotă, cu cod pe care îl puteți adapta pentru propriile proiecte:
Algoritm de Generare CNPJ
1function generateCNPJ() {
2 // Generează primele 12 cifre aleator
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Calculează prima cifră de control
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Calculează a doua cifră de control
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Formatează CNPJ-ul
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}
29Algoritm de Validare CNPJ
1function validateCNPJ(cnpj) {
2 // Elimină caracterele non-numerice
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Verifică dacă are lungimea corectă
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Verifică tiparele invalide cunoscute (toate cifrele la fel)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Convertește în array de cifre
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Verifică prima cifră de control
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Verifică a doua cifră de control
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24Funcție de Formatare CNPJ
1function formatCNPJ(cnpj) {
2 // Elimină caracterele non-numerice
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formatează în funcție de lungime
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}
18Aceste funcții de bază pot fi implementate și în alte limbaje de programare urmând aceeași logică. Iată exemple în Python și Java:
Implementare 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 # Generează primele 12 cifre aleator
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Calculează prima cifră de control
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Calculează a doua cifră de control
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Formatează CNPJ-ul
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 # Elimină caracterele non-numerice
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Verifică lungimea
34 if len(cnpj) != 14:
35 return False
36
37 # Verifică dacă toate cifrele sunt la fel
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Convertește în lista de întregi
42 digits = [int(d) for d in cnpj]
43
44 # Validează prima cifră de control
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Validează a doua cifră de control
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Implementare Java
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 // Generează primele 12 cifre aleator
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Calculează prima cifră de control
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Calculează a doua cifră de control
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Formatează CNPJ-ul
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 // Elimină caracterele non-numerice
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Verifică lungimea
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Verifică dacă toate cifrele sunt la fel
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 // Convertește în array de întregi
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 // Validează prima cifră de control
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Validează a doua cifră de control
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Limitări și Considerații Importante
Ce Poate și Ce Nu Poate Face Acest Instrument
Ce validează: Corectitudinea matematică—dacă cifrele de control se potrivesc cu calculul algoritmului.
Ce nu validează: Dacă CNPJ-ul este înregistrat la Receita Federal, dacă aparține unei companii active sau dacă este asociat cu denumirea companiei pe care o așteptați.
Gândiți-vă la asta ca la o verificare ortografică versus una factuală. Acest instrument vă spune dacă un CNPJ este "scris" corect conform regulilor matematice, dar nu poate spune dacă numărul corespunde unei entități comerciale reale și active.
Utilizare Legală și Etică
CNPJ-urile generate sunt doar pentru testare și dezvoltare. Sunt matematic valide, dar neînregistrate la autoritățile braziliene, ceea ce înseamnă:
- ✅ Sigur de utilizat pentru: Popularea bazelor de date de test, testare unitară a logicii de validare, medii QA, exemple de cod în documentație
- ❌ Niciodată de utilizat pentru: Depunerea taxelor, înregistrarea companiei, semnarea contractelor, procesarea tranzacțiilor reale sau reprezentarea falsă a identității companiei
Utilizarea unui CNPJ fals în scopuri oficiale nu este doar lipsită de etică—este ilegală conform legilor braziliene și poate duce la acuzații de fraudă.
Limitări Tehnice de Cunoscut
Generarea aleatorie are implicații: Instrumentul generează primele 12 cifre aleatoriu. CNPJ-urile reale emise de Receita Federal urmează tipare interne legate de data înregistrării, biroul regional și tipul de afacere. Numerele generate nu vor corespunde acestor tipare, ceea ce sistemele de validare sofisticate le-ar putea semnala.
Fără validare semantică: Un format CNPJ valid nu înseamnă context de afaceri valid. De exemplu, entitățile guvernamentale au anumite game de CNPJ—acest generator ar putea crea întâmplător una, dar nu ar fi semnificativă.
Gestionarea formatului: Validatorul acceptă diverse formate de intrare (12345678000195, 12.345.678/0001-95), dar unele sisteme vechi se așteaptă la formatare exactă. Testați întotdeauna cu cerințele specifice de integrare.
Confidențialitate și Securitate
Întreaga procesare are loc pe partea de client în browser-ul dumneavoastră. Niciun CNPJ pe care îl generați sau validați nu este trimis pe servere, înregistrat sau stocat. Instrumentul nu solicită, nu gestionează și nu procesează nicio informație personală.
Întrebări Frecvente Despre Validarea CNPJ
Care este diferența dintre validarea și verificarea unui CNPJ?
Validarea verifică dacă numărul este matematic corect—format corespunzător, cifre de control corecte, fără tipare nevalide. Acest instrument face validarea.
Verificarea verifică dacă CNPJ-ul este înregistrat la o companie reală în baza de date a Receita Federal. Verificarea necesită interogarea bazei de date guvernamentale și nu este ceva pe care îl face acest instrument.
Poți avea un CNPJ perfect valid care nu este verificat (precum numerele de test generate de acest instrument), sau un CNPJ invalid care aparține unei companii reale (pentru că cineva a făcut o greșeală la introducere).
Pot folosi CNPJ-uri generate pentru testare în producție?
Depinde ce înțelegi prin "testare în producție". Sunt bune pentru medii de staging, testare de încărcare și QA pre-lansare. Dar dacă prin "testare în producție" înțelegi testarea cu tranzacții reale, API-uri guvernamentale reale sau sisteme financiare reale—atunci nu, aveți nevoie de CNPJ-uri înregistrate real.
O abordare mai sigură: utilizați CNPJ-uri generate în medii de testare izolate, apoi schimbați la un mic set de CNPJ-uri de test reale (pe care le controlați) atunci când testați integrări de producție.
De ce respinge validatorul 11.111.111/1111-11?
Chiar dacă un CNPJ cu cifre identice poate produce matematic cifre de control valide, Receita Federal exclude explicit aceste tipare. Este o regulă de business, nu una matematică. Același lucru se aplică și tiparelor secvențiale în unele sisteme de validare.
Acest lucru este similar cu modul în care multe sisteme resping parole precum "password123" chiar dacă îndeplinesc cerințele de lungime—sunt tehnic valide, dar practic inacceptabile.
Cum gestionez validarea CNPJ în diferite localizări?
Companiile braziliene care desfășoară afaceri internaționale uneori elimină caracterele de formatare atunci când introduc CNPJ-uri în sisteme străine. Logica dvs. de validare ar trebui să elimine caracterele non-numerice înainte de verificare:
1const cleanCNPJ = input.replace(/\D/g, ''); // Elimină tot în afară de cifre
2Acceptă 12.345.678/0001-95, 12345678000195, și 12 345 678 0001 95 ca intrări echivalente.
Ce-i cu validarea CNPJ vs CPF?
CPF (Cadastro de Pessoas Físicas) este identificatorul fiscal individual brazilian, în timp ce CNPJ este pentru companii. Folosesc algoritmi diferiți de cifre de control și lungimi diferite (CPF are 11 cifre, CNPJ are 14). Dacă construiți o aplicație braziliană care gestionează ambele, veți avea nevoie de funcții separate de validare—deși multe biblioteci suportă ambele formate.
Un tipar comun: permiteți utilizatorilor să introducă fie CPF, fie CNPJ în același câmp, apoi detectați tipul bazat pe lungime după eliminarea caracterelor de formatare.
Funcționează pentru companiile străine care operează în Brazilia?
Companiile străine care operează în Brazilia trebuie să obțină și CNPJ-uri de la Receita Federal. CNPJ-urile lor urmează același format și reguli de validare ca și companiile naționale. Nu există un format special de CNPJ pentru companiile străine.
Cu toate acestea, companiile străine pot avea cerințe suplimentare de documentație și procese de înregistrare diferite—consultați un avocat brazilian de afaceri pentru detalii specifice.
Pot interoga baza de date guvernamentală pentru a verifica înregistrarea CNPJ?
Da, Receita Federal oferă acces public pentru a verifica informațiile de bază CNPJ prin serviciul lor Consulta Pública CNPJ. Puteți căuta manual CNPJ-uri sau, cu autorizație corespunzătoare, utiliza API-urile lor pentru acces programatic.
Rețineți că utilizarea intensă necesită înregistrare și există limite de rată pentru a preveni abuzul.
Cât de des se schimbă CNPJ-urile?
CNPJ-urile sunt identificatori permanenți care nu se schimbă atunci când o companie își schimbă numele, adresa sau structura de proprietate. Cu toate acestea, dacă o companie se închide și apoi se reînregistrează, poate primi un nou CNPJ. Numerele de filială (porțiunea /XXXX) pot fi adăugate pe măsură ce companiile deschid noi locații, dar numărul de bază de 8 cifre rămâne constant.
Referințe și Resurse Suplimentare
Surse Oficiale Guvernamentale
- Receita Federal do Brasil - Portal Oficial - Site-ul oficial al Serviciului Federal de Venituri din Brazilia cu servicii de înregistrare și verificare CNPJ
- Consulta Pública CNPJ - Verificare Publică CNPJ - Serviciu oficial guvernamental pentru verificarea stării de înregistrare CNPJ
- Instrucțiune Normativă RFB Nr. 1863/2018 - Reglementări legale care guvernează înregistrarea și utilizarea CNPJ în Brazilia
Standarde Tehnice și Documentație
- Algoritmi de aritmetică modulară - Calcularea cifrei de control utilizează aritmetica modulo 11, o abordare standard pentru cifre de validare
- ISO/IEC 7064 - Standard internațional pentru sisteme de cifre de control care a influențat proiectarea validării documentelor braziliene
- Codul Civil Brazilian (Legea Nr. 10.406/2002) - Cadru legal care definește clasificările entităților de afaceri care necesită înregistrare CNPJ
Resurse pentru Dezvoltatori
- Registrul de pachete NPM - npmjs.com - Depozit pentru biblioteci JavaScript, inclusiv validatori de documente braziliene
- PyPI (Indexul de Pachete Python) - pypi.org - Biblioteci Python pentru validarea CNPJ și procesarea documentelor braziliene
- GitHub - Implementări open-source ale validării CNPJ în mai multe limbaje de programare
Începeți Generarea și Validarea CNP-urilor
Fie că dezvoltați o platformă de comerț electronic braziliană, testați integrări de plăți cu Mercado Pago sau pur și simplu doriți să înțelegeți cum funcționează validarea CNP-ului, această unealtă vă oferă acces imediat la capacități de generare și validare.
Fără instalare, fără chei API, fără configurări complicate. Doar deschideți browserul și începeți să lucrați cu identificatori de afaceri brazilieni valizi.