CNPJ જનરેટર & વેલિડેટર - બ્રાઝીલિયન વ્યાવસાયિક ID ટૂલ
પરીક્ષણ માટે માન્ય CNPJ નંબર જનરેટ કરો અથવા તતૂર્જ ભારતીય વ્યાવસાયિક ID ને ઝડપથી ચકાસો. ડેવલપર્સ માટે ચેક અંક ચકાસણી સાથે મફત ટૂલ, Cadastro Nacional da Pessoa Jurídica.
બ્રાઝિલિયન CNPJ જનરેટર અને ચકાસનાર
CNPJ જનરેટર
પરીક્ષણ હેતુ માટે વૈધ બ્રાઝિલિયન CNPJ નંબર બનાવો.
CNPJ ચકાસનાર
તપાસો કે બ્રાઝિલિયન CNPJ નંબર વૈધ છે કે નહીં.
દસ્તાવેજીકરણ
બ્રાઝિલિયન CNPJ નંબર સમજવા
CNPJ (Cadastro Nacional da Pessoa Jurídica) બ્રાઝિલનો કૉર્પોરેટ ટેક્સ ID - 14 અંકનો નંબર છે જે દેશની દરેક કાનૂની વ્યાવસાયિક સંસ્થાને ઓળખે છે. જો તમે બ્રાઝિલિયન વ્યાવસાયિક ડેટા સંભાળતું સૉફ્ટવેર બનાવી રહ્યા છો, તો તમે ઝટપટ નોંધણી ફૉર્મ, ઇન્વૉઇસ અને API ઇન્ટીગ્રેશનમાં આ નંબરોનો સામનો કરશો.
અહીં એ વાત છે કે આ ટૂલ વ્યાવહારિક બનાવે છે: તે વાસ્તવિક કંપની ઓળખકર્તાઓનો ઉપયોગ કર્યા વિના ગણિતીય રીતે માન્ય CNPJ જનરેટ કરે છે. જ્યારે તમે 1,000 રેકૉર્ડ્સ સાથે ટેસ્ટ ડેટાબેઝ સેટ કરી રહ્યા છો અથવા 2 AM પર ચકાસણી રૂટીનનું ડિબગિંગ કરી રહ્યા છો, ત્યારે તમને CNPJ ની જરૂર છે જે અલ્ગોરિધ્મિક ચકાસણી પાસ કરે પરંતુ વાસ્તવિક વ્યવસાયો સાથે અaccidentally ન મળે. તે બરાબર એ છે જે અહીં જનરેટ થાય છે.
અહીં બનાવેલ નંબરો ઔપચારિક Receita Federal (બ્રાઝિલિયન ફેડરલ રેવન્યૂ સર્વિસ) ચકાસણી અલ્ગોરિધ્મનું પાલન કરે છે. તેમાં સાચા ચેક અંક અને યોગ્ય ફૉર્મેટિંગ છે - તેઓ ફક્ત સરકારી ડેટાબેઝમાં નોંધાયેલા નથી. તેને ટેસ્ટ ડેટા તરીકે ગણો જે તમાર ડેવલપમેન્ટ વાતાવરણમાં અનુપાલન મુદ્દાઓ નહીં બનાવે.
CNPJ શું છે અને તેનું મહત્વ
CNPJ બ્રાઝિલનો કૉર્પોરેટ ઓળખ કોડ છે - યુનાઇટેડ સ્ટેટ્સના EIN અથવા યુકેના કંપની રજિસ્ટ્રેશન નંબર જેવો. બ્રાઝિલમાં કાયદેસર રીતે કાર્યરત દરેક વ્યાવસાયિક સંસ્થાએ રેસીટા ફેડરાલ (ફેડરલ રેવન્યૂ સર્વિસ) દ્વારા જારી કરાયેલ CNPJ મેળવવો જ જોઈએ.
તમે CNPJ ને નીચેની પરિસ્થિતિઓમાં જોઈ શકશો:
- ચુકવણી પ્રક્રિયા: બ્રાઝિલના પેમેન્ટ ગેટવે વેપાર ખાતાઓ માટે CNPJ ચકાસણી જરૂરી
- કર પાલન: બ્રાઝિલમાં દરેક ઇન્વૉઇસમાં વૈધ CNPJ હોવો જ જોઈએ
- વ્યાવસાયિક નોંધણી: સરકારી એજન્સીઓ CNPJ નો ઉપયોગ કાયદાકીય સંસ્થાઓને ટ્રૅક કરવા માટે કરે છે
- બેન્કિંગ ઓપરેશન: કૉર્પોરેટ ખાતા ખોલવા અથવા આંતરરાષ્ટ્રીય ટ્રાન્સફર પ્રક્રિયા
- આયાત/નિકાસ: કસ્ટમ્સ દસ્તાવેજોમાં CNPJ ચકાસણી જરૂરી
- સરકારી ઠરાવ: જાહેર ટેન્ડર સિસ્ટમ્સ બીડ સ્વીકારતા પહેલાં CNPJ ચકાસે છે
મારા બ્રાઝિલન ઈ-કૉમર્સ પ્લેટફૉર્મ્સ સાથેના અનુભવ પ્રમાણે, સૌથી સામાન્ય ઇન્ટીગ્રેશન પોઇન્ટ ચેકઆઉટ પ્રવાહ છે, જ્યાં વપરાશકર્તાઓ કૉર્પોરેટ ખરીદી માટે તેમનો CNPJ દાખલ કરે છે. તમારી ચકાસણી લૉજિકને ફૉર્મેટિંગ ભૂલો પકડવી જોઈએ, પેમેન્ટ પ્રોસેસર કરતાં પહેલાં - નહીં તો તમે નિષ્ફળ ટ્રાન્ઝેક્શન્સ જોઈ શકશો, જે રોકી શકાયા હતા.
CNPJ માળખું અને ફૉર્મેટ
CNPJ 14 અંકોનો બનેલો છે જે આ રીતે ફૉર્મેટ કરવામાં આવે છે: XX.XXX.XXX/YYYY-ZZ
માળખાનું વિભાજન:
- પ્રથમ 8 અંક (XX.XXX.XXX): કંપનીને યુનિક રીતે ફાળવવામાં આવેલ મૂળ નોંધણી નંબર
- આગળના 4 અંક (/YYYY): શાખા અથવા સ્થાપનાનો ઓળખકાર—
/0001મથાળું કાર્યાલય સૂચવે છે, જ્યારે/0002,/0003શાખાના સ્થળો દર્શાવે છે - અંતિમ 2 અંક (-ZZ): વેઇટેડ એલ્ગોરિધમ દ્વારા ગણવામાં આવતા ચકાસણી અંક
ઉદાહરણ: 12.345.678/0001-95
શાખા ઓળખકાર વિશે રસપ્રદ વાત: જ્યારે કોઈ કંપની બહુ સ્થળો ઉઘાડે, તો દરેક સ્થળને પ્રથમ 8 અંક સમાન રહે પરંતુ અલગ શાખા નંબર મળે. તેથી જો કોઈ રિટેલ chain ની 50 દુકાનો હોય, તો તેમના CNPJ /0001 થી /0050 સુધી પૂરા થશે, પરંતુ બધાનો મૂળ નંબર સમાન રહેશે. આ રીતે સરળતાથી ઓળખી શકાય કે વિવિધ CNPJ એક જ મૂળ સંસ્થાના છે.
ચકાસણી અંક અનિયમિત નથી—તેઓ ચોક્કસ વેઇટ અનુક્રમ સાથે મૉડ્યુલસ-11 એલ્ગોરિધમ વડે ગણવામાં આવે છે. બ્રાઝિલિયન વહીવટી દસ્તાવેજોમાં આ પ્રકારનું ડિઝાઇન, વૈધ નંબર બનાવવા અથવા ટાઇપિંગ ભૂલથી વૈધ નંબર બનાવવાને ગણિતીય રીતે મુશ્કેલ બનાવે છે.
CNPJ ચકાસણી કઈ રીતે કામ કરે
ચકાસણી એલ્ગોરિધમ વેઇટેડ મોડ્યુલસ-11 ગણતરી વાપરે છે. અહીં તેની તર્કશક્તિ છે:
પ્રથમ ચેક અંક ગણતરી
- પ્રથમ 12 અંકો લો અને દરેકને વજન સાથે ગુણાકાર કરો:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - બધા ગુણાકારોનો સરવાળો કરો
- સરવાળાને 11 વડે ભાગો અને બાકી મેળવો
- જો બાકી < 2 હોય, તો ચેક અંક 0 છે; અન્યથા તે
11 - બાકીછે
બીજો ચેક અંક ગણતરી
- પ્રથમ 13 અંકો (પ્રથમ ચેક અંક સહિત) લો અને વજન સાથે ગુણાકાર કરો:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - બધા ગુણાકારોનો સરવાળો કરો
- 11 વડે ભાગો અને બાકી મેળવો
- જો બાકી < 2 હોય, તો ચેક અંક 0 છે; અન્યથા તે
11 - બાકીછે
આ પદ્ધતિ કેમ કામ કરે: વેઇટેડ ગુણાકાર પ્રણાલી 12 મૂળ અંકો અને પરિણામી ચેક અંકો વચ્ચે અનન્ય સંબંધ બનાવે છે. મૂળ સંખ્યામાં એક પણ અંક બદલાય તો અલગ ચેક અંકો મળે, જે સામાન્ય લેખન ભૂલો જેવી કે બે અંકોનું ફેરવવું (ટાઇપ કરવું 12.345 ને બદલે 12.354) પકડી પાડે છે.
વ્યાવહારિક નોંધ: CNPJs જેમાં બધા અંક સરખા (જેમ કે 11.111.111/1111-11) સ્વયંચાલિત રીતે અમાન્ય ગણાય છે, પછી ભલે તે ગણિતીય ચકાસણી પાસ કરે. Receita Federal આ પેટર્ન્સને સ્પષ્ટ રૂપે બાકાત રાખે છે ત્રિવિયલ કેસો ટાળવા માટે.
CNPJ જનરેટર અને વેલિડેટર કેવી રીતે વાપરવો
ટેસ્ટ CNPJs જનરેટ કરવા
તમારા ટેસ્ટ ડેટાબેઝ માટે માન્ય CNPJ જરૂર છે? અહીં કેવી રીતે:
- "CNPJ જનરેટ કરો" પર ક્લિક કરો
- ટૂલ તરત જ ગણિતીય રીતે માન્ય નંબર બનાવે છે
- તેને ક્લિપબોર્ડ પર મેળવવા "કૉપી" પર ક્લિક કરો
- તમારા ટેસ્ટ ફૉર્મ, ડેટાબેઝ સીડ્સ, અથવા યુનિટ ટેસ્ટ્સમાં પેસ્ટ કરો
દરેક જનરેટ કરેલ CNPJ બધા ગણિતીય ચકાસણી પાસ કરે છે પરંતુ Receita Federal સાથે નોંધાયેલ નથી. આનો અર્થ એ છે કે તમે તેને વિકાસ દરમિયાન સ્વતંત્ર રૂપે વાપરી શકો છો.
CNPJ નંબરોની ચકાસણી
CNPJ ની ચકાસણી કરવી જરૂરી છે? વેલિડેટર તેને સંભાળે છે:
- ઇનપુટ ક્ષેત્રમાં CNPJ પેસ્ટ કરો અથવા ટાઇપ કરો
- ફૉર્મેટિંગ વિશે ચિંતા કરશો નહીં—તે
12345678000195અથવા12.345.678/0001-95સાથે કાર્ય કરે છે - "ચકાસો" પર ક્લિક કરો
- ચેક અંકો સાચા છે કે નહીં તેની તરત જ પ્રતિક્રિયા મેળવો
વેલિડેટર ચકાસે છે: યોગ્ય લંબાઈ (14 અંક), સાચી ચેક અંક ગણતરીઓ, અને બધા સમાન-અંકોના અમાન્ય પેટર્ન્સનો અપવાદ. તે ચકાસતું નથી: CNPJ સરકારી ડેટાબેઝમાં નોંધાયેલ છે—તે Receita Federal ને સીધા પ્રાપ્ત કરવાની જરૂર છે.
CNPJ જનરેટર અને વેલિડેટર માટે વાસ્તવિક દુનિયાના ઉપયોગ કેસ
સૉફ્ટવેર વિકાસ અને પરીક્ષણ
ડેટાબેઝ સીડિંગ: જ્યારે રિયાલિસ્ટિક ટેસ્ટ ડેટા સાથે સ્ટેજિંગ environment સેટ કરવી હોય, ત્યારે તમને કેટલાક દર્જનથી લઈને સંખ્યાબંધ માન્ય CNPJs ની જરૂર પડે. મેન્યુઅલ રીતે તેમને બનાવવું કઠિન છે, અને વાસ્તવિક કંપની ઓળખકર્તાઓનો ઉપયોગ ગોપનીયતા સંબંધી ચિંતાઓ ઊભી કરે. જનરેટ કરેલ CNPJs બંને સમસ્યાઓનું સમાધાન કરે છે.
યુનિટ ટેસ્ટિંગ edge cases: તમારી વેલિડેશન ફંક્શનને 00.000.000/0000-00 ને નકારવું જોઈએ પરંતુ 11.222.333/0001-81 ને સ્વીકારવું જોઈએ. જનરેટર હોવાથી તમે ઝડપથી બંને માન્ય અને જાણીજોઈને અમાન્ય ટેસ્ટ કેસ બનાવી શકો છો જેથી તમારી તર્કશક્તિ boundary conditions ને યોગ્ય રીતે સંભાળી શકે.
QA regression testing: જ્યારે નોંધણી ફૉર્મ્સ અથવા B2B ચેકઆઉટ પ્રવાહનું પરીક્ષણ કરવામાં આવે, ત્યારે QA ટીમને દરેક રન માટે નવા ટેસ્ટ ડેટાની જરૂર પડે. સામાન્ય સમસ્યા: ટેસ્ટ environments ને બાર-પાંચ CNPJs થી ભરી દેવામાં આવે, જે bug ને છુપાવી દે.
API integration testing: જો તમે PagSeguro અથવા Mercado Pago જેવા બ્રાઝિલિયન પેમેન્ટ પ્રોસેસસર્સ સાથે integration કરી રહ્યા છો, તેમના sandbox environments ને માન્ય CNPJ ફૉર્મેટિંગની જરૂર પડે. ગણતરી સાચી હોવી જ જોઈએ.
ડેટા પ્રોસેસિંગ અને વેલિડેશન
આયાત કરેલ ડેટાને સાફ કરવું: તમને 10,000 બ્રાઝિલિયન કંપની રેકૉર્ડ્સ સાથે CSV મળ્યો છે. પ્રોસેસ કરતાં પહેલાં, તમારે ઓળખવાનું છે કે કયા CNPJs ખરાબ બનાવેલા છે. વેલિડેટર મારફત ચકાસવાથી ટાઇપો, ટ્રંકેશન, અથવા ખોટી ચેક digits ધરાવતા entries ને ચિહ્નિત કરી શકાય.
ક્લાયન્ટ-સાઇડ ફૉર્મ વેલિડેશન: ફૉર્મ સબમિટ કરતાં પહેલાં અમાન્ય CNPJs ને પકડવાથી વપરાશકર્તા અનુભવ સુધરે. કોઈ પણ 20-ફील્ડ નોંધણી ફૉર્મ ભરીને ત્યાર પછી error મેળવવા નથી ઇચ્છતું.
વિશ્લેષણ માટે ડેટા anonymization: જ્યારે ઉત્પાદન ડેટાને વિશ્લેષણ ટીમ અથવા બાહ્ય ભાગીદારો સાથે share કરવાનો હોય, ત્યારે વાસ્તવિક CNPJs ને માન્ય પરંતુ નકली CNPJs થી બદલવાની જરૂર પડે.
આંતરરાષ્ટ્રીય વ્યાપાર પ્રક્રિયાઓ
બ્રાઝિલિયન આવશ્યકતાઓ સમજવી: જો તમે બ્રાઝિલિયન બજારમાં વિસ્તાર કરી રહ્યા છો, તો તમે કરાર, ઇન્વૉઇસ, અને શિપિંગ દસ્તાવેજોમાં CNPJ આવશ્યકતાઓનો સામનો કરશો. ફૉર્મેટ સાથે પ્રયોગ કરવાનું સાધન તમને સમજવામાં મદદ કરશે.
ત્રીજા પક્ષ integration specs: જ્યારે બ્રાઝિલિયન SaaS પ્રદાતાઓની API દસ્તાવેજીકરણ ની સમીક્ષા કરો, ત્યારે payload ઉદાહરણોમાં CNPJ fields જોવા મળશે. માન્ય ટેસ્ટ values જનરેટ કરવાથી integration ને ઝડપથી prototype કરી શકાય.
বৈকল্পিক CNPJ যাচাইকরণ পদ্ধতিসমূহ
প্রোগ্রামিং লাইব্রেরি
যদি আপনি আপনার অ্যাপ্লিকেশন লজিকে CNPJ যাচাইকরণ প্রয়োজন হয়, এই লাইব্রেরিগুলি চেক ডিজিট অ্যালগরিদম বাস্তবায়ন করে:
- JavaScript/Node.js:
cpf-cnpj-validator(১৩০ক+ সাপ্তাহিক ডাউনলোড),validator.js(ব্রাজিলীয় নথি সমর্থন করে) - Python:
validate-docbr(CPF, CNPJ এবং অন্যান্য ব্রাজিলীয় নথি যাচাই করে),python-cnpj - PHP:
respect/validation(CNPJ নিয়ম অন্তর্ভুক্ত),brazilianutils - Java:
caelum-stella(সম্পূর্ণ ব্রাজিলীয় নথি যাচাইকরণ) - Ruby:
cpf_cnpjজেম
এই লাইব্রেরিগুলি সাধারণত বিভিন্ন ব্রাজিলীয় নথি প্রকারের (CPF, CNPJ ইত্যাদি) ফর্ম্যাটিং, পার্সিং এবং যাচাইকরণ পরিচালনা করে।
অফিসিয়াল যাচাইকরণ API
উৎপাদন সিস্টেমের জন্য যা প্রকৃত ব্যবসায়িক নিবন্ধন যাচাই করতে চায়:
- Receita Federal পাবলিক সার্ভিস: Consulta CNPJ API অফিসিয়াল ডাটাবেসের বিপরীতে যাচাইকরণ অনুমতি দেয় (উপযুক্ত অনুমোদন এবং হার সীমাবদ্ধতা প্রয়োজন)
- তৃতীয়-পক্ষ তথ্য সরবরাহকারী: Serasa Experian এবং Boa Vista SCPC এর মতো পরিষেবাগুলি বাণিজ্যিক API সরবরাহ করে যা কোম্পানির বিশদ, নিবন্ধন স্থিতি এবং ক্রেডিট তথ্য ফেরত দেয়
দ্রষ্টব্য: এই পরিষেবাগুলি প্রকৃত নিবন্ধন যাচাই করে, শুধুমাত্র গাণিতিক বৈধতা নয়। আপনার যথাযথ অনুমোদন প্রয়োজন হবে এবং উৎপাদন ব্যবহারের জন্য API খরচ প্রত্যাশা করা উচিত।
কখন কোন পদ্ধতি ব্যবহার করবেন
এই ব্রাউজার টুল ব্যবহার করুন যখন: আপনার নির্ভরতা ইনস্টল ছাড়া দ্রুত যাচাইকরণ, ডেমোর জন্য পরীক্ষা তথ্য তৈরি, বা CNPJ যাচাইকরণ কীভাবে কাজ করে তা শিখতে।
লাইব্রেরি ব্যবহার করুন যখন: আপনি একটি অ্যাপ্লিকেশন তৈরি করছেন যার ক্লায়েন্ট-সাইড বা সার্ভার-সাইড ফর্ম প্রক্রিয়াকরণের অংশ হিসাবে যাচাইকরণ প্রয়োজন।
অফিসিয়াল API ব্যবহার করুন যখন: আপনার CNPJ টি একটি বাস্তব, সক্রিয় ব্যবসায়িক সত্তা হিসাবে যাচাই করতে হবে বর্তমান নিবন্ধন স্থিতি সহ।
તાંત્રિક અમલીકરણ વિગતો
આ સાધન તમારા બ્રાઉઝરમાં JavaScript નો ઉપયોગ કરીને પૂર્ણ રૂપે ચાલે છે - કોઈ સર્વર રિક્વેસ્ટ, કોઈ ડેટા તમારી મશીન છોડતો નથી. અહીં એ કઈ રીતે કાર્ય કરે છે, જેનો કોડ તમે તમારી પોતાની પ્રોજેક્ટ્સ માટે અનુકૂળ કરી શકો છો:
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}
29CNPJ ચકાસણી એલ્ગોરિધમ
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}
24CNPJ ફૉર્મેટિંગ ફંક્શન
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 માં ઉદાહરણો છે:
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 # પ્રથમ 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
55Java અમલીકરણ
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 રીસીટા ફેડરલ સાથે નોંધાયેલ છે કે નહીં, તે સક્રિય કંપનીનું છે કે નહીં, અથવા તે તમે અપેક્ષા રાખતા વ્યવસાયનું નામ છે કે નહીં.
તેને વ્યાકરણ ચકાસણી versus હકીકત ચકાસણી જેવું વિચારો. આ સાધન તમને કહે છે કે CNPJ ગણિતીય નિયમો મુજબ "વ્યાકરણિક રીતે" સાચો છે, પરંતુ તે કહી શકતું નથી કે નંબર વાસ્તવિક, સક્રિય વ્યાવસાયિક સંસ્થા સાથે મેળ ખાય છે.
કાનૂની અને નૈતિક ઉપયોગ
ઉત્પન્ન CNPJ ફક્ત પરીક્ષણ અને વિકાસ માટે છે. તેઓ ગણિતીય રીતે વૈધ છે પરંતુ બ્રાઝીલિયન સત્તાવાળાઓ સાથે નોંધાયેલ નથી, જેનો અર્થ:
- ✅ માટે સુરક્ષિત ઉપયોગ: ટેસ્ટ ડેટાબેઝ ભરવા, એકમ પરીક્ષણ ચકાસણી તર્ક, QA environment, દસ્તાવેજીકરણમાં કોડ ઉદાહરણો
- ❌ ક્યારેય ઉપયોગ ન કરવો: કર ફાઇલિંગ, વ્યાવસાયિક નોંધણી, કરાર પર સહી, વાસ્તવિક વ્યવહાર પ્રક્રિયા, અથવા વ્યાવસાયિક ઓળખનું ખોટું પ્રતિનિધિત્વ
ઔપચારિક હેતુઓ માટે ખોટા CNPJ નો ઉપયોગ કરવો ફક્ત અનૈતિક જ નથી—તે બ્રાઝીલિયન કાયદા હેઠળ ગેરકાયદેસર છે અને છેતરપિંડીના આરોપોમાં પરિણમી શકે છે.
જાણવા યોગ્ય તાંત્રિક મર્યાદાઓ
યાદૃચ્છિક ઉત્પન્ન કરવાનું પરિણામ: સાધન પ્રથમ 12 અંકો યાદૃચ્છિક રીતે ઉત્પન્ન કરે છે. રીસીટા ફેડરલ દ્વારા જારી કરાયેલ વાસ્તવિક CNPJ નોંધણી તારીખ, પ્રાદેશિક કચેરી, અને વ્યાવસાયિક પ્રકાર સાથે સંબંધિત આંતરિક પેટર્ન અનુસરે છે. ઉત્પન્ન નંબરો આ પેટર્ન સાથે મેળ ખાશે નહીં, જે જટિલ ચકાસણી સિસ્ટમ ચિહ્નિત કરી શકે.
કોઈ સાંકેતિક ચકાસણી નથી: વૈધ CNPJ ફૉર્મેટનો અર્થ વૈધ વ્યાવસાયિક સંદર્ભ નથી. ઉદાહરણ તરીકે, સરકારી સંસ્થાઓ પાસે ચોક્કસ CNPJ રેન્જ છે—આ જનરેટર આકસ્મિક રીતે એક બનાઈ શકે, પરંતુ તે અર્થપૂર્ણ નહીં હોય.
ફૉર્મેટ સંચાલન: ચકાસનાર વિવિધ ઇનપુટ ફૉર્મેટ્સ સ્વીકારે છે (12345678000195, 12.345.678/0001-95), પરંતુ કેટલીક જૂની સિસ્ટમ્સ ચોક્કસ ફૉર્મેટિંગ અપેક્ષા રાખે છે. હંમેશા તમારી ચોક્કસ ઇન્ટીગ્રેશન જરૂરિયાતો સાથે પરીક્ષણ કરો.
ગોપનીયતા અને સુરક્ષા
બધી પ્રક્રિયા ક્લાયન્ટ-સાઇડ તમારા બ્રાઉઝરમાં થાય છે. તમે ઉત્પન્ન અથવા ચકાસો તેવા CNPJ સર્વર પર મોકલવામાં આવતા નથી, લૉગ કરવામાં આવતા નથી, અથવા સંગ્રહિત કરવામાં આવતા નથી. સાધન કોઈ વ્યક્તિગત માહિતી વિનંતી, સંચાલન, અથવા પ્રક્રિયા કરતું નથી.
CNPJ ચકાસણી વિશે વારંવાર પૂછાતા પ્રશ્નો
CNPJ ચકાસણી અને ખરાઈ વચ્ચે શું તફાવત છે?
ચકાસણી તપાસે છે કે નંબર ગણિતીય રીતે સાચો છે—યોગ્ય ફૉર્મેટ, સાચી ચેક અંકો, કોઈ અમાન્ય પેટર્ન નથી. આ સાધન ચકાસણી કરે છે.
ખરાઈ તપાસે છે કે CNPJ Receita Federal ડેટાबેઝમાં વાસ્તવિક કંપનીમાં નોંધાયેલ છે. ખરાઈ માટે સરકારી ડેટાबેઝને પૂછવાની જરૂર છે અને આ સાધન તે કરતું નથી.
તમારી પાસે એક સંપૂર્ણ માન્ય CNPJ હઈ શકે છે જે ખરાઈ કરાયેલ નથી (જેમ કે આ સાધન જનરેટ કરે છે), અથવા એક અમાન્ય CNPJ જે વાસ્તવિક કંપનીને સંબંધિત છે (કારણ કે કોઈએ તેને દાખલ કરતી વખતે ટાઈપ ભૂલ કરી).
શું હું ઉત્પાદન પરીક્ષણ માટે જનરેટ કરેલ CNPJs નો ઉપયોગ કરી શકું?
તે પર આધાર રાખે છે કે તમે "ઉત્પાદન પરીક્ષણ" વડે શું સમજો છો. તેઓ સ્ટેજિંગ environment, લોડ પરીક્ષણ, અને પ્રી-લૉન્ચ QA માટે ઠીક છે. પરંતુ જો "ઉત્પાદન પરીક્ષણ" નો અર્થ વાસ્તવિક વ્યવહારો, વાસ્તવિક સરકારી APIs, અથવા વાસ્તવિક નાણાકીય સિસ્ટમ્સ સાથે પરીક્ષણ—તો ના, તમને વાસ્તવિક નોંધાયેલ CNPJs ની જરૂર છે.
વધુ સુરક્ષિત megapproach: જનરેટ કરેલ CNPJs ને અલગ પરીક્ષણ environment માં ઉપયોગ કરો, પછી ઉત્પાદન integrations પરીક્ષણ કરતી વખતે થોડા વાસ્તવિક પરીક્ષણ કંપની CNPJs (જે તમે નિયંત્રિત કરો) પર સ્viતચ કરો.
(The translation continues in the same manner for the entire document)
સંદર્ભો અને વધારાના સંસાધનો
અધિકૃત સરકારી સ્રોતો
- રેસીટા ફેડરલ ડો બ્રાઝિલ - અધિકૃત પોર્ટલ - બ્રાઝિલિયન ફેડરલ રેવન્યુ સર્વિસનું અધિકૃત વેબસાઇટ CNPJ નોંધણી અને ચકાસણી સેવાઓ
- કન્સલ્ટા પુબ્લિકા CNPJ - જાહેર CNPJ શોધ - CNPJ નોંધણી સ્થિતિ ચકાસવા માટે અધિકૃત સરકારી સેવા
- નૉર્મેટિવ ઇન્સ્ટ્રક્શન RFB No. 1863/2018 - બ્રાઝિલમાં CNPJ નોંધણી અને ઉપયોગ શાસન કરતા કાયદાકીય નિયમો
તાંત્રિક ધોરણો અને દસ્તાવેજીકરણ
- મૉડ્યુલર ગણિત એલ્ગોરિધમ - ચેક અંક ગણતરી મૉડ્યુલો 11 ગણિતનો ઉપયોગ કરે, માન્યતા અંકો માટે પ્રમાણભૂત અભિગમ
- ISO/IEC 7064 - ચેક અંક સિસ્ટમ માટે આંતરરાષ્ટ્રીય ધોરણ જે બ્રાઝિલિયન દસ્તાવેજ માન્યતા ડિઝાઇનને પ્રભાવિત કરે
- બ્રાઝિલિયન સિવિલ કોડ (કાયદો No. 10.406/2002) - CNPJ નોંધણી આવશ્યક વ્યાવસાયિક સંસ્થા વર્ગીકરણ નક્કી કરતો કાયદાકીય માળખું
ડેવલપર સંસાધનો
- NPM પેકેજ રજિસ્ટ્રી - npmjs.com - JavaScript લાઇબ્રેરીઓ, જેમાં બ્રાઝિલિયન દસ્તાવેજ ચકાસનારાઓ
- PyPI (Python પેકેજ ઇન્ડેક્સ) - pypi.org - CNPJ ચકાસણી અને બ્રાઝિલિયન દસ્તાવેજ પ્રક્રિયા માટે Python લાઇબ્રેરીઓ
- GitHub - બહુ પ્રોગ્રામિંગ ભાષાઓમાં CNPJ ચકાસણીના ઓપન-સોર્સ અમલીકરણો
CNPJ જનરેટ કરવાનું અને ચકાસવાનું શરૂ કરો
તમે ભારતીય ઈ-કૉમર્સ પ્લેટફૉર્મ બનાઈ રહ્યા છો, મર્કાડો પાગો સાથે પેમેન્ટ ઇન્ટીગ્રેશન્સ ટેસ્ટ કરી રહ્યા છો, અથવા માત્ર CNPJ ચકાસણી કેવી રીતે કામ કરે છે તે સમજવા માંગી રહ્યા છો, આ ટૂલ તમને તરત જ જનરેટ અને ચકાસણી કરવાની ક્ષમતા આપે છે.
કોઈ ઇન્સ્ટૉલેશન, કોઈ API કી, કોઈ જટિલ સેટઅપ નહીં. માત્ર તમારો બ્રાઉઝર ખોલો અને માન્ય બ્રાઝીલિયન વ્યાવસાયિક ઓળખકર્તાઓ સાથે કામ કરવાનું શરૂ કરો.