Generator i validator Argentinskog CUIT/CUIL broja
Generirajte valjane argentinske CUIT/CUIL brojeve za testiranje ili validirajte postojeće. Jednostavan alat za programere koji rade s argentinskim poreznim i radnim identifikacijskim brojevima.
Generator CUIT/CUIL
Unesite 8-cifreni broj DNI ili koristite generator nasumičnih brojeva
Generirani CUIT/CUIL
Dokumentacija
Argentinski generator i validator CUIT/CUIL
Uvod
Argentinski CUIT (Clave Única de Identificación Tributaria) i CUIL (Clave Única de Identificación Laboral) su jedinstveni identifikacijski brojevi koji se koriste u Argentini za porezne i radne svrhe, redom. Ovi 11-cifreni kodovi su bitni za pojedince i tvrtke da legalno djeluju unutar argentinskog ekonomskog sustava. Naš alat za generiranje i validaciju CUIT/CUIL pruža jednostavan i učinkovit način za generiranje valjanih CUIT/CUIL brojeva za testne svrhe i validaciju postojećih brojeva kako bi se osiguralo da su u skladu s službenim formatom i algoritmom provjere.
Bilo da ste programer koji testira aplikacije koje obrađuju argentinske porezne identifikacijske brojeve, QA stručnjak koji provjerava funkcionalnost sustava, ili jednostavno trebate razumjeti kako ovi identifikacijski brojevi funkcioniraju, ovaj alat nudi jednostavno rješenje bez nepotrebnih složenosti. Alat ima dvije glavne funkcije: generator koji nasumično stvara valjane CUIT/CUIL brojeve ili na temelju specifičnih parametara, i validator koji provjerava je li dani CUIT/CUIL broj u skladu s pravilnim formatom i pravilima izračuna.
Struktura i izračun CUIT/CUIL
Razumijevanje formata
Valjan CUIT/CUIL broj sastoji se od 11 cifara koje se obično prikazuju u formatu XX-XXXXXXXX-X:
-
Kod tipa (prve 2 cifre): Označava tip entiteta
- 20, 23, 24: Muški pojedinci (CUIL)
- 27: Ženski pojedinci (CUIL)
- 30, 33, 34: Tvrtke i organizacije (CUIT)
-
DNI broj (srednjih 8 cifara): Za pojedince, to je njihov broj nacionalnog identifikacijskog dokumenta (DNI), popunjen vodećim nulama ako je potrebno da dosegne 8 cifara. Za tvrtke, to je jedinstveni dodijeljeni broj.
-
Cifra provjere (posljednja cifra): Cifra provjere izračunava se pomoću specifičnog algoritma za validaciju cijelog broja.
Izračun Cifre Provjere
Cifra provjere izračunava se pomoću sljedećeg algoritma:
- Uzmite prvih 10 cifara CUIT/CUIL (kod tipa + DNI)
- Pomnožite svaku cifru odgovarajućom težinom iz ove sekvence: 5, 4, 3, 2, 7, 6, 5, 4, 3, 2
- Zbrojite sve rezultate
- Izračunajte 11 minus ostatak zbroja podijeljenog s 11
- Ako je rezultat 11, cifra provjere je 0
- Ako je rezultat 10, cifra provjere je 9
- U suprotnom, rezultat je cifra provjere
Matematički, ovo se može izraziti kao:
Gdje:
- je cifra provjere
- je -ta cifra prvih 10 cifara
- je odgovarajuća težina iz sekvence [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
- Posebni slučajevi: ako onda , ako onda
Vodič korak po korak
Korištenje Generatora
-
Odaberite karticu "Generator" na vrhu sučelja alata.
-
Odaberite Kod tipa iz padajućeg izbornika:
- 20: Muški (CUIL)
- 23: Tvrtka (CUIT)
- 24: Privremena tvrtka (CUIT)
- 27: Ženski (CUIL)
- 30: Korporacija (CUIT)
- 33: Civilna udruga (CUIT)
- 34: Zaklada (CUIT)
-
Unesite DNI broj (opcionalno):
- Unesite 8-cifreni DNI broj u predviđeno polje
- Ako ostavite prazno, alat će koristiti nasumično generirani DNI
- Ako unesete manje od 8 cifara, sustav će popuniti vodećim nulama
-
Generirajte nasumični DNI (opcionalno):
- Kliknite gumb "Random" za generiranje nasumičnog 8-cifrenog DNI broja
-
Pogledajte generirani CUIT/CUIL:
- Alat automatski prikazuje valjan CUIT/CUIL na temelju vaših unosa
- Format će biti XX-XXXXXXXX-X s ispravnom cifrom provjere
-
Kopirajte rezultat:
- Kliknite ikonu kopiranja za kopiranje generiranog CUIT/CUIL u vaš međuspremnik
- Poruka potvrde će se pojaviti kada se uspješno kopira
Korištenje Validatora
-
Odaberite karticu "Validator" na vrhu sučelja alata.
-
Unesite CUIT/CUIL za validaciju:
- Unesite CUIT/CUIL u formatu XX-XXXXXXXX-X
- Alat će automatski formatirati vaš unos s crticama dok tipkate
- Također možete unijeti broj bez crtica (XXXXXXXXXXX)
-
Kliknite gumb "Validate":
- Alat će provjeriti format, kod tipa i cifru provjere
-
Pogledajte rezultat validacije:
- Za valjane CUIT/CUIL brojeve, pojavit će se zelena poruka o uspjehu
- Za nevaljane brojeve, pojavit će se crvena poruka o grešci koja objašnjava problem:
- Nevaljan format (mora biti XX-XXXXXXXX-X)
- Nevaljan kod tipa (mora biti jedan od: 20, 23, 24, 27, 30, 33, 34)
- Nevaljana cifra provjere
-
Dodatne informacije:
- Za valjane brojeve, alat prikazuje razlaganje komponenti:
- Kod tipa i njegovo značenje
- DNI broj
- Cifra provjere
- Za valjane brojeve, alat prikazuje razlaganje komponenti:
Upotrebe
Razvoj i testiranje
-
Razvoj softvera: Generirajte valjane CUIT/CUIL brojeve za testiranje aplikacija koje obrađuju argentinske porezne identifikacije, kao što su:
- E-trgovinske platforme
- Računovodstveni softver
- Sustavi upravljanja ljudskim resursima
- Portali državnih usluga
- Bankarske aplikacije
-
Populacija baze podataka: Stvorite realistične testne podatke za sustave koji pohranjuju argentinske korisničke informacije, osiguravajući da pravila ograničenja i validacije baze podataka ispravno funkcioniraju.
-
Testiranje validacije obrazaca: Testirajte validaciju unosa za web obrasce koji prikupljaju CUIT/CUIL informacije, provjeravajući da se ispravne poruke o grešci pojavljuju za nevaljane unose.
-
Testiranje API-ja: Generirajte valjane terete za API krajnje točke koje zahtijevaju CUIT/CUIL brojeve, osiguravajući da vaši integracijski testovi koriste valjane podatke.
-
QA automatizacija: Uključite generiranje CUIT/CUIL u automatizirane testne skripte kako biste stvorili dinamičke testne slučajeve umjesto korištenja statičnih testnih podataka.
Obrazovne svrhe
-
Učenje algoritama validacije: Razumite kako algoritmi cifre provjere funkcioniraju u praksi gledajući proces provjere CUIT/CUIL u akciji.
-
Poučavanje validaciji podataka: Koristite kao obrazovni primjer kada poučavate tehnike validacije obrazaca novim programerima.
-
Razumijevanje argentinskih poslovnih zahtjeva: Naučite o identifikacijskom sustavu koji se koristi u Argentini za međunarodni poslovni razvoj.
Alternativne opcije
Iako naš alat pruža jednostavan način za generiranje i validaciju CUIT/CUIL brojeva, postoje alternativni pristupi koje možete razmotriti:
-
Službena vladina validacija: Za proizvodna okruženja, uvijek validirajte CUIT/CUIL brojeve protiv službene AFIP (Administración Federal de Ingresos Públicos) baze podataka kada je to moguće.
-
Biblioteke i paketi: Nekoliko programskih jezika ima biblioteke posebno dizajnirane za validaciju argentinskih poreznih ID-ova:
- JavaScript:
validar-cuit
npm paket - PHP:
afip-php
biblioteka - Python:
py-cuit
paket
- JavaScript:
-
Ručno računanje: Za obrazovne svrhe, možda biste ručno izračunali cifru provjere koristeći ranije opisani algoritam.
-
Sveobuhvatne usluge validacije poslovanja: Za aplikacije na razini poduzeća, razmotrite korištenje sveobuhvatnih usluga validacije koje ne samo da provjeravaju format, već i potvrđuju postojanje i status entiteta povezanog s CUIT/CUIL.
Povijest sustava CUIT/CUIL
Sustav identifikacije CUIT/CUIL u Argentini značajno se razvio od svog nastanka:
Porijeklo i implementacija
CUIT (Clave Única de Identificación Tributaria) prvi put je uveden u Argentini 1970-ih kao dio napora za modernizaciju sustava prikupljanja poreza. Savezna uprava za javne prihode (AFIP) implementirala je ovaj jedinstveni identifikator kako bi učinkovitije pratila porezne obveznike i smanjila utaju poreza.
CUIL (Clave Única de Identificación Laboral) kasnije je uveden kako bi se posebno identificirali radnici u sustavu socijalne sigurnosti, stvarajući razliku između poreznog identifikatora i radnog identifikatora, dok se zadržava dosljedan format.
Evolucija i digitalizacija
U 1990-ima, kako je Argentina prolazila kroz značajne ekonomske reforme, sustav CUIT/CUIL postao je sve važniji za praćenje ekonomske aktivnosti. Sustav je dodatno digitaliziran, a implementirani su online sustavi provjere.
Rani 2000-ih vidjeli su integraciju sustava CUIT/CUIL s raznim digitalnim vladinim uslugama, čineći ga bitnom komponentom argentinskih e-vladinih inicijativa. Ovaj period također je vidio standardizaciju algoritma provjere i formata koji se i danas koristi.
Nedavni razvoj
U posljednjim godinama, AFIP je poboljšala sigurnosne i provjere procesa za CUIT/CUIL brojeve, implementirajući sofisticiranije sustave validacije i integrirajući ih s drugim vladinim bazama podataka. Sustav sada igra ključnu ulogu u naporima Argentine da se bori protiv utaje poreza i formalizira ekonomiju.
Danas se CUIT/CUIL koristi ne samo za porezne i radne svrhe, već i za širok spektar aktivnosti uključujući bankarstvo, transakcije nekretninama, usluge komunalija i online kupovine, čineći ga bitnim identifikatorom za pojedince i tvrtke koje djeluju u Argentini.
Primjeri koda
Python
1def calculate_verification_digit(type_code, dni):
2 # Pretvori u string i osiguraj da je DNI 8 cifara s vodećim nulama
3 type_code_str = str(type_code)
4 dni_str = str(dni).zfill(8)
5
6 # Kombiniraj kod tipa i DNI
7 digits = type_code_str + dni_str
8
9 # Težine za svaku poziciju
10 weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
11
12 # Izračunaj zbroj proizvoda
13 sum_products = sum(int(digits[i]) * weights[i] for i in range(10))
14
15 # Izračunaj cifru provjere
16 verification_digit = 11 - (sum_products % 11)
17
18 # Posebni slučajevi
19 if verification_digit == 11:
20 verification_digit = 0
21 elif verification_digit == 10:
22 verification_digit = 9
23
24 return verification_digit
25
26def generate_cuit_cuil(type_code, dni=None):
27 import random
28
29 # Valjani kodovi tipa
30 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
31
32 if type_code not in valid_type_codes:
33 raise ValueError(f"Nevaljani kod tipa. Mora biti jedan od: {valid_type_codes}")
34
35 # Generiraj nasumični DNI ako nije zadan
36 if dni is None:
37 dni = random.randint(10000000, 99999999)
38
39 # Izračunaj cifru provjere
40 verification_digit = calculate_verification_digit(type_code, dni)
41
42 # Formatiraj CUIT/CUIL
43 return f"{type_code}-{str(dni).zfill(8)}-{verification_digit}"
44
45def validate_cuit_cuil(cuit_cuil):
46 # Ukloni crtice ako su prisutne
47 cuit_cuil_clean = cuit_cuil.replace("-", "")
48
49 # Provjeri osnovni format
50 if not cuit_cuil_clean.isdigit() or len(cuit_cuil_clean) != 11:
51 return False, "Nevaljan format"
52
53 # Izdvoji dijelove
54 type_code = int(cuit_cuil_clean[0:2])
55 dni = int(cuit_cuil_clean[2:10])
56 verification_digit = int(cuit_cuil_clean[10])
57
58 # Validiraj kod tipa
59 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
60 if type_code not in valid_type_codes:
61 return False, "Nevaljan kod tipa"
62
63 # Izračunaj i usporedi cifru provjere
64 calculated_digit = calculate_verification_digit(type_code, dni)
65 if calculated_digit != verification_digit:
66 return False, "Nevaljana cifra provjere"
67
68 return True, "Valjan CUIT/CUIL"
69
70# Primjer korištenja
71print(generate_cuit_cuil(20, 12345678)) # Generiraj za specifični DNI
72print(generate_cuit_cuil(27)) # Generiraj s nasumičnim DNI
73print(validate_cuit_cuil("20-12345678-9")) # Validiraj CUIT/CUIL
74
JavaScript
1function calculateVerificationDigit(typeCode, dni) {
2 // Pretvori u string i osiguraj da je DNI 8 cifara s vodećim nulama
3 const typeCodeStr = typeCode.toString();
4 const dniStr = dni.toString().padStart(8, '0');
5
6 // Kombiniraj kod tipa i DNI
7 const digits = typeCodeStr + dniStr;
8
9 // Težine za svaku poziciju
10 const weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
11
12 // Izračunaj zbroj proizvoda
13 let sumProducts = 0;
14 for (let i = 0; i < 10; i++) {
15 sumProducts += parseInt(digits[i]) * weights[i];
16 }
17
18 // Izračunaj cifru provjere
19 let verificationDigit = 11 - (sumProducts % 11);
20
21 // Posebni slučajevi
22 if (verificationDigit === 11) {
23 verificationDigit = 0;
24 } else if (verificationDigit === 10) {
25 verificationDigit = 9;
26 }
27
28 return verificationDigit;
29}
30
31function generateCuitCuil(typeCode, dni) {
32 // Valjani kodovi tipa
33 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
34
35 if (!validTypeCodes.includes(typeCode)) {
36 throw new Error(`Nevaljani kod tipa. Mora biti jedan od: ${validTypeCodes.join(', ')}`);
37 }
38
39 // Generiraj nasumični DNI ako nije zadan
40 if (dni === undefined) {
41 dni = Math.floor(Math.random() * 90000000) + 10000000;
42 }
43
44 // Izračunaj cifru provjere
45 const verificationDigit = calculateVerificationDigit(typeCode, dni);
46
47 // Formatiraj CUIT/CUIL
48 return `${typeCode}-${dni.toString().padStart(8, '0')}-${verificationDigit}`;
49}
50
51function validateCuitCuil(cuitCuil) {
52 // Ukloni crtice ako su prisutne
53 const cuitCuilClean = cuitCuil.replace(/-/g, '');
54
55 // Provjeri osnovni format
56 if (!/^\d{11}$/.test(cuitCuilClean)) {
57 return { isValid: false, errorMessage: 'Nevaljan format' };
58 }
59
60 // Izdvoji dijelove
61 const typeCode = parseInt(cuitCuilClean.substring(0, 2));
62 const dni = parseInt(cuitCuilClean.substring(2, 10));
63 const verificationDigit = parseInt(cuitCuilClean.substring(10, 11));
64
65 // Validiraj kod tipa
66 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
67 if (!validTypeCodes.includes(typeCode)) {
68 return { isValid: false, errorMessage: 'Nevaljan kod tipa' };
69 }
70
71 // Izračunaj i usporedi cifru provjere
72 const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73 if (calculatedDigit !== verificationDigit) {
74 return { isValid: false, errorMessage: 'Nevaljana cifra provjere' };
75 }
76
77 return { isValid: true };
78}
79
80// Primjer korištenja
81console.log(generateCuitCuil(20, 12345678)); // Generiraj za specifični DNI
82console.log(generateCuitCuil(27)); // Generiraj s nasumičnim DNI
83console.log(validateCuitCuil("20-12345678-9")); // Validiraj CUIT/CUIL
84
Java
1import java.util.Arrays;
2import java.util.List;
3import java.util.Random;
4
5public class CuitCuilUtils {
6 private static final List<Integer> VALID_TYPE_CODES = Arrays.asList(20, 23, 24, 27, 30, 33, 34);
7 private static final int[] WEIGHTS = {5, 4, 3, 2, 7, 6, 5, 4, 3, 2};
8
9 public static int calculateVerificationDigit(int typeCode, int dni) {
10 // Pretvori u string i osiguraj da je DNI 8 cifara s vodećim nulama
11 String typeCodeStr = String.valueOf(typeCode);
12 String dniStr = String.format("%08d", dni);
13
14 // Kombiniraj kod tipa i DNI
15 String digits = typeCodeStr + dniStr;
16
17 // Izračunaj zbroj proizvoda
18 int sumProducts = 0;
19 for (int i = 0; i < 10; i++) {
20 sumProducts += Character.getNumericValue(digits.charAt(i)) * WEIGHTS[i];
21 }
22
23 // Izračunaj cifru provjere
24 int verificationDigit = 11 - (sumProducts % 11);
25
26 // Posebni slučajevi
27 if (verificationDigit == 11) {
28 verificationDigit = 0;
29 } else if (verificationDigit == 10) {
30 verificationDigit = 9;
31 }
32
33 return verificationDigit;
34 }
35
36 public static String generateCuitCuil(int typeCode, Integer dni) {
37 if (!VALID_TYPE_CODES.contains(typeCode)) {
38 throw new IllegalArgumentException("Nevaljani kod tipa. Mora biti jedan od: " + VALID_TYPE_CODES);
39 }
40
41 // Generiraj nasumični DNI ako nije zadan
42 if (dni == null) {
43 Random random = new Random();
44 dni = 10000000 + random.nextInt(90000000);
45 }
46
47 // Izračunaj cifru provjere
48 int verificationDigit = calculateVerificationDigit(typeCode, dni);
49
50 // Formatiraj CUIT/CUIL
51 return String.format("%d-%08d-%d", typeCode, dni, verificationDigit);
52 }
53
54 public static ValidationResult validateCuitCuil(String cuitCuil) {
55 // Ukloni crtice ako su prisutne
56 String cuitCuilClean = cuitCuil.replace("-", "");
57
58 // Provjeri osnovni format
59 if (!cuitCuilClean.matches("\\d{11}")) {
60 return new ValidationResult(false, "Nevaljan format");
61 }
62
63 // Izdvoji dijelove
64 int typeCode = Integer.parseInt(cuitCuilClean.substring(0, 2));
65 int dni = Integer.parseInt(cuitCuilClean.substring(2, 10));
66 int verificationDigit = Integer.parseInt(cuitCuilClean.substring(10, 11));
67
68 // Validiraj kod tipa
69 if (!VALID_TYPE_CODES.contains(typeCode)) {
70 return new ValidationResult(false, "Nevaljan kod tipa");
71 }
72
73 // Izračunaj i usporedi cifru provjere
74 int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75 if (calculatedDigit != verificationDigit) {
76 return new ValidationResult(false, "Nevaljana cifra provjere");
77 }
78
79 return new ValidationResult(true, null);
80 }
81
82 public static class ValidationResult {
83 private final boolean isValid;
84 private final String errorMessage;
85
86 public ValidationResult(boolean isValid, String errorMessage) {
87 this.isValid = isValid;
88 this.errorMessage = errorMessage;
89 }
90
91 public boolean isValid() {
92 return isValid;
93 }
94
95 public String getErrorMessage() {
96 return errorMessage;
97 }
98 }
99
100 public static void main(String[] args) {
101 // Primjer korištenja
102 System.out.println(generateCuitCuil(20, 12345678)); // Generiraj za specifični DNI
103 System.out.println(generateCuitCuil(27, null)); // Generiraj s nasumičnim DNI
104 System.out.println(validateCuitCuil("20-12345678-9").isValid()); // Validiraj CUIT/CUIL
105 }
106}
107
PHP
1<?php
2
3function calculateVerificationDigit($typeCode, $dni) {
4 // Pretvori u string i osiguraj da je DNI 8 cifara s vodećim nulama
5 $typeCodeStr = (string)$typeCode;
6 $dniStr = str_pad((string)$dni, 8, '0', STR_PAD_LEFT);
7
8 // Kombiniraj kod tipa i DNI
9 $digits = $typeCodeStr . $dniStr;
10
11 // Težine za svaku poziciju
12 $weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
13
14 // Izračunaj zbroj proizvoda
15 $sumProducts = 0;
16 for ($i = 0; $i < 10; $i++) {
17 $sumProducts += (int)$digits[$i] * $weights[$i];
18 }
19
20 // Izračunaj cifru provjere
21 $verificationDigit = 11 - ($sumProducts % 11);
22
23 // Posebni slučajevi
24 if ($verificationDigit == 11) {
25 $verificationDigit = 0;
26 } else if ($verificationDigit == 10) {
27 $verificationDigit = 9;
28 }
29
30 return $verificationDigit;
31}
32
33function generateCuitCuil($typeCode, $dni = null) {
34 // Valjani kodovi tipa
35 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
36
37 if (!in_array($typeCode, $validTypeCodes)) {
38 throw new Exception("Nevaljani kod tipa. Mora biti jedan od: " . implode(', ', $validTypeCodes));
39 }
40
41 // Generiraj nasumični DNI ako nije zadan
42 if ($dni === null) {
43 $dni = rand(10000000, 99999999);
44 }
45
46 // Izračunaj cifru provjere
47 $verificationDigit = calculateVerificationDigit($typeCode, $dni);
48
49 // Formatiraj CUIT/CUIL
50 return sprintf("%d-%08d-%d", $typeCode, $dni, $verificationDigit);
51}
52
53function validateCuitCuil($cuitCuil) {
54 // Ukloni crtice ako su prisutne
55 $cuitCuilClean = str_replace('-', '', $cuitCuil);
56
57 // Provjeri osnovni format
58 if (!preg_match('/^\d{11}$/', $cuitCuilClean)) {
59 return ['isValid' => false, 'errorMessage' => 'Nevaljan format'];
60 }
61
62 // Izdvoji dijelove
63 $typeCode = (int)substr($cuitCuilClean, 0, 2);
64 $dni = (int)substr($cuitCuilClean, 2, 8);
65 $verificationDigit = (int)substr($cuitCuilClean, 10, 1);
66
67 // Validiraj kod tipa
68 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
69 if (!in_array($typeCode, $validTypeCodes)) {
70 return ['isValid' => false, 'errorMessage' => 'Nevaljan kod tipa'];
71 }
72
73 // Izračunaj i usporedi cifru provjere
74 $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75 if ($calculatedDigit !== $verificationDigit) {
76 return ['isValid' => false, 'errorMessage' => 'Nevaljana cifra provjere'];
77 }
78
79 return ['isValid' => true];
80}
81
82// Primjer korištenja
83echo generateCuitCuil(20, 12345678) . "\n"; // Generiraj za specifični DNI
84echo generateCuitCuil(27) . "\n"; // Generiraj s nasumičnim DNI
85var_dump(validateCuitCuil("20-12345678-9")); // Validiraj CUIT/CUIL
86?>
87
Često postavljana pitanja
Koja je razlika između CUIT i CUIL?
CUIT (Clave Única de Identificación Tributaria) koristi se za poreznu identifikaciju i dodjeljuje se kako pojedincima tako i pravnim osobama koje trebaju plaćati poreze u Argentini. CUIL (Clave Única de Identificación Laboral) je specifično za radnike i koristi se za radne i socijalne sigurnosne svrhe. Iako dijele isti format i algoritam izračuna, služe različitim administrativnim svrhama.
Koji se kodovi tipa koriste za pojedince, a koji za tvrtke?
Za pojedince:
- 20, 23, 24: Muški pojedinci (CUIL)
- 27: Ženski pojedinci (CUIL)
Za tvrtke i organizacije:
- 30: Korporacije (CUIT)
- 33: Civilne udruge (CUIT)
- 34: Zaklade (CUIT)
Kako se izračunava cifra provjere?
Cifra provjere izračunava se pomoću algoritma s težinskim zbrojem. Svaka od prvih 10 cifara množi se odgovarajućom težinom (5, 4, 3, 2, 7, 6, 5, 4, 3, 2), a rezultati se zbrajaju. Cifra provjere je 11 minus ostatak kada se ovaj zbroj podijeli s 11. Posebni slučajevi: ako je rezultat 11, cifra provjere je 0; ako je rezultat 10, cifra provjere je 9.
Mogu li koristiti ovaj alat za generiranje pravih, službenih CUIT/CUIL brojeva?
Ne, ovaj alat je namijenjen isključivo za testne i obrazovne svrhe. Brojevi koje generira matematički su valjani prema CUIT/CUIL algoritmu, ali nisu službeno registrirani kod argentinskih poreznih vlasti (AFIP). Za službenu registraciju CUIT/CUIL, pojedinci i tvrtke moraju slijediti odgovarajuće pravne postupke kroz AFIP.
Zašto moja validacija CUIT/CUIL ne uspijeva iako format izgleda ispravno?
Validacija može ne uspjeti iz nekoliko razloga:
- Kod tipa nije jedan od valjanih kodova (20, 23, 24, 27, 30, 33, 34)
- Cifra provjere ne odgovara izračunatoj vrijednosti prema algoritmu
- Format je neispravan (treba biti XX-XXXXXXXX-X)
- U unosu su prisutni nenumerički znakovi (osim crtica)
Jesu li crtice obavezne u CUIT/CUIL brojevima?
Iako se CUIT/CUIL brojevi obično pišu i prikazuju s crticama (XX-XXXXXXXX-X), crtice nisu dio stvarnog broja za svrhe izračuna. Naš validator prihvaća oba formata (s ili bez crtica) i pravilno će validirati bilo koji format.
Može li CUIT/CUIL broj imati manje od 8 cifara u dijelu DNI?
Ne, dio DNI uvijek mora imati točno 8 cifara. Ako stvarni DNI ima manje cifara, mora se popuniti vodećim nulama kako bi dostigao 8 cifara. Na primjer, ako je nečiji DNI 1234567, u CUIT/CUIL će biti prikazan kao 01234567.
Kako mogu provjeriti je li CUIT/CUIL službeno registriran u Argentini?
Da biste provjerili je li CUIT/CUIL službeno registriran i aktivan, trebali biste koristiti službenu web stranicu ili usluge AFIP (Administración Federal de Ingresos Públicos). Naš alat samo provjerava matematičku valjanost broja, a ne njegovu službenu registraciju.
Mogu li koristiti ovaj alat u svojoj komercijalnoj aplikaciji?
Da, možete integrirati algoritam i logiku prikazanu u ovom alatu u svoje komercijalne aplikacije. Validacijski algoritam CUIT/CUIL je javni standard. Međutim, za proizvodna okruženja preporučujemo implementaciju pravilnog rukovanja greškama i razmatranje dodatne validacije protiv službenih izvora kada je to potrebno.
Pohranjuje li alat bilo koji od generiranih ili validiranih CUIT/CUIL brojeva?
Ne, ovaj alat ne pohranjuje nijednu od informacija koje su unesene ili generirane. Sva obrada odvija se na klijentskoj strani u vašem pregledniku, a nijedan podatak se ne šalje ili ne pohranjuje na našim poslužiteljima. To osigurava privatnost i sigurnost svih informacija koje unesete.
Reference
-
AFIP (Administración Federal de Ingresos Públicos). "CUIT/CUIL/CDI." Službena web stranica. https://www.afip.gob.ar/
-
Ministarstvo rada, zapošljavanja i socijalne sigurnosti. "CUIL - Clave Única de Identificación Laboral." https://www.argentina.gob.ar/trabajo
-
ANSES (Administración Nacional de la Seguridad Social). "Dobijanje mog CUIL." https://www.anses.gob.ar/
-
Službeni bilten Republike Argentine. "Resolución General AFIP 2854/2010: Procedura. Clave Única de Identificación Tributaria (C.U.I.T.)."
-
Porezni zakon Republike Argentine. "Identifikacija i registracija poreznih obveznika."
Spremni za generiranje ili validaciju argentinskih CUIT/CUIL brojeva? Isprobajte naš alat sada i pojednostavite svoj proces testiranja!
Povratne informacije
Kliknite na obavijest o povratnim informacijama da biste započeli davati povratne informacije o ovom alatu
Povezani alati
Otkrijte više alata koji bi mogli biti korisni za vaš radni proces