Alat Pembuat dan Validator CUIT/CUIL Argentina
Hasilkan nomor CUIT/CUIL Argentina yang valid untuk pengujian atau validasi nomor yang sudah ada. Alat sederhana untuk pengembang yang bekerja dengan nomor identifikasi pajak dan tenaga kerja Argentina.
Generator CUIT/CUIL
Masukkan nomor DNI 8 digit atau gunakan generator acak
CUIT/CUIL yang Dihasilkan
Dokumentasi
Generator dan Validator CUIT/CUIL Argentina
Pendahuluan
CUIT (Clave Única de Identificación Tributaria) dan CUIL (Clave Única de Identificación Laboral) Argentina adalah nomor identifikasi unik yang digunakan di Argentina untuk tujuan pajak dan ketenagakerjaan, masing-masing. Kode 11 digit ini sangat penting bagi individu dan bisnis untuk beroperasi secara legal dalam sistem ekonomi Argentina. Alat Generator dan Validator CUIT/CUIL kami menyediakan cara yang sederhana dan efisien untuk menghasilkan nomor CUIT/CUIL yang valid untuk tujuan pengujian dan memvalidasi nomor yang ada untuk memastikan bahwa mereka sesuai dengan format resmi dan algoritma verifikasi.
Apakah Anda seorang pengembang yang menguji aplikasi yang menangani ID pajak Argentina, seorang spesialis QA yang memverifikasi fungsi sistem, atau hanya perlu memahami cara kerja nomor identifikasi ini, alat ini menawarkan solusi yang sederhana tanpa kompleksitas yang tidak perlu. Alat ini memiliki dua fungsi utama: generator yang membuat nomor CUIT/CUIL yang valid secara acak atau berdasarkan parameter tertentu, dan validator yang memverifikasi apakah nomor CUIT/CUIL yang diberikan mengikuti format dan aturan perhitungan yang benar.
Struktur dan Perhitungan CUIT/CUIL
Memahami Format
Nomor CUIT/CUIL yang valid terdiri dari 11 digit yang biasanya ditampilkan dalam format XX-XXXXXXXX-X:
-
Kode Tipe (2 digit pertama): Menunjukkan jenis entitas
- 20, 23, 24: Pria individu (CUIL)
- 27: Wanita individu (CUIL)
- 30, 33, 34: Perusahaan dan organisasi (CUIT)
-
Nomor DNI (8 digit tengah): Untuk individu, ini adalah nomor dokumen identitas nasional mereka (DNI), diisi dengan nol di depan jika perlu untuk mencapai 8 digit. Untuk perusahaan, ini adalah nomor unik yang ditetapkan.
-
Digit Verifikasi (digit terakhir): Digit pemeriksaan yang dihitung menggunakan algoritma tertentu untuk memvalidasi seluruh nomor.
Perhitungan Digit Verifikasi
Digit verifikasi dihitung menggunakan algoritma berikut:
- Ambil 10 digit pertama dari CUIT/CUIL (kode tipe + DNI)
- Kalikan setiap digit dengan bobot yang sesuai dari urutan ini: 5, 4, 3, 2, 7, 6, 5, 4, 3, 2
- Jumlahkan semua produk yang dihasilkan
- Hitung 11 dikurangi sisa dari jumlah dibagi 11
- Jika hasilnya 11, digit verifikasi adalah 0
- Jika hasilnya 10, digit verifikasi adalah 9
- Jika tidak, hasilnya adalah digit verifikasi
Secara matematis, ini dapat dinyatakan sebagai:
Di mana:
- adalah digit verifikasi
- adalah digit ke- dari 10 digit pertama
- adalah bobot yang sesuai dari urutan [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
- Kasus khusus: jika maka , jika maka
Panduan Langkah-demi-Langkah
Menggunakan Generator
-
Pilih tab "Generator" di bagian atas antarmuka alat.
-
Pilih Kode Tipe dari menu dropdown:
- 20: Pria (CUIL)
- 23: Bisnis (CUIT)
- 24: Bisnis Sementara (CUIT)
- 27: Wanita (CUIL)
- 30: Korporasi (CUIT)
- 33: Asosiasi Sipil (CUIT)
- 34: Yayasan (CUIT)
-
Masukkan Nomor DNI (opsional):
- Masukkan nomor DNI 8 digit di kolom yang disediakan
- Jika dibiarkan kosong, alat akan menggunakan DNI yang dihasilkan secara acak
- Jika Anda memasukkan kurang dari 8 digit, sistem akan mengisi dengan nol di depan
-
Hasilkan DNI Acak (opsional):
- Klik tombol "Acak" untuk menghasilkan nomor DNI 8 digit secara acak
-
Lihat CUIT/CUIL yang Dihasilkan:
- Alat secara otomatis menampilkan CUIT/CUIL yang valid berdasarkan input Anda
- Formatnya akan XX-XXXXXXXX-X dengan digit verifikasi yang benar
-
Salin Hasil:
- Klik ikon salin untuk menyalin CUIT/CUIL yang dihasilkan ke clipboard Anda
- Pesan konfirmasi akan muncul ketika berhasil disalin
Menggunakan Validator
-
Pilih tab "Validator" di bagian atas antarmuka alat.
-
Masukkan CUIT/CUIL untuk Divalidasi:
- Masukkan CUIT/CUIL dalam format XX-XXXXXXXX-X
- Alat akan secara otomatis memformat input Anda dengan tanda hubung saat Anda mengetik
- Anda juga dapat memasukkan nomor tanpa tanda hubung (XXXXXXXXXXX)
-
Klik tombol "Validate":
- Alat akan memeriksa format, kode tipe, dan digit verifikasi
-
Lihat Hasil Validasi:
- Untuk nomor CUIT/CUIL yang valid, pesan sukses berwarna hijau akan muncul
- Untuk nomor yang tidak valid, pesan kesalahan berwarna merah akan menjelaskan masalahnya:
- Format tidak valid (harus XX-XXXXXXXX-X)
- Kode tipe tidak valid (harus salah satu dari: 20, 23, 24, 27, 30, 33, 34)
- Digit verifikasi tidak valid
-
Informasi Tambahan:
- Untuk nomor yang valid, alat menampilkan rincian komponen:
- Kode tipe dan artinya
- Nomor DNI
- Digit verifikasi
- Untuk nomor yang valid, alat menampilkan rincian komponen:
Kasus Penggunaan
Pengembangan dan Pengujian
-
Pengembangan Perangkat Lunak: Menghasilkan nomor CUIT/CUIL yang valid untuk menguji aplikasi yang menangani identifikasi pajak Argentina, seperti:
- Platform e-commerce
- Perangkat lunak akuntansi
- Sistem manajemen SDM
- Portal layanan pemerintah
- Aplikasi perbankan
-
Pengisian Database: Membuat data uji yang realistis untuk sistem yang menyimpan informasi pengguna Argentina, memastikan bahwa batasan dan aturan validasi database bekerja dengan benar.
-
Pengujian Validasi Formulir: Menguji validasi input untuk formulir web yang mengumpulkan informasi CUIT/CUIL, memverifikasi bahwa pesan kesalahan yang tepat muncul untuk entri yang tidak valid.
-
Pengujian API: Menghasilkan payload yang valid untuk titik akhir API yang memerlukan nomor CUIT/CUIL, memastikan bahwa pengujian integrasi Anda menggunakan data yang valid.
-
Otomatisasi QA: Menggabungkan pembuatan CUIT/CUIL ke dalam skrip pengujian otomatis untuk membuat kasus uji dinamis daripada menggunakan data uji statis.
Tujuan Pendidikan
-
Belajar Algoritma Validasi: Memahami cara kerja algoritma digit pemeriksaan dalam praktik dengan melihat proses verifikasi CUIT/CUIL secara langsung.
-
Mengajarkan Validasi Data: Menggunakan sebagai contoh pendidikan saat mengajarkan teknik validasi formulir kepada pengembang baru.
-
Memahami Persyaratan Bisnis Argentina: Mempelajari tentang sistem identifikasi yang digunakan di Argentina untuk pengembangan bisnis internasional.
Alternatif
Sementara alat kami menyediakan cara yang sederhana untuk menghasilkan dan memvalidasi nomor CUIT/CUIL, ada pendekatan alternatif yang mungkin Anda pertimbangkan:
-
Validasi Resmi Pemerintah: Untuk lingkungan produksi, selalu validasi nomor CUIT/CUIL terhadap database resmi AFIP (Administración Federal de Ingresos Públicos) jika memungkinkan.
-
Perpustakaan dan Paket: Beberapa bahasa pemrograman memiliki perpustakaan yang dirancang khusus untuk validasi ID pajak Argentina:
- JavaScript: paket npm
validar-cuit
- PHP: perpustakaan
afip-php
- Python: paket
py-cuit
- JavaScript: paket npm
-
Perhitungan Manual: Untuk tujuan pendidikan, Anda mungkin menghitung digit verifikasi secara manual menggunakan algoritma yang dijelaskan sebelumnya.
-
Layanan Validasi Bisnis Komprehensif: Untuk aplikasi perusahaan, pertimbangkan menggunakan layanan validasi komprehensif yang tidak hanya memeriksa format tetapi juga memverifikasi keberadaan dan status entitas yang terkait dengan CUIT/CUIL.
Sejarah Sistem CUIT/CUIL
Sistem identifikasi CUIT/CUIL di Argentina telah berkembang secara signifikan sejak awalnya:
Asal Usul dan Implementasi
CUIT (Clave Única de Identificación Tributaria) pertama kali diperkenalkan di Argentina pada tahun 1970-an sebagai bagian dari upaya untuk memodernisasi sistem pengumpulan pajak. Administrasi Federal Pendapatan Publik (AFIP) menerapkan pengidentifikasi unik ini untuk melacak wajib pajak dengan lebih efisien dan mengurangi penghindaran pajak.
CUIL (Clave Única de Identificación Laboral) kemudian diperkenalkan untuk secara khusus mengidentifikasi pekerja dalam sistem jaminan sosial, menciptakan perbedaan antara identifikasi pajak dan identifikasi tenaga kerja sambil mempertahankan format yang konsisten.
Evolusi dan Digitalisasi
Pada tahun 1990-an, ketika Argentina mengalami reformasi ekonomi yang signifikan, sistem CUIT/CUIL menjadi semakin penting untuk melacak aktivitas ekonomi. Sistem ini juga semakin digitalisasi, dan sistem verifikasi online diterapkan.
Awal 2000-an melihat integrasi sistem CUIT/CUIL dengan berbagai layanan pemerintah digital, menjadikannya komponen penting dari inisiatif e-government Argentina. Periode ini juga melihat standarisasi algoritma verifikasi dan format yang tetap digunakan hingga hari ini.
Perkembangan Terbaru
Dalam beberapa tahun terakhir, AFIP telah meningkatkan proses keamanan dan verifikasi untuk nomor CUIT/CUIL, menerapkan sistem validasi yang lebih canggih dan mengintegrasikannya dengan database pemerintah lainnya. Sistem ini sekarang memainkan peran penting dalam upaya Argentina untuk memerangi penghindaran pajak dan memformalkan ekonomi.
Saat ini, CUIT/CUIL tidak hanya digunakan untuk tujuan pajak dan ketenagakerjaan tetapi juga untuk berbagai aktivitas termasuk perbankan, transaksi properti, layanan utilitas, dan pembelian online, menjadikannya pengidentifikasi penting bagi individu dan bisnis yang beroperasi di Argentina.
Contoh Kode
Python
1def calculate_verification_digit(type_code, dni):
2 # Ubah menjadi string dan pastikan DNI adalah 8 digit dengan nol di depan
3 type_code_str = str(type_code)
4 dni_str = str(dni).zfill(8)
5
6 # Gabungkan kode tipe dan DNI
7 digits = type_code_str + dni_str
8
9 # Bobot untuk setiap posisi
10 weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
11
12 # Hitung jumlah produk
13 sum_products = sum(int(digits[i]) * weights[i] for i in range(10))
14
15 # Hitung digit verifikasi
16 verification_digit = 11 - (sum_products % 11)
17
18 # Kasus khusus
19 if verification_digit == 11:
20 verification_digit = 0
21 elif verification_digit == 10:
22 verification_digit = 9
23
24 return verification_digit
25
26def generate_cuit_cuil(type_code, dni=None):
27 import random
28
29 # Kode tipe yang valid
30 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
31
32 if type_code not in valid_type_codes:
33 raise ValueError(f"Kode tipe tidak valid. Harus salah satu dari: {valid_type_codes}")
34
35 # Hasilkan DNI acak jika tidak disediakan
36 if dni is None:
37 dni = random.randint(10000000, 99999999)
38
39 # Hitung digit verifikasi
40 verification_digit = calculate_verification_digit(type_code, dni)
41
42 # Format CUIT/CUIL
43 return f"{type_code}-{str(dni).zfill(8)}-{verification_digit}"
44
45def validate_cuit_cuil(cuit_cuil):
46 # Hapus tanda hubung jika ada
47 cuit_cuil_clean = cuit_cuil.replace("-", "")
48
49 # Periksa format dasar
50 if not cuit_cuil_clean.isdigit() or len(cuit_cuil_clean) != 11:
51 return False, "Format tidak valid"
52
53 # Ekstrak bagian
54 type_code = int(cuit_cuil_clean[0:2])
55 dni = int(cuit_cuil_clean[2:10])
56 verification_digit = int(cuit_cuil_clean[10])
57
58 # Validasi kode tipe
59 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
60 if type_code not in valid_type_codes:
61 return False, "Kode tipe tidak valid"
62
63 # Hitung dan bandingkan digit verifikasi
64 calculated_digit = calculate_verification_digit(type_code, dni)
65 if calculated_digit != verification_digit:
66 return False, "Digit verifikasi tidak valid"
67
68 return True, "CUIT/CUIL valid"
69
70# Contoh penggunaan
71print(generate_cuit_cuil(20, 12345678)) # Hasilkan untuk DNI tertentu
72print(generate_cuit_cuil(27)) # Hasilkan dengan DNI acak
73print(validate_cuit_cuil("20-12345678-9")) # Validasi CUIT/CUIL
74
JavaScript
1function calculateVerificationDigit(typeCode, dni) {
2 // Ubah menjadi string dan pastikan DNI adalah 8 digit dengan nol di depan
3 const typeCodeStr = typeCode.toString();
4 const dniStr = dni.toString().padStart(8, '0');
5
6 // Gabungkan kode tipe dan DNI
7 const digits = typeCodeStr + dniStr;
8
9 // Bobot untuk setiap posisi
10 const weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
11
12 // Hitung jumlah produk
13 let sumProducts = 0;
14 for (let i = 0; i < 10; i++) {
15 sumProducts += parseInt(digits[i]) * weights[i];
16 }
17
18 // Hitung digit verifikasi
19 let verificationDigit = 11 - (sumProducts % 11);
20
21 // Kasus khusus
22 if (verificationDigit === 11) {
23 verificationDigit = 0;
24 } else if (verificationDigit === 10) {
25 verificationDigit = 9;
26 }
27
28 return verificationDigit;
29}
30
31function generateCuitCuil(typeCode, dni) {
32 // Kode tipe yang valid
33 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
34
35 if (!validTypeCodes.includes(typeCode)) {
36 throw new Error(`Kode tipe tidak valid. Harus salah satu dari: ${validTypeCodes.join(', ')}`);
37 }
38
39 // Hasilkan DNI acak jika tidak disediakan
40 if (dni === undefined) {
41 dni = Math.floor(Math.random() * 90000000) + 10000000;
42 }
43
44 // Hitung digit verifikasi
45 const verificationDigit = calculateVerificationDigit(typeCode, dni);
46
47 // Format CUIT/CUIL
48 return `${typeCode}-${dni.toString().padStart(8, '0')}-${verificationDigit}`;
49}
50
51function validateCuitCuil(cuitCuil) {
52 // Hapus tanda hubung jika ada
53 const cuitCuilClean = cuitCuil.replace(/-/g, '');
54
55 // Periksa format dasar
56 if (!/^\d{11}$/.test(cuitCuilClean)) {
57 return { isValid: false, errorMessage: 'Format tidak valid' };
58 }
59
60 // Ekstrak bagian
61 const typeCode = parseInt(cuitCuilClean.substring(0, 2));
62 const dni = parseInt(cuitCuilClean.substring(2, 10));
63 const verificationDigit = parseInt(cuitCuilClean.substring(10, 11));
64
65 // Validasi kode tipe
66 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
67 if (!validTypeCodes.includes(typeCode)) {
68 return { isValid: false, errorMessage: 'Kode tipe tidak valid' };
69 }
70
71 // Hitung dan bandingkan digit verifikasi
72 const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73 if (calculatedDigit !== verificationDigit) {
74 return { isValid: false, errorMessage: 'Digit verifikasi tidak valid' };
75 }
76
77 return { isValid: true };
78}
79
80// Contoh penggunaan
81console.log(generateCuitCuil(20, 12345678)); // Hasilkan untuk DNI tertentu
82console.log(generateCuitCuil(27)); // Hasilkan dengan DNI acak
83console.log(validateCuitCuil("20-12345678-9")); // Validasi CUIT/CUIL
84
Java
1import java.util.Arrays;
2import java.util.List;
3import java.util.Random;
4
5public class CuitCuilUtils {
6 private static final List<Integer> VALID_TYPE_CODES = Arrays.asList(20, 23, 24, 27, 30, 33, 34);
7 private static final int[] WEIGHTS = {5, 4, 3, 2, 7, 6, 5, 4, 3, 2};
8
9 public static int calculateVerificationDigit(int typeCode, int dni) {
10 // Ubah menjadi string dan pastikan DNI adalah 8 digit dengan nol di depan
11 String typeCodeStr = String.valueOf(typeCode);
12 String dniStr = String.format("%08d", dni);
13
14 // Gabungkan kode tipe dan DNI
15 String digits = typeCodeStr + dniStr;
16
17 // Hitung jumlah produk
18 int sumProducts = 0;
19 for (int i = 0; i < 10; i++) {
20 sumProducts += Character.getNumericValue(digits.charAt(i)) * WEIGHTS[i];
21 }
22
23 // Hitung digit verifikasi
24 int verificationDigit = 11 - (sumProducts % 11);
25
26 // Kasus khusus
27 if (verificationDigit == 11) {
28 verificationDigit = 0;
29 } else if (verificationDigit == 10) {
30 verificationDigit = 9;
31 }
32
33 return verificationDigit;
34 }
35
36 public static String generateCuitCuil(int typeCode, Integer dni) {
37 if (!VALID_TYPE_CODES.contains(typeCode)) {
38 throw new IllegalArgumentException("Kode tipe tidak valid. Harus salah satu dari: " + VALID_TYPE_CODES);
39 }
40
41 // Hasilkan DNI acak jika tidak disediakan
42 if (dni == null) {
43 Random random = new Random();
44 dni = 10000000 + random.nextInt(90000000);
45 }
46
47 // Hitung digit verifikasi
48 int verificationDigit = calculateVerificationDigit(typeCode, dni);
49
50 // Format CUIT/CUIL
51 return String.format("%d-%08d-%d", typeCode, dni, verificationDigit);
52 }
53
54 public static ValidationResult validateCuitCuil(String cuitCuil) {
55 // Hapus tanda hubung jika ada
56 String cuitCuilClean = cuitCuil.replace("-", "");
57
58 // Periksa format dasar
59 if (!cuitCuilClean.matches("\\d{11}")) {
60 return new ValidationResult(false, "Format tidak valid");
61 }
62
63 // Ekstrak bagian
64 int typeCode = Integer.parseInt(cuitCuilClean.substring(0, 2));
65 int dni = Integer.parseInt(cuitCuilClean.substring(2, 10));
66 int verificationDigit = Integer.parseInt(cuitCuilClean.substring(10, 11));
67
68 // Validasi kode tipe
69 if (!VALID_TYPE_CODES.contains(typeCode)) {
70 return new ValidationResult(false, "Kode tipe tidak valid");
71 }
72
73 // Hitung dan bandingkan digit verifikasi
74 int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75 if (calculatedDigit != verificationDigit) {
76 return new ValidationResult(false, "Digit verifikasi tidak valid");
77 }
78
79 return new ValidationResult(true, null);
80 }
81
82 public static class ValidationResult {
83 private final boolean isValid;
84 private final String errorMessage;
85
86 public ValidationResult(boolean isValid, String errorMessage) {
87 this.isValid = isValid;
88 this.errorMessage = errorMessage;
89 }
90
91 public boolean isValid() {
92 return isValid;
93 }
94
95 public String getErrorMessage() {
96 return errorMessage;
97 }
98 }
99
100 public static void main(String[] args) {
101 // Contoh penggunaan
102 System.out.println(generateCuitCuil(20, 12345678)); // Hasilkan untuk DNI tertentu
103 System.out.println(generateCuitCuil(27, null)); // Hasilkan dengan DNI acak
104 System.out.println(validateCuitCuil("20-12345678-9").isValid()); // Validasi CUIT/CUIL
105 }
106}
107
PHP
1<?php
2
3function calculateVerificationDigit($typeCode, $dni) {
4 // Ubah menjadi string dan pastikan DNI adalah 8 digit dengan nol di depan
5 $typeCodeStr = (string)$typeCode;
6 $dniStr = str_pad((string)$dni, 8, '0', STR_PAD_LEFT);
7
8 // Gabungkan kode tipe dan DNI
9 $digits = $typeCodeStr . $dniStr;
10
11 // Bobot untuk setiap posisi
12 $weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
13
14 // Hitung jumlah produk
15 $sumProducts = 0;
16 for ($i = 0; $i < 10; $i++) {
17 $sumProducts += (int)$digits[$i] * $weights[$i];
18 }
19
20 // Hitung digit verifikasi
21 $verificationDigit = 11 - ($sumProducts % 11);
22
23 // Kasus khusus
24 if ($verificationDigit == 11) {
25 $verificationDigit = 0;
26 } else if ($verificationDigit == 10) {
27 $verificationDigit = 9;
28 }
29
30 return $verificationDigit;
31}
32
33function generateCuitCuil($typeCode, $dni = null) {
34 // Kode tipe yang valid
35 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
36
37 if (!in_array($typeCode, $validTypeCodes)) {
38 throw new Exception("Kode tipe tidak valid. Harus salah satu dari: " . implode(', ', $validTypeCodes));
39 }
40
41 // Hasilkan DNI acak jika tidak disediakan
42 if ($dni === null) {
43 $dni = rand(10000000, 99999999);
44 }
45
46 // Hitung digit verifikasi
47 $verificationDigit = calculateVerificationDigit($typeCode, $dni);
48
49 // Format CUIT/CUIL
50 return sprintf("%d-%08d-%d", $typeCode, $dni, $verificationDigit);
51}
52
53function validateCuitCuil($cuitCuil) {
54 // Hapus tanda hubung jika ada
55 $cuitCuilClean = str_replace('-', '', $cuitCuil);
56
57 // Periksa format dasar
58 if (!preg_match('/^\d{11}$/', $cuitCuilClean)) {
59 return ['isValid' => false, 'errorMessage' => 'Format tidak valid'];
60 }
61
62 // Ekstrak bagian
63 $typeCode = (int)substr($cuitCuilClean, 0, 2);
64 $dni = (int)substr($cuitCuilClean, 2, 8);
65 $verificationDigit = (int)substr($cuitCuilClean, 10, 1);
66
67 // Validasi kode tipe
68 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
69 if (!in_array($typeCode, $validTypeCodes)) {
70 return ['isValid' => false, 'errorMessage' => 'Kode tipe tidak valid'];
71 }
72
73 // Hitung dan bandingkan digit verifikasi
74 $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75 if ($calculatedDigit !== $verificationDigit) {
76 return ['isValid' => false, 'errorMessage' => 'Digit verifikasi tidak valid'];
77 }
78
79 return ['isValid' => true];
80}
81
82// Contoh penggunaan
83echo generateCuitCuil(20, 12345678) . "\n"; // Hasilkan untuk DNI tertentu
84echo generateCuitCuil(27) . "\n"; // Hasilkan dengan DNI acak
85var_dump(validateCuitCuil("20-12345678-9")); // Validasi CUIT/CUIL
86?>
87
Pertanyaan yang Sering Diajukan
Apa perbedaan antara CUIT dan CUIL?
CUIT (Clave Única de Identificación Tributaria) digunakan untuk tujuan identifikasi pajak dan diberikan kepada individu dan entitas hukum yang perlu membayar pajak di Argentina. CUIL (Clave Única de Identificación Laboral) khusus untuk pekerja dan digunakan untuk tujuan ketenagakerjaan dan jaminan sosial. Meskipun mereka memiliki format dan algoritma perhitungan yang sama, mereka melayani tujuan administratif yang berbeda.
Kode tipe mana yang digunakan untuk individu dan mana yang untuk perusahaan?
Untuk individu:
- 20, 23, 24: Pria individu (CUIL)
- 27: Wanita individu (CUIL)
Untuk perusahaan dan organisasi:
- 30: Korporasi (CUIT)
- 33: Asosiasi Sipil (CUIT)
- 34: Yayasan (CUIT)
Bagaimana digit verifikasi dihitung?
Digit verifikasi dihitung menggunakan algoritma jumlah bobot. Setiap dari 10 digit pertama dikalikan dengan bobot yang sesuai (5, 4, 3, 2, 7, 6, 5, 4, 3, 2), dan hasilnya dijumlahkan. Digit verifikasi adalah 11 dikurangi sisa ketika jumlah ini dibagi 11. Kasus khusus: jika hasilnya 11, digit verifikasi adalah 0; jika hasilnya 10, digit verifikasi adalah 9.
Bisakah saya menggunakan alat ini untuk menghasilkan nomor CUIT/CUIL resmi?
Tidak, alat ini dirancang untuk tujuan pengujian dan pendidikan saja. Nomor yang dihasilkan secara matematis valid menurut algoritma CUIT/CUIL tetapi tidak terdaftar secara resmi di otoritas pajak Argentina (AFIP). Untuk pendaftaran CUIT/CUIL resmi, individu dan perusahaan harus mengikuti prosedur hukum yang tepat melalui AFIP.
Mengapa validasi CUIT/CUIL saya gagal meskipun formatnya terlihat benar?
Validasi dapat gagal karena beberapa alasan:
- Kode tipe bukan salah satu kode yang valid (20, 23, 24, 27, 30, 33, 34)
- Digit verifikasi tidak cocok dengan nilai yang dihitung berdasarkan algoritma
- Format tidak benar (harus XX-XXXXXXXX-X)
- Ada karakter non-numerik dalam input (selain tanda hubung)
Apakah tanda hubung diperlukan dalam nomor CUIT/CUIL?
Meskipun nomor CUIT/CUIL biasanya ditulis dan ditampilkan dengan tanda hubung (XX-XXXXXXXX-X), tanda hubung bukan bagian dari nomor sebenarnya untuk tujuan perhitungan. Validator kami menerima kedua format (dengan atau tanpa tanda hubung) dan akan memvalidasi keduanya dengan benar.
Bisakah nomor CUIT/CUIL memiliki kurang dari 8 digit di bagian DNI?
Tidak, bagian DNI harus selalu tepat 8 digit. Jika DNI yang sebenarnya memiliki kurang dari 8 digit, itu harus diisi dengan nol di depan untuk mencapai 8 digit. Misalnya, jika DNI seseorang adalah 1234567, dalam CUIT/CUIL itu akan direpresentasikan sebagai 01234567.
Bagaimana saya dapat memverifikasi apakah CUIT/CUIL terdaftar secara resmi di Argentina?
Untuk memverifikasi apakah CUIT/CUIL terdaftar secara resmi dan aktif, Anda harus menggunakan situs web atau layanan resmi AFIP (Administración Federal de Ingresos Públicos). Alat kami hanya memverifikasi validitas matematis nomor tersebut, bukan status pendaftarannya secara resmi.
Bisakah saya menggunakan alat ini dalam aplikasi komersial saya?
Ya, Anda dapat mengintegrasikan algoritma dan logika yang ditunjukkan dalam alat ini ke dalam aplikasi komersial Anda. Algoritma validasi CUIT/CUIL adalah standar publik. Namun, untuk lingkungan produksi, kami merekomendasikan menerapkan penanganan kesalahan yang tepat dan mempertimbangkan validasi tambahan terhadap sumber resmi jika diperlukan.
Apakah alat ini menyimpan nomor CUIT/CUIL yang dihasilkan atau divalidasi?
Tidak, alat ini tidak menyimpan informasi apa pun yang dimasukkan atau dihasilkan. Semua pemrosesan dilakukan di sisi klien di browser Anda, dan tidak ada data yang dikirim ke atau disimpan di server kami. Ini memastikan privasi dan keamanan informasi apa pun yang Anda masukkan.
Referensi
-
AFIP (Administración Federal de Ingresos Públicos). "CUIT/CUIL/CDI." Situs Resmi. https://www.afip.gob.ar/
-
Ministerio de Trabajo, Empleo y Seguridad Social. "CUIL - Clave Única de Identificación Laboral." https://www.argentina.gob.ar/trabajo
-
ANSES (Administración Nacional de la Seguridad Social). "Dapatkan CUIL saya." https://www.anses.gob.ar/
-
Boletín Oficial de la República Argentina. "Resolusi General AFIP 2854/2010: Prosedur. Clave Única de Identificación Tributaria (C.U.I.T.)."
-
Código Fiscal de la República Argentina. "Identifikasi dan Pendaftaran Wajib Pajak."
Siap untuk menghasilkan atau memvalidasi nomor CUIT/CUIL Argentina? Coba alat kami sekarang dan permudah proses pengujian Anda!
Umpan Balik
Klik toast umpan balik untuk mulai memberikan umpan balik tentang alat ini
Alat Terkait
Temukan lebih banyak alat yang mungkin berguna untuk alur kerja Anda