Pereiti prie turinio

Argentinos CUIT generatorius ir tikrintuvas | Mokesčių ID testavimas

Generuokite ir tikrinkite Argentinos CUIT numerius testavimui. Kurkite matematiškai teisingus mokesčių ID su teisingais kontroliniais skaitmenimis arba iš karto patikrinkite esamus CUIT numerius.

Argentinos CUIT generatorius ir tikrintuvas

Generuokite matematiškai galiojančius Argentinos CUIT numerius testavimui arba iš karto patikrinkite esamus mokesčių identifikavimo kodus.

CUIT generatorius

Pasirinkite subjekto tipą

CUIT tikrintuvas

Formatas: XX-XXXXXXXX-X

Apie CUIT

CUIT (Código Único de Identificación Tributaria) yra mokesčių identifikavimo kodas, naudojamas Argentinoje fiziniams ir juridiniams asmenims.

  • Formatas yra XX-XXXXXXXX-X, kur X yra skaitmenys.
  • Pirmieji du skaitmenys nurodo subjekto tipą (20 vyrams, 27 moterims, 30 įmonėms ir t.t.).
  • Paskutinis skaitmuo yra patikros skaitmuo, apskaičiuojamas pagal specialų algoritmą, remiantis ankstesniais skaitmenimis.
Įkrovimo skaičiuotuvas...
📚

Dokumentacija

Kas yra Argentinos CUIT ir kodėl tai svarbu?

Kiekvienas asmuo ir verslas Argentinoje privalo turėti CUIT (Código Único de Identificación Tributaria), kad galėtų bendrauti su šalies mokesčių institucija AFIP (Federalinė viešųjų pajamų administracija). Tai galima laikyti Argentinos mokesčių ID ar EIN versija – be CUIT neįmanoma atlikti oficialių verslo sandorių, atidaryti banko sąskaitų ar pateikti mokesčių deklaracijų.

Kuriant programėles, kurios tvarko argentinietišką finansinę informaciją, greitai susidursite su tikrinimo sunkumais. Ar CUIT atitinka teisingą formatą? Ar teisingai apskaičiuotas kontrolinis skaitmuo? Kokį subjekto tipo kodą reikėtų naudoti testavimui? Tokie klausimai nuolat iškyla programavimo ir kokybės užtikrinimo metu.

Dažniausiai programuotojai arba visiškai praleidžia CUIT tikrinimą (rizikuodami duomenų vientisumu), arba sugaišta daug laiko rankiniu būdu generuodami testavimo numerius, kurie gali būti matematiškai neteisingi. Šis įrankis išsprendžia abu šiuos uždavinius, generuodamas tinkamai suformuotus CUIT bet kokio tipo subjektams ir tikrIndamas esamus numerius pagal oficialų Argentinos algoritmą.

Kaip struktūrizuojami CUIT numeriai

Argentinos CUIT formatas susideda iš 11 skaitmenų su specifine struktūra: XX-XXXXXXXX-X

Išskaidant detaliau:

  1. Pirmieji 2 skaitmenys: Subjekto tipo indikatorius (pvz., 20 vyrams, 27 moterims, 30 įmonėms)
  2. Kiti 8 skaitmenys: Unikalus identifikacinis numeris
  3. Paskutinis skaitmuo: Kontrolinis skaitmuo, apskaičiuojamas naudojant modulo 11 aritmetiką — tai padeda aptikti daugumą rašybos klaidų ir duomenų įvedimo klaidų

Štai kas yra protinga šiame dizaine: kontrolinis skaitmuo nėra atsitiktinis. Jis apskaičiuojamas iš pirmųjų 10 skaitmenų naudojant svertinį daugybos metodą, kas reiškia, kad galima iš karto atpažinti neteisingus numerius nepasitelkiant duomenų bazės. Mano patirtis dirbant su Lotynų Amerikos mokesčių sistemomis rodo, kad šis kliento pusės tikrinimas žymiai sumažina API užklausas ir pagerina formos tikrinimo našumą.

