Sukurkite galiojančius Argentinos CUIT numerius (mokesčių identifikavimo kodus) ir patikrinkite esamus su šiuo paprastu įrankiu, skirtu testavimo scenarijams. Nėra sudėtingų funkcijų, tik tiesioginis CUIT generavimas ir validavimas.
Paprasta priemonė, skirta generuoti ir patvirtinti Argentinų mokesčių identifikavimo kodus (CUIT) testavimo tikslais.
Formatas: XX-XXXXXXXX-X
CUIT (Código Único de Identificación Tributaria) yra mokesčių identifikavimo kodas, naudojamas Argentinoje asmenims ir juridiniams asmenims.
CUIT (Código Único de Identificación Tributaria) yra unikalus mokesčių identifikavimo kodas Argentinoje, esminis identifikatorius visiems mokesčių mokėtojams Argentinos mokesčių sistemoje. Šis esminis skaitinis kodas tarnauja kaip pagrindinis identifikatorius fiziniams asmenims ir juridiniams asmenims, bendraujant su AFIP (Federalinė mokesčių administracija) ir vykdant verslo operacijas visoje Argentinoje. Mūsų Argentinos CUIT generatoriaus ir validatoriaus įrankis siūlo paprastą, efektyvų sprendimą, skirtą matematiškai galiojančių CUIT generavimui testavimo tikslais ir esamų CUIT numerių validavimui.
Ar esate programuotojas, testuojantis programas, apdorojančias Argentinos mokesčių informaciją, QA specialistas, tikrinantis duomenų vientisumą, ar verslo analitikas, rengiantis testavimo duomenų rinkinius, šis įrankis supaprastina CUIT numerių naudojimo procesą be API integracijų ar nereikalingų funkcijų.
Argentinos CUIT laikosi specifinio formato, sudaryto iš 11 skaitmenų, išdėstytų taip:
1XX-XXXXXXXX-X
2
Šis standartizuotas formatas gali būti suskaidytas į tris skirtingas dalis:
Pirmieji du CUIT skaitmenys nurodo mokesčių mokėtojo tipą:
Subjekto tipas | Tipų kodas | Aprašymas |
---|---|---|
Įmonė | 30 | Akcinės bendrovės, UAB ir kitos verslo struktūros |
Asociacija | 33 | Ne pelno siekiančios asociacijos |
Fondas | 30 | Labdaros fondai |
Draugija | 30 | Partnerystės ir kitos draugijų struktūros |
Vyriausybė | 30 | Vyriausybiniai subjektai ir viešosios institucijos |
Užsienio įmonė | 30 | Įmonės, įsikūrusios už Argentinos ribų |
Asmuo (vyras) | 20 | Vyrų asmenys |
Asmuo (moteris) | 27 | Moterų asmenys |
Pasitikėjimas | 30 | Pasitikėjimo subjektai |
Šių tipų kodų supratimas yra esminis, norint generuoti tinkamus CUIT testavimo scenarijams.
Mūsų įrankis siūlo dvi pagrindines funkcijas: generuoti galiojančius CUIT ir validuoti esamus. Štai kaip efektyviai naudoti kiekvieną funkciją:
Generatorius sukuria atsitiktinius, bet matematiškai galiojančius CUIT, kurie atitinka oficialią AFIP naudojamą algoritmą. Šie CUIT yra puikūs testuojant sistemas, kurioms reikalingi galiojantys CUIT formatai, nors jie nėra registruoti oficialiose duomenų bazėse.
Validatorius tikrina tiek formatą, tiek matematinį CUIT galiojimą, patikrindamas, ar patikros skaitmuo atitinka apskaičiuotą vertę, remiantis pirmaujančiais skaitmenimis.
Patikros skaitmuo (paskutinis skaitmuo) CUIT yra apskaičiuojamas naudojant specifinį algoritmą, sukurtą aptikti dažniausiai pasitaikančias klaidas duomenų įvedime. Suprasti šį algoritmą padeda paaiškinti, kaip mūsų įrankis validuoja CUIT:
Apskaičiuokime patikros skaitmenį CUIT, turinčiam tipų kodą 30 ir identifikavimo numerį 12345678:
Todėl visiškai galiojantis CUIT yra 30-12345678-1.
Argentinos CUIT generatoriaus ir validatoriaus įrankis tarnauja kelioms praktinėms paskirtims skirtingose profesinėse srityse:
Šie kodo pavyzdžiai demonstruoja, kaip įgyvendinti CUIT validavimą ir generavimą įvairiose programavimo kalbose:
1// CUIT validavimas JavaScript
2function validateCUIT(cuit) {
3 // Pašalinti visus ne skaitmeninius simbolius
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Patikrinti, ar jis turi tiksliai 11 skaitmenų
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Išskirti dalis
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Apskaičiuoti patikros skaitmenį
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// Pavyzdžio naudojimas
39console.log(validateCUIT('30-12345678-1')); // true arba false
40
1# CUIT generavimas Python
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Nustatyti subjekto tipų kodus
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 # Gauti tipų kodą pasirinktam subjektui
19 type_code = entity_types.get(entity_type, 30)
20
21 # Generuoti atsitiktinį 8 skaitmenų numerį
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Apskaičiuoti patikros skaitmenį
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 # Formatuoti ir grąžinti CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Pavyzdžio naudojimas
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// CUIT validavimas PHP
3function validateCUIT($cuit) {
4 // Pašalinti visus ne skaitmeninius simbolius
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Patikrinti, ar jis turi tiksliai 11 skaitmenų
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Išskirti dalis
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Apskaičiuoti patikros skaitmenį
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// Pavyzdžio naudojimas
39echo validateCUIT('30-12345678-1') ? 'Galiojantis' : 'Negaliojantis';
40?>
41
1// CUIT generavimas ir validavimas Java
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Subjekto tipų kodai
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 // Generuoti galiojantį CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Nustatyti tipų kodą pagal subjekto tipą
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 // Generuoti atsitiktinį 8 skaitmenų numerį
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 // Apskaičiuoti patikros skaitmenį
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Formatuoti ir grąžinti CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Apskaičiuoti patikros skaitmenį
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 // Patikrinti CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Pašalinti visus ne skaitmeninius simbolius
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Patikrinti, ar jis turi tiksliai 11 skaitmenų
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Išskirti patikros skaitmenį
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Apskaičiuoti tikėtiną patikros skaitmenį
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Palyginti patikros skaitmenis
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Pavyzdžio naudojimas
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Sugeneruotas CUIT: " + generatedCUIT);
92 System.out.println("Ar galiojantis: " + validateCUIT(generatedCUIT));
93 }
94}
95
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Patikrinti CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Pašalinti visus ne skaitmeninius simbolius
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Patikrinti, ar jis turi tiksliai 11 skaitmenų
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Išskirti patikros skaitmenį
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Apskaičiuoti tikėtiną patikros skaitmenį
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 // Formatuoti CUIT su tinkamais separatoriais
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; // Grąžinti originalą, jei ne 11 skaitmenų
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
CUIT sistema buvo įkurta Argentinoje devintojo dešimtmečio pradžioje kaip platesnės mokesčių reformos iniciatyvos dalis, siekiant modernizuoti šalies fiskalinę infrastruktūrą ir sumažinti mokesčių vengimą. Federalinė mokesčių administracija (AFIP) įgyvendino CUIT kaip standartizuotą identifikavimo sistemą visiems mokesčių mokėtojams.
Prieš CUIT įvedimą Argentinoje buvo naudojamos įvairios nesuderintos identifikavimo sistemos skirtingiems mokesčių mokėtojams, dėl ko mokesčių administravimas buvo neefektyvus ir sukurdavo galimybes nesilaikyti įstatymų. CUIT suvienijo šias sistemas į vieną, patikrinamą identifikatorių, kuris galėtų būti naudojamas visose mokesčių susijusiose veiklose.
Pagrindiniai CUIT sistemos raidos etapai apima:
CUIT tapo esmine Argentinos ekonomikos ir finansų sistemų dalimi, tarnaujant ne tik mokesčių tikslais, bet ir bankininkystei, užimtumui, socialinei apsaugai ir verslo sandoriams.
CUIT (Código Único de Identificación Tributaria) yra unikalus mokesčių identifikavimo kodas, priskirtas fiziniams asmenims ir juridiniams asmenims mokesčių tikslais Argentinoje. Jis susideda iš 11 skaitmenų formatu XX-XXXXXXXX-X, kur pirmieji du skaitmenys nurodo subjekto tipą, viduriniai aštuoni skaitmenys yra identifikavimo numeris, o paskutinis skaitmuo yra patikros skaitmuo.
Galiojantis CUIT turi:
Mūsų CUIT validatorius gali iš karto patikrinti, ar CUIT atitinka šiuos kriterijus.
Nors CUIT ir CUIL formatu yra panašūs, jie tarnauja skirtingiems tikslams:
Abu seka tą patį formatą ir patikros algoritmą, tačiau naudojami skirtinguose kontekstuose.
Ne. Šio įrankio sugeneruoti CUIT yra matematiškai galiojantys, tačiau nėra registruoti AFIP oficialioje duomenų bazėje. Jie turėtų būti naudojami tik testavimo, kūrimo ar švietimo tikslais. Naudojant fiktyvius CUIT oficialiuose dokumentuose ar sandoriuose gali būti laikoma sukčiavimu.
AFIP priskyrė tą patį tipų kodą (30) keliems subjekto tipams, įskaitant įmones, fondus ir vyriausybes. Tai yra oficialios klasifikacijos sistemos dalis ir neturi įtakos CUIT galiojimui. Specifinis subjekto tipas nustatomas pagal papildomą registracijos informaciją AFIP sistemose.
CUIT yra nuolatiniai identifikatoriai, kurie paprastai nepasikeičia viso fizinio asmens ar subjekto gyvenimo metu. Tačiau tam tikrais atvejais, pavyzdžiui, keičiantis teisinei būklei ar lyties pakeitimui, gali būti priskirtas naujas CUIT.
Taip, bet ne per mūsų įrankį. AFIP teikia oficialią paslaugą, vadinamą „Constancia de Inscripción“ savo svetainėje, kur galite patikrinti, ar CUIT yra oficialiai registruotas ir aktyvus. Mūsų įrankis tik patvirtina matematinį CUIT teisingumą.
Dažniausiai pasitaikančios klaidos apima:
Mūsų validatorius padeda nustatyti šias problemas, tikrindamas tiek formatą, tiek matematinį galiojimą.
Mūsų įrankis leidžia jums pasirinkti iš įvairių subjekto tipų prieš generuojant CUIT. Tiesiog pasirinkite tinkamą subjekto tipą iš išskleidžiamojo meniu ir paspauskite „Generuoti CUIT“. Įrankis automatiškai naudos teisingą tipų kodą jūsų pasirinkimui.
Ne, mūsų įrankis neįveda jokių apribojimų, kiek CUIT galite generuoti ar validuoti. Jis sukurtas patogumui testavimo ir švietimo scenarijuose, kur jums gali prireikti kelių galiojančių 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).
Argentinos CUIT generatoriaus ir validatoriaus įrankis siūlo paprastą, efektyvų sprendimą, skirtą dirbti su Argentinos mokesčių identifikavimo kodais testavimo ir kūrimo aplinkose. Suprasdami CUIT struktūrą, formatą ir patikros algoritmą, vartotojai gali užtikrinti duomenų vientisumą ir atitiktį Argentinos mokesčių identifikavimo standartams.
Ar esate programuotojas, kuris sąveikauja su Argentinos finansų sistemomis, testuojantis duomenų validavimo procedūras, ar tiesiog mokotės apie tarptautines mokesčių identifikavimo sistemas, mūsų įrankis siūlo reikalingą funkcionalumą be nereikalingos sudėtingumo.
Išbandykite dabar sugeneruoti CUIT arba patvirtinti esamą, kad patirtumėte mūsų įrankio paprastumą ir efektyvumą pirmą kartą.
Raskite daugiau įrankių, kurie gali būti naudingi jūsų darbo eiga.