ব্রাজিলিয়ান ব্যবসায়িক আইডি নিয়ে কাজ করা ডেভেলপার এবং পরীক্ষকদের জন্য ডিজাইন করা এই সহজ টুলের মাধ্যমে বৈধ ব্রাজিলিয়ান CNPJ নম্বর তৈরি করুন এবং বিদ্যমান নম্বরগুলি যাচাই করুন।
পরীক্ষামূলক উদ্দেশ্যে একটি বৈধ ব্রাজিলিয়ান সিএনপিজি নম্বর তৈরি করুন।
যাচাই করুন একটি ব্রাজিলিয়ান সিএনপিজি নম্বর বৈধ কি না।
ব্রাজিলিয়ান CNPJ (Cadastro Nacional da Pessoa Jurídica) হল একটি অনন্য পরিচয় নম্বর যা ব্রাজিলের ব্যবসা এবং আইনগত সত্তাগুলিকে বরাদ্দ করা হয়। এই ব্রাজিলিয়ান CNPJ জেনারেটর এবং ভ্যালিডেটর টুলটি পরীক্ষামূলক উদ্দেশ্যে বৈধ CNPJ নম্বর তৈরি এবং বিদ্যমান CNPJ নম্বরের বৈধতা যাচাই করার জন্য একটি সহজ, কার্যকর উপায় প্রদান করে। আপনি একজন ডেভেলপার হন যিনি ব্রাজিলিয়ান ব্যবসায়ের তথ্য পরিচালনা করার জন্য অ্যাপ্লিকেশন পরীক্ষা করছেন, একজন QA পেশাদার যিনি পরীক্ষামূলক কেস তৈরি করছেন, অথবা ব্রাজিলিয়ান কোম্পানির তথ্য নিয়ে কাজ করছেন, এই টুলটি CNPJ নম্বর নিয়ে কাজ করার প্রক্রিয়াটি সহজ করে।
বাস্তব CNPJ নম্বরগুলি যা ব্রাজিলের ফেডারেল রেভিনিউ সার্ভিস (Receita Federal) দ্বারা আনুষ্ঠানিকভাবে ইস্যু করা হয়, এই টুল দ্বারা তৈরি CNPJ গুলি গাণিতিকভাবে বৈধ কিন্তু প্রকৃত কোম্পানির সাথে নিবন্ধিত নয়। এটি তাদের জন্য পরীক্ষামূলক পরিস্থিতি, নমুনার তথ্য এবং উন্নয়ন পরিবেশে সঠিকভাবে ফরম্যাট করা এবং বৈধ CNPJ নম্বর প্রয়োজন যেখানে ব্যবহার করা আদর্শ।
CNPJ (Cadastro Nacional da Pessoa Jurídica) একটি ১৪-সংখ্যার পরিচয় নম্বর যা ব্রাজিলের ফেডারেল রেভিনিউ সার্ভিস দ্বারা ব্যবসা এবং আইনগত সত্তাগুলিকে বরাদ্দ করা হয়। এটি ব্রাজিলের কোম্পানি নিবন্ধন নম্বর বা ট্যাক্স আইডির সমতুল্য। ব্রাজিলে বৈধভাবে কার্যকরী প্রতিটি ব্যবসার একটি CNPJ থাকতে হবে, যা ব্যবহৃত হয়:
CNPJ হল ব্রাজিলের ব্যবসায়িক ইকোসিস্টেমে একটি অপরিহার্য পরিচয় এবং এটি অফিসিয়াল নথি, চুক্তি এবং আর্থিক রেকর্ডে উপস্থিত হয়।
একটি ব্রাজিলিয়ান CNPJ ১৪টি সংখ্যা নিয়ে গঠিত, যা সাধারণত এইভাবে ফরম্যাট করা হয়: 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
এই লাইব্রেরিগুলি প্রায়শই ফরম্যাটিং, পার্সিং এবং অন্যান্য ব্রাজিলিয়ান নথির যাচাইকরণের মতো অতিরিক্ত কার্যকারিতা প্রদান করে।
যেসব অ্যাপ্লিকেশন যাচাইকরণের জন্য অ্যালগরিদম বাস্তবায়ন না করে:
শিক্ষামূলক উদ্দেশ্যে বা একবারের জন্য যাচাইয়ের জন্য, আপনি অ্যালগরিদমটি ম্যানুয়ালি প্রয়োগ করতে পারেন:
তবে, ম্যানুয়াল গণনা ত্রুটির সম্ভাবনা রয়েছে এবং নিয়মিত ব্যবহারের জন্য অকার্যকর।
এই টুলের CNPJ জেনারেটর এবং ভ্যালিডেটরটি JavaScript ব্যবহার করে বাস্তবায়িত, যা এটি দ্রুত এবং আপনার ব্রাউজারে সম্পূর্ণরূপে চালানোর ক্ষমতা রাখে, আপনার তথ্য কোনও সার্ভারে পাঠানো ছাড়াই। এখানে কোর ফাংশনগুলি কীভাবে কাজ করে:
1function generateCNPJ() {
2 // প্রথম ১২ সংখ্যা এলোমেলোভাবে তৈরি করুন
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
এই কোর ফাংশনগুলি অন্যান্য প্রোগ্রামিং ভাষায় একই যুক্তি অনুসরণ করে বাস্তবায়িত হতে পারে। এখানে পাইথন এবং জাভাতে উদাহরণ দেওয়া হল:
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 # প্রথম ১২ সংখ্যা এলোমেলোভাবে তৈরি করুন
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 // প্রথম ১২ সংখ্যা এলোমেলোভাবে তৈরি করুন
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 যাচাই করছেন, এই টুলটি API সংহতকরণ বা উন্নত কনফিগারেশনের জটিলতা ছাড়াই একটি সরল সমাধান প্রদান করে।
এখনই আপনার প্রথম বৈধ CNPJ তৈরি করুন অথবা আমাদের সহজ ইন্টারফেস ব্যবহার করে একটি বিদ্যমান CNPJ যাচাই করুন!
আপনার কাজে দরকারী হতে পারে আরো টুল খুঁজে বের করুন