Generer gyldige argentinske CUIT-numre (skatteidentifikationskoder) og valider eksisterende med dette enkle værktøj designet til testsituationer. Ingen komplekse funktioner, bare ligetil CUIT-generering og -validering.
Et simpelt værktøj til at generere og validere argentinske skatteidentifikationskoder (CUIT) til testformål.
Format: XX-XXXXXXXX-X
CUIT (Código Único de Identificación Tributaria) er skatteidentifikationskoden, der bruges i Argentina for enkeltpersoner og juridiske enheder.
CUIT (Código Único de Identificación Tributaria) er Argentinas Unikke Skatteidentifikationskode, en kritisk identifikator for alle skatteydere i det argentinske skattesystem. Denne essentielle numeriske kode fungerer som den primære identifikator for enkeltpersoner og juridiske enheder, når de interagerer med AFIP (Federal Administration of Public Revenue) og udfører forretningsoperationer i hele Argentina. Vores Argentina CUIT Generator og Validator værktøj tilbyder en simpel, effektiv løsning til at generere matematisk gyldige CUIT'er til testformål og validere eksisterende CUIT-numre.
Uanset om du er udvikler, der tester applikationer, der behandler argentinske skatteoplysninger, en QA-specialist, der verificerer dataintegritet, eller en forretningsanalytiker, der forbereder testdatasæt, strømline dette værktøj processen med at arbejde med CUIT-numre uden kompleksiteten ved API-integrationer eller unødvendige funktioner.
Den argentinske CUIT følger et specifikt format bestående af 11 cifre arrangeret som:
1XX-XXXXXXXX-X
2
Dette standardiserede format kan opdeles i tre distinkte komponenter:
De første to cifre af en CUIT angiver typen af skatteyder:
Enhedstype | Typekode | Beskrivelse |
---|---|---|
Firma | 30 | Selskaber, LLC'er og andre forretningsenheder |
Forening | 33 | Non-profit foreninger |
Fond | 30 | Velgørende fonde |
Samfund | 30 | Partnerskaber og andre samfundsstrukturer |
Offentlig | 30 | Offentlige enheder og institutioner |
Udenlandsk Firma | 30 | Virksomheder baseret uden for Argentina |
Individ (Mand) | 20 | Mandlige individer |
Individ (Kvinde) | 27 | Kvindelige individer |
Trust | 30 | Trust-enheder |
At forstå disse typekoder er essentielt for at generere passende CUIT'er til forskellige testscenarier.
Vores værktøj tilbyder to primære funktioner: generering af gyldige CUIT'er og validering af eksisterende. Her er hvordan man bruger hver funktion effektivt:
Generatoren skaber tilfældige, men matematisk gyldige CUIT'er, der følger den officielle algoritme brugt af AFIP. Disse CUIT'er er perfekte til at teste systemer, der kræver gyldige CUIT-formater, selvom de ikke er registreret i officielle databaser.
Validatoren tjekker både formatet og den matematiske gyldighed af CUIT'en ved at verificere, at kontrolcifferet matcher den beregnede værdi baseret på de foregående cifre.
Verifikationscifferet (det sidste ciffer) af en CUIT beregnes ved hjælp af en specifik algoritme designet til at opdage almindelige fejl i dataindtastning. At forstå denne algoritme hjælper med at forklare, hvordan vores værktøj validerer CUIT'er:
Lad os beregne verifikationscifferet for en CUIT med typekode 30 og identifikationsnummer 12345678:
Derfor er den komplette gyldige CUIT 30-12345678-1.
Værktøjet Argentina CUIT Generator og Validator tjener flere praktiske formål på tværs af forskellige professionelle kontekster:
Følgende kodeeksempler demonstrerer, hvordan man implementerer CUIT-validering og -generering i forskellige programmeringssprog:
1// CUIT Validering i JavaScript
2function validateCUIT(cuit) {
3 // Fjern alle ikke-cifre tegn
4 const cleanCuit = cuit.replace(/\D/g, '');
5
6 // Tjek om det har præcist 11 cifre
7 if (cleanCuit.length !== 11) {
8 return false;
9 }
10
11 // Uddrag dele
12 const typeCode = cleanCuit.substring(0, 2);
13 const number = cleanCuit.substring(2, 10);
14 const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15
16 // Beregn verifikationsciffer
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// Eksempel brug
39console.log(validateCUIT('30-12345678-1')); // true eller false
40
1# CUIT Generering i Python
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5 # Definer enhedstype koder
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 # Få typekode for den valgte enhedstype
19 type_code = entity_types.get(entity_type, 30)
20
21 # Generer tilfældigt 8-cifret nummer
22 number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23
24 # Beregn verifikationsciffer
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 # Formater og returner CUIT
39 return f"{type_code}-{number}-{verification_digit}"
40
41# Eksempel brug
42print(generate_cuit('INDIVIDUAL_MALE'))
43
1<?php
2// CUIT Validering i PHP
3function validateCUIT($cuit) {
4 // Fjern alle ikke-cifre tegn
5 $cleanCuit = preg_replace('/\D/', '', $cuit);
6
7 // Tjek om det har præcist 11 cifre
8 if (strlen($cleanCuit) !== 11) {
9 return false;
10 }
11
12 // Uddrag dele
13 $typeCode = substr($cleanCuit, 0, 2);
14 $number = substr($cleanCuit, 2, 8);
15 $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16
17 // Beregn verifikationsciffer
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// Eksempel brug
39echo validateCUIT('30-12345678-1') ? 'Gyldig' : 'Ugyldig';
40?>
41
1// CUIT Generering og Validering i Java
2import java.util.Random;
3
4public class CUITUtils {
5
6 // Enhedstype koder
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 // Generer en gyldig CUIT
13 public static String generateCUIT(String entityType) {
14 int typeCode;
15
16 // Bestem typekode baseret på enhedstype
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 // Generer tilfældigt 8-cifret nummer
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 // Beregn verifikationsciffer
41 String digits = String.format("%02d%s", typeCode, number.toString());
42 int verificationDigit = calculateVerificationDigit(digits);
43
44 // Formater og returner CUIT
45 return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46 }
47
48 // Beregn verifikationsciffer
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 // Valider en CUIT
69 public static boolean validateCUIT(String cuit) {
70 // Fjern alle ikke-cifre tegn
71 String cleanCuit = cuit.replaceAll("\\D", "");
72
73 // Tjek om det har præcist 11 cifre
74 if (cleanCuit.length() != 11) {
75 return false;
76 }
77
78 // Uddrag verifikationsciffer
79 int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80
81 // Beregn forventet verifikationsciffer
82 int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83
84 // Sammenlign verifikationsciffer
85 return calculatedVerificationDigit == providedVerificationDigit;
86 }
87
88 public static void main(String[] args) {
89 // Eksempel brug
90 String generatedCUIT = generateCUIT("COMPANY");
91 System.out.println("Genereret CUIT: " + generatedCUIT);
92 System.out.println("Er gyldig: " + validateCUIT(generatedCUIT));
93 }
94}
95
1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6 // Valider en CUIT
7 public static bool ValidateCUIT(string cuit)
8 {
9 // Fjern alle ikke-cifre tegn
10 string cleanCuit = Regex.Replace(cuit, @"\D", "");
11
12 // Tjek om det har præcist 11 cifre
13 if (cleanCuit.Length != 11)
14 {
15 return false;
16 }
17
18 // Uddrag verifikationsciffer
19 int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20
21 // Beregn forventet verifikationsciffer
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 // Formater en CUIT med de rigtige separatorer
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; // Returner originalen hvis ikke 11 cifre
57 }
58
59 return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60 }
61}
62
CUIT-systemet blev etableret i Argentina i begyndelsen af 1990'erne som en del af en bredere skattereforminitiativer, der havde til formål at modernisere landets finansielle infrastruktur og reducere skatteunddragelse. Den Føderale Administration for Offentlige Indtægter (AFIP), Argentinas skatteautoritet, implementerede CUIT som et standardiseret identifikationssystem for alle skatteydere.
Før indførelsen af CUIT brugte Argentina forskellige inkonsistente identifikationssystemer for forskellige typer skatteydere, hvilket gjorde skatteadministrationen ineffektiv og skabte muligheder for manglende overholdelse. CUIT'en samlede disse systemer til en enkelt, verificerbar identifikator, der kunne bruges på tværs af alle skatterelaterede aktiviteter.
Nøglemilepæle i udviklingen af CUIT-systemet inkluderer:
CUIT'en er blevet et essentielt element i Argentinas økonomiske og finansielle systemer, der tjener ikke kun til skatteformål, men også til bankvirksomhed, beskæftigelse, social sikring og forretningstransaktioner.
Et CUIT (Código Único de Identificación Tributaria) er Argentinas Unikke Skatteidentifikationskode, der tildeles enkeltpersoner og juridiske enheder til skatteformål. Det består af 11 cifre i formatet XX-XXXXXXXX-X, hvor de første to cifre angiver typen af enhed, de midterste otte cifre er et identifikationsnummer, og det sidste ciffer er et verifikationsciffer.
En gyldig CUIT skal:
Vores CUIT-validatorværktøj kan straks tjekke, om en CUIT opfylder disse kriterier.
Selvom de er ens i format, tjener CUIT og CUIL forskellige formål:
Begge følger det samme format og verifikationsalgoritme, men de bruges i forskellige sammenhænge.
Nej. De CUIT'er, der genereres af dette værktøj, er matematisk gyldige, men er ikke registreret i AFIP's officielle database. De bør kun bruges til test, udvikling eller uddannelsesmæssige formål. At bruge fiktive CUIT'er til officielle dokumenter eller transaktioner kan udgøre svindel.
AFIP har tildelt den samme typekode (30) til flere enhedstyper, herunder virksomheder, fonde og offentlige enheder. Dette er en del af det officielle klassifikationssystem og påvirker ikke gyldigheden af CUIT'en. Den specifikke enhedstype bestemmes af yderligere registreringsoplysninger i AFIP's systemer.
CUIT'er er permanente identifikatorer, der generelt ikke ændres i løbet af en enkeltpersons eller enheds liv. Dog kan der i nogle specifikke tilfælde som ændringer i juridisk status eller kønsændring tildeles en ny CUIT.
Ja, men ikke gennem vores værktøj. AFIP tilbyder en officiel service kaldet "Constancia de Inscripción" på deres hjemmeside, hvor du kan verificere, om en CUIT er officielt registreret og aktiv. Vores værktøj validerer kun den matematiske korrekthed af en CUIT.
Almindelige fejl inkluderer:
Vores validator hjælper med at identificere disse problemer ved at kontrollere både format og matematisk gyldighed.
Vores værktøj giver dig mulighed for at vælge mellem forskellige enhedstyper, før du genererer en CUIT. Vælg blot den passende enhedstype fra dropdown-menuen, og klik på "Generer CUIT." Værktøjet vil automatisk bruge den korrekte typekode til dit valg.
Nej, vores værktøj pålægger ikke nogen grænser for antallet af CUIT'er, du kan generere eller validere. Det er designet til bekvemmelighed i test- og uddannelsesscenarier, hvor du måske har brug for flere gyldige CUIT'er.
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).
Værktøjet Argentina CUIT Generator og Validator tilbyder en enkel, effektiv løsning til at arbejde med argentinske skatteidentifikationskoder i test- og udviklingsmiljøer. Ved at forstå strukturen, formatet og verifikationsalgoritmen for CUIT'er kan brugerne sikre dataintegritet og overholdelse af argentinske skatteidentifikationsstandarder.
Uanset om du udvikler software, der interagerer med argentinske finansielle systemer, tester datavalideringsrutiner, eller blot lærer om internationale skatteidentifikationssystemer, tilbyder vores værktøj den funktionalitet, du har brug for uden unødvendig kompleksitet.
Prøv at generere en CUIT nu eller valider en eksisterende for at opleve enkelheden og effektiviteten af vores værktøj på egen hånd.
Opdag flere værktøjer, der måske kan være nyttige for din arbejdsgang.