Generator și Validator CNPJ Brazilian pentru Testare
Generați numere CNPJ braziliene valide și validați cele existente cu acest instrument simplu conceput pentru dezvoltatori și testeri care lucrează cu ID-urile de afaceri braziliene.
Generator și Validator CNPJ Brazilian
Generator CNPJ
Generați un număr CNPJ brazilian valid pentru scopuri de testare.
Validator CNPJ
Verificați dacă un număr CNPJ brazilian este valid.
Documentație
Generator și Validator CNPJ Brazilian
Introducere
CNPJ-ul Brazilian (Cadastro Nacional da Pessoa Jurídica) este un număr de identificare unic atribuit întreprinderilor și entităților legale din Brazilia. Acest generator și validator CNPJ Brazilian oferă o modalitate simplă și eficientă de a genera numere CNPJ valide pentru scopuri de testare și de a valida numerele CNPJ existente conform algoritmului oficial brazilian. Indiferent dacă ești un dezvoltator care testează aplicații care gestionează datele de afaceri braziliene, un profesionist QA care creează cazuri de testare sau oricine lucrează cu informații despre companiile braziliene, acest instrument simplifică procesul de lucru cu numerele CNPJ.
Spre deosebire de numerele CNPJ reale care sunt emise oficial de Serviciul Federal de Venituri din Brazilia (Receita Federal), CNPJs generate de acest instrument sunt matematic valide, dar nu sunt înregistrate la companii reale. Acest lucru le face perfecte pentru scenarii de testare, date de exemplu și medii de dezvoltare în care ai nevoie de numere CNPJ corect formatate și valide fără a folosi identificatori de afaceri reali.
Ce este un CNPJ?
Un CNPJ (Cadastro Nacional da Pessoa Jurídica) este un număr de identificare de 14 cifre atribuit întreprinderilor și entităților legale de către Serviciul Federal de Venituri din Brazilia. Acesta servește ca echivalentul brazilian al unui număr de înregistrare a companiei sau al unui ID fiscal. Fiecare afacere care funcționează legal în Brazilia trebuie să aibă un CNPJ, care este folosit pentru:
- Raportarea și conformitatea fiscală
- Înregistrarea afacerii la agențiile guvernamentale
- Deschiderea conturilor bancare
- Emiterea facturilor și chitanțelor
- Participarea la licitații guvernamentale
- Importul și exportul de bunuri
CNPJ-ul este un identificator esențial în ecosistemul de afaceri din Brazilia și apare pe documentele oficiale, contracte și înregistrări financiare.
Structura și Formatul CNPJ-ului
Un CNPJ Brazilian constă din 14 cifre, de obicei formatate ca: XX.XXX.XXX/YYYY-ZZ
Structura se descompune astfel:
- Primele 8 cifre (XX.XXX.XXX): Numărul de bază atribuit companiei
- 4 cifre după slash (YYYY): Identificatorul sucursalei (0001 pentru sediul central, alte numere pentru sucursale)
- Ultimele 2 cifre (ZZ): Cifrele de verificare pentru validare
De exemplu, un CNPJ corect formatat ar putea arăta astfel: 12.345.678/0001-95
Cifrele de verificare (ultimele două numere) sunt calculate folosind un anumit algoritm matematic care validează autenticitatea CNPJ-ului. Acest algoritm asigură că numerele generate aleatoriu nu pot trece validarea fără a urma metoda de calcul corespunzătoare.
Cum funcționează Validarea CNPJ-ului
Algoritmul de validare CNPJ folosește un calcul ponderat pentru a determina cifrele de verificare. Iată cum funcționează:
Calculul Primei Cifre de Verificare
- Înmulțește fiecare dintre cele 12 cifre cu o secvență de greutăți: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Sumează rezultatele acestor înmulțiri
- Calculează restul acestei sume împărțit la 11
- Dacă restul este mai mic de 2, prima cifră de verificare este 0; în caz contrar, este 11 minus restul
Calculul Celei de-a Doua Cifre de Verificare
- Înmulțește fiecare dintre cele 13 cifre (inclusiv prima cifră de verificare) cu o secvență de greutăți: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Sumează rezultatele acestor înmulțiri
- Calculează restul acestei sume împărțit la 11
- Dacă restul este mai mic de 2, a doua cifră de verificare este 0; în caz contrar, este 11 minus restul
Pentru ca un CNPJ să fie valid, ambele cifre de verificare trebuie să se potrivească cu valorile calculate.
Cum să Folosești Acest Instrument
Instrumentul nostru Generator și Validator CNPJ Brazilian oferă două funcții principale: generarea de CNPJs valizi și validarea numerele CNPJ existente.
Generarea unui CNPJ
Pentru a genera un CNPJ valid pentru scopuri de testare:
- Navighează la secțiunea "Generator CNPJ" a instrumentului
- Apasă pe butonul "Generează CNPJ"
- Un CNPJ matematic valid va apărea în afișajul formatat
- Folosește butonul "Copiază" pentru a copia CNPJ-ul generat în clipboard
CNPJ-ul generat va respecta toate regulile de validare matematică ale unui CNPJ real, dar nu este înregistrat la Serviciul Federal de Venituri din Brazilia.
Validarea unui CNPJ
Pentru a verifica dacă un CNPJ este matematic valid:
- Navighează la secțiunea "Validator CNPJ" a instrumentului
- Introdu CNPJ-ul pe care dorești să-l validezi în câmpul de introducere
- Instrumentul acceptă CNPJs cu sau fără formatare (puncte, slash-uri și cratime)
- Apasă pe butonul "Validează"
- Instrumentul va afișa dacă CNPJ-ul este valid sau invalid pe baza algoritmului cifrelor de verificare
Validatorul verifică dacă CNPJ-ul respectă formatul corect și dacă cifrele de verificare se potrivesc cu valorile așteptate conform algoritmului de validare.
Cazuri de Utilizare
Acest instrument Generator și Validator CNPJ Brazilian este deosebit de util în următoarele scenarii:
Dezvoltare și Testare Software
- Crearea de Date de Test: Generează CNPJs valizi pentru popularea bazelor de date de testare fără a folosi identificatori de companii reale
- Testare Unitară: Validează funcțiile de gestionare a CNPJ-urilor din codul tău cu exemple cunoscute valide și invalide
- Testare QA: Creează cazuri de testare pentru formulare și interfețe care necesită introducerea CNPJ-urilor
- Testare de Integrare: Testează sistemele care schimbă date cu servicii guvernamentale braziliene sau instituții financiare
Educație și Formare
- Învățarea Formatului CNPJ: Înțelege cum sunt structurate identificatoarele de afaceri braziliene
- Studii de Algoritm: Examinează modul în care funcționează validarea cifrelor de verificare în practică
- Tehnici de Validare a Datelor: Studiază exemple din lumea reală ale cerințelor de validare a datelor
Procesarea Datelor
- Curățarea Datelor: Validează CNPJs în seturile de date existente pentru a identifica erorile potențiale
- Validarea Formularelor: Implementează validarea pe partea clientului sau pe partea serverului pentru introducerile CNPJ
- Anonymizarea Datelor: Înlocuiește CNPJs reale cu cele generate valide atunci când pregătești seturi de date pentru analiză
Afaceri Internaționale
- Pregătirea Intrării pe Piață: Înțelege cerințele de identificare a afacerilor din Brazilia
- Pregătirea Documentelor: Asigură-te că formatarea este corectă atunci când pregătești documente de afaceri pentru Brazilia
- Verificarea Conformității: Verifică dacă numerele CNPJ colectate sunt cel puțin matematic valide
Alternative
În timp ce instrumentul nostru oferă o soluție simplă, bazată pe browser, pentru generarea și validarea CNPJ-urilor, există mai multe alternative în funcție de nevoile tale specifice:
Biblioteci de Programare
Pentru dezvoltatorii care integrează validarea CNPJ direct în aplicații, există mai multe biblioteci specifice limbajului disponibile:
- JavaScript:
cpf_cnpj.js
,validator.js
- Python:
python-cnpj
,validate-docbr
- PHP:
brazilianutils
,respect/validation
- Java:
caelum-stella
,commons-validator
- Ruby:
cpf_cnpj
,brazilian-rails
Aceste biblioteci oferă adesea funcționalități suplimentare, cum ar fi formatarea, analiza și validarea altor documente braziliene.
Servicii API
Pentru aplicațiile care necesită validare fără a implementa algoritmul:
- API-urile guvernamentale braziliene (necesită înregistrare)
- API-uri comerciale de validare care includ verificarea CNPJ-ului
- Servicii de informații despre afaceri care validează împotriva bazei de date oficiale
Calcul Manual
Pentru scopuri educaționale sau validări unice, poți aplica manual algoritmul:
- Extrage primele 12 cifre ale CNPJ-ului
- Efectuează calculele ponderate așa cum este descris mai devreme
- Compară cifrele de verificare calculate cu cifrele de verificare reale
Cu toate acestea, calculul manual este predispus la erori și ineficient pentru utilizarea regulată.
Implementare Tehnică
Generatorul și validatorul CNPJ din acest instrument sunt implementate folosind JavaScript, ceea ce îl face rapid și capabil să ruleze complet în browserul tău fără a trimite datele tale către un server. Iată cum funcționează funcțiile de bază:
Algoritmul de Generare a CNPJ-ului
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 verificare
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Calculează a doua cifră de verificare
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}
29
Algoritmul 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ă pentru modele invalide cunoscute (toate cifrele sunt aceleași)
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 verificare
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Verifică a doua cifră de verificare
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24
Funcția 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}
18
Aceste funcții de bază pot fi implementate î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 verificare
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Calculează a doua cifră de verificare
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 aceleași
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Convertește în listă de întregi
42 digits = [int(d) for d in cnpj]
43
44 # Validează prima cifră de verificare
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Validează a doua cifră de verificare
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55
Implementare 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 verificare
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Calculează a doua cifră de verificare
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 aceleași
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 verificare
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Validează a doua cifră de verificare
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
Considerații Importante
Când folosești acest instrument Generator și Validator CNPJ, ține cont de următoarele considerații:
Considerații Legale și Etice
- Nu pentru Fraudă: CNPJs generate nu ar trebui niciodată folosite în scopuri frauduloase sau de reprezentare greșită
- Numai pentru Testare: Aceste CNPJs sunt doar pentru scopuri de testare și dezvoltare
- Nu sunt Înregistrate: CNPJs generate sunt valide matematic, dar nu sunt înregistrate la autoritățile braziliene
- Fără Valabilitate în Lumea Reală: Ele nu pot fi folosite pentru înregistrarea reală a afacerilor sau pentru scopuri fiscale
Limitări Tehnice
- Fără Informații despre Afaceri: CNPJs generate nu conțin coduri de sector de afaceri reale sau informații despre locație
- Fără Verificare în Bază de Date: Validatorul verifică doar validitatea matematică, nu și statutul de înregistrare
- Variante de Format: Deși instrumentul gestionează variantele comune de formatare, unele sisteme pot necesita formate specifice
Considerații de Securitate
- Procesare pe Partea Clientului: Toată procesarea se desfășoară în browserul tău; nu sunt trimise date către servere
- Fără Stocare a Datelor: CNPJs generate nu sunt stocate sau înregistrate
- Fără Date Personale: Instrumentul nu gestionează sau procesează informații personale
Întrebări Frecvente
La ce se folosește un CNPJ în Brazilia?
Un CNPJ este numărul de înregistrare național pentru întreprinderi și entități legale din Brazilia. Este folosit pentru scopuri fiscale, înregistrarea afacerii, deschiderea conturilor bancare și identificarea companiilor în tranzacții oficiale.
CNPJs generate de acest instrument sunt reale?
Nu. CNPJs generate de acest instrument sunt valide matematic conform algoritmului cifrelor de verificare, dar nu sunt înregistrate la Serviciul Federal de Venituri din Brazilia și nu aparțin companiilor reale.
Pot folosi CNPJs generate pentru afacerea mea?
Nu. Pentru a obține un CNPJ legitim pentru o afacere, trebuie să te înregistrezi la Serviciul Federal de Venituri din Brazilia (Receita Federal) conform procesului oficial. CNPJs generate sunt doar pentru scopuri de testare.
Cum pot verifica dacă un CNPJ aparține unei companii reale?
Pentru a verifica dacă un CNPJ este înregistrat la o companie reală, trebuie să consulți baza de date a Serviciului Federal de Venituri din Brazilia. Instrumentul nostru verifică doar dacă un CNPJ este valid din punct de vedere matematic, nu dacă este înregistrat oficial.
De ce respinge validatorul un CNPJ cu toate cifrele aceleași?
CNPJs cu toate cifrele aceleași (de exemplu, 11.111.111/1111-11) sunt considerate automat invalide, chiar dacă trec matematic algoritmul de verificare a cifrelor. Aceasta este o regulă stabilită de Serviciul Federal de Venituri din Brazilia.
Instrumentul stochează CNPJs pe care le generezi sau validezi?
Nu. Toată procesarea se desfășoară în browserul tău, iar noi nu stocăm sau transmitem niciunul dintre CNPJs pe care îi generezi sau validezi.
Pot genera mai multe CNPJs simultan?
Versiunea actuală a instrumentului generează un CNPJ la un moment dat. Pentru generarea în masă, s-ar putea să vrei să iei în considerare utilizarea uneia dintre bibliotecile de programare menționate în secțiunea Alternative.
De ce este important formatul XX.XXX.XXX/XXXX-XX?
Acesta este formatul oficial cerut de autoritățile braziliene. Gruparea specifică ajută la identificarea diferitelor componente ale CNPJ-ului, cum ar fi numărul de bază și identificatorul sucursalei.
Cum pot valida un CNPJ programatic?
Poți implementa algoritmul de validare în limbajul tău de programare preferat folosind exemplele de cod furnizate în secțiunea Implementare Tehnică sau poți folosi una dintre bibliotecile menționate în secțiunea Alternative.
Există CNPJs speciale pentru entitățile guvernamentale?
Da. Entitățile guvernamentale din Brazilia au modele specifice de CNPJ. De exemplu, entitățile guvernamentale federale încep adesea cu cifre specifice. Generatorul nostru creează CNPJs aleatorii și nu generează în mod specific CNPJs pentru entități guvernamentale.
Referințe
- Serviciul Federal de Venituri din Brazilia (Receita Federal do Brasil) - Website Oficial
- "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
- Codul Civil Brazilian (Legea nr. 10.406/2002) - Cadru legal pentru entitățile de afaceri din Brazilia
- Instrucțiunea Normativă privind Înregistrarea Afacerilor din Brazilia (IN RFB nr. 1863/2018) - Reguli privind înregistrarea CNPJ-ului
Încearcă Acum
Instrumentul nostru Generator și Validator CNPJ Brazilian face lucrul cu aceste numere de identificare simplu și eficient. Indiferent dacă testezi aplicații, pregătești date de exemplu sau validezi CNPJs existente, acest instrument oferă o soluție simplă fără complexitatea integrărilor API sau a configurațiilor avansate.
Generează primul tău CNPJ valid acum sau validează unul existent folosind interfața noastră simplă!
Feedback
Click pe toast-ul de feedback pentru a începe să oferi feedback despre acest instrument
Instrumente Asemănătoare
Descoperă mai multe instrumente care ar putea fi utile pentru fluxul tău de lucru