Генератор та валідатор CUIT/CUIL Аргентини
Генеруйте дійсні номери CUIT/CUIL Аргентини для тестування або перевіряйте існуючі. Простий інструмент для розробників, які працюють з податковими та трудовими ідентифікаційними номерами Аргентини.
Генератор CUIT/CUIL
Введіть 8-значний номер DNI або скористайтеся генератором
Згенерований CUIT/CUIL
Документація
Генератор та валідатор CUIT/CUIL Аргентини
Вступ
Аргентинський CUIT (Clave Única de Identificación Tributaria) та CUIL (Clave Única de Identificación Laboral) — це унікальні ідентифікаційні номери, які використовуються в Аргентині для податкових та трудових цілей відповідно. Ці 11-значні коди є необхідними для осіб та підприємств, щоб легально функціонувати в аргентинській економічній системі. Наш інструмент генерації та валідатора CUIT/CUIL забезпечує простий та ефективний спосіб генерувати дійсні номери CUIT/CUIL для тестування та перевіряти існуючі номери, щоб впевнитися, що вони відповідають офіційному формату та алгоритму верифікації.
Чи ви розробник, який тестує програми, що обробляють аргентинські податкові ідентифікатори, спеціаліст з контролю якості, який перевіряє функціональність системи, чи просто вам потрібно зрозуміти, як працюють ці ідентифікаційні номери, цей інструмент пропонує просте рішення без зайвих ускладнень. Інструмент має дві основні функції: генератор, який створює дійсні номери CUIT/CUIL випадковим чином або на основі певних параметрів, та валідатор, який перевіряє, чи даний номер CUIT/CUIL відповідає правильному формату та правилам розрахунку.
Структура та розрахунок CUIT/CUIL
Розуміння формату
Дійсний номер CUIT/CUIL складається з 11 цифр, які зазвичай відображаються у форматі XX-XXXXXXXX-X:
-
Код типу (перші 2 цифри): Вказує на тип суб'єкта
- 20, 23, 24: Чоловіки (CUIL)
- 27: Жінки (CUIL)
- 30, 33, 34: Компанії та організації (CUIT)
-
Номер DNI (середні 8 цифр): Для осіб це їх номер національного документа особи (DNI), доповнений нулями попереду, якщо це необхідно, щоб досягти 8 цифр. Для компаній це унікальний присвоєний номер.
-
Перевірочна цифра (остання цифра): Цифра перевірки, розрахована за допомогою специфічного алгоритму для верифікації всього номера.
Розрахунок перевірочної цифри
Перевірочна цифра розраховується за наступним алгоритмом:
- Візьміть перші 10 цифр CUIT/CUIL (код типу + DNI)
- Помножте кожну цифру на відповідну вагу з цієї послідовності: 5, 4, 3, 2, 7, 6, 5, 4, 3, 2
- Сумуйте всі отримані добутки
- Обчисліть 11 мінус залишок від ділення суми на 11
- Якщо результат дорівнює 11, перевірочна цифра дорівнює 0
- Якщо результат дорівнює 10, перевірочна цифра дорівнює 9
- В іншому випадку результат є перевірочною цифрою
Математично це можна виразити як:
Де:
- — перевірочна цифра
- — -та цифра перших 10 цифр
- — відповідна вага з послідовності [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
- Спеціальні випадки: якщо , тоді , якщо , тоді
Покрокова інструкція
Використання генератора
-
Виберіть вкладку "Генератор" у верхній частині інтерфейсу інструмента.
-
Виберіть код типу з випадаючого меню:
- 20: Чоловік (CUIL)
- 23: Бізнес (CUIT)
- 24: Тимчасовий бізнес (CUIT)
- 27: Жінка (CUIL)
- 30: Корпорація (CUIT)
- 33: Громадська асоціація (CUIT)
- 34: Фонд (CUIT)
-
Введіть номер DNI (необов'язково):
- Введіть 8-значний номер DNI у наданому полі
- Якщо залишити порожнім, інструмент використовуватиме випадково згенерований DNI
- Якщо ви введете менше ніж 8 цифр, система доповнить нулями попереду
-
Згенерувати випадковий DNI (необов'язково):
- Натисніть кнопку "Випадковий", щоб згенерувати випадковий 8-значний номер DNI
-
Перегляньте згенерований CUIT/CUIL:
- Інструмент автоматично відображає дійсний CUIT/CUIL на основі ваших введень
- Формат буде XX-XXXXXXXX-X з правильною перевірочною цифрою
-
Скопіюйте результат:
- Натисніть значок копіювання, щоб скопіювати згенерований CUIT/CUIL у буфер обміну
- Повідомлення про підтвердження з'явиться після успішного копіювання
Використання валідатора
-
Виберіть вкладку "Валідатор" у верхній частині інтерфейсу інструмента.
-
Введіть CUIT/CUIL для перевірки:
- Введіть CUIT/CUIL у форматі XX-XXXXXXXX-X
- Інструмент автоматично відформатує ваш ввід з дефісами під час введення
- Ви також можете ввести номер без дефісів (XXXXXXXXXXX)
-
Натисніть кнопку "Валідувати":
- Інструмент перевірить формат, код типу та перевірочну цифру
-
Перегляньте результат валідації:
- Для дійсних номерів CUIT/CUIL з'явиться зелене повідомлення про успіх
- Для недійсних номерів з'явиться червоне повідомлення про помилку, яке пояснить проблему:
- Неправильний формат (повинен бути XX-XXXXXXXX-X)
- Неправильний код типу (повинен бути одним з: 20, 23, 24, 27, 30, 33, 34)
- Неправильна перевірочна цифра
-
Додаткова інформація:
- Для дійсних номерів інструмент відображає розбивку компонентів:
- Код типу та його значення
- Номер DNI
- Перевірочна цифра
- Для дійсних номерів інструмент відображає розбивку компонентів:
Сценарії використання
Розробка та тестування
-
Розробка програмного забезпечення: Генеруйте дійсні номери CUIT/CUIL для тестування програм, які обробляють аргентинські податкові ідентифікатори, такі як:
- Платформи електронної комерції
- Бухгалтерське програмне забезпечення
- Системи управління персоналом
- Портали державних послуг
- Банківські програми
-
Заповнення бази даних: Створіть реалістичні тестові дані для систем, які зберігають інформацію про аргентинських користувачів, забезпечуючи правильну роботу обмежень бази даних та правил валідації.
-
Тестування валідації форм: Тестуйте валідацію вводу для веб-форм, які збирають інформацію про CUIT/CUIL, перевіряючи, що правильні повідомлення про помилки з'являються для недійсних записів.
-
Тестування API: Генеруйте дійсні дані для API-інтерфейсів, які вимагають номерів CUIT/CUIL, забезпечуючи, щоб ваші інтеграційні тести використовували дійсні дані.
-
Автоматизація QA: Включайте генерацію CUIT/CUIL у автоматизовані тестові сценарії, щоб створювати динамічні тестові випадки замість використання статичних тестових даних.
Освітні цілі
-
Вивчення алгоритмів валідації: Зрозумійте, як працюють алгоритми перевірки цифр на практиці, спостерігаючи за процесом верифікації CUIT/CUIL.
-
Навчання валідації даних: Використовуйте як навчальний приклад під час навчання нових розробників технікам валідації форм.
-
Розуміння вимог бізнесу Аргентини: Досліджуйте ідентифікаційну систему, що використовується в Аргентині, для міжнародного розвитку бізнесу.
Альтернативи
Хоча наш інструмент забезпечує простий спосіб генерувати та валідувати номери CUIT/CUIL, ви можете розглянути альтернативні підходи:
-
Офіційна валідація урядом: Для виробничих середовищ завжди перевіряйте номери CUIT/CUIL проти офіційної бази даних AFIP (Administración Federal de Ingresos Públicos), коли це можливо.
-
Бібліотеки та пакети: Декілька мов програмування мають бібліотеки, спеціально призначені для валідації аргентинських податкових ідентифікаторів:
- JavaScript: пакет npm
validar-cuit
- PHP: бібліотека
afip-php
- Python: пакет
py-cuit
- JavaScript: пакет npm
-
Ручний розрахунок: Для навчальних цілей ви можете вручну обчислити перевірочну цифру, використовуючи описаний раніше алгоритм.
-
Комплексні сервіси валідації бізнесу: Для корпоративних застосунків розгляньте можливість використання комплексних сервісів валідації, які не лише перевіряють формат, а й підтверджують існування та статус суб'єкта, пов'язаного з CUIT/CUIL.
Історія системи CUIT/CUIL
Система ідентифікації CUIT/CUIL в Аргентині значно еволюціонувала з моменту свого виникнення:
Походження та впровадження
CUIT (Clave Única de Identificación Tributaria) вперше було введено в Аргентині в 1970-х роках у рамках зусиль з модернізації системи збору податків. Федеральна адміністрація доходів (AFIP) впровадила цей унікальний ідентифікатор для більш ефективного відстеження платників податків та зменшення податкових порушень.
CUIL (Clave Única de Identificación Laboral) був пізніше введений для специфічної ідентифікації працівників у системі соціального забезпечення, створюючи відмінність між податковою ідентифікацією та трудовою ідентифікацією, зберігаючи при цьому однаковий формат.
Еволюція та цифровізація
У 1990-х роках, коли Аргентина зазнала значних економічних реформ, система CUIT/CUIL стала все більш важливою для відстеження економічної діяльності. Система була подальше цифровізована, і були впроваджені онлайн-системи верифікації.
На початку 2000-х років система CUIT/CUIL була інтегрована з різними цифровими державними послугами, що зробило її важливим компонентом ініціатив електронного уряду Аргентини. Цей період також став свідком стандартизації алгоритму верифікації та формату, які залишаються в використанні до сьогодні.
Останні розробки
В останні роки AFIP посилила процеси безпеки та верифікації для номерів CUIT/CUIL, впровадивши більш складні системи валідації та інтегруючи їх з іншими державними базами даних. Система тепер відіграє вирішальну роль у зусиллях Аргентини щодо боротьби з податковими порушеннями та формалізації економіки.
Сьогодні CUIT/CUIL використовується не лише для податкових та трудових цілей, але й для широкого спектру діяльності, включаючи банківські операції, угоди з нерухомістю, комунальні послуги та онлайн-покупки, що робить його важливим ідентифікатором як для осіб, так і для підприємств, що функціонують в Аргентині.
Приклади коду
Python
1def calculate_verification_digit(type_code, dni):
2 # Перетворити на рядок та забезпечити, щоб DNI був 8 цифрами з нулями попереду
3 type_code_str = str(type_code)
4 dni_str = str(dni).zfill(8)
5
6 # Об'єднати код типу та DNI
7 digits = type_code_str + dni_str
8
9 # Ваги для кожної позиції
10 weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
11
12 # Обчислити суму добутків
13 sum_products = sum(int(digits[i]) * weights[i] for i in range(10))
14
15 # Обчислити перевірочну цифру
16 verification_digit = 11 - (sum_products % 11)
17
18 # Спеціальні випадки
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 # Дійсні коди типів
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"Недійсний код типу. Повинен бути одним з: {valid_type_codes}")
34
35 # Генерувати випадковий DNI, якщо не надано
36 if dni is None:
37 dni = random.randint(10000000, 99999999)
38
39 # Обчислити перевірочну цифру
40 verification_digit = calculate_verification_digit(type_code, dni)
41
42 # Формат CUIT/CUIL
43 return f"{type_code}-{str(dni).zfill(8)}-{verification_digit}"
44
45def validate_cuit_cuil(cuit_cuil):
46 # Видалити дефіси, якщо є
47 cuit_cuil_clean = cuit_cuil.replace("-", "")
48
49 # Перевірити базовий формат
50 if not cuit_cuil_clean.isdigit() or len(cuit_cuil_clean) != 11:
51 return False, "Неправильний формат"
52
53 # Витягти частини
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 # Валідність коду типу
59 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
60 if type_code not in valid_type_codes:
61 return False, "Недійсний код типу"
62
63 # Обчислити та порівняти перевірочну цифру
64 calculated_digit = calculate_verification_digit(type_code, dni)
65 if calculated_digit != verification_digit:
66 return False, "Недійсна перевірочна цифра"
67
68 return True, "Дійсний CUIT/CUIL"
69
70# Приклад використання
71print(generate_cuit_cuil(20, 12345678)) # Генерувати для конкретного DNI
72print(generate_cuit_cuil(27)) # Генерувати з випадковим DNI
73print(validate_cuit_cuil("20-12345678-9")) # Валідувати CUIT/CUIL
74
JavaScript
1function calculateVerificationDigit(typeCode, dni) {
2 // Перетворити на рядок та забезпечити, щоб DNI був 8 цифрами з нулями попереду
3 const typeCodeStr = typeCode.toString();
4 const dniStr = dni.toString().padStart(8, '0');
5
6 // Об'єднати код типу та DNI
7 const digits = typeCodeStr + dniStr;
8
9 // Ваги для кожної позиції
10 const weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
11
12 // Обчислити суму добутків
13 let sumProducts = 0;
14 for (let i = 0; i < 10; i++) {
15 sumProducts += parseInt(digits[i]) * weights[i];
16 }
17
18 // Обчислити перевірочну цифру
19 let verificationDigit = 11 - (sumProducts % 11);
20
21 // Спеціальні випадки
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 // Дійсні коди типів
33 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
34
35 if (!validTypeCodes.includes(typeCode)) {
36 throw new Error(`Недійсний код типу. Повинен бути одним з: ${validTypeCodes.join(', ')}`);
37 }
38
39 // Генерувати випадковий DNI, якщо не надано
40 if (dni === undefined) {
41 dni = Math.floor(Math.random() * 90000000) + 10000000;
42 }
43
44 // Обчислити перевірочну цифру
45 const verificationDigit = calculateVerificationDigit(typeCode, dni);
46
47 // Формат CUIT/CUIL
48 return `${typeCode}-${dni.toString().padStart(8, '0')}-${verificationDigit}`;
49}
50
51function validateCuitCuil(cuitCuil) {
52 // Видалити дефіси, якщо є
53 const cuitCuilClean = cuitCuil.replace(/-/g, '');
54
55 // Перевірити базовий формат
56 if (!/^\d{11}$/.test(cuitCuilClean)) {
57 return { isValid: false, errorMessage: 'Неправильний формат' };
58 }
59
60 // Витягти частини
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 // Валідність коду типу
66 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
67 if (!validTypeCodes.includes(typeCode)) {
68 return { isValid: false, errorMessage: 'Недійсний код типу' };
69 }
70
71 // Обчислити та порівняти перевірочну цифру
72 const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73 if (calculatedDigit !== verificationDigit) {
74 return { isValid: false, errorMessage: 'Недійсна перевірочна цифра' };
75 }
76
77 return { isValid: true };
78}
79
80// Приклад використання
81console.log(generateCuitCuil(20, 12345678)); // Генерувати для конкретного DNI
82console.log(generateCuitCuil(27)); // Генерувати з випадковим DNI
83console.log(validateCuitCuil("20-12345678-9")); // Валідувати 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 // Перетворити на рядок та забезпечити, щоб DNI був 8 цифрами з нулями попереду
11 String typeCodeStr = String.valueOf(typeCode);
12 String dniStr = String.format("%08d", dni);
13
14 // Об'єднати код типу та DNI
15 String digits = typeCodeStr + dniStr;
16
17 // Обчислити суму добутків
18 int sumProducts = 0;
19 for (int i = 0; i < 10; i++) {
20 sumProducts += Character.getNumericValue(digits.charAt(i)) * WEIGHTS[i];
21 }
22
23 // Обчислити перевірочну цифру
24 int verificationDigit = 11 - (sumProducts % 11);
25
26 // Спеціальні випадки
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("Недійсний код типу. Повинен бути одним з: " + VALID_TYPE_CODES);
39 }
40
41 // Генерувати випадковий DNI, якщо не надано
42 if (dni == null) {
43 Random random = new Random();
44 dni = 10000000 + random.nextInt(90000000);
45 }
46
47 // Обчислити перевірочну цифру
48 int verificationDigit = calculateVerificationDigit(typeCode, dni);
49
50 // Формат CUIT/CUIL
51 return String.format("%d-%08d-%d", typeCode, dni, verificationDigit);
52 }
53
54 public static ValidationResult validateCuitCuil(String cuitCuil) {
55 // Видалити дефіси, якщо є
56 String cuitCuilClean = cuitCuil.replace("-", "");
57
58 // Перевірити базовий формат
59 if (!cuitCuilClean.matches("\\d{11}")) {
60 return new ValidationResult(false, "Неправильний формат");
61 }
62
63 // Витягти частини
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 // Валідність коду типу
69 if (!VALID_TYPE_CODES.contains(typeCode)) {
70 return new ValidationResult(false, "Недійсний код типу");
71 }
72
73 // Обчислити та порівняти перевірочну цифру
74 int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75 if (calculatedDigit != verificationDigit) {
76 return new ValidationResult(false, "Недійсна перевірочна цифра");
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 // Приклад використання
102 System.out.println(generateCuitCuil(20, 12345678)); // Генерувати для конкретного DNI
103 System.out.println(generateCuitCuil(27, null)); // Генерувати з випадковим DNI
104 System.out.println(validateCuitCuil("20-12345678-9").isValid()); // Валідувати CUIT/CUIL
105 }
106}
107
PHP
1<?php
2
3function calculateVerificationDigit($typeCode, $dni) {
4 // Перетворити на рядок та забезпечити, щоб DNI був 8 цифрами з нулями попереду
5 $typeCodeStr = (string)$typeCode;
6 $dniStr = str_pad((string)$dni, 8, '0', STR_PAD_LEFT);
7
8 // Об'єднати код типу та DNI
9 $digits = $typeCodeStr . $dniStr;
10
11 // Ваги для кожної позиції
12 $weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
13
14 // Обчислити суму добутків
15 $sumProducts = 0;
16 for ($i = 0; $i < 10; $i++) {
17 $sumProducts += (int)$digits[$i] * $weights[$i];
18 }
19
20 // Обчислити перевірочну цифру
21 $verificationDigit = 11 - ($sumProducts % 11);
22
23 // Спеціальні випадки
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 // Дійсні коди типів
35 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
36
37 if (!in_array($typeCode, $validTypeCodes)) {
38 throw new Exception("Недійсний код типу. Повинен бути одним з: " . implode(', ', $validTypeCodes));
39 }
40
41 // Генерувати випадковий DNI, якщо не надано
42 if ($dni === null) {
43 $dni = rand(10000000, 99999999);
44 }
45
46 // Обчислити перевірочну цифру
47 $verificationDigit = calculateVerificationDigit($typeCode, $dni);
48
49 // Формат CUIT/CUIL
50 return sprintf("%d-%08d-%d", $typeCode, $dni, $verificationDigit);
51}
52
53function validateCuitCuil($cuitCuil) {
54 // Видалити дефіси, якщо є
55 $cuitCuilClean = str_replace('-', '', $cuitCuil);
56
57 // Перевірити базовий формат
58 if (!preg_match('/^\d{11}$/', $cuitCuilClean)) {
59 return ['isValid' => false, 'errorMessage' => 'Неправильний формат'];
60 }
61
62 // Витягти частини
63 $typeCode = (int)substr($cuitCuilClean, 0, 2);
64 $dni = (int)substr($cuitCuilClean, 2, 8);
65 $verificationDigit = (int)substr($cuitCuilClean, 10, 1);
66
67 // Валідність коду типу
68 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
69 if (!in_array($typeCode, $validTypeCodes)) {
70 return ['isValid' => false, 'errorMessage' => 'Недійсний код типу'];
71 }
72
73 // Обчислити та порівняти перевірочну цифру
74 $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75 if ($calculatedDigit !== $verificationDigit) {
76 return ['isValid' => false, 'errorMessage' => 'Недійсна перевірочна цифра'];
77 }
78
79 return ['isValid' => true];
80}
81
82// Приклад використання
83echo generateCuitCuil(20, 12345678) . "\n"; // Генерувати для конкретного DNI
84echo generateCuitCuil(27) . "\n"; // Генерувати з випадковим DNI
85var_dump(validateCuitCuil("20-12345678-9")); // Валідувати CUIT/CUIL
86?>
87
Часто задавані питання
Яка різниця між CUIT та CUIL?
CUIT (Clave Única de Identificación Tributaria) використовується для податкової ідентифікації і призначається як фізичним, так і юридичним особам, які повинні сплачувати податки в Аргентині. CUIL (Clave Única de Identificación Laboral) спеціально призначений для працівників і використовується для трудових та соціальних цілей. Хоча вони мають однаковий формат та алгоритм верифікації, вони слугують різним адміністративним цілям.
Які коди типів використовуються для осіб, а які для компаній?
Для осіб:
- 20, 23, 24: Чоловіки (CUIL)
- 27: Жінки (CUIL)
Для компаній та організацій:
- 30: Корпорації (CUIT)
- 33: Громадські асоціації (CUIT)
- 34: Фонди (CUIT)
Як розраховується перевірочна цифра?
Перевірочна цифра розраховується за допомогою алгоритму зваженої суми. Кожна з перших 10 цифр множиться на відповідню вагу (5, 4, 3, 2, 7, 6, 5, 4, 3, 2), а результати сумуються. Перевірочна цифра дорівнює 11 мінус залишок від ділення цієї суми на 11. Спеціальні випадки: якщо результат дорівнює 11, перевірочна цифра дорівнює 0; якщо результат дорівнює 10, перевірочна цифра дорівнює 9.
Чи можу я використовувати цей інструмент для генерації реальних, офіційних номерів CUIT/CUIL?
Ні, цей інструмент призначений лише для тестування та освітніх цілей. Згенеровані номери є математично дійсними відповідно до алгоритму CUIT/CUIL, але не зареєстровані офіційно в аргентинських податкових органах (AFIP). Для офіційної реєстрації CUIT/CUIL фізичні та юридичні особи повинні дотримуватися належних юридичних процедур через AFIP.
Чому моя валідація CUIT/CUIL не проходить, хоча формат виглядає правильним?
Валідація може не проходити з кількох причин:
- Код типу не є одним з дійсних кодів (20, 23, 24, 27, 30, 33, 34)
- Перевірочна цифра не відповідає обчисленому значенню на основі алгоритму
- Формат неправильний (повинен бути XX-XXXXXXXX-X)
- Введені нечислові символи (крім дефісів)
Чи є дефіси обов'язковими в номерах CUIT/CUIL?
Хоча номери CUIT/CUIL зазвичай пишуться та відображаються з дефісами (XX-XXXXXXXX-X), дефіси не є частиною фактичного номера для цілей розрахунку. Наш валідатор приймає обидва формати (з або без дефісів) і правильно перевіряє будь-який формат.
Чи може номер CUIT/CUIL мати менше ніж 8 цифр у частині DNI?
Ні, частина DNI завжди повинна бути точною 8 цифрами. Якщо фактичний DNI має менше цифр, його потрібно доповнити нулями попереду, щоб досягти 8 цифр. Наприклад, якщо номер DNI особи 1234567, то в CUIT/CUIL він буде представлений як 01234567.
Як я можу перевірити, чи CUIT/CUIL офіційно зареєстрований в Аргентині?
Щоб перевірити, чи CUIT/CUIL офіційно зареєстрований та активний, вам слід використовувати офіційний веб-сайт або сервіси AFIP (Administración Federal de Ingresos Públicos). Наш інструмент лише перевіряє математичну дійсність номера, а не його офіційний статус реєстрації.
Чи можу я використовувати цей інструмент у своєму комерційному застосунку?
Так, ви можете інтегрувати алгоритм і логіку, продемонстровані в цьому інструменті, у свої комерційні застосунки. Алгоритм валідації CUIT/CUIL є публічним стандартом. Однак для виробничих середовищ ми рекомендуємо реалізувати належну обробку помилок і розглянути можливість додаткової валідації проти офіційних джерел, коли це необхідно.
Чи зберігає інструмент будь-які згенеровані або перевірені номери CUIT/CUIL?
Ні, цей інструмент не зберігає жодну з введених або згенерованих даних. Весь процес виконується на стороні клієнта у вашому браузері, і жодні дані не надсилаються або не зберігаються на наших серверах. Це забезпечує конфіденційність та безпеку будь-якої інформації, яку ви вводите.
Посилання
-
AFIP (Administración Federal de Ingresos Públicos). "CUIT/CUIL/CDI." Офіційний веб-сайт. https://www.afip.gob.ar/
-
Міністерство праці, зайнятості та соціального забезпечення. "CUIL - Clave Única de Identificación Laboral." https://www.argentina.gob.ar/trabajo
-
ANSES (Administración Nacional de la Seguridad Social). "Отримати мій CUIL." https://www.anses.gob.ar/
-
Офіційний бюлетень Республіки Аргентина. "Розпорядження генеральної AFIP 2854/2010: Процедура. Clave Única de Identificación Tributaria (C.U.I.T.)."
-
Податковий кодекс Республіки Аргентина. "Ідентифікація та реєстрація платників податків."
Готові генерувати або перевіряти аргентинські номери CUIT/CUIL? Спробуйте наш інструмент зараз і спростіть свій процес тестування!
Відгуки
Натисніть на тост відгуку, щоб почати залишати відгук про цей інструмент
Супутні інструменти
Відкрийте для себе більше інструментів, які можуть бути корисними для вашого робочого процесу