🛠️

Whiz Tools

Build • Create • Innovate

Argentinsk CUIT/CUIL Generator og Validator Værktøj

Generer gyldige argentinske CUIT/CUIL-numre til test eller valider eksisterende. Simpelt værktøj til udviklere, der arbejder med argentinske skatte- og arbejdsidentifikationsnumre.

CUIT/CUIL Generator

Indtast et 8-cifret DNI-nummer eller brug den tilfældige generator

Genereret CUIT/CUIL

📚

Dokumentation

Argentinsk CUIT/CUIL Generator og Validator

Introduktion

Den argentinske CUIT (Clave Única de Identificación Tributaria) og CUIL (Clave Única de Identificación Laboral) er unikke identifikationsnumre, der anvendes i Argentina til skatte- og beskæftigelsesformål. Disse 11-cifrede koder er essentielle for enkeltpersoner og virksomheder til at operere lovligt inden for det argentinske økonomiske system. Vores CUIT/CUIL Generator og Validator-værktøj giver en simpel, effektiv måde at generere gyldige CUIT/CUIL-numre til testformål og validere eksisterende numre for at sikre, at de overholder det officielle format og verificeringsalgoritme.

Uanset om du er udvikler, der tester applikationer, der håndterer argentinske skatte-ID'er, en QA-specialist, der verificerer systemfunktionalitet, eller blot har brug for at forstå, hvordan disse identifikationsnumre fungerer, tilbyder dette værktøj en ligetil løsning uden unødvendige kompleksiteter. Værktøjet har to primære funktioner: en generator, der opretter gyldige CUIT/CUIL-numre tilfældigt eller baseret på specifikke parametre, og en validator, der verificerer, om et givet CUIT/CUIL-nummer følger det korrekte format og beregningsregler.

CUIT/CUIL Struktur og Beregning

Forståelse af Formatet

Et gyldigt CUIT/CUIL-nummer består af 11 cifre, der typisk vises i formatet XX-XXXXXXXX-X:

  1. Typekode (de første 2 cifre): Angiver enhedstypen

    • 20, 23, 24: Mandlige enkeltpersoner (CUIL)
    • 27: Kvindelige enkeltpersoner (CUIL)
    • 30, 33, 34: Virksomheder og organisationer (CUIT)
  2. DNI-nummer (de midterste 8 cifre): For enkeltpersoner er dette deres nationale identitetsdokumentnummer (DNI), der er polstret med foranstillede nuller, hvis det er nødvendigt for at nå 8 cifre. For virksomheder er dette et unikt tildelt nummer.

  3. Verifikationsciffer (det sidste ciffer): Et kontrolciffer, der beregnes ved hjælp af en specifik algoritme for at validere hele nummeret.

Beregning af Verifikationsciffer

Verifikationscifferet beregnes ved hjælp af følgende algoritme:

  1. Tag de første 10 cifre af CUIT/CUIL (typekode + DNI)
  2. Multiplicer hvert ciffer med en tilsvarende vægt fra denne sekvens: 5, 4, 3, 2, 7, 6, 5, 4, 3, 2
  3. Summer alle de resulterende produkter
  4. Beregn 11 minus resten af summen divideret med 11
  5. Hvis resultatet er 11, er verifikationscifferet 0
  6. Hvis resultatet er 10, er verifikationscifferet 9
  7. Ellers er resultatet verifikationscifferet

Matematisk kan dette udtrykkes som:

VD=11((i=110di×wi)mod11)VD = 11 - ((\sum_{i=1}^{10} d_i \times w_i) \bmod 11)

