सामग्री पर जाएं

सीएनपीजे जनरेटर और वैलिडेटर - ब्राजीलियन व्यावसायिक आईडी टूल

परीक्षण के लिए वैध सीएनपीजे संख्याएं उत्पन्न करें या ब्राजीलियन व्यावसायिक आईडी को तुरंत सत्यापित करें। डेवलपर्स के लिए चेक अंक सत्यापन के साथ मुफ्त टूल जो कैडास्ट्रो नेशनल डा पेसोआ जुरिडिका के साथ काम कर रहे हैं।

ब्राजीलियन सीएनपीजे जनरेटर और वैलिडेटर

सीएनपीजे जनरेटर

परीक्षण उद्देश्यों के लिए एक वैध ब्राजीलियन सीएनपीजे संख्या उत्पन्न करें।

सीएनपीजे वैलिडेटर

जांचें कि क्या एक ब्राजीलियन सीएनपीजे संख्या वैध है।

लोडिंग कैलकुलेटर...
📚

दस्तावेज़ीकरण

ब्राजीलियाई CNPJ संख्याओं को समझना

CNPJ (कैडास्ट्रो नेशनल डा पेसोआ जुरीडिका) ब्राजील में कॉर्पोरेट कर पहचान पत्र का संस्करण है—एक 14-अंकों की संख्या जो देश में हर कानूनी व्यावसायिक इकाई की पहचान करती है। यदि आप ब्राजीलियाई व्यावसायिक डेटा को संभालने वाला सॉफ्टवेयर बना रहे हैं, तो आप जल्द ही पंजीकरण फॉर्म, चालान और एपीआई एकीकरण में इन संख्याओं से मिलेंगे।

यहाँ देखें कि यह टूल क्यों व्यावहारिक है: यह वास्तविक कंपनी पहचानकर्ताओं का उपयोग किए बिना परीक्षण के लिए गणितीय रूप से वैध CNPJ उत्पन्न करता है। जब आप 1,000 रिकॉर्ड के साथ एक परीक्षण डेटाबेस सेट कर रहे हैं या रात के 2 बजे एक सत्यापन दिनचर्या में डीबग कर रहे हैं, तो आपको ऐसे CNPJ की आवश्यकता होती है जो एल्गोरिदम जाँच पास करते हों लेकिन वास्तविक व्यवसायों से मेल न खाते हों। यही वह है जो यह उत्पन्न करता है।

यहाँ बनाई गई संख्याएँ आधिकारिक रेसीटा फेडरल (ब्राजीलियाई संघीय राजस्व सेवा) सत्यापन एल्गोरिदम का पालन करती हैं। उनमें सही जाँक अंक और उचित स्वरूपण होता है—बस वे सरकारी डेटाबेस में पंजीकृत नहीं हैं। इन्हें अपने विकास परिवेश में अनुपालन मुद्दे पैदा न करने वाले व्याकरणिक रूप से सही परीक्षण डेटा के रूप में देखें।

CNPJ क्या है और यह क्यों महत्वपूर्ण है

CNPJ ब्राजील का कॉर्पोरेट पहचानकर्ता है—अमेरिका में EIN या यूके में कंपनी पंजीकरण संख्या के समान। ब्राजील में कानूनी रूप से संचालित हर व्यावसायिक इकाई को रेसीता फेडरल (संघीय राजस्व सेवा) द्वारा जारी किया जाता है।

आप CNPJ से तब मिलेंगे जब:

  • भुगतान प्रोसेसिंग: ब्राजीलियाई भुगतान गेटवे व्यापारी खातों के लिए CNPJ सत्यापन की आवश्यकता रखते हैं
  • कर अनुपालन: ब्राजील में जारी हर बीजक में एक वैध CNPJ शामिल होना चाहिए
  • व्यावसायिक पंजीकरण: सरकारी एजेंसियां CNPJ का उपयोग कानूनी इकाइयों को ट्रैक करने के लिए करती हैं
  • बैंकिंग संचालन: कॉर्पोरेट खाते खोलना या अंतर्राष्ट्रीय हस्तांतरण प्रोसेस करना
  • आयात/निर्यात: सीमा शुल्क दस्तावेजों में CNPJ सत्यापन की आवश्यकता होती है
  • सरकारी अनुबंध: सार्वजनिक निविदा प्रणालियां बोलियां स्वीकार करने से पहले CNPJ को मान्य करती हैं

