Alat Penjana dan Pengesah CNPJ Brazil untuk Ujian
Hasilkan nombor CNPJ Brazil yang sah dan sahkan yang sedia ada dengan alat mudah ini yang direka untuk pemaju dan penguji yang bekerja dengan ID perniagaan Brazil.
Penjana dan Pengesah CNPJ Brazil
Penjana CNPJ
Hasilkan nombor CNPJ Brazil yang sah untuk tujuan pengujian.
Pengesah CNPJ
Semak jika nombor CNPJ Brazil adalah sah.
Dokumentasi
Alat Penjana dan Pengesah CNPJ Brazil
Pengenalan
CNPJ Brazil (Cadastro Nacional da Pessoa Jurídica) adalah nombor pengenalan unik yang diberikan kepada perniagaan dan entiti undang-undang di Brazil. Alat penjana dan pengesah CNPJ Brazil ini menyediakan cara yang mudah dan cekap untuk menjana nombor CNPJ yang sah untuk tujuan ujian dan mengesahkan nombor CNPJ yang sedia ada mengikut algoritma rasmi Brazil. Sama ada anda seorang pemaju yang menguji aplikasi yang mengendalikan data perniagaan Brazil, seorang profesional QA yang mencipta kes ujian, atau sesiapa yang bekerja dengan maklumat syarikat Brazil, alat ini memudahkan proses bekerja dengan nombor CNPJ.
Berbeza dengan nombor CNPJ sebenar yang dikeluarkan secara rasmi oleh Perkhidmatan Hasil Persekutuan Brazil (Receita Federal), CNPJ yang dijana oleh alat ini adalah sah dari segi matematik tetapi tidak didaftarkan kepada syarikat sebenar. Ini menjadikannya sempurna untuk senario ujian, data contoh, dan persekitaran pembangunan di mana anda memerlukan nombor CNPJ yang diformat dengan betul dan sah tanpa menggunakan pengenalan perniagaan yang sebenar.
Apa itu CNPJ?
CNPJ (Cadastro Nacional da Pessoa Jurídica) adalah nombor pengenalan 14 digit yang diberikan kepada perniagaan dan entiti undang-undang oleh Perkhidmatan Hasil Persekutuan Brazil. Ia berfungsi sebagai setara Brazil dengan nombor pendaftaran syarikat atau ID cukai. Setiap perniagaan yang beroperasi secara sah di Brazil mesti mempunyai CNPJ, yang digunakan untuk:
- Pelaporan dan pematuhan cukai
- Pendaftaran perniagaan dengan agensi kerajaan
- Membuka akaun bank
- Mengeluarkan invois dan resit
- Menghadiri tender kerajaan
- Mengimport dan mengeksport barang
CNPJ adalah pengenalan penting dalam ekosistem perniagaan Brazil dan muncul pada dokumen rasmi, kontrak, dan rekod kewangan.
Struktur dan Format CNPJ
CNPJ Brazil terdiri daripada 14 digit, biasanya diformat sebagai: XX.XXX.XXX/YYYY-ZZ
Struktur ini terbahagi kepada:
- 8 digit pertama (XX.XXX.XXX): Nombor asas yang diberikan kepada syarikat
- 4 digit selepas garis miring (YYYY): Pengenal cabang (0001 untuk ibu pejabat, nombor lain untuk cawangan)
- 2 digit terakhir (ZZ): Digit semak untuk pengesahan
Sebagai contoh, CNPJ yang diformat dengan betul mungkin kelihatan seperti: 12.345.678/0001-95
Digit semak (dua nombor terakhir) dikira menggunakan algoritma matematik tertentu yang mengesahkan keaslian CNPJ. Algoritma ini memastikan bahawa nombor yang dijana secara rawak tidak dapat lulus pengesahan tanpa mengikuti kaedah pengiraan yang betul.
Bagaimana Pengesahan CNPJ Berfungsi
Algoritma pengesahan CNPJ menggunakan pengiraan bertimbang untuk menentukan digit semak. Berikut adalah cara ia berfungsi:
Pengiraan Digit Semak Pertama
- Kalikan setiap daripada 12 digit pertama dengan urutan berat: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Jumlahkan hasil daripada penggandaan ini
- Kira baki jumlah ini dibahagi 11
- Jika baki kurang daripada 2, digit semak pertama adalah 0; jika tidak, ia adalah 11 tolak baki
Pengiraan Digit Semak Kedua
- Kalikan setiap daripada 13 digit pertama (termasuk digit semak pertama) dengan urutan berat: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Jumlahkan hasil daripada penggandaan ini
- Kira baki jumlah ini dibahagi 11
- Jika baki kurang daripada 2, digit semak kedua adalah 0; jika tidak, ia adalah 11 tolak baki
Untuk CNPJ menjadi sah, kedua-dua digit semak mesti sepadan dengan nilai yang dikira.
Cara Menggunakan Alat Ini
Alat Penjana dan Pengesah CNPJ Brazil kami menawarkan dua fungsi utama: menjana CNPJ yang sah dan mengesahkan nombor CNPJ yang sedia ada.
Menjana CNPJ
Untuk menjana CNPJ yang sah untuk tujuan ujian:
- Navigasi ke bahagian "Penjana CNPJ" dalam alat
- Klik butang "Jana CNPJ"
- CNPJ yang sah dari segi matematik akan muncul dalam paparan yang diformat
- Gunakan butang "Salin" untuk menyalin CNPJ yang dijana ke papan klip anda
CNPJ yang dijana akan mengikuti semua peraturan pengesahan matematik CNPJ sebenar tetapi tidak didaftarkan dengan Perkhidmatan Hasil Persekutuan Brazil.
Mengesahkan CNPJ
Untuk memeriksa sama ada CNPJ adalah sah dari segi matematik:
- Navigasi ke bahagian "Pengesah CNPJ" dalam alat
- Masukkan CNPJ yang ingin anda sahkan dalam medan input
- Alat ini menerima CNPJ dengan atau tanpa pemformatan (titik, garis miring, dan tanda hubung)
- Klik butang "Sahkan"
- Alat ini akan memaparkan sama ada CNPJ adalah sah atau tidak sah berdasarkan algoritma digit semak
Pengesah memeriksa sama ada CNPJ mengikuti format yang betul dan jika digit semak sepadan dengan nilai yang dijangkakan mengikut algoritma pengesahan.
Kes Penggunaan
Alat penjana dan pengesah CNPJ Brazil ini sangat berguna dalam senario berikut:
Pembangunan dan Ujian Perisian
- Mencipta Data Ujian: Jana CNPJ yang sah untuk mengisi pangkalan data ujian tanpa menggunakan pengenalan syarikat yang sebenar
- Ujian Unit: Sahkan fungsi pengendalian CNPJ dalam kod anda dengan contoh yang sah dan tidak sah
- Ujian QA: Cipta kes ujian untuk borang dan antara muka yang memerlukan input CNPJ
- Ujian Integrasi: Uji sistem yang bertukar data dengan perkhidmatan kerajaan Brazil atau institusi kewangan
Pendidikan dan Latihan
- Memahami Format CNPJ: Fahami bagaimana pengenalan perniagaan Brazil dibina
- Kajian Algoritma: Periksa bagaimana pengesahan digit semak berfungsi dalam amalan
- Teknik Pengesahan Data: Kajian contoh dunia sebenar keperluan pengesahan data
Pemprosesan Data
- Pembersihan Data: Sahkan CNPJ dalam set data sedia ada untuk mengenal pasti potensi ralat
- Pengesahan Borang: Laksanakan pengesahan sisi klien atau sisi pelayan untuk input CNPJ
- Anonymisasi Data: Gantikan CNPJ sebenar dengan yang dijana yang sah apabila menyediakan set data untuk analisis
Perniagaan Antarabangsa
- Persiapan Masuk Pasaran: Fahami keperluan pengenalan perniagaan Brazil
- Persiapan Dokumen: Pastikan pemformatan yang betul apabila menyediakan dokumen perniagaan untuk Brazil
- Pemeriksaan Pematuhan: Sahkan bahawa nombor CNPJ yang dikumpul sekurang-kurangnya sah dari segi matematik
Alternatif
Walaupun alat kami menyediakan penyelesaian berasaskan pelayar yang mudah untuk menjana dan mengesahkan CNPJ, terdapat beberapa alternatif bergantung kepada keperluan khusus anda:
Pustaka Pengaturcaraan
Untuk pemaju yang mengintegrasikan pengesahan CNPJ terus ke dalam aplikasi, terdapat beberapa pustaka khusus bahasa yang tersedia:
- JavaScript:
cpf_cnpj.js
,validator.js
- Python:
python-cnpj
,validate-docbr
- PHP:
brazilianutils
,respect/validation
- Java:
caelum-stella
,commons-validator
- Ruby:
cpf_cnpj
,brazilian-rails
Pustaka ini sering menyediakan fungsi tambahan seperti pemformatan, penguraian, dan pengesahan dokumen Brazil yang lain.
Perkhidmatan API
Untuk aplikasi yang memerlukan pengesahan tanpa melaksanakan algoritma:
- API kerajaan Brazil (memerlukan pendaftaran)
- API pengesahan komersial yang merangkumi pemeriksaan CNPJ
- Perkhidmatan maklumat perniagaan yang mengesahkan terhadap pangkalan data rasmi
Pengiraan Manual
Untuk tujuan pendidikan atau pengesahan sekali-sekala, anda boleh melaksanakan algoritma secara manual:
- Ekstrak 12 digit pertama CNPJ
- Laksanakan pengiraan bertimbang seperti yang diterangkan sebelum ini
- Bandingkan digit semak yang dikira dengan digit semak yang sebenar
Walau bagaimanapun, pengiraan manual adalah terdedah kepada ralat dan tidak cekap untuk digunakan secara berkala.
Pelaksanaan Teknikal
Penjana dan pengesah CNPJ dalam alat ini dilaksanakan menggunakan JavaScript, menjadikannya cepat dan mampu berjalan sepenuhnya dalam pelayar anda tanpa menghantar data anda ke pelayan. Berikut adalah cara fungsi teras berfungsi:
Algoritma Penjanaan CNPJ
1function generateCNPJ() {
2 // Jana 12 digit pertama secara rawak
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Kira digit semak pertama
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Kira digit semak kedua
10 const secondCheckDigit = calculateCheckDigit(digits);
11 digits.push(secondCheckDigit);
12
13 // Format 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
Algoritma Pengesahan CNPJ
1function validateCNPJ(cnpj) {
2 // Buang watak bukan nombor
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Semak jika mempunyai panjang yang betul
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Semak pola yang diketahui tidak sah (semua digit sama)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Tukar kepada array digit
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Semak digit pengesahan pertama
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Semak digit pengesahan kedua
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24
Fungsi Pemformatan CNPJ
1function formatCNPJ(cnpj) {
2 // Buang watak bukan nombor
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Format berdasarkan panjang
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
Fungsi teras ini boleh dilaksanakan dalam bahasa pengaturcaraan lain mengikuti logik yang sama. Berikut adalah contoh dalam Python dan Java:
Pelaksanaan 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 # Jana 12 digit pertama secara rawak
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Kira digit semak pertama
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Kira digit semak kedua
22 second_check = calculate_check_digit(digits)
23 digits.append(second_check)
24
25 # Format 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 # Buang watak bukan nombor
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Semak panjang
34 if len(cnpj) != 14:
35 return False
36
37 # Semak jika semua digit sama
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Tukar kepada senarai integer
42 digits = [int(d) for d in cnpj]
43
44 # Sahkan digit semak pertama
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Sahkan digit semak kedua
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55
Pelaksanaan Java
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 // Jana 12 digit pertama secara rawak
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Kira digit semak pertama
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Kira digit semak kedua
18 digits[13] = calculateCheckDigit(digits, 13);
19
20 // Format 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 // Buang watak bukan nombor
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Semak panjang
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Semak jika semua digit sama
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 // Tukar kepada array integer
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 // Sahkan digit semak pertama
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Sahkan digit semak kedua
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85
Pertimbangan Penting
Apabila menggunakan alat penjana dan pengesah CNPJ ini, ambil perhatian pertimbangan berikut:
Pertimbangan Undang-Undang dan Etika
- Bukan untuk Penipuan: CNPJ yang dijana tidak seharusnya digunakan untuk tujuan penipuan atau salah nyata
- Ujian Sahaja: CNPJ ini adalah untuk tujuan ujian dan pembangunan sahaja
- Tidak Didaftarkan: CNPJ yang dijana adalah sah dari segi matematik tetapi tidak didaftarkan dengan pihak berkuasa Brazil
- Tiada Kesahan Dunia Sebenar: Mereka tidak boleh digunakan untuk pendaftaran perniagaan sebenar atau tujuan cukai
Had Teknikal
- Tiada Maklumat Perniagaan: CNPJ yang dijana tidak mengandungi kod sektor perniagaan sebenar atau maklumat lokasi
- Tiada Pengesahan Pangkalan Data: Pengesah hanya memeriksa kesahan matematik, bukan status pendaftaran
- Variasi Format: Walaupun alat ini mengendalikan variasi pemformatan yang biasa, beberapa sistem mungkin memerlukan format tertentu
Pertimbangan Keselamatan
- Pemprosesan Sisi Klien: Semua pemprosesan berlaku dalam pelayar anda; tiada data dihantar ke pelayan
- Tiada Penyimpanan Data: CNPJ yang dijana tidak disimpan atau direkodkan
- Tiada Data Peribadi: Alat ini tidak mengendalikan atau memproses sebarang maklumat peribadi
Soalan Lazim
Apa kegunaan CNPJ di Brazil?
CNPJ adalah nombor pendaftaran nasional untuk perniagaan dan entiti undang-undang di Brazil. Ia digunakan untuk tujuan cukai, pendaftaran perniagaan, membuka akaun bank, dan mengenal pasti syarikat dalam transaksi rasmi.
Adakah CNPJ yang dijana oleh alat ini sebenar?
Tidak. CNPJ yang dijana oleh alat ini adalah sah dari segi matematik mengikut algoritma digit semak, tetapi ia tidak didaftarkan dengan Perkhidmatan Hasil Persekutuan Brazil dan tidak tergolong kepada syarikat sebenar.
Bolehkah saya menggunakan CNPJ yang dijana untuk perniagaan saya?
Tidak. Untuk mendapatkan CNPJ yang sah untuk perniagaan, anda mesti mendaftar dengan Perkhidmatan Hasil Persekutuan Brazil (Receita Federal) mengikuti proses rasmi. CNPJ yang dijana adalah untuk tujuan ujian sahaja.
Bagaimana saya boleh memastikan jika CNPJ tergolong kepada syarikat sebenar?
Untuk mengesahkan jika CNPJ didaftarkan kepada syarikat sebenar, anda perlu merujuk kepada pangkalan data Perkhidmatan Hasil Persekutuan Brazil. Alat kami hanya memeriksa sama ada CNPJ sah dari segi matematik, bukan jika ia didaftarkan secara rasmi.
Mengapa pengesah menolak CNPJ dengan semua digit yang sama?
CNPJ dengan semua digit yang sama (seperti 11.111.111/1111-11) secara automatik dianggap tidak sah, walaupun ia secara matematik lulus algoritma digit semak. Ini adalah peraturan yang ditetapkan oleh Perkhidmatan Hasil Persekutuan Brazil.
Adakah alat ini menyimpan CNPJ yang saya jana atau sahkan?
Tidak. Semua pemprosesan berlaku dalam pelayar anda, dan kami tidak menyimpan atau menghantar sebarang CNPJ yang anda jana atau sahkan.
Bolehkah saya menjana banyak CNPJ sekaligus?
Versi semasa alat ini menjana satu CNPJ pada satu masa. Untuk penjanaan secara pukal, anda mungkin ingin mempertimbangkan untuk menggunakan salah satu pustaka pengaturcaraan yang disebutkan dalam bahagian Alternatif.
Mengapa format XX.XXX.XXX/XXXX-XX penting?
Ini adalah format rasmi yang diperlukan oleh pihak berkuasa Brazil. Pengelompokan tertentu membantu mengenal pasti komponen berbeza CNPJ, seperti nombor asas dan pengenalan cabang.
Bagaimana saya boleh mengesahkan CNPJ secara programatik?
Anda boleh melaksanakan algoritma pengesahan dalam bahasa pengaturcaraan pilihan anda menggunakan contoh kod yang disediakan dalam bahagian Pelaksanaan Teknikal, atau menggunakan salah satu pustaka yang disebutkan dalam bahagian Alternatif.
Adakah terdapat CNPJ khas untuk entiti kerajaan?
Ya. Entiti kerajaan di Brazil mempunyai pola CNPJ tertentu. Sebagai contoh, entiti kerajaan persekutuan sering bermula dengan digit tertentu. Penjana kami mencipta CNPJ secara rawak dan tidak secara khusus menjana CNPJ entiti kerajaan.
Rujukan
- Perkhidmatan Hasil Persekutuan Brazil (Receita Federal do Brasil) - Laman Web Rasmi
- "CNPJ - Cadastro Nacional da Pessoa Jurídica" - Wikipedia
- Kod Sivil Brazil (Undang-Undang No. 10.406/2002) - Kerangka undang-undang untuk entiti perniagaan di Brazil
- Arahan Normatif Pendaftaran Perniagaan Brazil (IN RFB No. 1863/2018) - Peraturan mengenai pendaftaran CNPJ
Cuba Sekarang
Alat Penjana dan Pengesah CNPJ Brazil kami menjadikan kerja dengan nombor pengenalan ini mudah dan cekap. Sama ada anda menguji aplikasi, menyediakan data contoh, atau mengesahkan CNPJ yang sedia ada, alat ini menyediakan penyelesaian yang langsung tanpa kerumitan integrasi API atau konfigurasi yang rumit.
Jana CNPJ yang sah pertama anda sekarang atau sahkan yang sedia ada menggunakan antara muka kami yang mudah!
Maklum Balas
Klik toast maklum balas untuk mula memberi maklum balas tentang alat ini
Alat Berkaitan
Temui lebih banyak alat yang mungkin berguna untuk aliran kerja anda