Hvor:

  • VDVD er verifikationscifferet
  • did_i er det ii-te ciffer af de første 10 cifre
  • wiw_i er den tilsvarende vægt fra sekvensen [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
  • Specialtilfælde: hvis VD=11VD = 11VD=0VD = 0, hvis VD=10VD = 10VD=9VD = 9

Trin-for-trin Guide

Brug af Generatoren

  1. Vælg fanen "Generator" øverst i værktøjets interface.

  2. Vælg en Typekode fra dropdown-menuen:

    • 20: Mand (CUIL)
    • 23: Virksomhed (CUIT)
    • 24: Midlertidig virksomhed (CUIT)
    • 27: Kvinde (CUIL)
    • 30: Selskab (CUIT)
    • 33: Civilforening (CUIT)
    • 34: Fond (CUIT)
  3. Indtast et DNI-nummer (valgfrit):

    • Indtast et 8-cifret DNI-nummer i det angivne felt
    • Hvis det efterlades tomt, vil værktøjet bruge et tilfældigt genereret DNI
    • Hvis du indtaster færre end 8 cifre, vil systemet polstre med foranstillede nuller
  4. Generer tilfældigt DNI (valgfrit):

    • Klik på knappen "Tilfældig" for at generere et tilfældigt 8-cifret DNI-nummer
  5. Se det genererede CUIT/CUIL:

    • Værktøjet viser automatisk et gyldigt CUIT/CUIL baseret på dine indtastninger
    • Formatet vil være XX-XXXXXXXX-X med det korrekte verifikationsciffer
  6. Kopier resultatet:

    • Klik på kopierikonet for at kopiere det genererede CUIT/CUIL til din udklipsholder
    • En bekræftelsesmeddelelse vises, når det er kopieret med succes

Brug af Validatoren

  1. Vælg fanen "Validator" øverst i værktøjets interface.

  2. Indtast CUIT/CUIL for validering:

    • Indtast CUIT/CUIL i formatet XX-XXXXXXXX-X
    • Værktøjet formaterer automatisk din indtastning med bindestreger, mens du skriver
    • Du kan også indtaste nummeret uden bindestreger (XXXXXXXXXXX)
  3. Klik på "Valider" knappen:

    • Værktøjet vil kontrollere formatet, typekoden og verifikationscifferet
  4. Se valideringsresultatet:

    • For gyldige CUIT/CUIL-numre vises en grøn succesmeddelelse
    • For ugyldige numre vises en rød fejlmeddelelse, der forklarer problemet:
      • Ugyldigt format (skal være XX-XXXXXXXX-X)
      • Ugyldig typekode (skal være en af: 20, 23, 24, 27, 30, 33, 34)
      • Ugyldigt verifikationsciffer
  5. Yderligere information:

    • For gyldige numre viser værktøjet en opdeling af komponenterne:
      • Typekode og dens betydning
      • DNI-nummer
      • Verifikationsciffer

Anvendelsessager

Udvikling og Testning

  1. Softwareudvikling: Generer gyldige CUIT/CUIL-numre til at teste applikationer, der håndterer argentinske skatteidentifikationer, såsom:

    • E-handelsplatforme
    • Regnskabssoftware
    • HR-administrationssystemer
    • Offentlige serviceportaler
    • Bankapplikationer
  2. Databasebefolkning: Opret realistiske testdata til systemer, der gemmer argentinske brugeroplysninger, hvilket sikrer, at databasebegrænsninger og valideringsregler fungerer korrekt.

  3. Test af formularvalidering: Test inputvalidering for webformularer, der indsamler CUIT/CUIL-oplysninger, og verificer, at de rigtige fejlmeddelelser vises for ugyldige indtastninger.

  4. API-testning: Generer gyldige payloads til API-endepunkter, der kræver CUIT/CUIL-numre, og sikr, at dine integrationstests bruger gyldige data.

  5. QA-automatisering: Inkorporer CUIT/CUIL-generation i automatiserede testscript for at skabe dynamiske testtilfælde i stedet for at bruge statiske testdata.

Uddannelsesmæssige Formål

  1. Læring af valideringsalgoritmer: Forstå, hvordan kontrolcifferalgoritmer fungerer i praksis ved at se CUIT/CUIL-verifikationsprocessen i aktion.

  2. Undervisning i datavalidering: Brug som et uddannelsesmæssigt eksempel, når du underviser nye udviklere i formularvalideringsteknikker.

  3. Forståelse af argentinske forretningskrav: Lær om identifikationssystemet, der anvendes i Argentina til international forretningsudvikling.

Alternativer

Mens vores værktøj giver en ligetil måde at generere og validere CUIT/CUIL-numre på, er der alternative tilgange, du måske overvejer:

  1. Officiel regeringsvalidering: For produktionsmiljøer skal du altid validere CUIT/CUIL-numre mod den officielle AFIP (Administración Federal de Ingresos Públicos) database, når det er muligt.

  2. Biblioteker og pakker: Flere programmeringssprog har biblioteker, der specifikt er designet til argentinsk skatte-ID-validering:

    • JavaScript: validar-cuit npm-pakke
    • PHP: afip-php bibliotek
    • Python: py-cuit pakke
  3. Manuel beregning: Til uddannelsesmæssige formål kan du beregne verifikationscifferet manuelt ved hjælp af algoritmen, der er beskrevet tidligere.

  4. Omfattende forretningsvalideringstjenester: For virksomhedsapplikationer kan du overveje at bruge omfattende valideringstjenester, der ikke kun kontrollerer formatet, men også verificerer eksistensen og status for den enhed, der er knyttet til CUIT/CUIL.

Historie om CUIT/CUIL-systemet

CUIT/CUIL-identifikationssystemet i Argentina har udviklet sig betydeligt siden sin begyndelse:

Oprindelse og Implementering

CUIT (Clave Única de Identificación Tributaria) blev først introduceret i Argentina i 1970'erne som en del af bestræbelserne på at modernisere skatteopkrævningssystemet. Den Føderale Administration for Offentlige Indtægter (AFIP) implementerede denne unikke identifikator for mere effektivt at spore skatteydere og reducere skatteunddragelse.

CUIL (Clave Única de Identificación Laboral) blev senere introduceret for specifikt at identificere arbejdstagere i socialsikringssystemet, hvilket skabte en adskillelse mellem skatteidentifikation og arbejdsidentifikation, mens formatet forblev ensartet.

Evolution og Digitalisering

I 1990'erne, da Argentina gennemgik betydelige økonomiske reformer, blev CUIT/CUIL-systemet stadig vigtigere for at spore økonomisk aktivitet. Systemet blev yderligere digitaliseret, og online verificeringssystemer blev implementeret.

I begyndelsen af 2000'erne så integrationen af CUIT/CUIL-systemet med forskellige digitale offentlige tjenester, hvilket gjorde det til en essentiel komponent i Argentinas e-regeringsinitiativer. Denne periode så også standardiseringen af den verificeringsalgoritme og format, der stadig er i brug i dag.

Seneste Udviklinger

I de seneste år har AFIP forbedret sikkerheds- og verificeringsprocesserne for CUIT/CUIL-numre, implementeret mere sofistikerede valideringssystemer og integreret dem med andre offentlige databaser. Systemet spiller nu en afgørende rolle i Argentinas bestræbelser på at bekæmpe skatteunddragelse og formalisere økonomien.

I dag anvendes CUIT/CUIL ikke kun til skatte- og beskæftigelsesformål, men også til en bred vifte af aktiviteter, herunder bank, ejendomshandler, forsyningstjenester og onlinekøb, hvilket gør det til en essentiel identifikator for både enkeltpersoner og virksomheder, der opererer i Argentina.

Kodeeksempler

Python

1def calculate_verification_digit(type_code, dni):
2    # Konverter til streng og sørg for, at DNI er 8 cifre med foranstillede nuller
3    type_code_str = str(type_code)
4    dni_str = str(dni).zfill(8)
5    
6    # Kombiner typekode og DNI
7    digits = type_code_str + dni_str
8    
9    # Vægte for hver position
10    weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
11    
12    # Beregn summen af produkter
13    sum_products = sum(int(digits[i]) * weights[i] for i in range(10))
14    
15    # Beregn verifikationsciffer
16    verification_digit = 11 - (sum_products % 11)
17    
18    # Specialtilfælde
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    # Gyldige typekoder
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"Ugyldig typekode. Skal være en af: {valid_type_codes}")
34    
35    # Generer tilfældigt DNI, hvis ikke angivet
36    if dni is None:
37        dni = random.randint(10000000, 99999999)
38    
39    # Beregn verifikationsciffer
40    verification_digit = calculate_verification_digit(type_code, dni)
41    
42    # Format CUIT/CUIL
43    return f"{type_code}-{str(dni).zfill(8)}-{verification_digit}"
44
45def validate_cuit_cuil(cuit_cuil):
46    # Fjern bindestreger, hvis til stede
47    cuit_cuil_clean = cuit_cuil.replace("-", "")
48    
49    # Tjek grundlæggende format
50    if not cuit_cuil_clean.isdigit() or len(cuit_cuil_clean) != 11:
51        return False, "Ugyldigt format"
52    
53    # Uddrag dele
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    # Valider typekode
59    valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
60    if type_code not in valid_type_codes:
61        return False, "Ugyldig typekode"
62    
63    # Beregn og sammenlign verifikationsciffer
64    calculated_digit = calculate_verification_digit(type_code, dni)
65    if calculated_digit != verification_digit:
66        return False, "Ugyldigt verifikationsciffer"
67    
68    return True, "Gyldig CUIT/CUIL"
69
70# Eksempel på brug
71print(generate_cuit_cuil(20, 12345678))  # Generer for specifik DNI
72print(generate_cuit_cuil(27))  # Generer med tilfældigt DNI
73print(validate_cuit_cuil("20-12345678-9"))  # Valider en CUIT/CUIL
74