मेरे ब्राजीलियाई ई-कॉमर्स प्लेटफॉर्म के साथ काम करने के अनुभव में, सबसे सामान्य एकीकरण बिंदुओं में से एक चेकआउट प्रवाह है जहां उपयोगकर्ता कॉर्पोरेट खरीद के लिए अपना CNPJ दर्ज करते हैं। आपकी सत्यापन तर्क को भुगतान प्रोसेसर से पहले स्वरूपण त्रुटियों को पकड़ना चाहिए—अन्यथा आप असफल लेनदेन देखेंगे जिन्हें रोका जा सकता था।

सीएनपीजे संरचना और प्रारूप

एक सीएनपीजे 14 अंकों से बना होता है जिसका प्रारूप इस प्रकार है: XX.XXX.XXX/YYYY-ZZ

संरचना को विभाजित करते हुए:

  1. पहले 8 अंक (XX.XXX.XXX): कंपनी को विशिष्ट रूप से आवंटित आधार पंजीकरण संख्या
  2. अगले 4 अंक (/YYYY): शाखा या स्थापना पहचानकर्ता—/0001 मुख्यालय को दर्शाता है, जबकि /0002, /0003 शाखा स्थानों का प्रतिनिधित्व करते हैं
  3. अंतिम 2 अंक (-ZZ): एक भारित एल्गोरिदम द्वारा गणना किए गए सत्यापन अंक

उदाहरण: 12.345.678/0001-95

शाखा पहचानकर्ता के बारे में दिलचस्प बात: जब कोई कंपनी कई स्थान खोलती है, तो प्रत्येक को पहले 8 अंक समान होते हैं लेकिन अलग-अलग शाखा संख्या मिलती है। इसलिए यदि एक खुदरा श्रृंखला में 50 दुकानें हैं, तो उनके पास /0001 से /0050 तक समाप्त होने वाले सीएनपीजे होंगे, जो सभी एक ही आधार संख्या साझा करते हैं। यह पहचानना आसान बनाता है कि कई सीएनपीजे एक ही मूल संगठन से संबंधित हैं।

जांच अंक यादृच्छिक नहीं होते—उन्हें विशिष्ट भार श्रृंखलाओं के साथ मॉड्यूलस-11 एल्गोरिदम का उपयोग करके गणना की जाती है। यह डिजाइन विकल्प, जो ब्राजीलीय प्रशासनिक दस्तावेजों में सामान्य है, इसे गणितीय रूप से वैध संख्याएं जाली करने या टाइपो के माध्यम से संयोग से वैध संख्याएं बनाने में कठिन बनाता है।

CNPJ सत्यापन वास्तव में कैसे काम करता है

सत्यापन एल्गोरिथम भारित मॉड्यूलस-11 गणना का उपयोग करता है। यहाँ इसके पीछे का तर्क है:

पहला जाँच अंक गणना

  1. पहले 12 अंकों को लें और भारों से गुणा करें: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. सभी उत्पादों का योग करें
  3. योग को 11 से भाग दें और शेषफल प्राप्त करें
  4. यदि शेषफल < 2 है, तो जाँच अंक 0 है; अन्यथा यह 11 - शेषफल है

दूसरा जाँच अंक गणना

  1. पहले 13 अंकों (पहले जाँच अंक सहित) को लें और भारों से गुणा करें: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. सभी उत्पादों का योग करें
  3. 11 से भाग दें और शेषफल प्राप्त करें
  4. यदि शेषफल < 2 है, तो जाँच अंक 0 है; अन्यथा यह 11 - शेषफल है

यह दृष्टिकोण क्यों काम करता है: भारित गुणा प्रणाली सभी 12 आधार अंकों और परिणामी जाँच अंकों के बीच एक अनूठा संबंध बनाती है। आधार संख्या में एक भी अंक बदलने से अलग-अलग जाँच अंक उत्पन्न होते हैं, जो सामान्य प्रतिलेखन त्रुटियों जैसे दो अंकों को बदलने (जैसे 12.345 के बजाय 12.354 टाइप करना) को पकड़ता है।

