Tạo ra các số CUIT hợp lệ của Argentina (mã số nhận diện thuế) và xác thực các số CUIT hiện có với công cụ đơn giản này được thiết kế cho các kịch bản thử nghiệm. Không có tính năng phức tạp, chỉ cần tạo và xác thực CUIT một cách đơn giản.
Một công cụ đơn giản để tạo và xác thực mã số thuế (CUIT) của Argentina cho mục đích thử nghiệm.
Định dạng: XX-XXXXXXXX-X
CUIT (Mã số nhận diện thuế duy nhất) là mã số thuế được sử dụng ở Argentina cho cá nhân và pháp nhân.
CUIT (Código Único de Identificación Tributaria) là Mã số nhận dạng thuế duy nhất của Argentina, một mã số quan trọng cho tất cả người nộp thuế trong hệ thống thuế Argentina. Mã số số này là mã nhận dạng chính cho các cá nhân và pháp nhân khi tương tác với AFIP (Cơ quan Quản lý Thuế Liên bang) và thực hiện các hoạt động kinh doanh trên toàn Argentina. Công cụ Trình tạo và Xác thực CUIT Argentina của chúng tôi cung cấp một giải pháp đơn giản, hiệu quả để tạo ra các CUIT hợp lệ về mặt toán học cho mục đích thử nghiệm và xác thực các số CUIT hiện có.
Cho dù bạn là một nhà phát triển đang thử nghiệm các ứng dụng xử lý thông tin thuế Argentina, một chuyên gia QA xác minh tính toàn vẹn của dữ liệu, hay một nhà phân tích kinh doanh chuẩn bị bộ dữ liệu thử nghiệm, công cụ này giúp đơn giản hóa quá trình làm việc với các số CUIT mà không cần tích hợp API phức tạp hoặc các tính năng không cần thiết.
CUIT Argentina theo một định dạng cụ thể gồm 11 chữ số được sắp xếp như sau:
1XX-XXXXXXXX-X
2
Định dạng chuẩn này có thể được chia thành ba thành phần khác nhau:
Hai chữ số đầu tiên của một CUIT cho biết loại người nộp thuế:
Loại thực thể | Mã loại | Mô tả |
---|---|---|
Công ty | 30 | Các công ty, LLC và các thực thể kinh doanh khác |
Hiệp hội | 33 | Các hiệp hội phi lợi nhuận |
Quỹ | 30 | Các quỹ từ thiện |
Xã hội | 30 | Các đối tác và các cấu trúc xã hội khác |
Chính phủ | 30 | Các thực thể chính phủ và các tổ chức công |
Công ty nước ngoài | 30 | Các công ty có trụ sở ngoài Argentina |
Cá nhân (Nam) | 20 | Các cá nhân nam |
Cá nhân (Nữ) | 27 | Các cá nhân nữ |
Quỹ tín thác | 30 | Các thực thể quỹ tín thác |
Hiểu các mã loại này là rất quan trọng để tạo ra các CUIT phù hợp cho các tình huống thử nghiệm khác nhau.
Công cụ của chúng tôi cung cấp hai chức năng chính: tạo ra các CUIT hợp lệ và xác thực các CUIT hiện có. Dưới đây là cách sử dụng mỗi tính năng một cách hiệu quả:
Trình tạo tạo ra các CUIT ngẫu nhiên nhưng hợp lệ về mặt toán học theo thuật toán chính thức được sử dụng bởi AFIP. Các CUIT này rất phù hợp cho việc thử nghiệm các hệ thống yêu cầu định dạng CUIT hợp lệ, mặc dù chúng không được đăng ký trong các cơ sở dữ liệu chính thức.
Trình xác thực kiểm tra cả định dạng và tính hợp lệ toán học của CUIT bằng cách xác minh rằng chữ số xác thực khớp với giá trị được tính toán dựa trên các chữ số trước đó.
Chữ số xác thực (chữ số cuối cùng) của một CUIT được tính toán bằng một thuật toán cụ thể được thiết kế để phát hiện các lỗi phổ biến trong việc nhập dữ liệu. Hiểu thuật toán này giúp giải thích cách mà công cụ của chúng tôi xác thực các CUIT:
Hãy tính toán chữ số xác thực cho một CUIT có mã loại 30 và số nhận dạng 12345678:
Do đó, CUIT hợp lệ hoàn chỉnh là 30-12345678-1.
Công cụ Trình tạo và Xác thực CUIT Argentina phục vụ nhiều mục đích thực tiễn trong các bối cảnh chuyên nghiệp khác nhau:
Các ví dụ mã sau đây minh họa cách triển khai xác thực và tạo CUIT trong các ngôn ngữ lập trình khác nhau:
1// Xác thực CUIT trong JavaScript
2function validateCUIT(cuit) {
3 // Xóa bất kỳ ký tự không phải chữ số
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Kiểm tra xem nó có đúng 11 chữ số không
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Trích xuất các phần
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Tính toán chữ số xác thực
17 const multipliers = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
18 let sum = 0;
19
20 for (let i = 0; i < 10; i++) {
21 sum += parseInt(cleanCuit[i]) * multipliers[i];
22 }
23
24 const remainder = sum % 11;
25 let calculatedVerificationDigit;
26
27 if (remainder === 0) {
28 calculatedVerificationDigit = 0;
29 } else if (remainder === 1) {
30 calculatedVerificationDigit = 9;
31 } else {
32 calculatedVerificationDigit = 11 - remainder;
33 }
34
35 return calculatedVerificationDigit === providedVerificationDigit;
36}
37
38// Ví dụ sử dụng
39console.log(validateCUIT('30-12345678-1')); // true hoặc false
40
1# Tạo CUIT trong Python
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Định nghĩa mã loại thực thể
6 entity_types = {
7 'COMPANY': 30,
8 'ASSOCIATION': 33,
9 'FOUNDATION': 30,
10 'SOCIETY': 30,
11 'GOVERNMENT': 30,
12 'FOREIGN_COMPANY': 30,
13 'INDIVIDUAL_MALE': 20,
14 'INDIVIDUAL_FEMALE': 27,
15 'TRUST': 30
16 }
17
18 # Lấy mã loại cho loại thực thể đã chọn
19 type_code = entity_types.get(entity_type, 30)
20
21 # Tạo số ngẫu nhiên 8 chữ số
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Tính toán chữ số xác thực
25 multipliers = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
26 digits = f"{type_code}{number}"
27
28 sum_products = sum(int(digits[i]) * multipliers[i] for i in range(10))
29 remainder = sum_products % 11
30
31 if remainder == 0:
32 verification_digit = 0
33 elif remainder == 1:
34 verification_digit = 9
35 else:
36 verification_digit = 11 - remainder
37
38 # Định dạng và trả về CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Ví dụ sử dụng
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// Xác thực CUIT trong PHP
3function validateCUIT($cuit) {
4 // Xóa bất kỳ ký tự không phải chữ số
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Kiểm tra xem nó có đúng 11 chữ số không
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Trích xuất các phần
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Tính toán chữ số xác thực
18 $multipliers = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
19 $sum = 0;
20
21 for ($i = 0; $i < 10; $i++) {
22 $sum += intval($cleanCuit[$i]) * $multipliers[$i];
23 }
24
25 $remainder = $sum % 11;
26
27 if ($remainder === 0) {
28 $calculatedVerificationDigit = 0;
29 } elseif ($remainder === 1) {
30 $calculatedVerificationDigit = 9;
31 } else {
32 $calculatedVerificationDigit = 11 - $remainder;
33 }
34
35 return $calculatedVerificationDigit === $providedVerificationDigit;
36}
37
38// Ví dụ sử dụng
39echo validateCUIT('30-12345678-1') ? 'Hợp lệ' : 'Không hợp lệ';
40?>
41
1// Tạo và xác thực CUIT trong Java
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Mã loại thực thể
7 private static final int COMPANY_CODE = 30;
8 private static final int ASSOCIATION_CODE = 33;
9 private static final int INDIVIDUAL_MALE_CODE = 20;
10 private static final int INDIVIDUAL_FEMALE_CODE = 27;
11
12 // Tạo một CUIT hợp lệ
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Xác định mã loại dựa trên loại thực thể
17 switch (entityType.toUpperCase()) {
18 case "INDIVIDUAL_MALE":
19 typeCode = INDIVIDUAL_MALE_CODE;
20 break;
21 case "INDIVIDUAL_FEMALE":
22 typeCode = INDIVIDUAL_FEMALE_CODE;
23 break;
24 case "ASSOCIATION":
25 typeCode = ASSOCIATION_CODE;
26 break;
27 case "COMPANY":
28 default:
29 typeCode = COMPANY_CODE;
30 break;
31 }
32
33 // Tạo số ngẫu nhiên 8 chữ số
34 Random random = new Random();
35 StringBuilder number = new StringBuilder();
36 for (int i = 0; i < 8; i++) {
37 number.append(random.nextInt(10));
38 }
39
40 // Tính toán chữ số xác thực
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Định dạng và trả về CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Tính toán chữ số xác thực
49 private static int calculateVerificationDigit(String digits) {
50 int[] multipliers = {5, 4, 3, 2, 7, 6, 5, 4, 3, 2};
51 int sum = 0;
52
53 for (int i = 0; i < 10; i++) {
54 sum += Character.getNumericValue(digits.charAt(i)) * multipliers[i];
55 }
56
57 int remainder = sum % 11;
58
59 if (remainder == 0) {
60 return 0;
61 } else if (remainder == 1) {
62 return 9;
63 } else {
64 return 11 - remainder;
65 }
66 }
67
68 // Xác thực một CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Xóa bất kỳ ký tự không phải chữ số
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Kiểm tra xem nó có đúng 11 chữ số không
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Trích xuất chữ số xác thực
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Tính toán chữ số xác thực mong đợi
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // So sánh các chữ số xác thực
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Ví dụ sử dụng
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("CUIT đã tạo: " + generatedCUIT);
92 System.out.println("Có hợp lệ: " + validateCUIT(generatedCUIT));
93 }
94}
95
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Xác thực một CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Xóa bất kỳ ký tự không phải chữ số
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Kiểm tra xem nó có đúng 11 chữ số không
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Trích xuất chữ số xác thực
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Tính toán chữ số xác thực mong đợi
22 int[] multipliers = { 5, 4, 3, 2, 7, 6, 5, 4, 3, 2 };
23 int sum = 0;
24
25 for (int i = 0; i < 10; i++)
26 {
27 sum += int.Parse(cleanCuit.Substring(i, 1)) * multipliers[i];
28 }
29
30 int remainder = sum % 11;
31 int calculatedVerificationDigit;
32
33 if (remainder == 0)
34 {
35 calculatedVerificationDigit = 0;
36 }
37 else if (remainder == 1)
38 {
39 calculatedVerificationDigit = 9;
40 }
41 else
42 {
43 calculatedVerificationDigit = 11 - remainder;
44 }
45
46 return calculatedVerificationDigit == providedVerificationDigit;
47 }
48
49 // Định dạng một CUIT với các dấu phân cách phù hợp
50 public static string FormatCUIT(string cuit)
51 {
52 string cleanCuit = Regex.Replace(cuit, @"\D", "");
53
54 if (cleanCuit.Length != 11)
55 {
56 return cuit; // Trả về nguyên gốc nếu không phải 11 chữ số
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
Hệ thống CUIT được thành lập tại Argentina vào đầu những năm 1990 như một phần của sáng kiến cải cách thuế rộng lớn nhằm hiện đại hóa cơ sở hạ tầng tài chính của đất nước và giảm gian lận thuế. Cơ quan Quản lý Thuế Liên bang (AFIP), cơ quan thuế của Argentina, đã triển khai CUIT như một hệ thống nhận dạng tiêu chuẩn cho tất cả người nộp thuế.
Trước khi giới thiệu CUIT, Argentina đã sử dụng nhiều hệ thống nhận dạng không nhất quán cho các loại người nộp thuế khác nhau, khiến việc quản lý thuế trở nên kém hiệu quả và tạo cơ hội cho việc không tuân thủ. CUIT đã thống nhất các hệ thống này thành một mã nhận dạng duy nhất, có thể được sử dụng cho tất cả các hoạt động liên quan đến thuế.
Các cột mốc quan trọng trong sự phát triển của hệ thống CUIT bao gồm:
CUIT đã trở thành một yếu tố thiết yếu trong các hệ thống kinh tế và tài chính của Argentina, phục vụ không chỉ cho mục đích thuế mà còn cho ngân hàng, việc làm, an sinh xã hội và các giao dịch kinh doanh.
CUIT (Código Único de Identificación Tributaria) là Mã số Nhận dạng Thuế duy nhất của Argentina được gán cho các cá nhân và pháp nhân cho các mục đích thuế. Nó bao gồm 11 chữ số theo định dạng XX-XXXXXXXX-X, trong đó hai chữ số đầu tiên chỉ ra loại thực thể, tám chữ số giữa là số nhận dạng và chữ số cuối cùng là chữ số xác thực.
Một CUIT hợp lệ phải:
Công cụ xác thực CUIT của chúng tôi có thể ngay lập tức kiểm tra xem một CUIT có đáp ứng các tiêu chí này hay không.
Mặc dù có định dạng tương tự, CUIT và CUIL phục vụ các mục đích khác nhau:
Cả hai đều theo cùng một định dạng và thuật toán xác thực, nhưng được sử dụng trong các bối cảnh khác nhau.
Không. Các CUIT được tạo ra bởi công cụ này là hợp lệ về mặt toán học nhưng không được đăng ký trong cơ sở dữ liệu chính thức của AFIP. Chúng chỉ nên được sử dụng cho các mục đích thử nghiệm, phát triển hoặc giáo dục. Việc sử dụng các CUIT giả mạo cho các tài liệu hoặc giao dịch chính thức có thể cấu thành hành vi gian lận.
AFIP đã gán cùng một mã loại (30) cho một số loại thực thể như công ty, quỹ và các thực thể chính phủ. Đây là một phần của hệ thống phân loại chính thức và không ảnh hưởng đến tính hợp lệ của CUIT. Loại thực thể cụ thể được xác định bởi thông tin đăng ký bổ sung trong hệ thống của AFIP.
CUIT là các mã nhận dạng vĩnh viễn thường không thay đổi trong suốt cuộc đời của một cá nhân hoặc thực thể. Tuy nhiên, trong một số trường hợp cụ thể như thay đổi tình trạng pháp lý hoặc thay đổi giới tính, một CUIT mới có thể được gán.
Có, nhưng không thông qua công cụ của chúng tôi. AFIP cung cấp một dịch vụ chính thức gọi là "Constancia de Inscripción" trên trang web của họ, nơi bạn có thể xác minh xem một CUIT có được đăng ký chính thức và đang hoạt động hay không. Công cụ của chúng tôi chỉ xác thực tính chính xác toán học của một CUIT.
Các lỗi phổ biến bao gồm:
Trình xác thực của chúng tôi giúp xác định những vấn đề này bằng cách kiểm tra cả định dạng và tính hợp lệ toán học.
Công cụ của chúng tôi cho phép bạn chọn từ nhiều loại thực thể trước khi tạo CUIT. Chỉ cần chọn loại thực thể phù hợp từ menu thả xuống và nhấp vào "Tạo CUIT." Công cụ sẽ tự động sử dụng mã loại đúng cho lựa chọn của bạn.
Không, công cụ của chúng tôi không đặt ra bất kỳ giới hạn nào về số lượng CUIT bạn có thể tạo hoặc xác thực. Nó được thiết kế để thuận tiện trong các tình huống thử nghiệm và giáo dục, nơi bạn có thể cần nhiều CUIT hợp lệ.
Administración Federal de Ingresos Públicos (AFIP). "Identificación Tributaria." https://www.afip.gob.ar/
Ministerio de Economía de la República Argentina. "Sistema Tributario Argentino." https://www.argentina.gob.ar/economia
Ley 11.683 de Procedimiento Tributario. Boletín Oficial de la República Argentina.
Resolución General AFIP 1817/2005. "Procedimientos de inscripción y registración."
Chicote, J. (2018). "Tax Identification Systems in Latin America: A Comparative Analysis." Journal of Tax Administration, 4(1), 88-106.
Gómez Sabaini, J.C., & Morán, D. (2016). "Tax Policy in Latin America: Assessment and Guidelines for Reform." United Nations Economic Commission for Latin America and the Caribbean (ECLAC).
Công cụ Trình tạo và Xác thực CUIT Argentina cung cấp một giải pháp đơn giản, hiệu quả để làm việc với các mã nhận dạng thuế Argentina trong các môi trường thử nghiệm và phát triển. Bằng cách hiểu cấu trúc, định dạng và thuật toán xác thực của các CUIT, người dùng có thể đảm bảo tính toàn vẹn của dữ liệu và tuân thủ các tiêu chuẩn nhận dạng thuế Argentina.
Cho dù bạn đang phát triển phần mềm tương tác với các hệ thống tài chính Argentina, thử nghiệm các quy trình xác thực dữ liệu, hay đơn giản là học về các hệ thống nhận dạng thuế quốc tế, công cụ của chúng tôi cung cấp chức năng bạn cần mà không có sự phức tạp không cần thiết.
Hãy thử tạo một CUIT ngay bây giờ hoặc xác thực một CUIT hiện có để trải nghiệm sự đơn giản và hiệu quả của công cụ của chúng tôi ngay lập tức.
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn