Luo voimassa olevia argentiinalaisia CUIT-numeroita (verotunnisteita) ja validoi olemassa olevia numeroita tällä yksinkertaisella työkalulla, joka on suunniteltu testitilanteisiin. Ei monimutkaisia ominaisuuksia, vain suora CUIT:n luonti ja validointi.
Yksinkertainen työkalu Argentiinalaisten verotunnisten (CUIT) luomiseen ja validoimiseen testitarkoituksiin.
Muoto: XX-XXXXXXXX-X
CUIT (Código Único de Identificación Tributaria) on verotunnus, jota käytetään Argentiinassa yksilöille ja oikeushenkilöille.
CUIT (Código Único de Identificación Tributaria) on Argentiinan ainutlaatuinen verotunnus, joka on tärkeä tunniste kaikille verovelvollisille Argentiinan verojärjestelmässä. Tämä olennainen numeerinen koodi toimii ensisijaisena tunnisteena yksilöille ja oikeushenkilöille vuorovaikutuksessa AFIP:n (Federal Administration of Public Revenue) kanssa ja liiketoimintatoiminnassa ympäri Argentiinaa. Argentiinan CUIT-generaattori ja -validaattori -työkalumme tarjoaa yksinkertaisen ja tehokkaan ratkaisun matemaattisesti voimassa olevien CUIT:ien luomiseen testaus tarkoituksiin ja olemassa olevien CUIT-numeroiden validoimiseen.
Olitpa kehittäjä, joka testaa sovelluksia, jotka käsittelevät argentiinalaisia verotietoja, QA-erikoisasiantuntija, joka tarkistaa tietojen eheyden, tai liiketoiminta-analyytikko, joka valmistaa testidataa, tämä työkalu yksinkertaistaa CUIT-numeroiden käsittelyä ilman API-integraatioiden tai tarpeettomien ominaisuuksien monimutkaisuutta.
Argentiinan CUIT noudattaa tiettyä muotoa, joka koostuu 11 numerosta järjestettynä seuraavasti:
1XX-XXXXXXXX-X
2
Tätä standardoitua muotoa voidaan jakaa kolmeen erilaiseen osaan:
CUIT:in ensimmäiset kaksi numeroa ilmoittavat verovelvollisen tyypin:
Yksikön tyyppi | Tyyppikoodi | Kuvaus |
---|---|---|
Yritys | 30 | Osakeyhtiöt, OY:t ja muut liiketoimintayksiköt |
Yhdistys | 33 | Voittoa tavoittelemattomat yhdistykset |
Säätiö | 30 | Hyväntekeväisyysjärjestöt |
Yhteisö | 30 | Kumppanuudet ja muut yhteisörakenteet |
Hallitus | 30 | Hallintoyksiköt ja julkiset instituutiot |
Ulkomainen yritys | 30 | Ulkomailla sijaitsevat yritykset |
Yksilö (Mies) | 20 | Miehet |
Yksilö (Nainen) | 27 | Naiset |
Trusti | 30 | Trustiyksiköt |
Näiden tyyppikoodien ymmärtäminen on olennaista, jotta voidaan luoda asianmukaisia CUIT:eja erilaisiin testaus-skenaarioihin.
Työkalumme tarjoaa kaksi päätoimintoa: voimassa olevien CUIT:ien luominen ja olemassa olevien validoiminen. Tässä on ohjeet kummankin ominaisuuden tehokkaaseen käyttöön:
Generaattori luo satunnaisia mutta matemaattisesti voimassa olevia CUIT:eja, jotka seuraavat AFIP:n käyttämää virallista algoritmia. Nämä CUIT:t ovat täydellisiä testausjärjestelmiin, jotka vaativat voimassa olevia CUIT-muotoja, vaikka ne eivät ole rekisteröity virallisissa tietokannoissa.
Validaattori tarkistaa sekä muodon että CUIT:in matemaattisen voimassaolon varmistamalla, että tarkistusnumero vastaa lasketun arvon edeltävien numeroiden perusteella.
CUIT:in vahvistusnumero (viimeinen numero) lasketaan käyttämällä erityistä algoritmia, joka on suunniteltu havaitsemaan yleisiä virheitä tietojen syöttämisessä. Tämän algoritmin ymmärtäminen auttaa selittämään, kuinka työkalumme validoi CUIT:eja:
Lasketaan vahvistusnumero CUIT:lle, jonka tyyppikoodi on 30 ja tunnistusnumero on 12345678:
Siksi täydellinen voimassa oleva CUIT on 30-12345678-1.
Argentiinan CUIT-generaattori ja -validaattori -työkalu palvelee useita käytännön tarkoituksia eri ammatillisissa konteksteissa:
Seuraavat koodiesimerkit osoittavat, kuinka CUIT:n validointia ja luomista voidaan toteuttaa eri ohjelmointikielillä:
1// CUIT-validointi JavaScriptissä
2function validateCUIT(cuit) {
3 // Poista kaikki ei-numeeriset merkit
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Tarkista, että siinä on tarkalleen 11 numeroa
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Erota osat
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Laske vahvistusnumero
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// Esimerkkikäyttö
39console.log(validateCUIT('30-12345678-1')); // true tai false
40
1# CUIT-generaattori Pythonissa
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Määritä yksikön tyyppikoodit
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 # Hanki tyyppikoodi valitun yksikön tyypin mukaan
19 type_code = entity_types.get(entity_type, 30)
20
21 # Luo satunnainen 8-numero
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Laske vahvistusnumero
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 # Muotoile ja palauta CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Esimerkkikäyttö
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// CUIT-validointi PHP:ssä
3function validateCUIT($cuit) {
4 // Poista kaikki ei-numeeriset merkit
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Tarkista, että siinä on tarkalleen 11 numeroa
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Erota osat
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Laske vahvistusnumero
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// Esimerkkikäyttö
39echo validateCUIT('30-12345678-1') ? 'Voimassa' : 'Voimaton';
40?>
41
1// CUIT-generaattori ja -validointi Javassa
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Yksikön tyyppikoodit
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 // Luo voimassa oleva CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Määritä tyyppikoodi yksikön tyypin mukaan
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 // Luo satunnainen 8-numero
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 // Laske vahvistusnumero
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Muotoile ja palauta CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Laske vahvistusnumero
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 // Vahvista CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Poista kaikki ei-numeeriset merkit
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Tarkista, että siinä on tarkalleen 11 numeroa
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Erota vahvistusnumero
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Laske odotettu vahvistusnumero
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Vertaa vahvistusnumeroita
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Esimerkkikäyttö
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Generoitu CUIT: " + generatedCUIT);
92 System.out.println("On voimassa: " + validateCUIT(generatedCUIT));
93 }
94}
95
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Vahvista CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Poista kaikki ei-numeeriset merkit
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Tarkista, että siinä on tarkalleen 11 numeroa
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Erota vahvistusnumero
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Laske odotettu vahvistusnumero
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 // Muotoile CUIT oikeilla erotinmerkeillä
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; // Palauta alkuperäinen, jos ei 11 numeroa
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
CUIT-järjestelmä perustettiin Argentiinassa 1990-luvun alussa osana laajempaa verouudistusaloitetta, jonka tavoitteena oli modernisoida maan veroinfrastruktuuria ja vähentää verovälinettä. Argentiinan veroviranomainen AFIP toteutti CUIT:in yhtenäistettynä tunnistusjärjestelmänä kaikille verovelvollisille.
Ennen CUIT:in käyttöönottoa Argentiina käytti erilaisia epäyhtenäisiä tunnistusjärjestelmiä eri verovelvollistyyppien osalta, mikä teki verohallinnosta tehotonta ja loi mahdollisuuksia lain rikkomiseen. CUIT yhdisti nämä järjestelmät yhdeksi, tarkistettavaksi tunnisteeksi, jota voitaisiin käyttää kaikissa verotukseen liittyvissä toiminnoissa.
Tärkeitä virstanpylväitä CUIT-järjestelmän kehityksessä ovat:
CUIT:ista on tullut olennainen osa Argentiinan talous- ja rahoitusjärjestelmää, joka palvelee paitsi verotustarkoituksia myös pankkitoimintaa, työllisyyttä, sosiaaliturvaa ja liiketoimintatransaktioita.
CUIT (Código Único de Identificación Tributaria) on Argentiinan ainutlaatuinen verotunnus, joka annetaan yksilöille ja oikeushenkilöille verotusta varten. Se koostuu 11 numerosta muodossa XX-XXXXXXXX-X, jossa ensimmäiset kaksi numeroa ilmoittavat yksikön tyypin, keskimmäiset kahdeksan numeroa ovat tunnistusnumero ja viimeinen numero on vahvistusnumero.
Voimassa olevan CUIT:in on:
Työkalumme CUIT-validaattori voi heti tarkistaa, täyttääkö CUIT nämä kriteerit.
Vaikka muodot ovat samankaltaisia, CUIT ja CUIL palvelevat eri tarkoituksia:
Molemmat seuraavat samaa muotoa ja vahvistusalgoritmia, mutta niitä käytetään eri konteksteissa.
Ei. Työkalumme luomat CUIT:t ovat matemaattisesti voimassa, mutta eivät ole rekisteröity AFIP:n viralliseen tietokantaan. Niitä tulisi käyttää vain testaus-, kehitys- tai koulutustarkoituksiin. Kuvitteellisten CUIT:ien käyttäminen virallisissa asiakirjoissa tai transaktioissa voi olla petos.
AFIP on antanut saman tyyppikoodin (30) useille yksikön tyypeille, mukaan lukien yritykset, säätiöt ja hallintoyksiköt. Tämä on osa virallista luokitusjärjestelmää eikä vaikuta CUIT:in voimassaoloon. Tietty yksikön tyyppi määräytyy lisärekisteröintitietojen mukaan AFIP:n järjestelmissä.
CUIT:t ovat pysyviä tunnisteita, jotka yleensä eivät muutu yksilön tai yksikön elämän aikana. Kuitenkin tietyissä erityistapauksissa, kuten oikeudellisen aseman tai sukupuolen muutoksessa, uusi CUIT saatetaan myöntää.
Kyllä, mutta ei työkalumme kautta. AFIP tarjoaa virallisen palvelun nimeltä "Constancia de Inscripción" verkkosivustollaan, jossa voit tarkistaa, onko CUIT virallisesti rekisteröity ja aktiivinen. Työkalumme validoi vain CUIT:in matemaattisen oikeellisuuden.
Yleisiä virheitä ovat:
Validaattorimme auttaa tunnistamaan nämä ongelmat tarkistamalla sekä muodon että matemaattisen voimassaolon.
Työkalumme antaa sinun valita erilaisista yksikön tyypeistä ennen CUIT:n luomista. Valitse vain sopiva yksikön tyyppi alasvetovalikosta ja napsauta "Generoi CUIT". Työkalu käyttää automaattisesti oikeaa tyyppikoodia valinnallesi.
Ei, työkalumme ei aseta rajoituksia sille, kuinka monta CUIT:ia voit luoda tai validoida. Se on suunniteltu mukavuudeksi testaus- ja koulutustilanteissa, joissa saatat tarvita useita voimassa olevia CUIT:eja.
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).
Argentiinan CUIT-generaattori ja -validaattori -työkalu tarjoaa yksinkertaisen, tehokkaan ratkaisun argentiinalaisten verotunnisten käsittelemiseen testaus- ja kehitysympäristöissä. Ymmärtämällä CUIT:ien rakenne, muoto ja vahvistusalgoritmi käyttäjät voivat varmistaa tietojen eheyden ja noudattaa argentiinalaisia verotunnistusstandardeja.
Olitpa kehittämässä ohjelmistoa, joka liittyy argentiinalaisiin talousjärjestelmiin, testaamassa tietojen validointimenettelyjä tai yksinkertaisesti oppimassa kansainvälisistä verotunnistuksista, työkalumme tarjoaa tarvitsemasi toiminnallisuuden ilman tarpeetonta monimutkaisuutta.
Kokeile luoda CUIT nyt tai validoida olemassa oleva ja koe työkalumme yksinkertaisuus ja tehokkuus itse.
Löydä lisää työkaluja, jotka saattavat olla hyödyllisiä työnkulullesi