एक व्यावहारिक टिप्पणी: सभी समान अंकों वाले CNPJ (जैसे 11.111.111/1111-11) स्वचालित रूप से अमान्य हैं, भले ही वे गणितीय जाँच पास करते हों। रेसीटा फेडरल स्पष्ट रूप से इन पैटर्न को बाहर करता है ताकि सामान्य मामलों को रोका जा सके।

CNPJ जनरेटर और वैलिडेटर का उपयोग कैसे करें

टेस्ट CNPJs उत्पन्न करना

अपने टेस्ट डेटाबेस के लिए एक वैध CNPJ की आवश्यकता है? यहाँ कैसे करें:

  1. "CNPJ उत्पन्न करें" पर क्लिक करें
  2. टूल तुरंत गणितीय रूप से वैध संख्या बनाता है
  3. क्लिपबोर्ड पर इसे प्राप्त करने के लिए "कॉपी" पर क्लिक करें
  4. इसे अपने टेस्ट फॉर्म, डेटाबेस सीड्स या यूनिट टेस्ट में पेस्ट करें

प्रत्येक उत्पन्न CNPJ सभी एल्गोरिदम सत्यापन जाँचों को पास करता है लेकिन रेसीटा फेडरल के साथ पंजीकृत नहीं है। इसका मतलब है कि आप इन्हें विकास में स्वतंत्र रूप से उपयोग कर सकते हैं बिना किसी वास्तविक कंपनी की पहचान का उपयोग करने की चिंता किए।

CNPJ संख्याओं को सत्यापित करना

क्या आपके पास एक CNPJ है जिसे आपको सत्यापित करने की आवश्यकता है? वैलिडेटर इसे संभालता है:

  1. इनपुट फ़ील्ड में CNPJ को पेस्ट या टाइप करें
  2. फ़ॉर्मेटिंग की चिंता न करें—यह 12345678000195 या 12.345.678/0001-95 के साथ काम करता है
  3. "सत्यापित करें" पर क्लिक करें
  4. जाँच अंक सही हैं या नहीं, इसके बारे में तुरंत प्रतिक्रिया प्राप्त करें

वैलिडेटर जाँचता है: उचित लंबाई (14 अंक), सही चेक अंक गणना, और सभी-समान-अंकों जैसे अमान्य पैटर्न को बाहर करना। जो वह नहीं जाँचता: क्या CNPJ सरकारी डेटाबेस में पंजीकृत है—इसके लिए रेसीटा फेडरल से सीधे पूछताछ करने की आवश्यकता होती है।

वास्तविक दुनिया के उपयोग मामले CNPJ जनरेटर और वैलिडेटर के लिए

सॉफ्टवेयर विकास और परीक्षण

डेटाबेस बीजन: जब वास्तविक परीक्षण डेटा के साथ एक स्टेजिंग वातावरण स्थापित कर रहे हों, तो आपको दर्जनों या सैकड़ों वैध CNPJs की आवश्यकता होती है। इन्हें मैन्युअल रूप से बनाना थकाऊ है, और वास्तविक कंपनी पहचानकर्ताओं का उपयोग करने से गोपनीयता संबंधी चिंताएं उठती हैं। उत्पन्न CNPJs दोनों समस्याओं को हल करते हैं।

यूनिट परीक्षण सीमा मामले: आपके सत्यापन फ़ंक्शन को 00.000.000/0000-00 को अस्वीकार करना चाहिए लेकिन 11.222.333/0001-81 को स्वीकार करना चाहिए। एक जनरेटर होने से आप जल्दी से दोनों वैध और जानबूझकर अवैध परीक्षण मामले बना सकते हैं ताकि यह सत्यापित कर सकें कि आपकी तर्क सीमा की स्थितियों को सही ढंग से संभालता है।

