ब्राझिलियन व्यवसाय आयडीसह काम करणाऱ्या विकसक आणि चाचणी करणाऱ्यांसाठी डिझाइन केलेल्या या साधनासह वैध ब्राझिलियन CNPJ क्रमांक तयार करा आणि विद्यमान क्रमांकांची वैधता तपासा.
चाचणी उद्देशांसाठी एक वैध ब्राझिलियन CNPJ क्रमांक तयार करा.
ब्राझिलियन CNPJ क्रमांक वैध आहे का ते तपासा.
ब्राझिलियन CNPJ (Cadastro Nacional da Pessoa Jurídica) हा ब्राझीलमधील व्यवसाय आणि कायदेशीर संस्थांना दिला जाणारा एक अद्वितीय ओळख क्रमांक आहे. हा ब्राझिलियन CNPJ जनक आणि वैधता साधन एक साधा, कार्यक्षम मार्ग प्रदान करते ज्याद्वारे चाचणी उद्देशांसाठी वैध CNPJ क्रमांक तयार करणे आणि विद्यमान CNPJ क्रमांकांची वैधता तपासणे शक्य होते, अधिकृत ब्राझिलियन अल्गोरिदमनुसार. तुम्ही एक विकासक असाल जो ब्राझिलियन व्यवसाय डेटा हाताळणाऱ्या अनुप्रयोगांची चाचणी करतो, एक QA व्यावसायिक जो चाचणी प्रकरणे तयार करतो, किंवा ब्राझिलियन कंपनी माहितीवर काम करणारा कोणताही व्यक्ती असाल, तर हे साधन CNPJ क्रमांकांसह काम करण्याची प्रक्रिया सुलभ करते.
या साधनाद्वारे तयार केलेले CNPJ वास्तविक CNPJ क्रमांकांपेक्षा वेगळे आहेत, जे ब्राझिलियन फेडरल रेव्हेन्यू सर्व्हिस (Receita Federal) द्वारे अधिकृतपणे जारी केले जातात. हे साधनाने तयार केलेले CNPJ गणितीयदृष्ट्या वैध आहेत पण वास्तविक कंपन्यांसाठी नोंदणीकृत नाहीत. त्यामुळे ते चाचणी परिस्थिती, नमुना डेटा, आणि विकास वातावरणांसाठी योग्य आहेत जिथे तुम्हाला योग्य स्वरूपित आणि वैध CNPJ क्रमांकांची आवश्यकता आहे, वास्तविक व्यवसाय ओळखकर्ते वापरले बिना.
CNPJ (Cadastro Nacional da Pessoa Jurídica) हा 14 अंकी ओळख क्रमांक आहे जो ब्राझिलियन फेडरल रेव्हेन्यू सर्व्हिस द्वारे व्यवसाय आणि कायदेशीर संस्थांना दिला जातो. हा ब्राझीलमधील कंपनी नोंदणी क्रमांक किंवा कर आयडीचा समकक्ष आहे. ब्राझीलमध्ये कायदेशीरपणे कार्यरत असलेल्या प्रत्येक व्यवसायाला CNPJ असणे आवश्यक आहे, जो खालील गोष्टींसाठी वापरला जातो:
CNPJ हा ब्राझीलच्या व्यवसाय पारिस्थितिकी तंत्रातील एक महत्त्वाचा ओळखकर्ता आहे आणि अधिकृत कागदपत्रे, करार, आणि आर्थिक नोंदींवर दिसतो.
ब्राझिलियन CNPJ 14 अंकी असतो, सामान्यतः खालीलप्रमाणे स्वरूपित केला जातो: XX.XXX.XXX/YYYY-ZZ
संरचना खालीलप्रमाणे आहे:
उदाहरणार्थ, योग्य स्वरूपित CNPJ असे दिसू शकते: 12.345.678/0001-95
चेक अंक (शेवटचे दोन अंक) विशिष्ट गणितीय अल्गोरिदम वापरून गणना केली जातात, ज्यामुळे यादृच्छिकपणे तयार केलेले क्रमांक वैधतेत पास होऊ शकत नाहीत.
CNPJ वैधता अल्गोरिदम चेक अंक ठरवण्यासाठी वजनदार गणना वापरतो. याचे कार्य कसे आहे:
CNPJ वैध असण्यासाठी, दोन्ही चेक अंक अपेक्षित मूल्यांशी जुळले पाहिजेत.
आमच्या ब्राझिलियन CNPJ जनक आणि वैधता साधनात दोन मुख्य कार्ये आहेत: वैध CNPJ तयार करणे आणि विद्यमान CNPJ क्रमांकांची वैधता तपासणे.
चाचणी उद्देशांसाठी वैध CNPJ तयार करण्यासाठी:
तयार केलेला CNPJ वास्तविक CNPJ च्या सर्व गणितीय वैधता नियमांचे पालन करेल, परंतु ब्राझिलियन फेडरल रेव्हेन्यू सर्व्हिससह नोंदणीकृत नाही.
CNPJ गणितीयदृष्ट्या वैध आहे का ते तपासण्यासाठी:
वैधता तपासक CNPJ योग्य स्वरूपात आहे का आणि चेक अंक अपेक्षित मूल्यांशी जुळतात का हे तपासते.
हे ब्राझिलियन CNPJ जनक आणि वैधता साधन विशेषतः खालील परिस्थितींमध्ये उपयुक्त आहे:
आमचे साधन ब्राझिलियन CNPJ तयार करण्यासाठी आणि वैधतेसाठी एक साधा, ब्राउझर-आधारित उपाय प्रदान करते, परंतु तुमच्या विशिष्ट आवश्यकतांनुसार अनेक पर्याय उपलब्ध आहेत:
CNPJ वैधता थेट अनुप्रयोगांमध्ये समाकलित करण्यासाठी, अनेक भाषानिर्दिष्ट लायब्ररी उपलब्ध आहेत:
cpf_cnpj.js
, validator.js
python-cnpj
, validate-docbr
brazilianutils
, respect/validation
caelum-stella
, commons-validator
cpf_cnpj
, brazilian-rails
या लायब्ररी सामान्यतः स्वरूपित करणे, पार्सिंग, आणि इतर ब्राझिलियन कागदपत्रांची वैधता तपासण्यासारखी अतिरिक्त कार्यक्षमता प्रदान करतात.
वैधतेसाठी API वापरणाऱ्या अनुप्रयोगांसाठी:
शिक्षण उद्देशांसाठी किंवा एकदाच वैधता तपासण्यासाठी, तुम्ही अल्गोरिदम मॅन्युअलपणे लागू करू शकता:
तथापि, मॅन्युअल गणना त्रुटी-प्रवण आणि नियमित वापरासाठी अप्रभावी आहे.
या साधनातील CNPJ जनक आणि वैधता JavaScript वापरून कार्यान्वित केले आहेत, ज्यामुळे ते जलद आणि तुमच्या ब्राउझरमध्ये पूर्णपणे चालवता येते, तुमच्या डेटाला सर्व्हरवर पाठवले बिना. मुख्य कार्ये कशा कार्य करतात हे येथे आहे:
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
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
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 मध्ये उदाहरणे आहेत:
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
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 // पहिल्या 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
या CNPJ जनक आणि वैधता साधनाचा वापर करताना खालील विचार लक्षात ठेवा:
CNPJ हा व्यवसाय आणि कायदेशीर संस्थांसाठी राष्ट्रीय नोंदणी क्रमांक आहे. याचा वापर कर उद्देशांसाठी, व्यवसाय नोंदणीसाठी, बँक खात्यांचे उघडण्यासाठी, अधिकृत व्यवहारांमध्ये कंपन्यांची ओळख करण्यासाठी केला जातो.
नाही. या साधनाने तयार केलेले CNPJ गणितीयदृष्ट्या वैध आहेत, परंतु ते ब्राझिलियन फेडरल रेव्हेन्यू सर्व्हिससह नोंदणीकृत नाहीत आणि वास्तविक कंपन्यांना संबंधित नाहीत.
नाही. व्यवसायासाठी वैध CNPJ मिळवण्यासाठी तुम्हाला ब्राझिलियन फेडरल रेव्हेन्यू सर्व्हिससह अधिकृत प्रक्रियेद्वारे नोंदणी करावी लागेल. तयार केलेले CNPJ फक्त चाचणी उद्देशांसाठी आहेत.
CNPJ वास्तविक कंपनीला संबंधित आहे की नाही हे तपासण्यासाठी तुम्हाला ब्राझिलियन फेडरल रेव्हेन्यू सर्व्हिस डेटाबेससह सल्ला घ्यावा लागेल. आमचे साधन फक्त CNPJ गणितीयदृष्ट्या वैध आहे की नाही हे तपासते, अधिकृतपणे नोंदणीकृत आहे की नाही हे नाही.
सर्व समान अंक असलेले CNPJ (जसे की 11.111.111/1111-11) स्वयंचलितपणे अवैध मानले जातात, जरी ते गणितीयदृष्ट्या चेक अंक अल्गोरिदममध्ये पास होत असले तरी. हे ब्राझिलियन फेडरल रेव्हेन्यू सर्व्हिसने स्थापित केलेला नियम आहे.
नाही. सर्व प्रक्रिया तुमच्या ब्राउझरमध्ये होते, आणि आम्ही तुम्ही तयार केलेले किंवा वैध केलेले CNPJ संग्रहित किंवा प्रसारित करत नाही.
साधनाच्या चालू आवृत्तीत एकाच वेळी एक CNPJ तयार केला जातो. मोठ्या प्रमाणात जननासाठी, तुम्ही पर्यायांमध्ये दिलेल्या प्रोग्रामिंग लायब्ररींचा विचार करू शकता.
हे अधिकृत स्वरूप आहे जे ब्राझिलियन प्राधिकरणांनी आवश्यक केले आहे. विशिष्ट गटिंग CNPJ च्या विविध घटकांची ओळख करण्यात मदत करते, जसे की मूलभूत क्रमांक आणि शाखा ओळखकर्ता.
तुम्ही तांत्रिक कार्यान्वयन विभागात दिलेल्या कोड उदाहरणांचा वापर करून तुमच्या आवडत्या प्रोग्रामिंग भाषेत वैधता अल्गोरिदम कार्यान्वित करू शकता, किंवा पर्यायांमध्ये दिलेल्या लायब्ररींपैकी एक वापरू शकता.
होय. ब्राझीलमधील सरकारी संस्थांकडे विशिष्ट CNPJ नमुने आहेत. उदाहरणार्थ, फेडरल सरकारी संस्थांचे CNPJ सामान्यतः विशिष्ट अंकांनी सुरू होतात. आमचा जनक यादृच्छिक CNPJ तयार करतो आणि सरकारी संस्थांचे CNPJ विशेषतः तयार करत नाही.
आमचे ब्राझिलियन CNPJ जनक आणि वैधता साधन या ओळख क्रमांकांसह काम करणे साधे आणि कार्यक्षम बनवते. तुम्ही अनुप्रयोगांची चाचणी करत असाल, नमुना डेटा तयार करत असाल, किंवा विद्यमान CNPJ ची वैधता तपासत असाल, हे साधन API समाकलन किंवा प्रगत कॉन्फिगरेशनच्या गुंतागुंतीशिवाय एक सोपा उपाय प्रदान करते.
आता तुमचा पहिला वैध CNPJ तयार करा किंवा आमच्या साध्या इंटरफेसचा वापर करून विद्यमान CNPJ ची वैधता तपासा!
आपल्या कामच्या प्रक्रियेसाठी उपयुक्त असणारे अधिक उपकरण शोधा.