JavaScript

1function calculateVerificationDigit(typeCode, dni) {
2  // Konverter til streng og sørg for, at DNI er 8 cifre med foranstillede nuller
3  const typeCodeStr = typeCode.toString();
4  const dniStr = dni.toString().padStart(8, '0');
5  
6  // Kombiner typekode og DNI
7  const digits = typeCodeStr + dniStr;
8  
9  // Vægte for hver position
10  const weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
11  
12  // Beregn summen af produkter
13  let sumProducts = 0;
14  for (let i = 0; i < 10; i++) {
15    sumProducts += parseInt(digits[i]) * weights[i];
16  }
17  
18  // Beregn verifikationsciffer
19  let verificationDigit = 11 - (sumProducts % 11);
20  
21  // Specialtilfælde
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  // Gyldige typekoder
33  const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
34  
35  if (!validTypeCodes.includes(typeCode)) {
36    throw new Error(`Ugyldig typekode. Skal være en af: ${validTypeCodes.join(', ')}`);
37  }
38  
39  // Generer tilfældigt DNI, hvis ikke angivet
40  if (dni === undefined) {
41    dni = Math.floor(Math.random() * 90000000) + 10000000;
42  }
43  
44  // Beregn verifikationsciffer
45  const verificationDigit = calculateVerificationDigit(typeCode, dni);
46  
47  // Format CUIT/CUIL
48  return `${typeCode}-${dni.toString().padStart(8, '0')}-${verificationDigit}`;
49}
50
51function validateCuitCuil(cuitCuil) {
52  // Fjern bindestreger, hvis til stede
53  const cuitCuilClean = cuitCuil.replace(/-/g, '');
54  
55  // Tjek grundlæggende format
56  if (!/^\d{11}$/.test(cuitCuilClean)) {
57    return { isValid: false, errorMessage: 'Ugyldigt format' };
58  }
59  
60  // Uddrag dele
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  // Valider typekode
66  const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
67  if (!validTypeCodes.includes(typeCode)) {
68    return { isValid: false, errorMessage: 'Ugyldig typekode' };
69  }
70  
71  // Beregn og sammenlign verifikationsciffer
72  const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73  if (calculatedDigit !== verificationDigit) {
74    return { isValid: false, errorMessage: 'Ugyldigt verifikationsciffer' };
75  }
76  
77  return { isValid: true };
78}
79
80// Eksempel på brug
81console.log(generateCuitCuil(20, 12345678)); // Generer for specifik DNI
82console.log(generateCuitCuil(27)); // Generer med tilfældigt DNI
83console.log(validateCuitCuil("20-12345678-9")); // Valider en 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        // Konverter til streng og sørg for, at DNI er 8 cifre med foranstillede nuller
11        String typeCodeStr = String.valueOf(typeCode);
12        String dniStr = String.format("%08d", dni);
13        
14        // Kombiner typekode og DNI
15        String digits = typeCodeStr + dniStr;
16        
17        // Beregn summen af produkter
18        int sumProducts = 0;
19        for (int i = 0; i < 10; i++) {
20            sumProducts += Character.getNumericValue(digits.charAt(i)) * WEIGHTS[i];
21        }
22        
23        // Beregn verifikationsciffer
24        int verificationDigit = 11 - (sumProducts % 11);
25        
26        // Specialtilfælde
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("Ugyldig typekode. Skal være en af: " + VALID_TYPE_CODES);
39        }
40        
41        // Generer tilfældigt DNI, hvis ikke angivet
42        if (dni == null) {
43            Random random = new Random();
44            dni = 10000000 + random.nextInt(90000000);
45        }
46        
47        // Beregn verifikationsciffer
48        int verificationDigit = calculateVerificationDigit(typeCode, dni);
49        
50        // Format CUIT/CUIL
51        return String.format("%d-%08d-%d", typeCode, dni, verificationDigit);
52    }
53    
54    public static ValidationResult validateCuitCuil(String cuitCuil) {
55        // Fjern bindestreger, hvis til stede
56        String cuitCuilClean = cuitCuil.replace("-", "");
57        
58        // Tjek grundlæggende format
59        if (!cuitCuilClean.matches("\\d{11}")) {
60            return new ValidationResult(false, "Ugyldigt format");
61        }
62        
63        // Uddrag dele
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        // Valider typekode
69        if (!VALID_TYPE_CODES.contains(typeCode)) {
70            return new ValidationResult(false, "Ugyldig typekode");
71        }
72        
73        // Beregn og sammenlign verifikationsciffer
74        int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75        if (calculatedDigit != verificationDigit) {
76            return new ValidationResult(false, "Ugyldigt verifikationsciffer");
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        // Eksempel på brug
102        System.out.println(generateCuitCuil(20, 12345678)); // Generer for specifik DNI
103        System.out.println(generateCuitCuil(27, null)); // Generer med tilfældigt DNI
104        System.out.println(validateCuitCuil("20-12345678-9").isValid()); // Valider en CUIT/CUIL
105    }
106}
107