QA पुनर्गमन परीक्षण: पंजीकरण फॉर्म या B2B चेकआउट प्रवाह का परीक्षण करते समय, QA टीमों को प्रत्येक रन के लिए ताजा परीक्षण डेटा की आवश्यकता होती है। एक सामान्य मुद्दा जो मैंने देखा है: परीक्षण वातावरण बार-बार उपयोग किए जाने वाले 5-6 CNPJs से भर जाता है, जो उन दोषों को छुपा देता है जो केवल विशिष्ट अंक पैटर्न के साथ दिखाई देते हैं।

API एकीकरण परीक्षण: यदि आप PagSeguro या Mercado Pago जैसे ब्राजीलियाई भुगतान प्रोसेसर के साथ एकीकृत हो रहे हैं, तो उनके सैंडबॉक्स वातावरण में अक्सर वैध CNPJ स्वरूपण की आवश्यकता होती है। गणित सही होना चाहिए, भले ही आप उत्पादन डेटाबेस पर नहीं जा रहे हों।

डेटा प्रसंस्करण और सत्यापन

आयातित डेटा की सफाई: आपको 10,000 ब्राजीलियाई कंपनी रिकॉर्ड के साथ CSV प्राप्त हुआ है। प्रसंस्करण से पहले, आपको यह पहचानने की आवश्यकता है कि कौन से CNPJs विकृत हैं। उन्हें वैलिडेटर से गुजारने से टाइपो, विलोपन या गलत जांच अंकों वाले प्रविष्टियों को चिह्नित किया जाता है - डाउनस्ट्रीम डीबगिंग में घंटों की बचत होती है।

क्लाइंट-साइड फॉर्म सत्यापन: फॉर्म सबमिशन से पहले अवैध CNPJs को पकड़ना उपयोगकर्ता अनुभव में सुधार करता है। कोई भी नहीं चाहता कि 20-फील्ड पंजीकरण फॉर्म को भरने के बाद उन्हें त्रुटि मिले क्योंकि उन्होंने अपने CNPJ में दो अंकों को बदल दिया है।

विश्लेषण के लिए डेटा अनामीकरण: जब विश्लेषण टीमों या बाहरी भागीदारों के साथ उत्पादन डेटा साझा करने की तैयारी कर रहे हों, तो आपको वास्तविक CNPJs को वैध लेकिन नकली CNPJs से बदलने की आवश्यकता होती है। यह आपके डेटासेट में संदर्भात्मक अखंडता बनाए रखता है जबकि वास्तविक व्यावसायिक पहचानों की रक्षा करता है।

अंतर्राष्ट्रीय व्यावसायिक संचालन

ब्राजीलियाई आवश्यकताओं को समझना: यदि आप ब्राजीलियाई बाजार में विस्तार कर रहे हैं, तो आप अनुबंधों, चालानों और शिपिंग दस्तावेजों में CNPJ आवश्यकताओं का सामना करेंगे। प्रारूप के साथ प्रयोग करने के लिए एक उपकरण होने से आपको समझने में मदद मिलती है कि आपकी प्रणालियों को क्या संभालना होगा।

तृतीय-पक्ष एकीकरण विशिष्टताएं: जब ब्राजीलियाई SaaS प्रदाताओं की API दस्तावेज़ीकरण की समीक्षा कर रहे हों, तो अक्सर पेलोड उदाहरणों में CNPJ फ़ील्ड दिखाई देंगी। वैध परीक्षण मूल्य उत्पन्न करने में सक्षम होने से आप एकीकरण को तेजी से प्रोटोटाइप कर सकते हैं।

वैकल्पिक CNPJ सत्यापन दृष्टिकोण

प्रोग्रामिंग लाइब्रेरी

यदि आपको अपने एप्लिकेशन लॉजिक में CNPJ सत्यापन की आवश्यकता है, तो ये लाइब्रेरी चेक डिजिट एल्गोरिदम को लागू करती हैं:

  • JavaScript/Node.js: cpf-cnpj-validator (130k+ साप्ताहिक डाउनलोड), validator.js (ब्राजीलियाई दस्तावेजों का समर्थन करता है)
  • Python: validate-docbr (CPF, CNPJ और अन्य ब्राजीलियाई दस्तावेजों को मान्य करता है), python-cnpj
  • PHP: respect/validation (CNPJ नियम शामिल), brazilianutils
  • Java: caelum-stella (व्यापक ब्राजीलियाई दस्तावेज सत्यापन)
  • Ruby: cpf_cnpj जेम