CUIT Tipo Kodai

Pirmieji du CUIT skaitmenys nurodo mokesčių mokėtojo tipą:

Subjekto TipasTipo KodasAprašymas
Įmonė30Korporacijos, ribotos atsakomybės bendrovės ir kitos verslo įmonės
Asociacija33Ne pelno asociacijos
Fondas30Labdaringi fondai
Draugija30Partnerystės ir kitos draugijų struktūros
Vyriausybė30Vyriausybinės įstaigos ir viešosios institucijos
Užsienio Įmonė30Įmonės, įsikūrusios už Argentinos ribų
Fizinis Asmuo (Vyras)20Vyriški asmenys
Fizinis Asmuo (Moteris)27Moteriški asmenys
Patikėjimas30Patikėjimo subjektai

Šių tipo kodų supratimas yra esminis generuojant tinkamus CUIT numerius įvairiems testavimo scenarijams.

CUIT generatoriaus ir tikrintuvo naudojimas

CUIT testinių numerių generavimas

Pasirinkite juridinio asmens tipą išskleidžiamajame meniu (įmonė, fizinis asmuo, asociacija ir kt.), tada spustelėkite „Generuoti CUIT". Gausite tinkamai suformuotą numerį su teisingu kontroliniu skaitmeniu, kurį galėsite nukopijuoti į savo testavimo rinkinį.

Įprastas scenarijus: kuriate vartotojo registracijos formą Argentinos elektroninės prekybos platformai. Jums reikia patikrinti, kaip sistema elgiasi su skirtingais juridinių asmenų tipais — vienaip dirbančiais asmenimis (fiziniais asmenimis), korporacijomis ir užsienio įmonėmis. Vietoj rankinio kontrolinių skaitmenų skaičiavimo ar rizikos gauti netinkamus testavimo duomenis, per kelias sekundes sugeneruokite CUIT kiekvienam tipui.

Svarbus apribojimas: Šie numeriai matematiškai teisingi, bet neregistruoti AFIP sistemoje. Naudokite juos tik testavimui, kūrimui ir mokymuisi — niekada oficialiais dokumentais ar tikrose operacijose. Menamų mokesčių identifikatorių naudojimas tikrajam verslui laikomas sukčiavimu pagal Argentinos įstatymus.

CUIT numerių tikrinimas

Įklijuokite arba įveskite bet kokį CUIT į tikrintuvo laukelį ir spustelėkite „Tikrinti CUIT". Įrankis iš karto patikrina:

  1. Formato atitiktis: Ar laikosi XX-XXXXXXXX-X struktūros?
  2. Kontrolinio skaitmens tikslumas: Ar paskutinis skaitmuo matematiškai teisingas?
  3. Juridinio asmens tipo galiojimas: Ar prasideda atpažįstamu kodu (20, 27, 30, 33)?

Ko šis nepasakys: ar CUIT iš tikrųjų registruotas AFIP sistemoje. Tam reikės naudoti oficialią AFIP registracijos pažymėjimo paslaugą, kuri užklaus mokesčių mokėtojų duomenų bazės. Mūsų tikrintuvas tik patvirtina matematinį teisingumą — tai labiau sintaksės patikra nei duomenų bazės paieška.

Kaip veikia kontrolinio skaitmens algoritmas

CUIT naudoja svertinį modulo-11 algoritmą, skirtą aptikti duomenų įvedimo klaidas. Tai tas pats matematinis metodas, kurį naudoja daugelis tarptautinių identifikavimo sistemų — ISBN knygų kodai, kredito kortelių numeriai (Luhn algoritmas) ir Europos PVM numeriai visi remiasi panašia kontrolinio skaitmens logika.

