Generišite važeće argentinske CUIT brojeve (poreznu identifikaciju) i validirajte postojeće pomoću ovog jednostavnog alata dizajniranog za testne scenarije. Nema složenih funkcija, samo jednostavna generacija i validacija CUIT-a.
Jednostavan alat za generisanje i validaciju argentinskih poreskih identifikacionih kodova (CUIT) u svrhe testiranja.
Format: XX-XXXXXXXX-X
CUIT (Código Único de Identificación Tributaria) je poreski identifikacioni kod koji se koristi u Argentini za fizička i pravna lica.
CUIT (Código Único de Identificación Tributaria) je jedinstveni poreski identifikacioni kod Argentine, ključni identifikator za sve poreske obveznike u argentinskom poreskom sistemu. Ovaj esencijalni numerički kod služi kao primarni identifikator za fizička lica i pravna lica prilikom interakcije sa AFIP-om (Federalna administracija javnih prihoda) i obavljanja poslovnih operacija širom Argentine. Naš alat za generisanje i validaciju CUIT-a u Argentini pruža jednostavno i efikasno rešenje za generisanje matematički validnih CUIT-ova u svrhu testiranja i validaciju postojećih CUIT brojeva.
Bilo da ste programer koji testira aplikacije koje obrađuju argentinske poreske informacije, QA specijalista koji proverava integritet podataka ili poslovni analitičar koji priprema testne skupove podataka, ovaj alat pojednostavljuje proces rada sa CUIT brojevima bez složenosti API integracija ili nepotrebnih funkcija.
Argentinski CUIT prati specifičan format koji se sastoji od 11 cifara raspoređenih kao:
1XX-XXXXXXXX-X
2
Ovaj standardizovani format može se razložiti na tri različite komponente:
Prve dve cifre CUIT-a ukazuju na tip poreskog obveznika:
Tip entiteta | Kod tipa | Opis |
---|---|---|
Kompanija | 30 | Korporacije, DOO-i i drugi poslovni entiteti |
Asocijacija | 33 | Neprofitne asocijacije |
Fondacija | 30 | Humanitarne fondacije |
Društvo | 30 | Partnerstva i druge društvene strukture |
Vlada | 30 | Vladini entiteti i javne institucije |
Strana kompanija | 30 | Kompanije sa sedištem van Argentine |
Pojedinac (Muškarac) | 20 | Muški pojedinci |
Pojedinac (Žena) | 27 | Ženski pojedinci |
Trast | 30 | Trast entiteti |
Razumevanje ovih kodova tipa je esencijalno za generisanje odgovarajućih CUIT-ova za različite scenarije testiranja.
Naš alat nudi dve glavne funkcije: generisanje validnih CUIT-ova i validaciju postojećih. Evo kako efikasno koristiti svaku funkciju:
Generator kreira nasumične, ali matematički validne CUIT-ove koji prate zvaničnu algoritam koji koristi AFIP. Ovi CUIT-ovi su savršeni za testiranje sistema koji zahtevaju validne CUIT formate, iako nisu registrovani u zvaničnim bazama podataka.
Validator proverava i format i matematičku validnost CUIT-a tako što proverava da li se verifikacijska cifra poklapa sa izračunatom vrednošću na osnovu prethodnih cifara.
Verifikacijska cifra (poslednja cifra) CUIT-a se izračunava koristeći specifičan algoritam dizajniran da otkrije uobičajene greške u unosu podataka. Razumevanje ovog algoritma pomaže u objašnjenju kako naš alat validira CUIT-ove:
Izračunajmo verifikacijsku cifru za CUIT sa kodom tipa 30 i identifikacionim brojem 12345678:
Dakle, kompletan validan CUIT je 30-12345678-1.
Alat za generisanje i validaciju CUIT-a u Argentini služi višestrukim praktičnim svrhama u različitim profesionalnim kontekstima:
Sledeći primeri koda prikazuju kako implementirati validaciju i generisanje CUIT-a u različitim programskim jezicima:
1// Validacija CUIT-a u JavaScript-u
2function validateCUIT(cuit) {
3 // Uklonite sve ne-numeričke karaktere
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Proverite da li ima tačno 11 cifara
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Ekstraktujte delove
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Izračunajte verifikacijsku cifru
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// Primer korišćenja
39console.log(validateCUIT('30-12345678-1')); // true ili false
40
1# Generisanje CUIT-a u Python-u
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Definišite kodove tipa entiteta
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 # Uzmite kod tipa za odabrani entitet
19 type_code = entity_types.get(entity_type, 30)
20
21 # Generišite nasumičan 8-cifren broj
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Izračunajte verifikacijsku cifru
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 # Formatirajte i vratite CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Primer korišćenja
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// Validacija CUIT-a u PHP-u
3function validateCUIT($cuit) {
4 // Uklonite sve ne-numeričke karaktere
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Proverite da li ima tačno 11 cifara
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Ekstraktujte delove
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Izračunajte verifikacijsku cifru
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// Primer korišćenja
39echo validateCUIT('30-12345678-1') ? 'Validan' : 'Nevalidan';
40?>
41
1// Generisanje i validacija CUIT-a u Javi
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Kodovi tipa entiteta
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 // Generišite validan CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Odredite kod tipa na osnovu tipa entiteta
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 // Generišite nasumičan 8-cifren broj
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 // Izračunajte verifikacijsku cifru
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Formatirajte i vratite CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Izračunajte verifikacijsku cifru
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 // Validirajte CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Uklonite sve ne-numeričke karaktere
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Proverite da li ima tačno 11 cifara
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Ekstraktujte verifikacijsku cifru
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Izračunajte očekivanu verifikacijsku cifru
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Uporedite verifikacijske cifre
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Primer korišćenja
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Generisani CUIT: " + generatedCUIT);
92 System.out.println("Da li je validan: " + validateCUIT(generatedCUIT));
93 }
94}
95
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Validirajte CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Uklonite sve ne-numeričke karaktere
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Proverite da li ima tačno 11 cifara
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Ekstraktujte verifikacijsku cifru
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Izračunajte očekivanu verifikacijsku cifru
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 // Formatirajte CUIT sa ispravnim razmacima
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; // Vratite original ako nije 11 cifara
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
Sistem CUIT je uspostavljen u Argentini početkom 1990-ih kao deo šire inicijative poreske reforme usmerene na modernizaciju fiskalne infrastrukture zemlje i smanjenje poreske evazije. Federalna administracija javnih prihoda (AFIP), argentinska poreska vlast, implementirala je CUIT kao standardizovani identifikacioni sistem za sve poreske obveznike.
Pre uvođenja CUIT-a, Argentina je koristila razne nekonzistentne identifikacione sisteme za različite tipove poreskih obveznika, što je činilo poresku administraciju neefikasnom i stvaralo prilike za nepoštovanje. CUIT je ujedinio ove sisteme u jedan, proverljiv identifikator koji se može koristiti u svim poreskim aktivnostima.
Ključni događaji u evoluciji sistema CUIT uključuju:
CUIT je postao esencijalni element argentinskog ekonomskog i finansijskog sistema, služeći ne samo za poreske svrhe, već i za bankarstvo, zapošljavanje, socijalno osiguranje i poslovne transakcije.
CUIT (Código Único de Identificación Tributaria) je jedinstveni poreski identifikacioni kod Argentine dodeljen pojedincima i pravnim licima u svrhe oporezivanja. Sastoji se od 11 cifara u formatu XX-XXXXXXXX-X, gde prve dve cifre ukazuju na tip entiteta, srednjih osam cifara je identifikacioni broj, a poslednja cifra je verifikacijska cifra.
Validan CUIT mora:
Naš alat za validaciju CUIT-a može odmah proveriti da li CUIT ispunjava ove kriterijume.
Iako su slični po formatu, CUIT i CUIL služe različitim svrhama:
Oba prate isti format i algoritam verifikacije, ali se koriste u različitim kontekstima.
Ne. CUIT-ovi generisani ovim alatom su matematički validni, ali nisu registrovani u zvaničnoj bazi AFIP-a. Trebalo bi da se koriste samo za testiranje, razvoj ili obrazovne svrhe. Korišćenje fiktivnih CUIT-ova za zvanične dokumente ili transakcije može predstavljati prevaru.
AFIP je dodelio isti kod tipa (30) više tipovima entiteta, uključujući kompanije, fondacije i vladine entitete. Ovo je deo zvaničnog klasifikacionog sistema i ne utiče na validnost CUIT-a. Specifičan tip entiteta određuje se dodatnim registracionim informacijama u sistemima AFIP-a.
CUIT-ovi su trajni identifikatori koji se obično ne menjaju tokom života pojedinca ili entiteta. Međutim, u nekim specifičnim slučajevima, poput promene pravnog statusa ili promene pola, može se dodeliti novi CUIT.
Da, ali ne putem našeg alata. AFIP pruža zvaničnu uslugu pod nazivom "Constancia de Inscripción" na svojoj veb stranici gde možete proveriti da li je CUIT zvanično registrovan i aktivan. Naš alat samo validira matematičku ispravnost CUIT-a.
Uobičajene greške uključuju:
Naš validator pomaže u identifikaciji ovih problema proverom i formata i matematičke validnosti.
Naš alat vam omogućava da izaberete između različitih tipova entiteta pre nego što generišete CUIT. Jednostavno izaberite odgovarajući tip entiteta iz padajućeg menija i kliknite na "Generiši CUIT." Alat će automatski koristiti ispravan kod tipa za vašu selekciju.
Ne, naš alat ne postavlja ograničenja na broj CUIT-ova koje možete generisati ili validirati. Dizajniran je za praktičnost u testiranju i obrazovnim scenarijima gde vam može biti potrebno više validnih CUIT-ova.
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).
Alat za generisanje i validaciju CUIT-a u Argentini pruža jednostavno, efikasno rešenje za rad sa argentinskim poreskim identifikacionim kodovima u testnim i razvojnim okruženjima. Razumevanjem strukture, formata i algoritma verifikacije CUIT-ova, korisnici mogu osigurati integritet podataka i usklađenost sa standardima argentinskog poreskog identifikovanja.
Bilo da razvijate softver koji komunicira sa argentinskim finansijskim sistemima, testirate rutine validacije podataka ili jednostavno učite o međunarodnim sistemima poreskog identifikovanja, naš alat nudi funkcionalnost koju vam je potrebna bez nepotrebne složenosti.
Pokušajte da generišete CUIT sada ili validirajte postojeći da biste iskusili jednostavnost i efikasnost našeg alata iz prve ruke.
Otkrijte više alata koji mogu biti korisni za vaš radni proces