PHP

1<?php
2
3function calculateVerificationDigit($typeCode, $dni) {
4    // Konverter til streng og sørg for, at DNI er 8 cifre med foranstillede nuller
5    $typeCodeStr = (string)$typeCode;
6    $dniStr = str_pad((string)$dni, 8, '0', STR_PAD_LEFT);
7    
8    // Kombiner typekode og DNI
9    $digits = $typeCodeStr . $dniStr;
10    
11    // Vægte for hver position
12    $weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
13    
14    // Beregn summen af produkter
15    $sumProducts = 0;
16    for ($i = 0; $i < 10; $i++) {
17        $sumProducts += (int)$digits[$i] * $weights[$i];
18    }
19    
20    // Beregn verifikationsciffer
21    $verificationDigit = 11 - ($sumProducts % 11);
22    
23    // Specialtilfælde
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    // Gyldige typekoder
35    $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
36    
37    if (!in_array($typeCode, $validTypeCodes)) {
38        throw new Exception("Ugyldig typekode. Skal være en af: " . implode(', ', $validTypeCodes));
39    }
40    
41    // Generer tilfældigt DNI, hvis ikke angivet
42    if ($dni === null) {
43        $dni = rand(10000000, 99999999);
44    }
45    
46    // Beregn verifikationsciffer
47    $verificationDigit = calculateVerificationDigit($typeCode, $dni);
48    
49    // Format CUIT/CUIL
50    return sprintf("%d-%08d-%d", $typeCode, $dni, $verificationDigit);
51}
52
53function validateCuitCuil($cuitCuil) {
54    // Fjern bindestreger, hvis til stede
55    $cuitCuilClean = str_replace('-', '', $cuitCuil);
56    
57    // Tjek grundlæggende format
58    if (!preg_match('/^\d{11}$/', $cuitCuilClean)) {
59        return ['isValid' => false, 'errorMessage' => 'Ugyldigt format'];
60    }
61    
62    // Uddrag dele
63    $typeCode = (int)substr($cuitCuilClean, 0, 2);
64    $dni = (int)substr($cuitCuilClean, 2, 8);
65    $verificationDigit = (int)substr($cuitCuilClean, 10, 1);
66    
67    // Valider typekode
68    $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
69    if (!in_array($typeCode, $validTypeCodes)) {
70        return ['isValid' => false, 'errorMessage' => 'Ugyldig typekode'];
71    }
72    
73    // Beregn og sammenlign verifikationsciffer
74    $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75    if ($calculatedDigit !== $verificationDigit) {
76        return ['isValid' => false, 'errorMessage' => 'Ugyldigt verifikationsciffer'];
77    }
78    
79    return ['isValid' => true];
80}
81
82// Eksempel på brug
83echo generateCuitCuil(20, 12345678) . "\n"; // Generer for specifik DNI
84echo generateCuitCuil(27) . "\n"; // Generer med tilfældigt DNI
85var_dump(validateCuitCuil("20-12345678-9")); // Valider en CUIT/CUIL
86?>
87