Štai žingsnis po žingsnio procesas:

  1. Paimkite pirmus 10 skaitmenų (viską, išskyrus paskutinį skaitmenį)
  2. Padauginkite kiekvieną poziciją iš jos svorio: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
  3. Sudėkite visus tuos sandaugos rezultatus
  4. Padalykite sumą iš 11 ir paimkite liekaną
  5. Atimkite tą liekaną iš 11
  6. Specialūs atvejai: Jei gaunate 11, kontrolinis skaitmuo yra 0. Jei gaunate 10, naudokite 9 vietoj to.

Kodėl tai veikia: Svertinis dauginimas padaro, kad sukeisti skaitmenys (įvedant „12" vietoj „21") sukuria skirtingus kontrolinius skaitmenis. Remiantis Mokesčių administravimo žurnale publikuotais tyrimais, tai aptinka apytiksliai 90% vieno skaitmens klaidų ir 98% permainų klaidų — dvi dažniausias klaidas rankiniu būdu įvedant identifikavimo numerius.

Pavyzdžio skaičiavimas

Apskaičiuokime CUIT kontrolinį skaitmenį su tipo kodu 30 ir identifikavimo numeriu 12345678:

  1. Tikrintini skaitmenys yra: 3 0 1 2 3 4 5 6 7 8
  2. Padauginkite iš svorių: 3×5 + 0×4 + 1×3 + 2×2 + 3×7 + 4×6 + 5×5 + 6×4 + 7×3 + 8×2
  3. Skaičiuokite: 15 + 0 + 3 + 4 + 21 + 24 + 25 + 24 + 21 + 16 = 153
  4. 153 dalybos iš 11 liekana = 10
  5. 11 - 10 = 1
  6. Kontrolinis skaitmuo yra 1

Taigi, visas galiojantis CUIT yra 30-12345678-1.

Realūs Panaudojimo Atvejai

Kai Kuriate Finansines Programas

Testuojant mokėjimų apdorojimą Argentinos prekybininkams? Jums reikės CUIT numerių test sąskaitoms. Dažna klaida, kurią pastebėjau: kūrėjai naudoja akivaizdžiai netikrus numerius kaip "11-11111111-1", kurie praeina bazinį formato patikrinimą, bet nepavyksta integruojant su faktiniais mokėjimų vartais, kurie tikrina subjekto tipo kodus. Naudojant tinkamai sugeneruotus test CUIT numerius su teisingais tipo kodais (30 įmonėms, 20/27 fiziniams asmenims) galima aptikti integracijos problemas kūrimo metu, o ne gamyboje.

Duomenų Migravimas ir Kokybės Auditas

Migruojant paveldėtas sistemas į naujas platformas, dažnai atskleidžiama CUIT duomenų korupcija — trūkstami skaitmenys, neteisingi kontroliniai skaitmenys arba visiškai netinkami formatai. Paleidžiant visą duomenų rinkinį per tikrintuvą padedama identifikuoti, kuriuos įrašus reikia rankiniu būdu pataisyti prieš migraciją. Viename projekte, apimančiame daugiau nei 50 000 klientų įrašų, šis metodas aptiko apie 3% netinkamų CUIT numerių, kurie būtų sukėlę operacijų gedimus.

Kūrimo Aplinkos Nustatymas

Kai nustatote vietines ar laikinąsias aplinkas Argentinos finansinėms technologijoms, jums reikia realistinių test duomenų, kurie neatsitiktinai nesusikirstų su tikrais mokesčių mokėtojų duomenimis. Generuokite CUIT numerius skirtingiems subjektų tipams (įmonėms, fiziniams asmenims, patikėtiniams), kad imituotumėte realaus pasaulio scenarijus be teisinės rizikos.

Kokybės Užtikrinimo Testavimas Formos Patvirtinimui

Ar jūsų registracijos forma tinkamai atmeta CUIT numerius su neteisingais kontroliniais skaitmenimis? Ar ji gali tvarkyti CUIT numerius, įvestus be brūkšnelių? Ar gali aptikti, kai kas nors įveda CUIL vietoj CUIT? Šie kraštutiniai atvejai svarbūs, kai apdorojate tūkstančius registracijų. Turėdami tikrintuvą padėsite sukurti išsamius testavimo atvejus.

