Generator & Validator CNPJ - Alat Identifikasi Bisnis Brasil
Hasilkan nomor CNPJ valid untuk pengujian atau validasi identitas bisnis Brasil secara instan. Alat gratis dengan verifikasi digit cek untuk pengembang yang bekerja dengan Cadastro Nacional da Pessoa Jurídica.
Generator dan Validator CNPJ Brasil
Generator CNPJ
Hasilkan nomor CNPJ Brasil yang valid untuk tujuan pengujian.
Validator CNPJ
Periksa apakah nomor CNPJ Brasil valid.
Dokumentasi
Memahami Nomor CNPJ Brasil
CNPJ (Cadastro Nacional da Pessoa Jurídica) adalah versi Brasil dari ID pajak perusahaan—sebuah nomor 14 digit yang mengidentifikasi setiap entitas bisnis legal di negara tersebut. Jika Anda membangun perangkat lunak yang menangani data bisnis Brasil, Anda akan segera menemukan nomor-nomor ini di formulir pendaftaran, faktur, dan integrasi API.
Inilah yang membuat alat ini praktis: menghasilkan CNPJ yang valid secara matematis untuk pengujian tanpa menggunakan pengidentifikasi perusahaan sebenarnya. Ketika Anda menyiapkan basis data pengujian dengan 1.000 catatan atau men-debug rutinitas validasi pada pukul 2 pagi, Anda membutuhkan CNPJ yang lolos pemeriksaan algoritmik namun tidak secara tidak sengaja cocok dengan bisnis aktual. Itulah persis yang dihasilkan di sini.
Nomor yang dibuat mengikuti algoritme validasi resmi Receita Federal (Layanan Pendapatan Federal Brasil). Mereka memiliki digit pemeriksaan dan pemformatan yang benar—hanya saja tidak terdaftar dalam basis data pemerintah. Anggap saja sebagai data uji yang secara sintaksis benar dan tidak akan menimbulkan masalah kepatuhan di lingkungan pengembangan Anda.
Apa itu CNPJ dan Mengapa Penting
CNPJ berfungsi sebagai pengidentifikasi perusahaan Brasil—serupa dengan EIN di Amerika Serikat atau Nomor Pendaftaran Perusahaan di Inggris. Setiap entitas bisnis yang beroperasi secara legal di Brasil harus memilikinya, dikeluarkan oleh Receita Federal (Layanan Pendapatan Federal).
Anda akan menemukan CNPJ saat:
- Memproses pembayaran: Gateway pembayaran Brasil mensyaratkan validasi CNPJ untuk akun merchant
- Kepatuhan pajak: Setiap faktur yang dikeluarkan di Brasil harus mencantumkan CNPJ yang valid
- Pendaftaran bisnis: Lembaga pemerintah menggunakan CNPJ untuk melacak entitas hukum di seluruh sistem
- Operasi perbankan: Membuka rekening perusahaan atau memproses transfer internasional
- Impor/ekspor: Dokumentasi bea cukai mensyaratkan verifikasi CNPJ
- Kontrak pemerintah: Sistem tender publik memvalidasi CNPJ sebelum menerima penawaran
Dari pengalaman saya bekerja dengan platform e-commerce Brasil, salah satu titik integrasi paling umum adalah alur checkout di mana pengguna memasukkan CNPJ untuk pembelian perusahaan. Logika validasi Anda perlu menangkap kesalahan format sebelum prosesor pembayaran melakukannya—jika tidak, Anda akan melihat transaksi yang gagal yang sebenarnya bisa dicegah.
Struktur dan Format CNPJ
CNPJ terdiri dari 14 digit yang diformat sebagai: XX.XXX.XXX/YYYY-ZZ
Merinci strukturnya:
- 8 digit pertama (XX.XXX.XXX): Nomor registrasi dasar yang secara unik diberikan kepada perusahaan
- 4 digit berikutnya (/YYYY): Pengidentifikasi cabang atau lokasi—
/0001menunjukkan kantor pusat, sementara/0002,/0003mewakili lokasi cabang - 2 digit terakhir (-ZZ): Digit verifikasi yang dihitung melalui algoritma berbobot
Contoh: 12.345.678/0001-95
Yang menarik tentang pengidentifikasi cabang: ketika sebuah perusahaan membuka beberapa lokasi, setiap lokasi mendapatkan 8 digit pertama yang sama tetapi nomor cabang yang berbeda. Jadi jika sebuah rantai ritel memiliki 50 toko, mereka akan memiliki CNPJ yang berakhir dengan /0001 hingga /0050, semuanya berbagi nomor dasar yang sama. Ini memudahkan identifikasi bahwa beberapa CNPJ milik organisasi induk yang sama.
Digit cek tidak acak—mereka dihitung menggunakan algoritma modulus-11 dengan urutan bobot tertentu. Pilihan desain ini, umum dalam dokumen administratif Brasil, membuat sulit untuk memalsukan nomor valid atau secara tidak sengaja membuat nomor valid melalui kesalahan ketik.
Cara Kerja Validasi CNPJ Sebenarnya
Algoritma validasi menggunakan perhitungan modulus-11 berbobot. Berikut logika di baliknya:
Perhitungan Digit Cek Pertama
- Ambil 12 digit pertama dan kalikan masing-masing dengan bobot:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Jumlahkan semua hasil perkalian
- Bagi jumlah tersebut dengan 11 dan dapatkan sisanya
- Jika sisa < 2, digit cek adalah 0; jika tidak, digit cek adalah
11 - sisa
Perhitungan Digit Cek Kedua
- Ambil 13 digit pertama (termasuk digit cek pertama) dan kalikan dengan bobot:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Jumlahkan semua hasil perkalian
- Bagi dengan 11 dan dapatkan sisanya
- Jika sisa < 2, digit cek adalah 0; jika tidak, digit cek adalah
11 - sisa
Mengapa pendekatan ini berhasil: Sistem perkalian berbobot menciptakan hubungan unik antara semua 12 digit dasar dan digit cek yang dihasilkan. Mengubah bahkan satu digit dalam nomor dasar menghasilkan digit cek yang berbeda, yang menangkap kesalahan transkrip umum seperti menukar dua digit (mengetik 12.345 alih-alih 12.354).
Catatan praktis: CNPJ dengan semua digit identik (seperti 11.111.111/1111-11) secara otomatis tidak valid, bahkan jika lulus pemeriksaan matematis. Receita Federal secara eksplisit mengecualikan pola-pola ini untuk mencegah kasus-kasus sederhana.
Cara Menggunakan Generator dan Validator CNPJ
Menghasilkan CNPJ Uji Coba
Butuh CNPJ valid untuk basis data uji coba Anda? Begini caranya:
- Klik "Hasilkan CNPJ"
- Alat langsung membuat nomor yang valid secara matematis
- Klik "Salin" untuk mengambilnya ke papan klip
- Tempel di formulir uji coba, basis data benih, atau pengujian unit
Setiap CNPJ yang dihasilkan lolos semua pemeriksaan validasi algoritmik namun tidak terdaftar di Receita Federal. Ini berarti Anda dapat menggunakannya dengan bebas dalam pengembangan tanpa khawatir menggunakan pengenal perusahaan yang sebenarnya.
Memvalidasi Nomor CNPJ
Punya CNPJ yang perlu Anda verifikasi? Validator menanganinya:
- Tempel atau ketik CNPJ di kolom input
- Jangan khawatir tentang format—berfungsi dengan
12345678000195atau12.345.678/0001-95 - Klik "Validasi"
- Dapatkan umpan balik instan tentang apakah digit cek sudah benar
Yang diperiksa validator: panjang yang tepat (14 digit), perhitungan digit cek yang benar, dan pengecualian pola tidak valid seperti digit yang sama. Yang tidak diperiksa: apakah CNPJ terdaftar di basis data pemerintah—itu memerlukan kueri langsung ke Receita Federal.
Kasus Penggunaan Nyata untuk Generator dan Validator CNPJ
Pengembangan Perangkat Lunak dan Pengujian
Pengisian basis data: Saat menyiapkan lingkungan staging dengan data uji yang realistis, Anda membutuhkan puluhan atau ratusan CNPJ yang valid. Membuat ini secara manual sangat membosankan, dan menggunakan pengenal perusahaan nyata menimbulkan kekhawatiran privasi. CNPJ yang dibuat menyelesaikan kedua masalah tersebut.
Pengujian unit kasus ujung: Fungsi validasi Anda harus menolak 00.000.000/0000-00 tetapi menerima 11.222.333/0001-81. Memiliki generator memungkinkan Anda dengan cepat membuat kasus uji yang valid dan sengaja tidak valid untuk memverifikasi logika Anda menangani kondisi batas dengan benar.
Pengujian regresi QA: Saat menguji formulir pendaftaran atau alur checkout B2B, tim QA membutuhkan data uji baru untuk setiap sesi. Masalah umum yang saya lihat: lingkungan pengujian tercemar dengan 5-6 CNPJ yang sama yang digunakan berulang, yang menyembunyikan bug yang hanya muncul dengan pola digit tertentu.
Pengujian integrasi API: Jika Anda mengintegrasikan dengan prosesor pembayaran Brasil seperti PagSeguro atau Mercado Pago, lingkungan sandbox mereka sering memerlukan format CNPJ yang valid. Matematikanya harus benar meskipun Anda tidak mengakses basis data produksi.
Pemrosesan dan Validasi Data
Membersihkan data yang diimpor: Anda menerima CSV dengan 10.000 catatan perusahaan Brasil. Sebelum pemrosesan, Anda perlu mengidentifikasi CNPJ mana yang cacat. Menjalankannya melalui validator menandai entri dengan kesalahan ketik, pemotongan, atau digit cek yang salah—menghemat jam debug selanjutnya.
Validasi formulir sisi klien: Menangkap CNPJ yang tidak valid sebelum pengiriman formulir meningkatkan pengalaman pengguna. Tidak ada yang ingin mengisi formulir pendaftaran 20 bidang hanya untuk mendapatkan kesalahan saat pengiriman karena menukar dua digit di CNPJ mereka.
Anonimisasi data untuk analisis: Saat menyiapkan data produksi untuk dibagikan dengan tim analitik atau mitra eksternal, Anda perlu mengganti CNPJ nyata dengan yang valid tetapi palsu. Ini mempertahankan integritas referensial dalam kumpulan data Anda sambil melindungi identitas bisnis sebenarnya.
Operasi Bisnis Internasional
Memahami persyaratan Brasil: Jika Anda mengembangkan pasar Brasil, Anda akan menemui persyaratan CNPJ dalam kontrak, faktur, dan dokumentasi pengiriman. Memiliki alat untuk bereksperimen dengan format membantu Anda memahami apa yang perlu ditangani sistem Anda.
Spesifikasi integrasi pihak ketiga: Saat meninjau dokumentasi API dari penyedia SaaS Brasil, Anda sering melihat bidang CNPJ dalam contoh payload. Kemampuan untuk menghasilkan nilai uji yang valid membantu Anda membuat prototipe integrasi lebih cepat.
Pendekatan Alternatif Validasi CNPJ
Pustaka Pemrograman
Jika Anda membutuhkan validasi CNPJ yang terintegrasi dalam logika aplikasi, pustaka-pustaka berikut mengimplementasikan algoritma digit cek:
- JavaScript/Node.js:
cpf-cnpj-validator(130rb+ unduhan mingguan),validator.js(mendukung dokumen Brasil) - Python:
validate-docbr(memvalidasi CPF, CNPJ, dan dokumen Brasil lainnya),python-cnpj - PHP:
respect/validation(termasuk aturan CNPJ),brazilianutils - Java:
caelum-stella(validasi dokumen Brasil komprehensif) - Ruby: Gem
cpf_cnpj
Pustaka-pustaka ini biasanya menangani pemformatan, parsing, dan validasi untuk berbagai jenis dokumen Brasil (CPF, CNPJ, dll.).
API Verifikasi Resmi
Untuk sistem produksi yang perlu memverifikasi registrasi bisnis aktual:
- Layanan Publik Receita Federal: API Consulta CNPJ memungkinkan verifikasi terhadap basis data resmi (memerlukan otorisasi dan pembatasan laju yang tepat)
- Penyedia data pihak ketiga: Layanan seperti Serasa Experian dan Boa Vista SCPC menawarkan API komersial yang mengembalikan detail perusahaan, status registrasi, dan informasi kredit
Catatan: Layanan ini memeriksa registrasi aktual, bukan sekadar validitas matematis. Anda akan membutuhkan otorisasi yang tepat dan harus mengharapkan biaya API untuk penggunaan produksi.
Kapan Menggunakan Setiap Pendekatan
Gunakan alat peramban ini ketika: Anda membutuhkan validasi cepat tanpa menginstal dependensi, menghasilkan data uji untuk demo, atau mempelajari cara kerja validasi CNPJ.
Gunakan pustaka ketika: Anda sedang membangun aplikasi yang membutuhkan validasi sisi klien atau sisi server sebagai bagian dari pemrosesan formulir.
Gunakan API resmi ketika: Anda perlu memverifikasi bahwa CNPJ sesuai dengan entitas bisnis nyata dan aktif dengan status registrasi saat ini.
Detail Implementasi Teknis
Alat ini berjalan sepenuhnya di browser Anda menggunakan JavaScript—tanpa permintaan server, tidak ada data yang meninggalkan mesin Anda. Berikut cara kerja algoritme di balik layar, dengan kode yang dapat Anda sesuaikan untuk proyek Anda sendiri:
Algoritme Generasi CNPJ
1function generateCNPJ() {
2 // Hasilkan 12 digit pertama secara acak
3 const digits = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
4
5 // Hitung digit cek pertama
6 const firstCheckDigit = calculateCheckDigit(digits);
7 digits.push(firstCheckDigit);
8
9 // Hitung digit cek 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}
29Algoritme Validasi CNPJ
1function validateCNPJ(cnpj) {
2 // Hapus karakter non-numerik
3 const cleanCNPJ = cnpj.replace(/\D/g, '');
4
5 // Periksa panjang yang benar
6 if (cleanCNPJ.length !== 14) return false;
7
8 // Periksa pola tidak valid yang diketahui (semua digit sama)
9 if (/^(\d)\1+$/.test(cleanCNPJ)) return false;
10
11 // Konversi ke array digit
12 const digits = cleanCNPJ.split('').map(Number);
13
14 // Periksa digit verifikasi pertama
15 const expectedFirstDigit = calculateCheckDigit(digits.slice(0, 12));
16 if (digits[12] !== expectedFirstDigit) return false;
17
18 // Periksa digit verifikasi kedua
19 const expectedSecondDigit = calculateCheckDigit(digits.slice(0, 13));
20 if (digits[13] !== expectedSecondDigit) return false;
21
22 return true;
23}
24Fungsi Pemformatan CNPJ
1function formatCNPJ(cnpj) {
2 // Hapus karakter non-numerik
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}
18Fungsi inti ini dapat diimplementasikan dalam bahasa pemrograman lain dengan mengikuti logika yang sama. Berikut adalah contoh dalam Python dan Java:
Implementasi 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 # Hasilkan 12 digit pertama secara acak
15 digits = [random.randint(0, 9) for _ in range(12)]
16
17 # Hitung digit cek pertama
18 first_check = calculate_check_digit(digits)
19 digits.append(first_check)
20
21 # Hitung digit cek 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 # Hapus karakter non-numerik
31 cnpj = ''.join(filter(str.isdigit, cnpj))
32
33 # Periksa panjang
34 if len(cnpj) != 14:
35 return False
36
37 # Periksa jika semua digit sama
38 if len(set(cnpj)) == 1:
39 return False
40
41 # Konversi ke daftar bilangan bulat
42 digits = [int(d) for d in cnpj]
43
44 # Validasi digit cek pertama
45 first_check = calculate_check_digit(digits[:12])
46 if digits[12] != first_check:
47 return False
48
49 # Validasi digit cek kedua
50 second_check = calculate_check_digit(digits[:13])
51 if digits[13] != second_check:
52 return False
53
54 return True
55Implementasi 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 // Hasilkan 12 digit pertama secara acak
10 for (int i = 0; i < 12; i++) {
11 digits[i] = random.nextInt(10);
12 }
13
14 // Hitung digit cek pertama
15 digits[12] = calculateCheckDigit(digits, 12);
16
17 // Hitung digit cek 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 // Hapus karakter non-numerik
45 cnpj = cnpj.replaceAll("\\D", "");
46
47 // Periksa panjang
48 if (cnpj.length() != 14) {
49 return false;
50 }
51
52 // Periksa 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 // Konversi ke array bilangan bulat
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 // Validasi digit cek pertama
71 int firstCheck = calculateCheckDigit(digits, 12);
72 if (digits[12] != firstCheck) {
73 return false;
74 }
75
76 // Validasi digit cek kedua
77 int secondCheck = calculateCheckDigit(digits, 13);
78 if (digits[13] != secondCheck) {
79 return false;
80 }
81
82 return true;
83 }
84}
85Batasan dan Pertimbangan Penting
Apa yang Dapat dan Tidak Dapat Dilakukan Alat Ini
Yang divalidasi: Kebenaran matematis—apakah digit cek cocok dengan perhitungan algoritma.
Yang tidak divalidasi: Apakah CNPJ terdaftar di Receita Federal, apakah milik perusahaan aktif, atau apakah sesuai dengan nama bisnis yang Anda harapkan.
Anggap seperti memeriksa ejaan versus memeriksa fakta. Alat ini memberi tahu Anda apakah CNPJ "dieja" dengan benar sesuai aturan matematis, tetapi tidak dapat menentukan apakah nomor tersebut sesuai dengan entitas bisnis nyata dan aktif.
Penggunaan Legal dan Etis
CNPJ yang dihasilkan hanya untuk pengujian dan pengembangan. Mereka valid secara matematis tetapi tidak terdaftar dengan otoritas Brasil, yang berarti:
- ✅ Aman digunakan untuk: Mengisi basis data pengujian, pengujian unit validasi logika, lingkungan QA, contoh kode dalam dokumentasi
- ❌ Jangan pernah digunakan untuk: Pengajuan pajak, pendaftaran bisnis, menandatangani kontrak, memproses transaksi nyata, atau menyalahrepresentasikan identitas bisnis
Menggunakan CNPJ palsu untuk tujuan resmi tidak hanya tidak etis—itu ilegal menurut hukum Brasil dan dapat mengakibatkan tuduhan penipuan.
Batasan Teknis yang Perlu Diketahui
Generasi acak memiliki implikasi: Alat menghasilkan 12 digit pertama secara acak. CNPJ nyata yang dikeluarkan oleh Receita Federal mengikuti pola internal terkait tanggal pendaftaran, kantor regional, dan jenis bisnis. Nomor yang dihasilkan tidak akan cocok dengan pola ini, yang mungkin akan ditandai oleh sistem validasi canggih.
Tidak ada validasi semantik: Format CNPJ yang valid tidak berarti konteks bisnis valid. Misalnya, entitas pemerintah memiliki rentang CNPJ spesifik—generator ini mungkin secara kebetulan membuat satu, tetapi tidak akan bermakna.
Penanganan format: Validator menerima berbagai format input (12345678000195, 12.345.678/0001-95), tetapi beberapa sistem warisan mengharapkan format yang tepat. Selalu uji dengan persyaratan integrasi spesifik Anda.
Privasi dan Keamanan
Semua pemrosesan terjadi di sisi klien di browser Anda. Tidak ada CNPJ yang Anda hasilkan atau validasi yang dikirim ke server, dicatat, atau disimpan. Alat tidak meminta, menangani, atau memproses informasi pribadi apa pun.
Pertanyaan Yang Sering Diajukan Tentang Validasi CNPJ
Apa perbedaan antara memvalidasi dan memverifikasi CNPJ?
Validasi memeriksa apakah nomor tersebut secara matematis benar—format yang tepat, digit pemeriksaan yang benar, tidak ada pola yang tidak valid. Alat ini melakukan validasi.
Verifikasi memeriksa apakah CNPJ terdaftar dengan perusahaan sebenarnya di database Receita Federal. Verifikasi memerlukan kueri database pemerintah dan bukan sesuatu yang dilakukan alat ini.
Anda dapat memiliki CNPJ yang valid secara sempurna namun tidak diverifikasi (seperti nomor uji yang dibuat alat ini), atau CNPJ yang tidak valid yang dimiliki perusahaan nyata (karena seseorang membuat kesalahan ketik saat memasukkannya).
Bisakah saya menggunakan CNPJ yang dibuat untuk pengujian produksi?
Tergantung apa yang Anda maksud dengan "pengujian produksi." Mereka baik untuk lingkungan staging, pengujian beban, dan QA pra-peluncuran. Tetapi jika "pengujian produksi" berarti pengujian dengan transaksi nyata, API pemerintah nyata, atau sistem keuangan nyata—maka tidak, Anda membutuhkan CNPJ terdaftar yang sebenarnya.
Pendekatan yang lebih aman: gunakan CNPJ yang dibuat di lingkungan pengujian terisolasi, kemudian beralih ke sekelompok kecil CNPJ perusahaan uji nyata (yang Anda kendalikan) saat menguji integrasi produksi.
Mengapa validator menolak 11.111.111/1111-11?
Meskipun CNPJ dengan digit yang sama dapat menghasilkan digit pemeriksaan yang valid secara matematis, Receita Federal secara eksplisit mengecualikan pola-pola ini. Ini adalah aturan bisnis, bukan aturan matematis. Hal yang sama berlaku untuk pola berurutan di beberapa sistem validasi.
Ini mirip dengan bagaimana banyak sistem menolak kata sandi seperti "password123" meskipun mereka memenuhi persyaratan panjang—mereka secara teknis valid tetapi praktisnya tidak dapat diterima.
Bagaimana cara menangani validasi CNPJ di berbagai lokal?
Perusahaan Brasil yang melakukan bisnis internasional terkadang menghapus karakter pemformatan saat memasukkan CNPJ ke sistem asing. Logika validasi Anda harus menghapus karakter non-numerik sebelum memeriksa:
1const cleanCNPJ = input.replace(/\D/g, ''); // Hapus semua kecuali digit
2Terima 12.345.678/0001-95, 12345678000195, dan 12 345 678 0001 95 sebagai input yang setara.
Bagaimana dengan validasi CNPJ vs CPF?
CPF (Cadastro de Pessoas Físicas) adalah ID pajak individu Brasil, sedangkan CNPJ untuk bisnis. Mereka menggunakan algoritma digit pemeriksaan dan panjang yang berbeda (CPF memiliki 11 digit, CNPJ memiliki 14 digit). Jika Anda membangun aplikasi Brasil yang menangani keduanya, Anda akan membutuhkan fungsi validasi terpisah—meskipun banyak perpustakaan mendukung kedua format.
Pola umum: izinkan pengguna memasukkan CPF atau CNPJ di bidang yang sama, kemudian deteksi jenis berdasarkan panjang setelah menghapus karakter pemformatan.
Apakah ini berlaku untuk perusahaan asing yang beroperasi di Brasil?
Perusahaan asing yang beroperasi di Brasil juga harus mendapatkan CNPJ dari Receita Federal. CNPJ mereka mengikuti format dan aturan validasi yang sama dengan perusahaan domestik. Tidak ada format CNPJ "perusahaan asing" khusus.
Namun, perusahaan asing mungkin memiliki persyaratan dokumentasi tambahan dan proses pendaftaran yang berbeda—konsultasikan dengan pengacara bisnis Brasil untuk detail spesifik.
Bisakah saya mengkueri database pemerintah untuk memverifikasi pendaftaran CNPJ?
Ya, Receita Federal menyediakan akses publik untuk memverifikasi informasi CNPJ dasar melalui layanan Consulta Pública CNPJ mereka. Anda dapat mencari CNPJ secara manual atau, dengan otorisasi yang tepat, menggunakan API mereka untuk akses terprogram.
Perhatikan bahwa penggunaan berat memerlukan pendaftaran dan ada batasan kecepatan untuk mencegah penyalahgunaan.
Seberapa sering CNPJ berubah?
CNPJ adalah pengidentifikasi permanen yang tidak berubah saat perusahaan mengubah nama, alamat, atau struktur kepemilikan. Namun, jika sebuah perusahaan ditutup dan kemudian mendaftar ulang, ia mungkin menerima CNPJ baru. Nomor cabang (bagian /XXXX) dapat ditambahkan saat perusahaan membuka lokasi baru, tetapi nomor dasar 8 digit tetap konstan.
Referensi dan Sumber Daya Tambahan
Sumber Resmi Pemerintah
- Receita Federal do Brasil - Portal Resmi - Situs web resmi Layanan Pendapatan Federal Brasil dengan layanan pendaftaran dan verifikasi CNPJ
- Consulta Pública CNPJ - Pencarian CNPJ Publik - Layanan resmi pemerintah untuk memverifikasi status pendaftaran CNPJ
- Instruksi Normatif RFB No. 1863/2018 - Peraturan hukum yang mengatur pendaftaran dan penggunaan CNPJ di Brasil
Standar Teknis dan Dokumentasi
- Algoritma aritmatika modular - Perhitungan digit cek menggunakan aritmatika modulo 11, pendekatan standar untuk digit validasi
- ISO/IEC 7064 - Standar internasional untuk sistem digit cek yang mempengaruhi desain validasi dokumen Brasil
- Kitab Undang-Undang Perdata Brasil (Undang-Undang No. 10.406/2002) - Kerangka hukum yang mendefinisikan klasifikasi entitas bisnis yang memerlukan pendaftaran CNPJ
Sumber Daya Pengembang
- Registri paket NPM - npmjs.com - Repositori pustaka JavaScript termasuk validator dokumen Brasil
- PyPI (Indeks Paket Python) - pypi.org - Pustaka Python untuk validasi CNPJ dan pemrosesan dokumen Brasil
- GitHub - Implementasi sumber terbuka validasi CNPJ dalam berbagai bahasa pemrograman
Mulai Membuat dan Memvalidasi CNPJ
Baik Anda sedang membangun platform e-commerce Brasil, menguji integrasi pembayaran dengan Mercado Pago, atau sekadar ingin memahami cara kerja validasi CNPJ, alat ini memberikan Anda akses langsung untuk membuat dan memvalidasi CNPJ.
Tidak perlu instalasi, tidak perlu kunci API, tidak ada pengaturan rumit. Cukup buka browser Anda dan mulai bekerja dengan pengidentifikasi bisnis Brasil yang valid.