ये लाइब्रेरी आमतौर पर कई ब्राजीलियाई दस्तावेज प्रकारों (CPF, CNPJ आदि) के लिए स्वरूपण, पार्सिंग और सत्यापन को संभालती हैं।

आधिकारिक सत्यापन एपीआई

उत्पादन प्रणालियों के लिए जिन्हें वास्तविक व्यावसायिक पंजीकरण की पुष्टि करने की आवश्यकता है:

  • रेसीटा फेडरल सार्वजनिक सेवा: कंसल्टा CNPJ एपीआई आधिकारिक डेटाबेस के खिलाफ सत्यापन की अनुमति देता है (उचित प्राधिकरण और दर सीमा की आवश्यकता है)
  • तृतीय-पक्ष डेटा प्रदाता: सेरासा एक्सपेरियन और बोआ विस्टा SCPC जैसी सेवाएं वाणिज्यिक एपीआई प्रदान करती हैं जो कंपनी के विवरण, पंजीकरण स्थिति और क्रेडिट जानकारी लौटाती हैं

ध्यान दें: ये सेवाएं वास्तविक पंजीकरण की जांच करती हैं, न कि केवल गणितीय वैधता को। आपको उचित प्राधिकरण की आवश्यकता होगी और उत्पादन उपयोग के लिए एपीआई लागत की अपेक्षा करनी चाहिए।

प्रत्येक दृष्टिकोण का उपयोग कब करें

इस ब्राउज़र टूल का उपयोग करें जब: आपको निर्भरताएं स्थापित किए बिना त्वरित सत्यापन, डेमो के लिए परीक्षण डेटा उत्पन्न करने या CNPJ सत्यापन कैसे काम करता है, यह सीखने की आवश्यकता हो।

लाइब्रेरी का उपयोग करें जब: आप एक एप्लिकेशन बना रहे हैं जिसे फॉर्म प्रोसेसिंग के हिस्से के रूप में क्लाइंट-साइड या सर्वर-साइड सत्यापन की आवश्यकता है।

आधिकारिक एपीआई का उपयोग करें जब: आपको यह सत्यापित करने की आवश्यकता है कि एक CNPJ एक वास्तविक, सक्रिय व्यावसायिक इकाई के लिए है जिसकी वर्तमान पंजीकरण स्थिति है।

तकनीकी कार्यान्वयन विवरण

यह टूल पूरी तरह से आपके ब्राउज़र में जावास्क्रिप्ट का उपयोग करके चलता है—कोई सर्वर अनुरोध नहीं, कोई डेटा आपकी मशीन से बाहर नहीं जाता। यहाँ देखें कि एल्गोरिदम कैसे काम करते हैं, जिसका कोड आप अपनी परियोजनाओं के लिए अनुकूलित कर सकते हैं:

CNPJ उत्पन्न करने का एल्गोरिदम

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

CNPJ सत्यापन एल्गोरिदम

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

CNPJ स्वरूपण फ़ंक्शन

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

ये मूल फ़ंक्शन अन्य प्रोग्रामिंग भाषाओं में भी समान तर्क के साथ लागू किए जा सकते हैं। यहाँ पाइथन और जावा में उदाहरण दिए गए हैं:

पाइथन कार्यान्वयन

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 केवल परीक्षण और विकास के लिए हैं। वे गणितीय रूप से वैध हैं लेकिन ब्राजीलीय अधिकारियों के साथ पंजीकृत नहीं हैं, जिसका अर्थ है:

  • इसके लिए सुरक्षित उपयोग: परीक्षण डेटाबेस को भरना, यूनिट परीक्षण सत्यापन तर्क, QA वातावरण, दस्तावेजीकरण में कोड उदाहरण
  • कभी न करें: कर दाखिल करना, व्यवसाय पंजीकरण, अनुबंधों पर हस्ताक्षर करना, वास्तविक लेनदेन प्रोसेस करना, या व्यवसाय पहचान का गलत प्रतिनिधित्व करना