Ofte Stillede Spørgsmål

Hvad er forskellen mellem CUIT og CUIL?

CUIT (Clave Única de Identificación Tributaria) bruges til skatteidentifikation og tildeles både enkeltpersoner og juridiske enheder, der skal betale skat i Argentina. CUIL (Clave Única de Identificación Laboral) er specifikt for arbejdstagere og bruges til arbejds- og socialsikringsformål. Selvom de deler det samme format og beregningsalgoritme, tjener de forskellige administrative formål.

Hvilke typekoder bruges til enkeltpersoner, og hvilke til virksomheder?

For enkeltpersoner:

  • 20, 23, 24: Mandlige enkeltpersoner (CUIL)
  • 27: Kvindelige enkeltpersoner (CUIL)

For virksomheder og organisationer:

  • 30: Selskaber (CUIT)
  • 33: Civilforeninger (CUIT)
  • 34: Fonde (CUIT)

Hvordan beregnes verifikationscifferet?

Verifikationscifferet beregnes ved hjælp af en vægtet sumalgoritme. Hvert af de første 10 cifre multipliceres med en tilsvarende vægt (5, 4, 3, 2, 7, 6, 5, 4, 3, 2), og resultaterne summeres. Verifikationscifferet er 11 minus resten, når denne sum divideres med 11. Specialtilfælde: hvis resultatet er 11, er verifikationscifferet 0; hvis resultatet er 10, er verifikationscifferet 9.