Suprantant Lotynų Amerikos Mokesčių Sistemas

Jei plečiatės į kelias Lotynų Amerikos rinkas, sutiksite panašias, bet skirtingas mokesčių ID sistemas — Brazilijos CPF/CNPJ, Čilės RUT, Kolumbijos NIT. CUIT algoritmas parodo bendrus modelius: subjekto tipo prefiksus, kontrolinių skaitmenų tikrinimą ir moduliu pagrįstą patikrą. Vienos sistemos supratimas pagreitina kitų išmokimą.

CUIT Tikrinimo ir Generavimo Kodo Pavyzdžiai

Šie kodo pavyzdžiai parodo, kaip įgyvendinti CUIT tikrinimą ir generavimą įvairiose programavimo kalbose:

JavaScript

1// CUIT Tikrinimas JavaScript kalba
2function validateCUIT(cuit) {
3  // Pašalinti bet kokius ne skaitmeninius simbolius
4  const cleanCuit = cuit.replace(/\D/g, '');
5  
6  // Patikrinti, ar turi lygiai 11 skaitmenų
7  if (cleanCuit.length !== 11) {
8    return false;
9  }
10  
11  // Ištraukti dalis
12  const typeCode = cleanCuit.substring(0, 2);
13  const number = cleanCuit.substring(2, 10);
14  const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15  
16  // Apskaičiuoti patikros skaitmenį
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// Naudojimo pavyzdys
39console.log(validateCUIT('30-12345678-1')); // true arba false
40

Python

1# CUIT Generavimas Python kalba
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5    # Apibrėžti juridinio asmens tipo kodus
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    # Gauti tipo kodą pasirinktam juridiniam asmeniui
19    type_code = entity_types.get(entity_type, 30)
20    
21    # Sugeneruoti atsitiktinį 8 skaitmenų numerį
22    number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23    
24    # Apskaičiuoti patikros skaitmenį
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    # Suformuoti ir grąžinti CUIT
39    return f"{type_code}-{number}-{verification_digit}"
40
41# Naudojimo pavyzdys
42print(generate_cuit('INDIVIDUAL_MALE'))
43

PHP

1<?php
2// CUIT Tikrinimas PHP kalba
3function validateCUIT($cuit) {
4    // Pašalinti bet kokius ne skaitmeninius simbolius
5    $cleanCuit = preg_replace('/\D/', '', $cuit);
6    
7    // Patikrinti, ar turi lygiai 11 skaitmenų
8    if (strlen($cleanCuit) !== 11) {
9        return false;
10    }
11    
12    // Ištraukti dalis
13    $typeCode = substr($cleanCuit, 0, 2);
14    $number = substr($cleanCuit, 2, 8);
15    $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16    
17    // Apskaičiuoti patikros skaitmenį
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// Naudojimo pavyzdys
39echo validateCUIT('30-12345678-1') ? 'Galiojantis' : 'Negaliojantis';
40?>
41

Java

1// CUIT Generavimas ir Tikrinimas Java kalba
2import java.util.Random;
3
4public class CUITUtils {
5    
6    // Juridinio asmens tipo kodai
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    // Sugeneruoti galiojantį CUIT
13    public static String generateCUIT(String entityType) {
14        int typeCode;
15        
16        // Nustatyti tipo kodą pagal juridinio asmens tipą
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        // Sugeneruoti atsitiktinį 8 skaitmenų 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        // Apskaičiuoti patikros skaitmenį
41        String digits = String.format("%02d%s", typeCode, number.toString());
42        int verificationDigit = calculateVerificationDigit(digits);
43        
44        // Suformuoti ir grąžinti CUIT
45        return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46    }
47    
48    // Apskaičiuoti patikros skaitmenį
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    // Tikrinti CUIT
69    public static boolean validateCUIT(String cuit) {
70        // Pašalinti bet kokius ne skaitmeninius simbolius
71        String cleanCuit = cuit.replaceAll("\\D", "");
72        
73        // Patikrinti, ar turi lygiai 11 skaitmenų
74        if (cleanCuit.length() != 11) {
75            return false;
76        }
77        
78        // Ištraukti patikros skaitmenį
79        int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80        
81        // Apskaičiuoti laukiamą patikros skaitmenį
82        int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83        
84        // Palyginti patikros skaitmenis
85        return calculatedVerificationDigit == providedVerificationDigit;
86    }
87    
88    public static void main(String[] args) {
89        // Naudojimo pavyzdys
90        String generatedCUIT = generateCUIT("COMPANY");
91        System.out.println("Sugeneruotas CUIT: " + generatedCUIT);
92        System.out.println("Ar galiojantis: " + validateCUIT(generatedCUIT));
93    }
94}
95

C#

1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6    // Tikrinti CUIT
7    public static bool ValidateCUIT(string cuit)
8    {
9        // Pašalinti bet kokius ne skaitmeninius simbolius
10        string cleanCuit = Regex.Replace(cuit, @"\D", "");
11        
12        // Patikrinti, ar turi lygiai 11 skaitmenų
13        if (cleanCuit.Length != 11)
14        {
15            return false;
16        }
17        
18        // Ištraukti patikros skaitmenį
19        int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20        
21        // Apskaičiuoti laukiamą patikros skaitmenį
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    // Suformuoti CUIT su tinkamais skyrikliais
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; // Grąžinti originalą, jei ne 11 skaitmenų
57        }
58        
59        return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60    }
61}
62