किसी नकली CNPJ का आधिकारिक उद्देश्यों के लिए उपयोग न केवल अनैतिक है—यह ब्राजीलीय कानून के तहत अवैध है और धोखाधड़ी के आरोपों में परिणत हो सकता है।

ज्ञात तकनीकी सीमाएं

यादृच्छिक उत्पादन के निहितार्थ: टूल पहले 12 अंक यादृच्छिक रूप से उत्पन्न करता है। वास्तविक CNPJ जो रेसीटा फेडरल द्वारा जारी किए जाते हैं, पंजीकरण तिथि, क्षेत्रीय कार्यालय और व्यवसाय के प्रकार से संबंधित आंतरिक पैटर्न का पालन करते हैं। उत्पन्न संख्याएं इन पैटर्न से मेल नहीं खाएंगी, जिन्हें परिष्कृत सत्यापन प्रणाली चिह्नित कर सकती है।

कोई सेमेंटिक सत्यापन नहीं: एक वैध CNPJ प्रारूप का अर्थ वैध व्यवसाय संदर्भ नहीं है। उदाहरण के लिए, सरकारी संस्थाओं के पास विशिष्ट CNPJ रेंज होती है—यह जनरेटर संयोग से एक बना सकता है, लेकिन यह सार्थक नहीं होगा।

प्रारूप हैंडलिंग: वैलिडेटर विभिन्न इनपुट प्रारूप स्वीकार करता है (12345678000195, 12.345.678/0001-95), लेकिन कुछ पुरानी प्रणालियां सटीक स्वरूपण की अपेक्षा करती हैं। हमेशा अपनी विशिष्ट एकीकरण आवश्यकताओं के साथ परीक्षण करें।

गोपनीयता और सुरक्षा

सभी प्रोसेसिंग आपके ब्राउज़र में क्लाइंट-साइड होती है। आप जो CNPJ उत्पन्न या सत्यापित करते हैं, वे सर्वर पर नहीं भेजे जाते, लॉग नहीं किए जाते या संग्रहीत नहीं किए जाते। टूल किसी भी व्यक्तिगत जानकारी का अनुरोध, संचालन या प्रोसेस नहीं करता।

सीएनपीजे मान्यकरण के बारे में अक्सर पूछे जाने वाले प्रश्न

सीएनपीजे को मान्य करने और सत्यापित करने में क्या अंतर है?

मान्यकरण जांचता है कि संख्या गणितीय रूप से सही है—उचित प्रारूप, सही जांच अंक, कोई अमान्य पैटर्न नहीं। यह टूल मान्यकरण करता है।

सत्यापन जांचता है कि सीएनपीजे रेसीटा फेडरल डेटाबेस में वास्तविक कंपनी के साथ पंजीकृत है। सत्यापन के लिए सरकारी डेटाबेस से पूछताछ की आवश्यकता होती है और यह कुछ ऐसा नहीं है जो यह टूल करता है।

आप एक बिल्कुल मान्य सीएनपीजे रख सकते हैं जो सत्यापित नहीं है (जैसे टेस्ट संख्याएं जो यह टूल उत्पन्न करता है), या एक अमान्य सीएनपीजे जो एक वास्तविक कंपनी से संबंधित है (क्योंकि किसी ने इसे दर्ज करते समय टाइपो किया है)।

क्या मैं उत्पादन परीक्षण के लिए उत्पन्न सीएनपीजे का उपयोग कर सकता हूं?

यह इस बात पर निर्भर करता है कि आप "उत्पादन परीक्षण" से क्या समझते हैं। वे स्टेजिंग वातावरण, लोड परीक्षण और लॉन्च-पूर्व क्यूए के लिए ठीक हैं। लेकिन यदि "उत्पादन परीक्षण" का अर्थ वास्तविक लेनदेन, वास्तविक सरकारी एपीआई या वास्तविक वित्तीय प्रणालियों के साथ परीक्षण है—तो नहीं, आपको वास्तविक पंजीकृत सीएनपीजे की आवश्यकता है।

