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.
Jednoduchý nástroj pro generování a validaci argentinských daňových identifikačních kódů (CUIT) pro testovací účely.
Formát: XX-XXXXXXXX-X
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.
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í.
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:
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.
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:
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.
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.
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:
Vypočtěme kontrolní číslici pro CUIT s kódem typu 30 a identifikačním číslem 12345678:
Celkově tedy platný CUIT je 30-12345678-1.
Nástroj Generátor a validátor CUIT Argentiny slouží k několika praktickým účelům napříč různými profesními kontexty:
Následující příklady kódu demonstrují, jak implementovat validaci a generování CUIT v různých programovacích jazycích:
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
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
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
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
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
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í:
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.
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.
Platný CUIT musí:
Náš nástroj pro validaci CUIT může okamžitě zkontrolovat, zda CUIT splňuje tyto kritéria.
I když jsou si formátem podobné, CUIT a CUIL slouží různým účelům:
Oba následují stejný formát a ověřovací algoritmus, ale používají se v různých kontextech.
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.
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.
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.
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.
Běžné chyby zahrnují:
Náš validátor pomáhá identifikovat tyto problémy tím, že kontroluje jak formát, tak matematickou platnost.
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.
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.
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).
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.
Objevte další nástroje, které by mohly být užitečné pro vaši pracovní postup.