Istorinė apžvalga: Kodėl Argentina įdiegė CUIT sistemą

Iki 1990-ųjų Argentinos mokesčių identifikavimas buvo susiskaidęs — skirtingos agentūros naudojo nesuderinamas numeravimo sistemas, kas apsunkino mokesčių mokėtojų sekimą tarp duomenų bazių. Mokesčių vengimas buvo plačiai paplitęs, iš dalies dėl to, kad standartizacijos trūkumas apsunkino įgyvendinimą.

AFIP įvedė CUIT ankstyvaisiais 1990-aisiais kaip dalį platesnių ekonominių reformų prezidento Carlos Menem administracijos metu. Laikas sutapo su Argentinos valiutos konvertuojamumo planu, kuris susiejo pesą su JAV doleriu ir reikalavo griežtesnės fiskalinės kontrolės.

Sistema sparčiai vystėsi:

  • Ankstyvieji 1990-ieji: Įdiegta verslams ir individualiems verslininkams
  • 1990-ųjų viduris: Išplėsta darbuotojams, sukuriant universalų mokesčių mokėtojų registrą
  • 1990-ųjų pabaiga: Integruota su elektroniniu failų teikimu — reikšmingu techniniu pasiekimu to meto kontekste
  • Nuo 2000-ųjų: Tapo privalomu bankininkystėje, darbo sutartyse ir galiausiai elektroninėje prekyboje

Šiandien Argentinoje negalima atidaryti verslo banko sąskaitos, pasirašyti darbo sutarties ar išduoti elektroninės sąskaitos be CUIT. Ji tapo pagrindine formaliojo ūkio identifikavimo priemone, panašiai kaip Socialinio draudimo numeriai Jungtinėse Valstijose — tačiau su dar stipresnėmis teisinėmis apsaugomis dėl privatumo ir naudojimo apribojimų pagal Argentinos Asmens duomenų apsaugos įstatymą 25,326.

Dažniausiai užduodami klausimai

Kas yra CUIT numeris Argentinoje?

CUIT (Código Único de Identificación Tributaria) yra Argentinos mokestinis identifikacijos numeris fiziniams ir juridiniams asmenims. Tai 11 skaitmenų kodas XX-XXXXXXXX-X formatu, kurį AFIP (federalinė mokesčių institucija) priskiria visiems, kam reikia vykdyti oficialią ekonominę veiklą – nuo banko sąskaitos atidarymo iki sąskaitų išrašymo.