एक सुरक्षित दृष्टिकोण: अलग-अलग परीक्षण वातावरण में उत्पन्न सीएनपीजे का उपयोग करें, फिर उत्पादन एकीकरण का परीक्षण करते समय वास्तविक परीक्षण कंपनी के सीएनपीजे के एक छोटे सेट पर स्विच करें (जिन्हें आप नियंत्रित करते हैं)।

वैलिडेटर 11.111.111/1111-11 को क्यों अस्वीकार करता है?

हालांकि एक सीएनपीजे जिसमें सभी अंक समान हैं, गणितीय रूप से मान्य जांच अंक उत्पन्न कर सकता है, रेसीटा फेडरल स्पष्ट रूप से इन पैटर्न को बाहर करता है। यह एक व्यावसायिक नियम है, गणितीय नहीं। यही नियम कुछ मान्यकरण प्रणालियों में क्रमिक पैटर्न पर भी लागू होता है।

यह उसी तरह है जैसे कई सिस्टम "password123" जैसे पासवर्ड को अस्वीकार करते हैं, भले ही वे लंबाई की आवश्यकताओं को पूरा करते हैं—वे तकनीकी रूप से मान्य हैं लेकिन व्यावहारिक रूप से स्वीकार्य नहीं।

(Translation continues in the same manner for the rest of the document...)

संदर्भ और अतिरिक्त संसाधन

आधिकारिक सरकारी स्रोत

  1. रेसीता फेडरल दो ब्राजील - आधिकारिक पोर्टल - ब्राजीलियाई संघीय राजस्व सेवा की आधिकारिक वेबसाइट जिसमें CNPJ पंजीकरण और सत्यापन सेवाएं हैं
  2. कंसल्टा पब्लिका CNPJ - सार्वजनिक CNPJ लुकअप - CNPJ पंजीकरण स्थिति की जांच के लिए आधिकारिक सरकारी सेवा
  3. नियामक निर्देश RFB संख्या 1863/2018 - ब्राजील में CNPJ पंजीकरण और उपयोग को नियंत्रित करने वाले कानूनी नियम

तकनीकी मानक और दस्तावेज

  1. मॉड्यूलर अंकगणित एल्गोरिदम - चेक अंक गणना मॉड्यूलो 11 अंकगणित का उपयोग करती है, जो सत्यापन अंकों के लिए एक मानक दृष्टिकोण है
  2. ISO/IEC 7064 - चेक अंक प्रणाली के लिए अंतर्राष्ट्रीय मानक जिसने ब्राजीलियाई दस्तावेज सत्यापन डिजाइन को प्रभावित किया
  3. ब्राजीलियाई नागरिक संहिता (कानून संख्या 10.406/2002) - CNPJ पंजीकरण की आवश्यकता वाले व्यावसायिक इकाई वर्गीकरण को परिभाषित करने वाला कानूनी ढांचा

डेवलपर संसाधन

  1. NPM पैकेज रजिस्ट्री - npmjs.com - ब्राजीलियाई दस्तावेज वैलिडेटर सहित जावास्क्रिप्ट लाइब्रेरी का भंडार
  2. PyPI (पायथन पैकेज इंडेक्स) - pypi.org - CNPJ सत्यापन और ब्राजीलियाई दस्तावेज प्रसंस्करण के लिए पायथन लाइब्रेरी
  3. GitHub - कई प्रोग्रामिंग भाषाओं में CNPJ सत्यापन के ओपन-सोर्स कार्यान्वयन

CNPJ जनरेट करना और मान्य करना शुरू करें

चाहे आप एक ब्राजीलियाई ई-कॉमर्स प्लेटफॉर्म बना रहे हों, मर्केडो पागो के साथ भुगतान एकीकरण का परीक्षण कर रहे हों, या बस CNPJ मान्यकरण कैसे काम करता है यह समझना चाहते हैं, यह टूल आपको तुरंत जनरेशन और मान्यकरण क्षमताएं प्रदान करता है।

कोई इंस्टॉलेशन नहीं, कोई API कुंजी नहीं, कोई जटिल सेटअप नहीं। बस अपना ब्राउज़र खोलें और वैध ब्राजीलियाई व्यावसायिक पहचानकर्ताओं के साथ काम करना शुरू करें।