Generirajte važeće argentinske CUIT brojeve (porezne identifikacijske kodove) i validirajte postojeće s ovim jednostavnim alatom dizajniranim za testne scenarije. Nema složenih značajki, samo jednostavna generacija i validacija CUIT-a.
Jednostavan alat za generiranje i validaciju argentinskih poreznih identifikacijskih kodova (CUIT) u svrhe testiranja.
Format: XX-XXXXXXXX-X
CUIT (Código Único de Identificación Tributaria) je porezni identifikacijski kod koji se koristi u Argentini za fizičke i pravne osobe.
CUIT (Código Único de Identificación Tributaria) je jedinstveni porezni identifikacijski kod Argentine, ključni identifikator za sve porezne obveznike u argentinskom poreznom sustavu. Ovaj esencijalni numerički kod služi kao primarni identifikator za pojedince i pravne osobe prilikom interakcije s AFIP-om (Federalna uprava za javne prihode) i obavljanja poslovnih operacija širom Argentine. Naš alat za generiranje i validaciju argentinskog CUIT-a pruža jednostavno, učinkovito rješenje za generiranje matematički valjanih CUIT-ova u svrhe testiranja i validaciju postojećih CUIT brojeva.
Bilo da ste programer koji testira aplikacije koje obrađuju argentinske porezne informacije, QA stručnjak koji provjerava integritet podataka ili poslovni analitičar koji priprema testne skupove podataka, ovaj alat pojednostavljuje proces rada s CUIT brojevima bez složenosti integracija API-ja ili nepotrebnih značajki.
Argentinski CUIT slijedi specifičan format koji se sastoji od 11 znamenki raspoređenih kao:
1XX-XXXXXXXX-X
2
Ovaj standardizirani format može se razbiti na tri različite komponente:
Prve dvije znamenke CUIT-a ukazuju na tip poreznog obveznika:
Tip entiteta | Tip kod | Opis |
---|---|---|
Tvrtka | 30 | Korporacije, društva s ograničenom odgovornošću i drugi poslovni entiteti |
Udruga | 33 | Neprofitne udruge |
Zaklada | 30 | Dobrotvorne zaklade |
Društvo | 30 | Partnerstva i druge društvene strukture |
Vlada | 30 | Vladini entiteti i javne institucije |
Strana tvrtka | 30 | Tvrtke sa sjedištem izvan Argentine |
Pojedinac (Muškarac) | 20 | Muški pojedinci |
Pojedinac (Žena) | 27 | Ženski pojedinci |
Povjerenje | 30 | Entiteti povjerenja |
Razumijevanje ovih tip kodova ključno je za generiranje odgovarajućih CUIT-ova za različite scenarije testiranja.
Naš alat nudi dvije glavne funkcije: generiranje valjanih CUIT-ova i validaciju postojećih. Evo kako učinkovito koristiti svaku značajku:
Generator stvara nasumične, ali matematički valjane CUIT-ove koji slijede službenu algoritam koji koristi AFIP. Ovi CUIT-ovi su savršeni za testiranje sustava koji zahtijevaju valjane formate CUIT-a, iako nisu registrirani u službenim bazama podataka.
Validator provjerava i format i matematičku valjanost CUIT-a provjeravajući da li se verifikacijska znamenka podudara s izračunatom vrijednošću na temelju prethodnih znamenki.
Verifikacijska znamenka (posljednja znamenka) CUIT-a izračunava se pomoću specifičnog algoritma dizajniranog za otkrivanje uobičajenih pogrešaka u unosu podataka. Razumijevanje ovog algoritma pomaže objasniti kako naš alat validira CUIT-ove:
Izračunajmo verifikacijsku znamenku za CUIT s tip kodom 30 i identifikacijskim brojem 12345678:
Stoga je potpuni valjani CUIT 30-12345678-1.
Alat za generiranje i validaciju argentinskog CUIT-a služi višestrukim praktičnim svrhama u različitim profesionalnim kontekstima:
Sljedeći primjeri koda prikazuju kako implementirati validaciju i generiranje CUIT-a u različitim programskim jezicima:
1// Validacija CUIT-a u JavaScriptu
2function validateCUIT(cuit) {
3 // Uklonite sve znakove koji nisu znamenke
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Provjerite ima li točno 11 znamenki
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Izdvojite dijelove
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 znamenku
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// Primjer korištenja
39console.log(validateCUIT('30-12345678-1')); // true ili false
40
1# Generiranje CUIT-a u Pythonu
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Definirajte 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 # Dobijte tip kod za odabrani tip entiteta
19 type_code = entity_types.get(entity_type, 30)
20
21 # Generirajte nasumični 8-cifreni broj
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Izračunajte verifikacijsku znamenku
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# Primjer korištenja
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// Validacija CUIT-a u PHP-u
3function validateCUIT($cuit) {
4 // Uklonite sve znakove koji nisu znamenke
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Provjerite ima li točno 11 znamenki
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Izdvojite dijelove
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Izračunajte verifikacijsku znamenku
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// Primjer korištenja
39echo validateCUIT('30-12345678-1') ? 'Valjan' : 'Nevaljan';
40?>
41
1// Generiranje 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 // Generirajte valjani CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Odredite tip kod na temelju 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 // Generirajte nasumični 8-cifreni 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 znamenku
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 znamenku
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 znakove koji nisu znamenke
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Provjerite ima li točno 11 znamenki
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Izdvojite verifikacijsku znamenku
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Izračunajte očekivanu verifikacijsku znamenku
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Usporedite verifikacijske znamenke
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Primjer korištenja
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Generirani CUIT: " + generatedCUIT);
92 System.out.println("Je li valjan: " + 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 znakove koji nisu znamenke
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Provjerite ima li točno 11 znamenki
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Izdvojite verifikacijsku znamenku
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Izračunajte očekivanu verifikacijsku znamenku
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 s 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 izvorni ako nema 11 znamenki
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
Sustav CUIT uspostavljen je u Argentini početkom 1990-ih kao dio šire inicijative porezne reforme usmjerene na modernizaciju fiskalne infrastrukture zemlje i smanjenje porezne evazije. Federalna uprava za javne prihode (AFIP), argentinska porezna vlast, implementirala je CUIT kao standardizirani identifikacijski sustav za sve porezne obveznike.
Prije uvođenja CUIT-a, Argentina je koristila razne nekonzistentne identifikacijske sustave za različite tipove poreznih obveznika, što je činilo poreznu administraciju neučinkovitom i stvaralo prilike za nepoštivanje. CUIT je ujedinio ove sustave u jedan, provjerljiv identifikator koji se može koristiti u svim poreznim aktivnostima.
Ključni trenuci u evoluciji sustava CUIT uključuju:
CUIT je postao esencijalni element argentinskog ekonomskog i financijskog sustava, služeći ne samo za porezne svrhe već i za bankarstvo, zapošljavanje, socijalnu sigurnost i poslovne transakcije.
CUIT (Código Único de Identificación Tributaria) je jedinstveni porezni identifikacijski kod Argentine dodijeljen pojedincima i pravnim osobama u svrhu poreza. Sastoji se od 11 znamenki u formatu XX-XXXXXXXX-X, gdje prve dvije znamenke ukazuju na tip entiteta, srednjih osam znamenki je identifikacijski broj, a posljednja znamenka je verifikacijska znamenka.
Valjan CUIT mora:
Naš alat za validaciju CUIT-a može odmah provjeriti ispunjava li CUIT ove kriterije.
Iako su slični u formatu, CUIT i CUIL imaju različite svrhe:
Oba slijede isti format i algoritam verifikacije, ali se koriste u različitim kontekstima.
Ne. CUIT-ovi generirani ovim alatom su matematički valjani, ali nisu registrirani u službenoj bazi podataka AFIP-a. Trebali bi se koristiti samo za testiranje, razvoj ili obrazovne svrhe. Korištenje fiktivnih CUIT-ova za službene dokumente ili transakcije može predstavljati prijevaru.
AFIP je dodijelio isti tip kod (30) nekoliko tipovima entiteta, uključujući tvrtke, zaklade i vladine entitete. To je dio službenog sustava klasifikacije i ne utječe na valjanost CUIT-a. Specifični tip entiteta određuje se dodatnim registracijskim informacijama u sustavima AFIP-a.
CUIT-ovi su trajni identifikatori koji se obično ne mijenjaju tijekom života pojedinca ili entiteta. Međutim, u nekim specifičnim slučajevima, poput promjena pravnog statusa ili promjene spola, može se dodijeliti novi CUIT.
Da, ali ne putem našeg alata. AFIP pruža službenu uslugu pod nazivom "Constancia de Inscripción" na svojoj web stranici gdje možete provjeriti je li CUIT službeno registriran i aktivan. Naš alat samo validira matematičku ispravnost CUIT-a.
Uobičajene pogreške uključuju:
Naš validator pomaže identificirati ove probleme provjerom i formata i matematičke valjanosti.
Naš alat vam omogućuje da odaberete između različitih tipova entiteta prije generiranja CUIT-a. Jednostavno odaberite odgovarajući tip entiteta iz padajućeg izbornika i kliknite "Generiraj CUIT." Alat će automatski koristiti ispravan tip kod za vaš odabir.
Ne, naš alat ne postavlja nikakva ograničenja na broj CUIT-ova koje možete generirati ili validirati. Dizajniran je za praktičnost u testiranju i obrazovnim scenarijima gdje vam može zatrebati više valjanih 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 i registración."
Chicote, J. (2018). "Porezni identifikacijski sustavi u Latinskoj Americi: Usporedna analiza." Časopis porezne administracije, 4(1), 88-106.
Gómez Sabaini, J.C., & Morán, D. (2016). "Porezna politika u Latinskoj Americi: Procjena i smjernice za reformu." Ekonomska komisija za Latinsku Ameriku i Karibe (ECLAC).
Alat za generiranje i validaciju argentinskog CUIT-a pruža jednostavno, učinkovito rješenje za rad s argentinskim poreznim identifikacijskim kodovima u testnim i razvojnim okruženjima. Razumijevanjem strukture, formata i algoritma verifikacije CUIT-ova, korisnici mogu osigurati integritet podataka i usklađenost s argentinskim standardima identifikacije poreznih obveznika.
Bilo da razvijate softver koji komunicira s argentinskim financijskim sustavima, testirate rutine validacije podataka ili jednostavno učite o međunarodnim sustavima identifikacije poreza, naš alat nudi funkcionalnost koja vam je potrebna bez nepotrebne složenosti.
Pokušajte generirati CUIT sada ili validirati postojeći kako biste prvi put iskusili jednostavnost i učinkovitost našeg alata.
Otkrijte više alata koji bi mogli biti korisni za vaš radni proces