Generátor a validátor CUIT v Argentině pro testovací účely
Generujte platná argentinská čísla CUIT (daňové identifikační kódy) a ověřujte existující pomocí tohoto jednoduchého nástroje navrženého pro testovací scénáře. Žádné složité funkce, pouze přímá generace a validace CUIT.
Generátor a validátor CUIT v Argentině
Jednoduchý nástroj pro generování a validaci argentinských daňových identifikačních kódů (CUIT) pro testovací účely.
Generátor CUIT
Validátor CUIT
Formát: XX-XXXXXXXX-X
O CUIT
CUIT (Kód unikátní identifikace daňové) je daňový identifikační kód používaný v Argentině pro jednotlivce a právnické osoby.
- Formát je XX-XXXXXXXX-X, kde X jsou číslice.
- První dvě číslice označují typ entity (20 pro muže, 27 pro ženy, 30 pro společnosti atd.).
- Poslední číslice je ověřovací číslice vypočítaná pomocí specifického algoritmu na základě předchozích číslic.
Dokumentace
Generátor a validátor CUIT Argentiny
Úvod do CUIT Argentiny
CUIT (Código Único de Identificación Tributaria) je jedinečný daňový identifikační kód Argentiny, kritický identifikátor pro všechny daňové poplatníky v argentinském daňovém systému. Tento zásadní číselný kód slouží jako hlavní identifikátor pro jednotlivce a právnické osoby při interakci s AFIP (Federální správa veřejných příjmů) a při provádění obchodních operací po celé Argentině. Náš nástroj Generátor a validátor CUIT Argentiny poskytuje jednoduché a efektivní řešení pro generování matematicky platných CUIT pro testovací účely a validaci existujících čísel CUIT.
Ať už jste vývojář testující aplikace, které zpracovávají argentinské daňové informace, specialista na QA ověřující integritu dat, nebo analytik podnikání připravující testovací datové sady, tento nástroj zjednodušuje proces práce s čísly CUIT bez složitosti integrací API nebo zbytečných funkcí.
Pochopení struktury a formátu CUIT
Argentinský CUIT následuje specifický formát skládající se z 11 číslic uspořádaných jako:
1XX-XXXXXXXX-X
2
Tento standardizovaný formát lze rozdělit do tří odlišných komponent:
- Kód typu (První 2 číslice): Identifikuje typ subjektu nebo jednotlivce
- Identifikační číslo (Středních 8 číslic): Jedinečná sekvence přidělená subjektu
- Kontrolní číslice (Poslední číslice): Vypočítaná kontrolní číslice, která ověřuje integritu CUIT
Kódy typů CUIT
První dvě číslice CUIT označují typ daňového poplatníka:
Typ subjektu | Kód typu | Popis |
---|---|---|
Společnost | 30 | Korporace, LLC a další obchodní subjekty |
Asociace | 33 | Neziskové asociace |
Nadace | 30 | Charitativní nadace |
Společnost | 30 | Partnerství a další struktury společnosti |
Vláda | 30 | Vládní subjekty a veřejné instituce |
Zahraniční společnost | 30 | Společnosti se sídlem mimo Argentinu |
Jednotlivec (muž) | 20 | Mužské jednotlivce |
Jednotlivec (žena) | 27 | Ženské jednotlivce |
Důvěra | 30 | Subjekty důvěry |
Pochopení těchto kódů typů je zásadní pro generování vhodných CUIT pro různé testovací scénáře.
Jak používat generátor a validátor CUIT Argentiny
Náš nástroj nabízí dvě hlavní funkce: generování platných CUIT a validaci existujících. Zde je návod, jak efektivně používat každou funkci:
Generování platných CUIT
- Přejděte do sekce "Generátor CUIT" nástroje
- Vyberte vhodný typ subjektu z dostupných možností
- Klikněte na tlačítko "Generovat CUIT"
- Nástroj zobrazí matematicky platný CUIT se správným formátem a kontrolní číslicí
- Použijte tlačítko "Kopírovat" pro zkopírování vygenerovaného CUIT do schránky pro použití při testování
Generátor vytváří náhodné, ale matematicky platné CUIT, které odpovídají oficiálnímu algoritmu používanému AFIP. Tyto CUIT jsou ideální pro testování systémů, které vyžadují platné formáty CUIT, i když nejsou registrovány v oficiálních databázích.
Validace existujících CUIT
- Přejděte do sekce "Validátor CUIT" nástroje
- Zadejte CUIT, který chcete validovat, do vstupního pole (formát: XX-XXXXXXXX-X)
- Klikněte na tlačítko "Validovat CUIT"
- Nástroj okamžitě ověří, zda je CUIT matematicky platný
- Výsledky ukážou buď "Platný CUIT ✓", nebo "Neplatný CUIT ✗"
Validátor kontroluje jak formát, tak matematickou platnost CUIT tím, že ověřuje, že kontrolní číslice odpovídá vypočítané hodnotě na základě předchozích číslic.
Algoritmus ověření CUIT
Kontrolní číslice (poslední číslice) CUIT se vypočítává pomocí specifického algoritmu navrženého k detekci běžných chyb při zadávání dat. Pochopení tohoto algoritmu pomáhá vysvětlit, jak náš nástroj ověřuje CUIT:
Krok za krokem ověřovací proces
- Vezměte prvních 10 číslic CUIT (bez kontrolní číslice)
- Vynásobte každou číslici odpovídajícím váhovým faktorem z této sekvence: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
- Sečtěte všechny výsledné součiny
- Vypočtěte zbytek při dělení součtu 11
- Odečtěte zbytek od 11
- Pokud je výsledek 11, kontrolní číslice je 0
- Pokud je výsledek 10, kontrolní číslice je 9
- Jinak je výsledek kontrolní číslice
Příklad výpočtu
Vypočtěme kontrolní číslici pro CUIT s kódem typu 30 a identifikačním číslem 12345678:
- Číslice k ověření jsou: 3 0 1 2 3 4 5 6 7 8
- Vynásobte váhami: 3×5 + 0×4 + 1×3 + 2×2 + 3×7 + 4×6 + 5×5 + 6×4 + 7×3 + 8×2
- Vypočítejte: 15 + 0 + 3 + 4 + 21 + 24 + 25 + 24 + 21 + 16 = 153
- Zbytek 153 ÷ 11 = 10
- 11 - 10 = 1
- Kontrolní číslice je 1
Celkově tedy platný CUIT je 30-12345678-1.
Aplikace a případy použití
Nástroj Generátor a validátor CUIT Argentiny slouží k několika praktickým účelům napříč různými profesními kontexty:
Vývoj a testování softwaru
- Testování databází: Generování platných CUIT pro naplnění testovacích databází realistickými daty argentinských daňových poplatníků
- Ověření formulářů: Testování validace vstupu pro formuláře, které vyžadují zadání CUIT
- Testování integrace API: Ověření systémů, které interagují s argentinskými daňovými nebo finančními API
- Testování okrajových případů: Testování, jak systémy zvládají různé typy subjektů a okrajové případy
Zajištění kvality dat
- Validace dat: Rychlé ověření, zda dataset obsahuje platná čísla CUIT
- Údržba dat: Identifikace neplatných CUIT v existujících datech
- Generování dat: Vytváření syntetických datasetů s platnými argentinskými daňovými identifikátory
- Ověření importu/exportu: Ověření integrity CUIT při přenosu dat mezi systémy
Obchodní a administrativní aplikace
- Příprava dokumentů: Zajištění, že CUIT jsou správně naformátovány v obchodních dokumentech
- Nastavení testovacího prostředí: Vytváření realistických testovacích prostředí pro finanční nebo daňové aplikace
- Školící materiály: Generování příkladů CUIT pro školící materiály bez použití skutečných informací o daňových poplatnících
Vzdělávací účely
- Učení daňových systémů: Pochopení, jak funguje argentinská identifikace daní
- Studium algoritmů: Zkoumání ověřovacího algoritmu jako příkladu systémů kontrolních číslic
- Školení o souladu: Školení zaměstnanců o rozpoznávání a validaci správných formátů CUIT
Příklady kódu pro validaci a generování CUIT
Následující příklady kódu demonstrují, jak implementovat validaci a generování CUIT v různých programovacích jazycích:
JavaScript
1// Validace CUIT v JavaScriptu
2function validateCUIT(cuit) {
3 // Odstranit jakékoli znaky, které nejsou číslice
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Zkontrolovat, zda má přesně 11 číslic
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Extrakce částí
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Vypočítání kontrolní číslice
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// Příklad použití
39console.log(validateCUIT('30-12345678-1')); // true nebo false
40
Python
1# Generování CUIT v Pythonu
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Definice kódů typů subjektů
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 # Získání kódu typu pro vybraný subjekt
19 type_code = entity_types.get(entity_type, 30)
20
21 # Generování náhodného 8-místného čísla
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Vypočítání kontrolní číslice
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 # Formátování a vrácení CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Příklad použití
42print(generate_cuit('INDIVIDUAL_MALE'))
43
PHP
1<?php
2// Validace CUIT v PHP
3function validateCUIT($cuit) {
4 // Odstranit jakékoli znaky, které nejsou číslice
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Zkontrolovat, zda má přesně 11 číslic
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Extrakce částí
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Vypočítání kontrolní číslice
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// Příklad použití
39echo validateCUIT('30-12345678-1') ? 'Platný' : 'Neplatný';
40?>
41
Java
1// Generování a validace CUIT v Javě
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Kódy typů subjektů
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 // Generování platného CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Určení kódu typu na základě typu subjektu
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 // Generování náhodného 8-místného čísla
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 // Vypočítání kontrolní číslice
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Formátování a vrácení CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Vypočítání kontrolní číslice
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 // Validace CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Odstranit jakékoli znaky, které nejsou číslice
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Zkontrolovat, zda má přesně 11 číslic
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Extrakce kontrolní číslice
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Vypočítání očekávané kontrolní číslice
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Porovnání kontrolních číslic
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Příklad použití
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Vygenerovaný CUIT: " + generatedCUIT);
92 System.out.println("Je platný: " + validateCUIT(generatedCUIT));
93 }
94}
95
C#
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Validace CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Odstranit jakékoli znaky, které nejsou číslice
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Zkontrolovat, zda má přesně 11 číslic
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Extrakce kontrolní číslice
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Vypočítání očekávané kontrolní číslice
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 // Formátování CUIT se správnými oddělovači
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; // Vrátit původní, pokud nemá 11 číslic
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
Historie CUIT v Argentině
Systém CUIT byl zaveden v Argentině na počátku 90. let jako součást širší iniciativy daňové reformy zaměřené na modernizaci daňové infrastruktury země a snížení daňových úniků. Federální správa veřejných příjmů (AFIP), argentinská daňová autorita, implementovala CUIT jako standardizovaný identifikační systém pro všechny daňové poplatníky.
Před zavedením CUIT používala Argentina různé nekonzistentní identifikační systémy pro různé typy daňových poplatníků, což činilo daňovou správu neefektivní a vytvářelo příležitosti k neplnění povinností. CUIT sjednotil tyto systémy do jednoho, ověřitelného identifikátoru, který mohl být používán ve všech daňových aktivitách.
Klíčové milníky v evoluci systému CUIT zahrnují:
- Počátek 90. let: Počáteční implementace systému CUIT pro firmy a samostatně výdělečné osoby
- Střed 90. let: Rozšíření systému na všechny daňové poplatníky, včetně zaměstnanců
- Konec 90. let: Integrace CUIT s elektronickými daňovými filingovými systémy
- 2000s: Implementace online ověřovacích systémů pro validaci CUIT
- 2010s: Další integrace s digitálními daňovými službami a požadavky na elektronické fakturace
CUIT se stal zásadním prvkem argentinských ekonomických a finančních systémů, sloužícím nejen pro daňové účely, ale také pro bankovnictví, zaměstnání, sociální zabezpečení a obchodní transakce.
Často kladené otázky
Co je číslo CUIT?
CUIT (Código Único de Identificación Tributaria) je jedinečný daňový identifikační kód přidělený jednotlivcům a právnickým osobám pro daňové účely. Skládá se z 11 číslic ve formátu XX-XXXXXXXX-X, kde první dvě číslice označují typ subjektu, středních osm číslic je identifikační číslo a poslední číslice je kontrolní číslice.
Jak mohu zjistit, zda je CUIT platný?
Platný CUIT musí:
- Následovat formát XX-XXXXXXXX-X
- Mít kontrolní číslici, která odpovídá vypočítané hodnotě na základě předchozích číslic
- Začínat platným kódem typu subjektu (např. 20, 27, 30, 33)
Náš nástroj pro validaci CUIT může okamžitě zkontrolovat, zda CUIT splňuje tyto kritéria.
Jaký je rozdíl mezi CUIT a CUIL?
I když jsou si formátem podobné, CUIT a CUIL slouží různým účelům:
- CUIT (Código Único de Identificación Tributaria) se používá pro daňové poplatníky, kteří vykonávají ekonomické činnosti
- CUIL (Código Único de Identificación Laboral) je přidělen zaměstnancům, kteří nemají nezávislé ekonomické činnosti
Oba následují stejný formát a ověřovací algoritmus, ale používají se v různých kontextech.
Mohu použít generované CUIT pro oficiální účely?
Ne. CUIT generované tímto nástrojem jsou matematicky platné, ale nejsou registrovány v oficiální databázi AFIP. Měly by být používány pouze pro testování, vývoj nebo vzdělávací účely. Použití fiktivních CUIT pro oficiální dokumenty nebo transakce může představovat podvod.
Proč některé typy subjektů sdílejí stejný kód typu?
AFIP přidělila stejný kód typu (30) několika typům subjektů, včetně společností, nadací a vládních subjektů. To je součástí oficiálního klasifikačního systému a nemá to vliv na platnost CUIT. Specifický typ subjektu je určen dalšími registračními informacemi v systémech AFIP.
Jak často se CUIT mění?
CUIT jsou trvalé identifikátory, které se obecně nemění během života jednotlivce nebo subjektu. Nicméně, v některých specifických případech, jako jsou změny právního statusu nebo změna pohlaví, může být přidělen nový CUIT.
Může být CUIT validován proti oficiálním záznamům AFIP?
Ano, ale ne prostřednictvím našeho nástroje. AFIP poskytuje oficiální službu nazvanou "Constancia de Inscripción" na svých webových stránkách, kde můžete ověřit, zda je CUIT oficiálně registrován a aktivní. Náš nástroj pouze ověřuje matematickou správnost CUIT.
Jaké jsou běžné chyby při zadávání CUIT?
Běžné chyby zahrnují:
- Přehazování číslic (např. 12 místo 21)
- Chybějící nebo nadbytečné číslice
- Nesprávný formát (chybějící pomlčky)
- Použití nesprávných kódů typů subjektů
- Chyby ve výpočtu kontrolní číslice
Náš validátor pomáhá identifikovat tyto problémy tím, že kontroluje jak formát, tak matematickou platnost.
Jak generovat CUIT pro specifické typy subjektů?
Náš nástroj vám umožňuje vybrat z různých typů subjektů před generováním CUIT. Jednoduše vyberte vhodný typ subjektu z rozbalovacího menu a klikněte na "Generovat CUIT." Nástroj automaticky použije správný kód typu pro váš výběr.
Existuje limit na počet CUIT, které mohu generovat nebo validovat?
Ne, náš nástroj neomezuje počet CUIT, které můžete generovat nebo validovat. Je navržen pro pohodlí při testování a vzdělávacích scénářích, kde můžete potřebovat více platných CUIT.
Odkazy
-
Administrací Federální správy veřejných příjmů (AFIP). "Identificación Tributaria." https://www.afip.gob.ar/
-
Ministerstvo ekonomie Argentinské republiky. "Systém daní Argentiny." https://www.argentina.gob.ar/economia
-
Zákon 11.683 o daňovém řízení. Oficiální věstník Argentinské republiky.
-
Řešení Generálního ředitelství AFIP 1817/2005. "Postupy registrace a registrace."
-
Chicote, J. (2018). "Systémy daňové identifikace v Latinské Americe: Srovnávací analýza." Journal of Tax Administration, 4(1), 88-106.
-
Gómez Sabaini, J.C., & Morán, D. (2016). "Daňová politika v Latinské Americe: Hodnocení a pokyny pro reformu." Ekonomická komise pro Latinskou Ameriku a Karibik (ECLAC).
Závěr
Nástroj Generátor a validátor CUIT Argentiny poskytuje jednoduché, efektivní řešení pro práci s argentinskými daňovými identifikačními kódy v testovacích a vývojových prostředích. Pochopením struktury, formátu a ověřovacího algoritmu CUIT mohou uživatelé zajistit integritu dat a dodržování argentinských standardů identifikace daní.
Ať už vyvíjíte software, který interaguje s argentinskými finančními systémy, testujete rutiny validace dat, nebo se jednoduše učíte o mezinárodních systémech identifikace daní, náš nástroj nabízí funkčnost, kterou potřebujete, bez zbytečné složitosti.
Vyzkoušejte generování CUIT nyní nebo validujte existující, abyste na vlastní oči zažili jednoduchost a účinnost našeho nástroje.
Zpětná vazba
Klikněte na toast se zpětnou vazbou a začněte dávat zpětnou vazbu o tomto nástroji
Související nástroje
Objevte další nástroje, které by mohly být užitečné pro váš pracovní postup