Generálj érvényes brazíliai CNPJ számokat és érvényesítsd a meglévőket ezzel az egyszerű eszközzel, amelyet fejlesztők és tesztelők számára terveztek, akik brazíliai üzleti azonosítókkal dolgoznak.
Generálj egy érvényes brazil CNPJ számot tesztelési célokra.
Ellenőrizd, hogy egy brazil CNPJ szám érvényes-e.
A brazíliai CNPJ (Cadastro Nacional da Pessoa Jurídica) egy egyedi azonosító szám, amelyet a brazil vállalkozásoknak és jogi személyeknek adnak. Ez a brazíliai CNPJ generátor és érvényesítő eszköz egyszerű és hatékony módot kínál érvényes CNPJ számok generálására tesztelési célokra, valamint meglévő CNPJ számok érvényesítésére a hivatalos brazil algoritmus szerint. Legyen Ön fejlesztő, aki brazil üzleti adatokkal foglalkozó alkalmazásokat tesztel, QA szakember, aki teszteseteket készít, vagy bárki, aki brazil céges információkkal dolgozik, ez az eszköz megkönnyíti a CNPJ számokkal való munkát.
A valódi CNPJ számokkal ellentétben, amelyeket a brazil Szövetségi Adóhatóság (Receita Federal) hivatalosan bocsát ki, az ezzel az eszközzel generált CNPJ-k matematikailag érvényesek, de nem regisztráltak valós cégekhez. Ez tökéletesen alkalmas tesztelési szcenáriókhoz, mintaadatokhoz és fejlesztési környezetekhez, ahol megfelelően formázott és érvényes CNPJ számokra van szükség anélkül, hogy valós üzleti azonosítókat használnánk.
A CNPJ (Cadastro Nacional da Pessoa Jurídica) egy 14 számjegyből álló azonosító szám, amelyet a brazil Szövetségi Adóhatóság ad a vállalkozásoknak és jogi személyeknek. Ez a brazil megfelelője a cégregisztrációs számnak vagy adószámnak. Minden jogszerűen működő vállalkozásnak Brazíliában rendelkeznie kell CNPJ-val, amelyet a következő célokra használnak:
A CNPJ alapvető azonosító a brazil üzleti ökoszisztémában, és megjelenik a hivatalos dokumentumokon, szerződéseken és pénzügyi nyilvántartásokban.
A brazíliai CNPJ 14 számjegyből áll, amelyet általában a következő formátumban írnak: XX.XXX.XXX/YYYY-ZZ
A struktúra a következőképpen oszlik meg:
Például egy megfelelően formázott CNPJ így nézhet ki: 12.345.678/0001-95
Az ellenőrző számok (az utolsó két szám) egy speciális matematikai algoritmus segítségével kerülnek kiszámításra, amely érvényesíti a CNPJ hitelességét. Ez az algoritmus biztosítja, hogy a véletlenszerűen generált számok ne tudjanak érvényesítést nyerni a megfelelő számítási módszer követése nélkül.
A CNPJ érvényesítési algoritmus egy súlyozott számítást használ az ellenőrző számok meghatározására. Íme, hogyan működik:
Ahhoz, hogy egy CNPJ érvényes legyen, mindkét ellenőrző számnak meg kell egyeznie a kiszámított értékekkel.
A brazíliai CNPJ generátor és érvényesítő eszközünk két fő funkciót kínál: érvényes CNPJ-k generálását és meglévő CNPJ számok érvényesítését.
Tesztelési célokra érvényes CNPJ generálásához:
A generált CNPJ követni fogja a valódi CNPJ matematikai érvényesítési szabályait, de nem regisztrált a brazil Szövetségi Adóhatóságnál.
A CNPJ matematikai érvényességének ellenőrzéséhez:
Az érvényesítő ellenőrzi, hogy a CNPJ követi-e a helyes formátumot, és hogy az ellenőrző számok megfelelnek-e a várt értékeknek az érvényesítési algoritmus szerint.
Ez a brazíliai CNPJ generátor és érvényesítő eszköz különösen hasznos a következő forgatókönyvekben:
Bár az eszközünk egy egyszerű, böngészőalapú megoldást kínál a CNPJ-k generálására és érvényesítésére, több alternatíva is létezik a konkrét igényei szerint:
A fejlesztők számára, akik közvetlenül a CNPJ érvényesítést integrálják az alkalmazásokba, több nyelvspecifikus könyvtár áll rendelkezésre:
cpf_cnpj.js
, validator.js
python-cnpj
, validate-docbr
brazilianutils
, respect/validation
caelum-stella
, commons-validator
cpf_cnpj
, brazilian-rails
Ezek a könyvtárak gyakran további funkciókat kínálnak, mint például formázás, elemzés és más brazil dokumentumok érvényesítése.
Azok számára, akik érvényesítést igényelnek anélkül, hogy megvalósítanák az algoritmust:
Oktatási célokra vagy egyszeri érvényesítésekhez manuálisan is alkalmazhatja az algoritmust:
A manuális számítás azonban hajlamos a hibákra és nem hatékony a rendszeres használatra.
A CNPJ generátor és érvényesítő az eszközben JavaScript segítségével van megvalósítva, így gyors és képes teljes mértékben a böngészőjében futni anélkül, hogy az adatait egy szerverhez küldené. Íme, hogyan működnek a fő funkciók:
1function generateCNPJ() {
2 // Generálja az első 12 számjegyet véletlenszerűen
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Első ellenőrző szám kiszámítása
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Második ellenőrző szám kiszámítása
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // CNPJ formázása
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
1function validateCNPJ(cnpj) {
2 // Távolítsa el a nem numerikus karaktereket
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Ellenőrizze, hogy a hossza helyes-e
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Ellenőrizze, hogy az összes számjegy azonos-e (minden számjegy ugyanaz)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Alakítsa számjegyek tömbbé
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Ellenőrizze az első ellenőrző számot
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Ellenőrizze a második ellenőrző számot
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24
1function formatCNPJ(cnpj) {
2 // Távolítsa el a nem numerikus karaktereket
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Formázza a hossz alapján
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
Ezeket a fő funkciókat más programozási nyelvekben is megvalósíthatja a megfelelő logika követésével. Íme példák Pythonban és Java-ban:
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 # Generálja az első 12 számjegyet véletlenszerűen
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Első ellenőrző szám kiszámítása
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Második ellenőrző szám kiszámítása
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # CNPJ formázása
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 # Távolítsa el a nem numerikus karaktereket
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Ellenőrizze a hosszt
34 if len(cnpj) != 14:
35 return False
36
37 # Ellenőrizze, hogy az összes számjegy azonos-e
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Alakítsa számjegyek tömbbé
42 digits = [int(d) for d in cnpj]
43
44 # Ellenőrizze az első ellenőrző számot
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Ellenőrizze a második ellenőrző számot
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55
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 // Generálja az első 12 számjegyet véletlenszerűen
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Első ellenőrző szám kiszámítása
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Második ellenőrző szám kiszámítása
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // CNPJ formázása
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 // Távolítsa el a nem numerikus karaktereket
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Ellenőrizze a hosszt
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Ellenőrizze, hogy az összes számjegy azonos-e
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 // Alakítsa számjegyek tömbbé
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 // Ellenőrizze az első ellenőrző számot
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Ellenőrizze a második ellenőrző számot
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
A CNPJ generátor és érvényesítő eszköz használatakor tartsa szem előtt a következő megfontolásokat:
A CNPJ a vállalkozások és jogi személyek nemzeti regisztrációs száma Brazíliában. Adózási célokra, üzleti regisztrációra, bankszámlák nyitására és hivatalos tranzakciók során a cégek azonosítására használják.
Nem. Az ezzel az eszközzel generált CNPJ-k matematikailag érvényesek az ellenőrző szám algoritmus szerint, de nem regisztráltak a brazil Szövetségi Adóhatóságnál, és nem tartoznak valós cégekhez.
Nem. A valódi CNPJ-t a vállalkozás számára a brazil Szövetségi Adóhatóságnál kell regisztrálni a hivatalos folyamat követésével. A generált CNPJ-k csak tesztelési célokra valók.
A CNPJ valódi céghez való regisztrálásának ellenőrzéséhez a brazil Szövetségi Adóhatóság adatbázisát kell megkeresnie. Az eszközünk csak azt ellenőrzi, hogy a CNPJ matematikailag érvényes-e, nem azt, hogy hivatalosan regisztrált-e.
Az összes azonos számjegyből álló CNPJ-kat (mint például 11.111.111/1111-11) automatikusan érvénytelennek tekintik, még akkor is, ha matematikailag átmennek az ellenőrző szám algoritmuson. Ez egy szabály, amelyet a brazil Szövetségi Adóhatóság állapított meg.
Nem. Minden feldolgozás a böngészőjében történik, és nem tárolunk vagy továbbítunk semmilyen CNPJ-t, amelyet generál vagy érvényesít.
Az eszköz jelenlegi verziója egyszerre egy CNPJ-t generál. Tömeges generáláshoz érdemes megfontolni az alternatív programozási könyvtárak használatát, amelyeket az Alternatívák részben említünk.
Ez a hivatalos formátum, amelyet a brazil hatóságok követelnek. A konkrét csoportosítás segít azonosítani a CNPJ különböző összetevőit, például az alap számot és az ágazonosítót.
A CNPJ érvényesítési algoritmust megvalósíthatja a választott programozási nyelvben a Technikai Megvalósítás szakaszban található kódpéldák segítségével, vagy használhatja az Alternatívák szakaszban említett könyvtárak egyikét.
Igen. A brazil kormányzati szerveknek speciális CNPJ mintáik vannak. Például a szövetségi kormányzati szervek gyakran meghatározott számjegyekkel kezdődnek. A generátorunk véletlenszerű CNPJ-kat hoz létre, és nem generál kifejezetten kormányzati szerv CNPJ-kat.
A brazíliai CNPJ generátor és érvényesítő eszközünk egyszerűvé és hatékonnyá teszi az azonosító számokkal való munkát. Legyen szó alkalmazások teszteléséről, mintaadatok előkészítéséről vagy meglévő CNPJ-k érvényesítéséről, ez az eszköz egyszerű megoldást kínál anélkül, hogy API integrációkra vagy fejlett konfigurációkra lenne szükség.
Generálja le első érvényes CNPJ-ját most, vagy érvényesítse a meglévő egyiket egyszerű felületünk segítségével!
Fedezzen fel több olyan eszközt, amely hasznos lehet a munkafolyamatához