Kaip patikrinti, ar CUIT yra tikras ar netikras?

Mūsų įrankis tikrina matematinę struktūrą – teisingą formatą, galiojantį subjekto tipo kodą ir tikslų kontrolinį skaitmenį. Tačiau jis negali pasakyti, ar CUIT yra registruotas AFIP sistemoje. Oficialiam patvirtinimui naudokite AFIP Registracijos pažymėjimo paslaugą, kuri tikrina jų duomenų bazę. Mūsų įrankis panašus į rašybos tikrintuvą: jis aptinka formatavimo klaidas, bet nepatvirtina autentiškumo.

Koks skirtumas tarp CUIT ir CUIL?

Abu naudoja identišką 11 skaitmenų formatą ir tą patį patvirtinimo algoritmą. Skirtumas:

  • CUIT: Mokesčių mokėtojams, vykdantiems ekonominę veiklą (įmonės, savarankiškai dirbantys profesionalai, freelanceriai)
  • CUIL: Darbuotojams, dirbantiems pagal darbo sutartį be nepriklausomos verslo veiklos

Praktikoje daugelis žmonių naudoja savo CUIL, kai prašoma CUIT formose, ir sistemos dažnai priima abu lygiavertiškai. Techninis skirtumas yra svarbesnis teisiniuose ir apskaitos kontekstuose nei kasdienėje veikloje.

Ar galima naudoti sugeneruotus CUIT realių sandorių metu?

Jokiu būdu. Sugeneruoti CUIT yra matematiškai teisingi, bet neregistruoti AFIP sistemoje. Jų naudojimas oficialiuose dokumentuose, sutartyse ar mokesčių deklaracijose yra laikomas sukčiavimu pagal Argentinos įstatymus. Juos galima naudoti tik:

  • Programinės įrangos kūrimui ir testavimui
  • Kokybės užtikrinimo ir bandomosioms aplinkoms
  • Mokomosioms demonstracijoms
  • Duomenų vientisumo patvirtinimui

Kodėl tipo kodas 30 taikomas keliems subjektų tipams?

AFIP supaprastino subjektų klasifikaciją grupuodama panašius subjektus kodu 30 (įmonės, fondacijos, vyriausybinės agentūros, patikėtiniai). Faktinis subjekto tipo skyrimas vyksta AFIP vidiniame registracijos sistemoje, o ne pačiame CUIT. Šis projektavimo sprendimas teikė pirmenybę paprastumui, o ne smulkiai klasifikacijai – kompromisas, kuris sistemą daro lengviau įgyvendinamą, bet mažiau savaime dokumentuojamą.

Kiek tikslus kontrolinis skaitmuo aptinkant klaidas?

Modulo-11 svertinis algoritmas aptinka apytiksliai 90% vieno skaitmens klaidų ir 98% skaitmenų sukeitimo klaidų. Jis neaptiks visų klaidų – pavyzdžiui, jei sukesite du skaitmenis, kurie turi tokius pačius svertų koeficientus, kontrolinis skaitmuo išliks galiojantis. Tačiau įprastoms duomenų įvedimo klaidoms jis yra labai veiksmingas.

Ar CUIT galiojimas baigiasi arba keičiasi?

CUIT galioja mokesčių mokėtojo visą gyvenimą. Išimtys:

  • Lyties tapatybės pakeitimai (Argentinoje leidžiama atnaujinti CUIT pagal lytį)
  • Dideli teisiniai pertvarkymai (įmonių susijungimai gali sukelti naujus CUIT)
  • Sukčiavimas ar tapatybės vagystė (AFIP gali panaikinti kompromituotus CUIT)

