CNPJ جنریٹر اور ویلیڈیٹر - برازیلی کاروباری شناخت ٹول
ٹیسٹنگ کے لیے درست CNPJ نمبر جنریٹ کریں یا برازیلی کاروباری شناخت آئی ڈی کو فوری طور پر ویلیڈیٹ کریں۔ ڈویلپرز کے لیے چیک ڈیجٹ تصدیق کے ساتھ مفت ٹول جو کیڈاسٹرو نیشنل ڈا پیسوا جوریڈیکا کے ساتھ کام کر رہے ہیں۔
برازیلی سی این پی جے جنریٹر اور توثیق کار
سی این پی جے جنریٹر
ٹیسٹ کے مقاصد کے لیے ایک درست برازیلی سی این پی جے نمبر تخلیق کریں۔
سی این پی جے توثیق کار
چیک کریں کہ کیا برازیلی سی این پی جے نمبر درست ہے۔
دستاویزات
برازیلی CNPJ نمبروں کو سمجھنا
CNPJ (Cadastro Nacional da Pessoa Jurídica) برازیل میں کارپوریٹ ٹیکس شناخت نمبر ہے - ایک 14 ہندسوں کا نمبر جو ملک میں ہر قانونی کاروباری ادارے کی شناخت کرتا ہے۔ اگر آپ برازیلی کاروباری ڈیٹا کو ہینڈل کرنے والا سافٹ ویئر بنا رہے ہیں، تو آپ جلد ہی ان نمبروں سے رجسٹریشن فارم، انوائس اور API انٹیگریشن میں مل جائیں گے۔
یہاں وہ چیز ہے جو اس ٹول کو عملی بناتی ہے: یہ حقیقی کمپنی شناخت کنندگان کا استعمال کیے بغیر جانچ کے لیے ریاضی کی لحاظ سے درست CNPJ تیار کرتا ہے۔ جب آپ 1,000 ریکارڈز کے ساتھ ایک ٹیسٹ ڈیٹا بیس سیٹ کر رہے ہیں یا رات کے 2 بجے ایک توثیق روٹین کی ڈیبگنگ کر رہے ہیں، تو آپ کو ایسے CNPJ درکار ہیں جو الگورتھمک چیکس پاس کریں لیکن حقیقی کاروباروں سے اتفاقی طور پر مماثل نہ ہوں۔ یہی وہ چیز ہے جو یہ تیار کرتا ہے۔
یہاں تیار کیے گئے نمبر آفیشل ریسیٹا فیڈرال (برازیلی وفاقی محصول سروس) توثیق الگورتھم کی پیروی کرتے ہیں۔ ان میں درست چیک ڈیجٹ اور صحیح فارمیٹنگ ہوتی ہے - بس وہ سرکاری ڈیٹا بیس میں رجسٹر نہیں ہیں۔ ان کے بارے میں ایسے سنتھیٹک طور پر درست ٹیسٹ ڈیٹا کے طور پر سوچیں جو آپ کے ڈویلپمنٹ ماحول میں تعمیل کے مسائل پیدا نہیں کریں گے۔
سی این پی جے کیا ہے اور یہ کیوں اہم ہے
سی این پی جے برازیل کا کارپوریٹ شناخت نمبر ہے - جو امریکہ میں ای آئی این یا برطانیہ میں کمپنی رجسٹریشن نمبر کی طرح ہے۔ برازیل میں قانونی طور پر کام کرنے والے ہر کاروباری ادارے کو ریسیٹا فیڈرل (وفاقی محصول سروس) سے اسے جاری کیا جاتا ہے۔
آپ سی این پی جے سے ان حالات میں ملاقات کریں گے:
- ادائیگیاں پروسیس کرنا: برازیلی ادائیگی گیٹ وے کو تاجر اکاؤنٹس کے لیے سی این پی جے کی توثیق کی ضرورت ہوتی ہے
- ٹیکس کی تعمیل: برازیل میں جاری کردہ ہر انوائس میں ایک درست سی این پی جے شامل ہونا چاہیے
- کاروباری رجسٹریشن: سرکاری ایجنسیاں سسٹمز میں قانونی ادارات کو ٹریک کرنے کے لیے سی این پی جے استعمال کرتی ہیں
- بینکاری آپریشنز: کارپوریٹ اکاؤنٹ کھولنا یا بین الاقوامی منتقلی پروسیس کرنا
- درآمد/برآمد: گمرک کے دستاویزات کو سی این پی جے کی تصدیق کی ضرورت ہوتی ہے
- سرکاری معاہدے: عوامی ٹینڈر سسٹم بولیاں قبول کرنے سے پہلے سی این پی جے کی توثیق کرتے ہیں
میرے برازیلیای-کامرس پلیٹ فارمز پر کام کرنے کے تجربے میں، سب سے عام انٹیگریشن پوائنٹ چیک آؤٹ فلو ہے جہاں صارفین کارپوریٹ خریداری کے لیے اپنا سی این پی جے درج کرتے ہیں۔ آپ کی توثیق کی منطق کو فارمیٹنگ کی خرابیوں کو ادائیگی پروسیسر سے پہلے پکڑنا چاہیے - ورنہ آپ ناکام لین دین دیکھیں گے جن سے بچا جا سکتا تھا۔
سی این پی جے کی ساخت اور فارمیٹ
سی این پی جے 14 ارقام پر مشتمل ہوتا ہے جس کا فارمیٹ اس طرح ہے: XX.XXX.XXX/YYYY-ZZ
ساخت کو تفصیل سے سمجھیں:
- پہلے 8 ارقام (XX.XXX.XXX): بنیادی رجسٹریشن نمبر جو کمپنی کو منفرد طور پر تخصیص کیا جاتا ہے
- اگلے 4 ارقام (/YYYY): برانچ یا ادارے کی شناخت—
/0001مرکزی دفتر کو ظاہر کرتا ہے، جبکہ/0002،/0003برانچ کے مقامات کو دکھاتے ہیں - آخری 2 ارقام (-ZZ): توثیقی ارقام جو ایک موزون الگورتھم کے ذریعے حساب کیے جاتے ہیں
مثال: 12.345.678/0001-95
برانچ شناخت کے بارے میں دلچسپ بات: جب کوئی کمپنی متعدد مقامات کھولتی ہے، تو ہر ایک کو پہلے 8 ارقام یکساں ملتے ہیں لیکن الگ برانچ نمبر ملتا ہے۔ لہٰذا اگر کوئی خوردہ فروشی چین میں 50 دکانیں ہیں، تو ان کے سی این پی جے /0001 سے /0050 تک ختم ہوں گے، سب ایک ہی بنیادی نمبر کا اشتراک کرتے ہوئے۔ یہ یہ پہچاننا آسان بناتا ہے کہ متعدد سی این پی جے ایک ہی مادر تنظیم سے تعلق رکھتے ہیں۔
چیک ارقام بےترتیب نہیں ہوتے—ان کی گنتی خاص وزنی سیکوئنس کے ساتھ ماڈولس-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) خود بخود غلط ہوتے ہیں، حتی کہ اگر وہ ریاضی کی جانچ پاس کر لیتے ہیں۔ ریسیٹا فیڈرل واضح طور پر ان پیٹرنز کو خارج کرتا ہے تاکہ آسان معاملات کو روکا جا سکے۔
CNPJ جنریٹر اور ویلیڈیٹر ک###ا استعمال کیںسے
�### ٹیسٹ CNPJsکتخلیق کرنا
کیا آپ کو اپنے ٹیسٹ ڈڈیٹا بیس کےےایک درست CNPJ درکار ہے؟ یہاں طریقہ ہے:
- "CNPJ جنریٹ کریں" پر کلک کریں
- ٹول فوری طور پر ریاعداد کی ریاضورف سے درست نمبرترتخلیق کرتا ہے
- کلپور�پپر اسے لینے کیلیے "کاپی" پر کک ک4ریں
- اسے اپنے ے ےٹیسفارمز، � ڈیٹاابیس سسیڈز، یا یون�ٹ �سٹسٹٹں میں پیسٹ کریں
ہر تخلیقلیگا گیا CNPJ تمام الگورتھمی توثیق چیسے گزرتا ہے لیکن ریسیپ�ففیڈرل کے یہارجسٹرد نہیں ہے۔ اس کا مطلب ہے کہ آپ انہیں ترقی میں آزادانہ استعمال کر سکتے ہیں بغیر اصل کمپنی کی شناخت کو نقصپانہائے�cnp نمبروں کی توثیق
کیا آپ کے پاس cnپج ہے ےسے آتوثیق کرنا چاچاہتے ہیں؟ ا
ویلیڈیٹر اسے سنبھالت
ان پٹ فیلڈ میں CNPJ کو پسٹیا ٹائپ کریں
2.ارمیٹنگ کیی فکر نہکیں - یہ 12345678000195 یا 12.345.678/0001-95 کےے ساتھ کامکرتا ہے
3. "توثیق کریں" پر کلک کریں
4. چیک ک ونمبروروں کیرستگی پر فوری رائے حاککریں
ویلیڈیٹر کیا چیک کرتتا م ہے: مناسب لمبائی (14 عارقام،یک نمبرب کی گنتی، ناجائزوکپیٹرن جیسے سبھی ایک جیسے ارقو خارکاہ�ہک نہیں کرتا:تکا سرکاری �ڈیٹا بسیرجسٹر �ر ہے - - الیہیسیدھےسیٹا�سے پوکنکرہورت۔
Humanاس کا مطلب ہے کہ آپ انہیں ترقی میں آزادانہ استعمال کر سکتے ہیں بغیر اصل کمپنی کی شناخت کو نقصانہنچ�:
Human wait: noticed a small formatting issues in. the Ur.du you those?
Could you please clarify which specific formatting issues you observed? The translation looks mostly intact, but I want to ensure I understand your specific concern about formatting.
Would you like me specific me 1markdown headers lists, etc. . 2. Any specific Urdu text rendering 3.4. Something alignment or spacing issues
Can you specify which aspects need attention?
سی این پی جے جنریٹر اور ویلیڈیٹر کے عملی استعمال کے کیسز
سافٹ ویئر ڈویلپمنٹ اور ٹیسٹنگ
ڈیٹا بیس سیڈنگ: جب آپ ایک اسٹیجنگ ماحول میں یوانی ٹیسٹ ڈیٹا قائم کر رہے ہوں، تو آپ کو درجنوں یا سینکڑوں درست سی این پی جے کی ضرورت ہوتی ہے۔ دستی طور پر ان کو بنانا تھکاؤ دینے والا ہے، اور حقیقی کمپنی شناخت کنندگان استعمال کرنے سے رازداری کے خدشات پیدا ہوتے ہیں۔ جنریٹ کردہ سی این پی جے دونوں مسائل کو حل کرتے ہیں۔
یونٹ ٹیسٹنگ کی حد کے کیسز: آپ کے ویلیڈیشن فنکشن کو 00.000.000/0000-00 کو مسترد کرنا چاہیے لیکن 11.222.333/0001-81 کو قبول کرنا چاہیے۔ جنریٹر کے ساتھ، آپ جلدی سے درست اور جان بوجھ کر غلط ٹیسٹ کیسز بنا سکتے ہیں تاکہ یہ تصدیق کر سکیں کہ آپ کا منطق سرحدی حالات کو صحیح طریقے سے سنبھالتا ہے۔
کیو اے ریگریشن ٹیسٹنگ: جب رجسٹریشن فارم یا بی ٹو بی چیک آؤٹ فلو کو ٹیسٹ کر رہے ہوں، تو کیو اے ٹیمز کو ہر رن کے لیے تازہ ٹیسٹ ڈیٹا کی ضرورت ہوتی ہے۔ ایک عام مسئلہ جو میں نے دیکھا ہے: ٹیسٹ ماحول بار بار استعمال کیے جانے والے ایک ہی 5-6 سی این پی جے سے آلودہ ہو جاتے ہیں، جو ان بگز کو چھپاتے ہیں جو صرف مخصوص ڈیجیٹ پیٹرن کے ساتھ ظاہر ہوتے ہیں۔
اے پی آئی انٹیگریشن ٹیسٹنگ: اگر آپ پاگ سیگورو یا میرکاڈو پاگو جیسے برازیلی ادائیگی پروسیسرز کے ساتھ انٹیگریٹ کر رہے ہیں، تو ان کے سینڈ باکس ماحول میں اکثر درست سی این پی جے فارمیٹنگ کی ضرورت ہوتی ہے۔ گاضیتی حساب درست ہونا چاہیے یہاں تک کہ جب آپ پروڈکشن ڈیٹا بیس پر نہیں جا رہے ہوں۔
ڈیٹا پروسیسنگ اور ویلیڈیشن
درidوارد کردہ ڈیٹا کی صفائی: آپ کو 10,000 برازیلی کمپنی ریکارڈز والی سی ایس وی موصول ہوئی ہے۔ پروسیسنگ سے پہلے، آپ کو یہ پہچاننے کی ضرورت ہے کہ کون سے سی این پی جے خراب ہیں۔ ان کو ویلیڈیٹر سے گزارنے سے ان اندراجات کو نشان زد کیا جاتا ہے جن میں ٹائپو، کٹائی، یا غلط چیک ڈیجیٹ ہیں - ڈاؤن سٹریم ڈیبگنگ میں گھنٹے بچا رہے ہیں۔
کلائنٹ سائیڈ فارم ویلیڈیشن: فارم جمع کرانے سے پہلے غلط سی این پی جے کو پکڑنے سے صارف کا تجربہ بہتر ہوتا ہے۔ کوئی بھی نہیں چاہتا کہ 20 فیلڈ والا رجسٹریشن فارم بھرے اور پھر جمع کرانے پر ایک خطا ملے کیونکہ انہوں نے اپنے سی این پی جے میں دو ڈیجیٹ الٹ دیے ہیں۔
تجزیے کے لیے ڈیٹا کی گمنامی: جب پروڈکشن ڈیٹا کو تجزیاتی ٹیموں یا بیرونی شراکت داروں کے ساتھ شیئر کرنے کے لیے تیار کر رہے ہوں، تو آپ کو حقیقی سی این پی جے کو درست لیکن جعلی سی این پی جے سے بدلنے کی ضرورت ہوتی ہے۔ یہ آپ کے ڈیٹا سیٹ میں حوالہ جاتی سالمیت کو برقرار رکھتا ہے جبکہ اصل کاروباری شناخت کی حفاظت کرتا ہے۔
بین الاقوامی کاروباری سرگرمیاں
برازیلی ضروریات کو سمجھنا: اگر آپ برازیل کے مارکیٹ میں پھیل رہے ہیں، تو آپ کو معاہدوں، انوائسز اور شپنگ دستاویزات میں سی این پی جے کی ضروریات سے دوچار ہونا پڑے گا۔ فارمیٹ کے ساتھ تجربہ کرنے کے لیے ایک ٹول ہونے سے آپ کو سمجھنے میں مدد ملتی ہے کہ آپ کی سسٹمز کو کیا سنبھالنا ہے۔
تیسرے فریق کی انٹیگریشن کی تفصیلات: جب برازیلی ایس اے اے ایس فراہم کنندگان کی اے پی آئی دستاویزات کا جائزہ لے رہے ہوں، تو آپ اکثر پیلوڈ مثالوں میں سی این پی جے فیلڈ دیکھیں گے۔ درست ٹیسٹ اقدار کو جنریٹ کرنے کی صلاحیت آپ کو انٹیگریشن کو تیزی سے پروٹوٹائپ کرنے میں مدد کرتی ہے۔
متبادل CNPJ توثیق طریقے
پروگرامنگ لائبریز
اگر آپ کو اپنی ایپلی کیشن لاجک میں CNPJ توثیق کی ضرورت ہے، تو یہ لائبریز چیک ڈیجٹ الگورتھم کو نافذ کرتی ہیں:
- جاوا اسکرپٹ/نوڈ.جے ایس:
cpf-cnpj-validator(130k+ ہفتہ وار ڈاؤن لوڈ)،validator.js(برازیلی دستاویزات کی حمایت کرتا ہے) - پائتھن:
validate-docbr(CPF، CNPJ اور دیگر برازیلی دستاویزات کی توثیق کرتا ہے)،python-cnpj - PHP:
respect/validation(CNPJ قواعد شامل)،brazilianutils - جاوا:
caelum-stella(جامع برازیلی دستاویز توثیق) - روبی:
cpf_cnpjجم
یہ لائبریز عام طور پر متعدد برازیلی دستاویز کی اقسام (CPF، CNPJ وغیرہ) کی فارمیٹنگ، پارسنگ اور توثیق کو سنبھالتی ہیں۔
سرکاری توثیق APIs
پروڈکشن سسٹم کے لیے جنہیں کاروباری رجسٹریشن کی درست توثیق کی ضرورت ہے:
- ریسیٹا فیڈرل پبلک سروس: کنسلٹا CNPJ API آفیشل ڈیٹا بیس کے خلاف توثیق کی اجازت دیتا ہے (مناسب اتھارائزیشن اور شرح محدودیت کی ضرورت ہے)
- تیسرے فریق کے ڈیٹا فراہم کنندگان: سیراسا ایکسپیرین اور بوا ویسٹا SCPC جیسی سروسز تجارتی APIs پیش کرتی ہیں جو کمپنی کی تفصیلات، رجسٹریشن کی حیثیت اور کریڈٹ کی معلومات پیش کرتی ہیں
نوٹ: یہ سروسیز اصل رجسٹریشن کی جانچ کرتی ہیں، صرف ریاضی کی درستگی نہیں۔ آپ کو مناسب اتھارائزیشن کی ضرورت ہوگی اور پروڈکشن استعمال کے لیے API لاگت کی توقع کرنی چاہیے۔
کب کس طریقے کا استعمال کریں
اس براؤزر ٹول کا استعمال کریں جب: آپ کو بغیر انحصار نصب کیے فوری توثیق، ڈیمو کے لیے ٹیسٹ ڈیٹا تیار کرنے یا CNPJ توثیق کے کام کرنے کا طریقہ سیکھنے کی ضرورت ہو۔
لائبریری کا استعمال کریں جب: آپ ایک ایپلی کیشن بنا رہے ہیں جسے فارم پروسیسنگ کے حصے کے طور پر کلائنٹ سائیڈ یا سرور سائیڈ توثیق کی ضرورت ہو۔
آفیشل API کا استعمال کریں جب: آپ کو یہ تصدیق کرنے کی ضرورت ہو کہ 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}
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یہ بنیادی فنکشنز دوسری پروگرامنگ زبانوں میں بھی اسی منطق کے مطابق نافذ کی جا سکتی ہیں۔ یہاں پائتھن اور جاوا میں مثالیں ہیں:
پائتھن نفاذ
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 ریاضی کے قواعد کے مطابق "درست" ہے، لیکن یہ نہیں بتا سکتا کہ یہ نمبر ایک حقیقی، فعال کاروباری ادارے سے مطابقت رکھتا ہے۔
قانونی اور اخلاقی استعمال
جنرٹ کردہ CNPJs صرف جانچ اور ترقیاتی مقاصد کے لیے ہیں۔ یہ ریاضی کی لحاظ سے درست ہیں لیکن برازیلی حکام کے ساتھ رجسٹرڈ نہیں ہیں، جس کا مطلب ہے:
- ✅ محفوظ استعمال کے لیے: ٹیسٹ ڈیٹا بیس کو بھرنا، یونٹ ٹیسٹنگ توثیق منطق، QA ماحول، دستاویزات میں کوڈ مثالیں
- ❌ کبھی نہ استعمال کریں: ٹیکس فائلنگ، کاروباری رجسٹریشن، معاہدوں پر دستخط، حقیقی لین دین، یا کاروباری شناخت کی غلط نمائندگی
کسی سرکاری مقصد کے لیے جعلی CNPJ استعمال کرنا نہ صرف غیر اخلاقی ہے - یہ برازیلی قانون کے تحت غیر قانونی ہے اور دھوکہ دہی کے الزامات میں منجر ہو سکتا ہے۔
معلوم کرنے کی تکنیکی محدودیتیں
بے ترتیب جنریشن کے مضمرات: ٹول پہلے 12 ڈیجٹ بے ترتیب جنرٹ کرتا ہے۔ حقیقی CNPJs جو ریسیتا فیڈرل جاری کرتا ہے اندرونی پیٹرن پر مبنی ہوتے ہیں جو رجسٹریشن کی تاریخ، علاقائی دفتر، اور کاروباری قسم سے متعلق ہیں۔ جنرٹ کردہ نمبر ان پیٹرن سے مماثل نہیں ہوں گے، جو کہ پیچیدہ توثیق سسٹم نشان زد کر سکتے ہیں۔
کوئی معنوی توثیق نہیں: ایک درست CNPJ فارمیٹ کا مطلب درست کاروباری سیاق نہیں ہے۔ مثال کے طور پر، سرکاری اداروں کے پاس خاص CNPJ رینج ہوتی ہے - یہ جنریٹر اتفاقی طور پر ایک بنا سکتا ہے، لیکن یہ معنی خیز نہیں ہوگا۔
فارمیٹ ہینڈلنگ: ویلیڈیٹر مختلف ان پٹ فارمیٹ کو قبول کرتا ہے (12345678000195, 12.345.678/0001-95)، لیکن کچھ پرانی سسٹم کو درست فارمیٹنگ کی توقع ہوتی ہے۔ ہمیشہ اپنی مخصوص انٹیگریشن کی ضروریات کے ساتھ جانچ کریں۔
رازداری اور سلامتی
تمام پروسیسنگ آپ کے براؤزر میں کلائنٹ سائیڈ ہوتی ہے۔ آپ جو CNPJs جنرٹ یا توثیق کرتے ہیں وہ سرورز پر نہیں بھیجے جاتے، الگ نہیں کیے جاتے، یا محفوظ نہیں کیے جاتے۔ ٹول کسی ذاتی معلومات کی درخواست، ہینڈل یا پروسیس نہیں کرتا۔
CNPJ کی توثیق کے بارے میں اکثر پوچھے جانے والے سوالات
CNPJ کی توثیق اور تصدیق میں کیا فرق ہے؟
توثیق یہ جانچتی ہے کہ نمبر ریاضی کی لحاظ سے درست ہے—مناسب فارمیٹ، درست چیک ڈیجٹ، کوئی غلط پیٹرن نہیں۔ یہ ٹول توثیق کرتا ہے۔
تصدیق یہ جانچتی ہے کہ CNPJ کسی اصل کمپنی کے ساتھ Receita Federal ڈیٹا بیس میں درج ہے۔ تصدیق کے لیے سرکاری ڈیٹا بیس سے پوچھ گچھ کرنی پڑتی ہے اور یہ کچھ اس ٹول کے ذریعے نہیں ہوتا۔
آپ کے پاس ایک بالکل درست CNPJ ہو سکتا ہے جو تصدیق شدہ نہیں ہے (جیسے اس ٹول کے ذریعے بنائے گئے ٹیسٹ نمبر)، یا ایک غلط CNPJ جو کسی اصل کمپنی کا ہے (کیونکہ کسی نے اسے درج کرتے وقت ٹائپو کیا ہے)۔
کیا میں جنرٹ کیے گئے CNPJs کو پروڈکشن ٹیسٹنگ میں استعمال کر سکتا ہوں؟
یہ اس بات پر منحصر ہے کہ آپ "پروڈکشن ٹیسٹنگ" سے کیا مراد رکھتے ہیں۔ وہ سٹیجنگ ماحول، لوڈ ٹیسٹنگ، اور لانچ سے پہلے QA کے لیے ٹھیک ہیں۔ لیکن اگر "پروڈکشن ٹیسٹنگ" کا مطلب اصل لین دین، اصل سرکاری APIs، یا اصل مالیاتی سسٹمز کے ساتھ ٹیسٹنگ ہے—تو نہیں، آپ کو اصل رجسٹرڈ CNPJs کی ضرورت ہے۔
ایک محفوظ طریقہ: جنرٹ کیے گئے CNPJs کو الگ ٹیسٹ ماحول میں استعمال کریں، پھر پروڈکشن انٹیگریشن کی ٹیسٹنگ کے لیے کچھ اصل ٹیسٹ کمپنی CNPJs (جن پر آپ کا کنٹرول ہے) پر سوئچ کریں۔
والیڈیٹر 11.111.111/1111-11 کو کیوں مسترد کرتا ہے؟
حتٰی کہ اگر ایک CNPJ میں سبھی ایک جیسے ڈیجٹ ہوں تو بھی ریاضی کی لحاظ سے درست چیک ڈیجٹ بن سکتے ہیں، لیکن Receita Federal ان پیٹرنز کو واضح طور پر خارج کرتا ہے۔ یہ ایک کاروباری قاعدہ ہے، ریاضی کا نہیں۔ یہی بات کچھ توثیق سسٹمز میں متسلسل پیٹرنز پر بھی لاگو ہوتی ہے۔
یہ اسی طرح ہے جیسے کئی سسٹم "password123" جیسے پاسورڈز کو مسترد کر دیتے ہیں، حتٰی کہ اگر وہ طول کے تقاضوں کو پورا کرتے ہیں—وہ تکنیکی طور پر درست ہیں لیکن عملی طور پر قابل قبول نہیں۔
(باقی مواد اسی طرح ترجمہ کیا جائے گا)
مراجع اور اضافی وسائل
سرکاری حکومتی ذرائع
- رسیتا فیڈرال ڈو برازیل - آفیشل پورٹل - برازیلی فیڈرل ریونیو سروس کی آفیشل ویب سائٹ سی این جے پی رجسٹریشن اور تصدیق کی خدمات کے ساتھ
- کنسلٹا پبلیکا سی این جے پی - عوامی سی این جے پی لک اپ - سی این جے پی رجسٹریشن کی حیثیت کی تصدیق کے لیے آفیشل حکومتی خدمت
- نارمیٹو ہدایت آر ایف بی نمبر 1863/2018 - برازیل میں سی این جے پی رجسٹریشن اور استعمال کو کنٹرول کرنے والے قانونی ضوابط
تکنیکی معیارات اور دستاویزات
- ماڈولر حساب کتاب کے الگورتھم - چیک ڈیجٹ کی گنتی ماڈولو 11 حساب کتاب کا استعمال کرتی ہے، جو توثیقی ڈیجٹ کے لیے ایک معیاری طریقہ ہے
- آئی ایس او/آئی ای سی 7064 - چیک ڈیجٹ سسٹم کے لیے بین الاقوامی معیار جس نے برازیلی دستاویز کی توثیق کے ڈیزائن کو متاثر کیا
- برازیلی سول کوڈ (قانون نمبر 10.406/2002) - قانونی فریم ورک جو کاروباری ادارے کی درجہ بندی کی وضاحت کرتا ہے جس کے لیے سی این جے پی رجسٹریشن درکار ہے
ڈویلپر وسائل
- این پی ایم پیکیج رجسٹری - npmjs.com - جاوا اسکرپٹ لائبریریز کا ذخیرہ بشمول برازیلی دستاویز کے توثیق کنندگان
- پائی پائی (پائتھن پیکیج انڈیکس) - pypi.org - سی این جے پی توثیق اور برازیلی دستاویز پروسیسنگ کے لیے پائتھن لائبریریز
- گٹ ہب - متعدد پروگرامنگ زبانوں میں سی این جے پی توثیق کے اوپن سورس نفاذ
CNPJ کی تولید اور توثیق شروع کریں
چاہے آپ ایک برازیلین ای-کامرس پلیٹ فارم بنا رہے ہیں، میرکاڈو پاگو کے ساتھ ادائیگی انٹیگریشن کی جانچ کر رہے ہیں، یا بس CNPJ توثیق کے کام کو سمجھنا چاہتے ہیں، یہ ٹول آپ کو فوری طور پر تولید اور توثیق کی صلاحیتیں فراہم کرتا ہے۔
کوئی انسٹالیشن نہیں، کوئی API کلید نہیں، کوئی پیچیدہ سیٹ اپ نہیں۔ بس اپنا براؤزر کھولیں اور درست برازیلین کاروباری شناخت کے ساتھ کام شروع کریں۔