Kan jeg bruge dette værktøj til at generere rigtige, officielle CUIT/CUIL-numre?

Nej, dette værktøj er designet til test- og uddannelsesformål. De genererede numre er matematisk gyldige i henhold til CUIT/CUIL-algoritmen, men de er ikke officielt registreret hos de argentinske skattemyndigheder (AFIP). For officiel CUIT/CUIL-registrering skal enkeltpersoner og virksomheder følge de rette juridiske procedurer gennem AFIP.

Hvorfor mislykkes min CUIT/CUIL-validering, selvom formatet ser korrekt ud?

Validering kan mislykkes af flere grunde:

  1. Typekoden er ikke en af de gyldige koder (20, 23, 24, 27, 30, 33, 34)
  2. Verifikationscifferet stemmer ikke overens med den beregnede værdi baseret på algoritmen
  3. Formatet er forkert (skal være XX-XXXXXXXX-X)
  4. Der er ikke-numeriske tegn i inputtet (bortset fra bindestreger)

Er bindestreger nødvendige i CUIT/CUIL-numre?

Mens CUIT/CUIL-numre almindeligvis skrives og vises med bindestreger (XX-XXXXXXXX-X), er bindestregerne ikke en del af det faktiske nummer til beregningsformål. Vores validator accepterer begge formater (med eller uden bindestreger) og vil korrekt validere begge formater.

Kan et CUIT/CUIL-nummer have færre end 8 cifre i DNI-delen?

Nej, DNI-delen skal altid være præcist 8 cifre. Hvis det faktiske DNI har færre cifre, skal det polstres med foranstillede nuller for at nå 8 cifre. For eksempel, hvis en persons DNI er 1234567, ville det i CUIT/CUIL blive repræsenteret som 01234567.

Hvordan kan jeg verificere, om et CUIT/CUIL er officielt registreret i Argentina?

For at verificere, om et CUIT/CUIL er officielt registreret og aktivt, bør du bruge den officielle AFIP (Administración Federal de Ingresos Públicos) hjemmeside eller tjenester. Vores værktøj verificerer kun den matematiske gyldighed af nummeret, ikke dets officielle registreringsstatus.

Kan jeg bruge dette værktøj i min kommercielle applikation?

Ja, du kan integrere algoritmen og logikken, der er demonstreret i dette værktøj, i dine kommercielle applikationer. CUIT/CUIL-valideringsalgoritmen er en offentlig standard. Dog anbefaler vi, at du implementerer ordentlig fejlhåndtering og overvejer yderligere validering mod officielle kilder, når det er nødvendigt.

Gemmer værktøjet nogen af de genererede eller validerede CUIT/CUIL-numre?

Nej, dette værktøj gemmer ikke nogen af de oplysninger, der indtastes eller genereres. Al behandling sker på klientsiden i din browser, og ingen data sendes til eller gemmes på vores servere. Dette sikrer privatlivets fred og sikkerheden for de oplysninger, du indtaster.

Referencer

  1. AFIP (Administración Federal de Ingresos Públicos). "CUIT/CUIL/CDI." Officiel hjemmeside. https://www.afip.gob.ar/

  2. Ministerio de Trabajo, Empleo y Seguridad Social. "CUIL - Clave Única de Identificación Laboral." https://www.argentina.gob.ar/trabajo

  3. ANSES (Administración Nacional de la Seguridad Social). "Obtener mi CUIL." https://www.anses.gob.ar/

  4. Boletín Oficial de la República Argentina. "Resolución General AFIP 2854/2010: Procedimiento. Clave Única de Identificación Tributaria (C.U.I.T.)."

  5. Código Fiscal de la República Argentina. "Identificación og Registrering af Bidragydere."


Klar til at generere eller validere argentinske CUIT/CUIL-numre? Prøv vores værktøj nu og forenkle din testproces!