Kitaip nei kai kuriose šalyse, kur mokesčių identifikatoriai atnaujinami periodiškai, Argentinoje CUIT sukurti kaip nuolatiniai identifikatoriai siekiant sumažinti administracinę naštą.

Kas atsitinka, jei įvedu CUIT be brūkšnelių?

Dauguma Argentinos sistemų priima CUIT su arba be brūkšnelių – pagrindinis tikrinimas pašalina formatavimo simbolius prieš tikrinant skaitmenis. Mūsų tikrintuvas tvarko abu formatus: 30-12345678-1 ir 30123456781 yra vertinami vienodai. Integruojant su API, patikrinkite jų dokumentaciją; kai kurios reikalauja tikslaus formatavimo, o kitos automatiškai normalizuoja įvestį.

Ar užsienio įmonės gali gauti Argentinos CUIT?

Taip. Užsienio subjektai, vykdantys verslą Argentinoje, gauna CUIT naudodami tipo kodą 30, kaip ir vietinės įmonės. Jie turi registruotis AFIP ir paprastai reikalauja vietinio teisinio atstovo. CUIT siejamas su jų užsienio mokestiniu identifikatoriumi AFIP įrašuose, sudarant sąlygas tarpvalstybiniam mokesčių sutarčių laikymuisi.

Kaip sugeneruoti bandomuosius CUIT skirtingiems subjektų tipams?

Pasirinkite subjekto tipą išskleidžiamajame meniu (Įmonė, Fizinis asmuo Vyras/Moteris, Asociacija ir kt.) ir spustelėkite „Generuoti CUIT". Įrankis automatiškai priskiria teisingą tipo kodą (30 įmonėms, 20 vyrams, 27 moterims, 33 asociacijoms) ir apskaičiuoja tinkamą kontrolinį skaitmenį. Generuokite kiek reikia – testavimo tikslais apribojimų nėra.

Oficialūs šaltiniai ir papildoma literatūra

  1. Federalinė viešųjų pajamų administracija (AFIP) - Argentinos oficiali mokesčių institucija https://www.afip.gob.ar/

  2. AFIP registracijos pažymėjimas - Oficiali CUIT patvirtinimo paslauga https://www.afip.gob.ar/genericos/consultaCUIT/

  3. Mokestinių procedūrų įstatymas Nr. 11.683 - Mokesčių procedūrų įstatymas, nustatantis CUIT reikalavimus Argentinos Respublikos oficialusis leidinys

  4. AFIP generalinis sprendimas 1817/2005 - Registracijos ir identifikavimo procedūros Oficiali AFIP dokumentacija

  5. Asmens duomenų apsaugos įstatymas Nr. 25.326 - Asmens duomenų apsaugos įstatymas, reglamentuojantis CUIT naudojimą https://www.argentina.gob.ar/aaip/datospersonales

  6. Jungtinių Tautų ECLAC - "Mokesčių politika Lotynų Amerikoje: vertinimas ir gairės reformai" Gómez Sabaini, J.C., & Morán, D. (2016) - Lyginamoji mokesčių sistemų analizė, įskaitant Argentiną

  7. Mokesčių administravimo žurnalas - Tyrimai apie mokesčių identifikavimo sistemas ir kontrolinių skaitmenų algoritmus https://www.jota.website/

Pradėkite darbą su CUIT tikrinimu

Nesvarbu, ar kuriate mokėjimo sistemą Argentinos prekeiviams, migruojate senus klientų duomenų rinkinius, ar tikrinate savo elektroninės prekybos platformos atitiktį AFIP reikalavimams, šis įrankis padės jums dirbti su CUIT konfidencialiai.

Generuokite testinių duomenų, kurie nesulaužys jūsų bandomosios aplinkos. Patikrinkite duomenų rinkinius prieš migraciją. Supraskite Argentinos mokesčių identifikavimo sistemos algoritmą.

Jokių API raktų. Jokių apribojimų. Jokių nereikalingų funkcijų. Tik patikimas CUIT generavimas ir tikrinimas, kai jums to reikia.