Generuj ważne numery CUIT (kody identyfikacji podatkowej) w Argentynie i waliduj istniejące za pomocą tego prostego narzędzia zaprojektowanego do scenariuszy testowych. Bez skomplikowanych funkcji, tylko prosta generacja i walidacja CUIT.
Proste narzędzie do generowania i walidacji argentyńskich kodów identyfikacji podatkowej (CUIT) do celów testowych.
Format: XX-XXXXXXXX-X
CUIT (Código Único de Identificación Tributaria) to kod identyfikacji podatkowej używany w Argentynie dla osób fizycznych i prawnych.
CUIT (Código Único de Identificación Tributaria) to unikalny kod identyfikacji podatkowej Argentyny, kluczowy identyfikator dla wszystkich podatników w argentyńskim systemie podatkowym. Ten niezbędny kod numeryczny służy jako główny identyfikator dla osób fizycznych i prawnych podczas interakcji z AFIP (Administracja Federalna Dochodów Publicznych) i prowadzenia działalności gospodarczej w całej Argentynie. Nasze narzędzie Generator i Walidator CUIT Argentyny oferuje proste, efektywne rozwiązanie do generowania matematycznie poprawnych CUIT-ów do celów testowych oraz walidacji istniejących numerów CUIT.
Niezależnie od tego, czy jesteś programistą testującym aplikacje przetwarzające argentyńskie informacje podatkowe, specjalistą QA weryfikującym integralność danych, czy analitykiem biznesowym przygotowującym zestawy testowe, to narzędzie upraszcza proces pracy z numerami CUIT bez złożoności integracji API lub zbędnych funkcji.
Argentyński CUIT ma określony format składający się z 11 cyfr ułożonych w następujący sposób:
1XX-XXXXXXXX-X
2
Ten ustandaryzowany format można podzielić na trzy odrębne komponenty:
Pierwsze dwie cyfry CUIT wskazują typ podatnika:
Typ podmiotu | Kod typu | Opis |
---|---|---|
Firma | 30 | Korporacje, spółki z o.o. i inne podmioty gospodarcze |
Stowarzyszenie | 33 | Stowarzyszenia non-profit |
Fundacja | 30 | Fundacje charytatywne |
Spółka | 30 | Spółki osobowe i inne struktury społeczne |
Rząd | 30 | Podmioty rządowe i instytucje publiczne |
Firma zagraniczna | 30 | Firmy z siedzibą poza Argentyną |
Osoba fizyczna (mężczyzna) | 20 | Osoby fizyczne płci męskiej |
Osoba fizyczna (kobieta) | 27 | Osoby fizyczne płci żeńskiej |
Fundusz powierniczy | 30 | Podmioty powiernicze |
Zrozumienie tych kodów typów jest kluczowe dla generowania odpowiednich CUIT-ów do różnych scenariuszy testowych.
Nasze narzędzie oferuje dwie podstawowe funkcje: generowanie ważnych CUIT-ów i walidację istniejących. Oto jak skutecznie korzystać z każdej funkcji:
Generator tworzy losowe, ale matematycznie poprawne CUIT-y, które podążają za oficjalnym algorytmem stosowanym przez AFIP. Te CUIT-y są idealne do testowania systemów, które wymagają poprawnych formatów CUIT, chociaż nie są zarejestrowane w oficjalnych bazach danych.
Walidator sprawdza zarówno format, jak i matematyczną ważność CUIT, weryfikując, czy cyfra kontrolna odpowiada obliczonej wartości na podstawie poprzednich cyfr.
Cyfra kontrolna (ostatnia cyfra) CUIT jest obliczana przy użyciu określonego algorytmu zaprojektowanego do wykrywania powszechnych błędów wprowadzania danych. Zrozumienie tego algorytmu pomaga wyjaśnić, jak nasze narzędzie waliduje CUIT-y:
Obliczmy cyfrę kontrolną dla CUIT z kodem typu 30 i numerem identyfikacyjnym 12345678:
Zatem pełny ważny CUIT to 30-12345678-1.
Narzędzie Generator i Walidator CUIT Argentyny służy wielu praktycznym celom w różnych kontekstach zawodowych:
Poniższe przykłady kodu pokazują, jak zaimplementować walidację i generowanie CUIT w różnych językach programowania:
1// Walidacja CUIT w JavaScript
2function validateCUIT(cuit) {
3 // Usuń wszelkie znaki niebędące cyframi
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Sprawdź, czy ma dokładnie 11 cyfr
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Wyodrębnij części
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Oblicz cyfrę kontrolną
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// Przykład użycia
39console.log(validateCUIT('30-12345678-1')); // true lub false
40
1# Generowanie CUIT w Pythonie
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Zdefiniuj kody typów podmiotów
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 # Uzyskaj kod typu dla wybranego podmiotu
19 type_code = entity_types.get(entity_type, 30)
20
21 # Wygeneruj losowy 8-cyfrowy numer
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Oblicz cyfrę kontrolną
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 # Sformatuj i zwróć CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Przykład użycia
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// Walidacja CUIT w PHP
3function validateCUIT($cuit) {
4 // Usuń wszelkie znaki niebędące cyframi
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Sprawdź, czy ma dokładnie 11 cyfr
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Wyodrębnij części
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Oblicz cyfrę kontrolną
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// Przykład użycia
39echo validateCUIT('30-12345678-1') ? 'Ważny' : 'Nieprawidłowy';
40?>
41
1// Generowanie i walidacja CUIT w Javie
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Kody typów podmiotów
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 // Generowanie ważnego CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Określenie kodu typu na podstawie rodzaju podmiotu
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 // Wygeneruj losowy 8-cyfrowy 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 // Oblicz cyfrę kontrolną
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Sformatuj i zwróć CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Oblicz cyfrę kontrolną
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 // Walidacja CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Usuń wszelkie znaki niebędące cyframi
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Sprawdź, czy ma dokładnie 11 cyfr
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Wyodrębnij cyfrę kontrolną
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Oblicz oczekiwaną cyfrę kontrolną
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Porównaj cyfry kontrolne
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Przykład użycia
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Wygenerowany CUIT: " + generatedCUIT);
92 System.out.println("Czy ważny: " + validateCUIT(generatedCUIT));
93 }
94}
95
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Walidacja CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Usuń wszelkie znaki niebędące cyframi
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Sprawdź, czy ma dokładnie 11 cyfr
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Wyodrębnij cyfrę kontrolną
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Oblicz oczekiwaną cyfrę kontrolną
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 // Formatuj CUIT z odpowiednimi separatorami
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; // Zwróć oryginał, jeśli nie ma 11 cyfr
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
System CUIT został ustanowiony w Argentynie na początku lat 90. XX wieku jako część szerszej inicjatywy reformy podatkowej mającej na celu modernizację infrastruktury fiskalnej kraju i ograniczenie uchwał podatkowych. Administracja Federalna Dochodów Publicznych (AFIP), argentyński organ podatkowy, wdrożyła CUIT jako ustandaryzowany system identyfikacji dla wszystkich podatników.
Przed wprowadzeniem CUIT w Argentynie stosowano różne niespójne systemy identyfikacji dla różnych typów podatników, co czyniło administrację podatkową nieefektywną i stwarzało możliwości nieprzestrzegania przepisów. CUIT zjednoczył te systemy w jeden, weryfikowalny identyfikator, który mógł być używany we wszystkich działaniach związanych z podatkami.
Kluczowe kamienie milowe w ewolucji systemu CUIT obejmują:
CUIT stał się niezbędnym elementem argentyńskich systemów gospodarczych i finansowych, służąc nie tylko do celów podatkowych, ale także w bankowości, zatrudnieniu, zabezpieczeniach społecznych i transakcjach biznesowych.
CUIT (Código Único de Identificación Tributaria) to unikalny kod identyfikacji podatkowej Argentyny przypisany osobom fizycznym i prawnym do celów podatkowych. Składa się z 11 cyfr w formacie XX-XXXXXXXX-X, gdzie pierwsze dwie cyfry wskazują typ podmiotu, środkowe osiem cyfr to numer identyfikacyjny, a ostatnia cyfra to cyfra kontrolna.
Ważny CUIT musi:
Nasze narzędzie walidatora CUIT może natychmiast sprawdzić, czy CUIT spełnia te kryteria.
Chociaż podobne w formacie, CUIT i CUIL służą różnym celom:
Oba mają ten sam format i algorytm weryfikacji, ale są używane w różnych kontekstach.
Nie. CUIT-y generowane przez to narzędzie są matematycznie poprawne, ale nie są zarejestrowane w oficjalnej bazie danych AFIP. Powinny być używane tylko do celów testowych, rozwojowych lub edukacyjnych. Używanie fikcyjnych CUIT-ów w oficjalnych dokumentach lub transakcjach może stanowić oszustwo.
AFIP przypisał ten sam kod typu (30) kilku typom podmiotów, w tym firmom, fundacjom i podmiotom rządowym. Jest to część oficjalnego systemu klasyfikacji i nie wpływa na ważność CUIT. Konkretne typy podmiotów określane są przez dodatkowe informacje rejestracyjne w systemach AFIP.
CUIT-y są stałymi identyfikatorami, które zazwyczaj nie zmieniają się przez całe życie osoby lub podmiotu. Jednak w niektórych specyficznych przypadkach, takich jak zmiany statusu prawnego lub zmiana płci, może zostać przypisany nowy CUIT.
Tak, ale nie przez nasze narzędzie. AFIP oferuje oficjalną usługę o nazwie "Constancia de Inscripción" na swojej stronie internetowej, gdzie można zweryfikować, czy CUIT jest oficjalnie zarejestrowany i aktywny. Nasze narzędzie tylko waliduje matematyczną poprawność CUIT.
Powszechne błędy obejmują:
Nasz walidator pomaga zidentyfikować te problemy, sprawdzając zarówno format, jak i matematyczną ważność.
Nasze narzędzie pozwala na wybór różnych typów podmiotów przed wygenerowaniem CUIT-u. Wystarczy wybrać odpowiedni typ podmiotu z rozwijanej listy i kliknąć "Generuj CUIT". Narzędzie automatycznie użyje odpowiedniego kodu typu dla twojego wyboru.
Nie, nasze narzędzie nie nakłada żadnych ograniczeń na liczbę CUIT-ów, które możesz generować lub walidować. Jest zaprojektowane dla wygody w testowych i edukacyjnych scenariuszach, w których możesz potrzebować wielu ważnych CUIT-ów.
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).
Narzędzie Generator i Walidator CUIT Argentyny oferuje proste, efektywne rozwiązanie do pracy z argentyńskimi kodami identyfikacji podatkowej w środowiskach testowych i rozwojowych. Zrozumienie struktury, formatu i algorytmu weryfikacji CUIT-ów pozwala użytkownikom zapewnić integralność danych i zgodność z argentyńskimi standardami identyfikacji podatkowej.
Niezależnie od tego, czy rozwijasz oprogramowanie, które współpracuje z argentyńskimi systemami finansowymi, testujesz rutyny walidacji danych, czy po prostu uczysz się o międzynarodowych systemach identyfikacji podatkowej, nasze narzędzie oferuje funkcjonalność, której potrzebujesz, bez zbędnej złożoności.
Spróbuj teraz wygenerować CUIT lub zweryfikować istniejący, aby na własne oczy doświadczyć prostoty i skuteczności naszego narzędzia.
Odkryj więcej narzędzi, które mogą być przydatne dla Twojego przepływu pracy