Генерирайте валидни аржентински номера CUIT (данъчни идентификационни кодове) и валидирайте съществуващи с този прост инструмент, проектиран за тестови сценарии. Никакви сложни функции, само директно генериране и валидиране на CUIT.
Прост инструмент за генериране и валидиране на данъчни идентификационни кодове (CUIT) в Аржентина за тестови цели.
Формат: XX-XXXXXXXX-X
CUIT (Código Único de Identificación Tributaria) е данъчният идентификационен код, използван в Аржентина за физически и юридически лица.
CUIT (Código Único de Identificación Tributaria) е уникалният данъчен идентификационен код на Аржентина, критичен идентификатор за всички данъкоплатци в аржентинската данъчна система. Този основен числов код служи като основен идентификатор за физически и юридически лица при взаимодействие с AFIP (Федералната администрация на публичните приходи) и при извършване на бизнес операции в цяла Аржентина. Нашият инструмент за генериране и валидиране на CUIT в Аржентина предлага просто и ефективно решение за генериране на математически валидни CUIT за тестови цели и валидиране на съществуващи номера на CUIT.
Независимо дали сте разработчик, тествате приложения, които обработват аржентинска данъчна информация, QA специалист, който проверява целостта на данните, или бизнес анализатор, подготвящ тестови набори от данни, този инструмент опростява процеса на работа с номера на CUIT без сложността на интеграции с API или ненужни функции.
Аржентинският CUIT следва специфичен формат, състоящ се от 11 цифри, подредени по следния начин:
1XX-XXXXXXXX-X
2
Този стандартизиран формат може да бъде разделен на три различни компонента:
Първите две цифри на CUIT показват типа на данъкоплатеца:
Тип на субекта | Код на типа | Описание |
---|---|---|
Компания | 30 | Корпорации, ООД и други бизнес субекти |
Асоциация | 33 | Неправителствени асоциации |
Фондация | 30 | Благотворителни фондации |
Общество | 30 | Партньорства и други обществени структури |
Правителство | 30 | Държавни органи и публични институции |
Чуждестранна компания | 30 | Компании, базирани извън Аржентина |
Индивид (Мъж) | 20 | Мъжки индивиди |
Индивид (Жена) | 27 | Женски индивиди |
Тръст | 30 | Тръстови субекти |
Разбирането на тези кодове на типовете е съществено за генерирането на подходящи CUIT за различни тестови сценарии.
Нашият инструмент предлага две основни функции: генериране на валидни CUIT и валидиране на съществуващи. Ето как да използвате всяка функция ефективно:
Генераторът създава случайни, но математически валидни CUIT, които следват официалния алгоритъм, използван от AFIP. Тези CUIT са идеални за тестване на системи, които изискват валидни формати на CUIT, въпреки че не са регистрирани в официални бази данни.
Валидаторът проверява както формата, така и математическата валидност на CUIT, като проверява дали проверяващата цифра съвпада с изчислената стойност на базата на предходните цифри.
Проверяващата цифра (последната цифра) на CUIT се изчислява с помощта на специфичен алгоритъм, проектиран да открива често срещани грешки при въвеждане на данни. Разбирането на този алгоритъм помага да се обясни как нашият инструмент валидира CUIT:
Нека изчислим проверяващата цифра за CUIT с код на типа 30 и идентификационен номер 12345678:
Следователно, пълният валиден CUIT е 30-12345678-1.
Инструментът за генериране и валидиране на CUIT в Аржентина служи на множество практични цели в различни професионални контексти:
Следващите примери за код демонстрират как да се реализира валидиране и генериране на CUIT на различни програмни езици:
1// Валидиране на CUIT в JavaScript
2function validateCUIT(cuit) {
3 // Премахнете всички нецифрови символи
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Проверете дали има точно 11 цифри
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Извлечете частите
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Изчислете проверяващата цифра
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// Пример за употреба
39console.log(validateCUIT('30-12345678-1')); // true или false
40
1# Генериране на CUIT в Python
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Определете кодовете на типовете субекти
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 # Получете код на типа за избрания тип субект
19 type_code = entity_types.get(entity_type, 30)
20
21 # Генерирайте случайно 8-цифрено число
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Изчислете проверяващата цифра
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 # Форматирайте и върнете CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Пример за употреба
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// Валидиране на CUIT в PHP
3function validateCUIT($cuit) {
4 // Премахнете всички нецифрови символи
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Проверете дали има точно 11 цифри
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Извлечете частите
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Изчислете проверяващата цифра
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// Пример за употреба
39echo validateCUIT('30-12345678-1') ? 'Валиден' : 'Невалиден';
40?>
41
1// Генериране и валидиране на CUIT в Java
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Кодове на типовете субекти
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 // Генерирайте валиден CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Определете кода на типа въз основа на типа на субекта
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 // Генерирайте случайно 8-цифрено число
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 // Изчислете проверяващата цифра
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Форматирайте и върнете CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Изчислете проверяващата цифра
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 // Валидирайте CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Премахнете всички нецифрови символи
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Проверете дали има точно 11 цифри
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Извлечете проверяващата цифра
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Изчислете очакваната проверяваща цифра
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Сравнете проверяващите цифри
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Пример за употреба
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Генериран CUIT: " + generatedCUIT);
92 System.out.println("Валиден ли е: " + validateCUIT(generatedCUIT));
93 }
94}
95
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Валидирайте CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Премахнете всички нецифрови символи
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Проверете дали има точно 11 цифри
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Извлечете проверяващата цифра
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Изчислете очакваната проверяваща цифра
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 // Форматирайте CUIT с правилни разделители
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; // Върнете оригинала, ако не е 11 цифри
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
Системата CUIT беше установена в Аржентина в началото на 90-те години на миналия век като част от по-широка данъчна реформа, целяща модернизиране на фискалната инфраструктура на страната и намаляване на данъчната измама. Федералната администрация на публичните приходи (AFIP), данъчният орган на Аржентина, внедри CUIT като стандартизирана идентификационна система за всички данъкоплатци.
Преди въвеждането на CUIT, Аржентина използваше различни несъответстващи идентификационни системи за различни типове данъкоплатци, което правеше данъчното администриране неефективно и създаваше възможности за несъответствие. CUIT обедини тези системи в един единствен, проверим идентификатор, който може да се използва за всички данъчни дейности.
Ключови етапи в еволюцията на системата CUIT включват:
CUIT се е превърнал в основен елемент от икономическите и финансовите системи на Аржентина, служейки не само за данъчни цели, но и за банкови, трудови, социалноосигурителни и бизнес транзакции.
CUIT (Código Único de Identificación Tributaria) е уникалният данъчен идентификационен код на Аржентина, присвоен на физически и юридически лица за данъчни цели. Състои се от 11 цифри в формата XX-XXXXXXXX-X, където първите две цифри показват типа на субекта, средните осем цифри са идентификационен номер, а последната цифра е проверяваща цифра.
Валиден CUIT трябва да:
Нашият инструмент за валидатор на CUIT може незабавно да провери дали CUIT отговаря на тези критерии.
Въпреки че са подобни по формат, CUIT и CUIL служат на различни цели:
И двата следват същия формат и алгоритъм за проверка, но се използват в различни контексти.
Не. CUIT, генерирани от този инструмент, са математически валидни, но не са регистрирани в официалната база данни на AFIP. Те трябва да се използват само за тестови, развойни или образователни цели. Използването на фиктивни CUIT за официални документи или транзакции може да представлява измама.
AFIP е присвоила същия код на типа (30) на няколко типа субекти, включително компании, фондации и държавни органи. Това е част от официалната класификационна система и не влияе на валидността на CUIT. Специфичният тип субект се определя от допълнителна регистрационна информация в системите на AFIP.
CUIT са постоянни идентификатори, които обикновено не се променят през живота на индивид или субект. Въпреки това, в някои специфични случаи, като промени в правния статус или смяна на пола, може да бъде присвоен нов CUIT.
Да, но не чрез нашия инструмент. AFIP предоставя официална услуга, наречена "Constancia de Inscripción" на своя сайт, където можете да проверите дали CUIT е официално регистриран и активен. Нашият инструмент само валидира математическата коректност на CUIT.
Често срещаните грешки включват:
Нашият валидатор помага да се идентифицират тези проблеми, като проверява както формата, така и математическата валидност.
Нашият инструмент ви позволява да изберете от различни типове субекти, преди да генерирате CUIT. Просто изберете подходящия тип субект от падащото меню и щракнете върху "Генерирай CUIT". Инструментът автоматично ще използва правилния код на типа за вашия избор.
Не, нашият инструмент не налага ограничения на броя CUIT, които можете да генерирате или валидирате. Той е проектиран за удобство в тестови и образователни сценарии, където може да ви трябват множество валидни CUIT.
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).
Инструментът за генериране и валидиране на CUIT в Аржентина предлага просто, ефективно решение за работа с аржентински данъчни идентификационни кодове в тестови и развойни среди. Чрез разбирането на структурата, формата и алгоритъма за проверка на CUIT, потребителите могат да осигурят целостта на данните и съответствието с аржентинските стандарти за данъчна идентификация.
Независимо дали разработвате софтуер, който взаимодейства с аржентински финансови системи, тествате рутините за валидиране на данни или просто се учите за международните системи за данъчна идентификация, нашият инструмент предлага необходимата функционалност без ненужна сложност.
Опитайте да генерирате CUIT сега или валидирайте съществуващ такъв, за да изпитате простотата и ефективността на нашия инструмент на практика.
Открийте още инструменти, които може да бъдат полезни за вашия работен процес