🛠️

Whiz Tools

Build • Create • Innovate

अर्जेंटीना का CUIT/CUIL जनरेटर और वैलिडेटर टूल

परीक्षण के लिए मान्य अर्जेंटीना के CUIT/CUIL नंबर उत्पन्न करें या मौजूदा नंबरों को मान्य करें। अर्जेंटीना के कर और श्रम पहचान नंबरों के साथ काम करने वाले डेवलपर्स के लिए सरल उपकरण।

CUIT/CUIL जनरेटर

8 अंकों की DNI संख्या दर्ज करें या यादृच्छिक जनरेटर का उपयोग करें

उत्पन्न CUIT/CUIL

📚

दस्तावेज़ीकरण

अर्जेंटीना CUIT/CUIL जनरेटर और मान्यकर्ता

परिचय

अर्जेंटीना का CUIT (क्लावे यूनिका डे आइडेंटिफिकेशन ट्रिबुटारिया) और CUIL (क्लावे यूनिका डे आइडेंटिफिकेशन लेबरल) अद्वितीय पहचान संख्या हैं जो अर्जेंटीना में कर और रोजगार उद्देश्यों के लिए उपयोग की जाती हैं। ये 11 अंकों के कोड व्यक्तियों और व्यवसायों के लिए अर्जेंटीना के आर्थिक प्रणाली के भीतर कानूनी रूप से संचालित करने के लिए आवश्यक हैं। हमारा CUIT/CUIL जनरेटर और मान्यकर्ता उपकरण परीक्षण उद्देश्यों के लिए मान्य CUIT/CUIL नंबर उत्पन्न करने और मौजूदा नंबरों को मान्य करने का एक सरल, कुशल तरीका प्रदान करता है ताकि यह सुनिश्चित किया जा सके कि वे आधिकारिक प्रारूप और सत्यापन एल्गोरिदम के अनुसार हैं।

चाहे आप एक डेवलपर हों जो अर्जेंटीना के कर आईडी को संभालने वाले अनुप्रयोगों का परीक्षण कर रहे हों, एक QA विशेषज्ञ जो प्रणाली की कार्यक्षमता की जांच कर रहा हो, या बस यह समझना चाहते हों कि ये पहचान संख्या कैसे काम करती हैं, यह उपकरण बिना किसी अनावश्यक जटिलता के एक सीधा समाधान प्रदान करता है। इस उपकरण में दो प्रमुख कार्य हैं: एक जनरेटर जो यादृच्छिक रूप से या विशिष्ट पैरामीटर के आधार पर मान्य CUIT/CUIL नंबर उत्पन्न करता है, और एक मान्यकर्ता जो यह सत्यापित करता है कि दिया गया CUIT/CUIL नंबर सही प्रारूप और गणना नियमों का पालन करता है।

CUIT/CUIL संरचना और गणना

प्रारूप को समझना

एक मान्य CUIT/CUIL नंबर 11 अंकों का होता है जिसे सामान्यतः XX-XXXXXXXX-X प्रारूप में प्रदर्शित किया जाता है:

  1. प्रकार कोड (पहले 2 अंक): इकाई के प्रकार को इंगित करता है

    • 20, 23, 24: पुरुष व्यक्ति (CUIL)
    • 27: महिला व्यक्ति (CUIL)
    • 30, 33, 34: कंपनियाँ और संगठन (CUIT)
  2. DNI नंबर (बीच के 8 अंक): व्यक्तियों के लिए, यह उनका राष्ट्रीय पहचान दस्तावेज़ संख्या (DNI) है, जिसे आवश्यकतानुसार 8 अंकों तक पहुँचाने के लिए अग्रणी शून्य के साथ पैड किया जाता है। कंपनियों के लिए, यह एक अद्वितीय असाइन किया गया नंबर है।

  3. सत्यापन अंक (अंतिम अंक): एक चेक अंक जो एक विशिष्ट एल्गोरिदम का उपयोग करके गणना की जाती है ताकि पूरे नंबर को मान्य किया जा सके।

सत्यापन अंक की गणना

सत्यापन अंक निम्नलिखित एल्गोरिदम का उपयोग करके गणना की जाती है:

  1. CUIT/CUIL के पहले 10 अंकों को लें (प्रकार कोड + DNI)
  2. प्रत्येक अंक को इस अनुक्रम से संबंधित वजन के साथ गुणा करें: 5, 4, 3, 2, 7, 6, 5, 4, 3, 2
  3. सभी परिणामी उत्पादों को जोड़ें
  4. 11 में से उस योग का शेषांक निकालें
  5. यदि परिणाम 11 है, तो सत्यापन अंक 0 है
  6. यदि परिणाम 10 है, तो सत्यापन अंक 9 है
  7. अन्यथा, परिणाम सत्यापन अंक है

गणितीय रूप से, इसे इस प्रकार व्यक्त किया जा सकता है:

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

जहाँ:

  • VDVD सत्यापन अंक है
  • did_i पहले 10 अंकों का ii-वां अंक है
  • wiw_i अनुक्रम [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] से संबंधित वजन है
  • विशेष मामले: यदि VD=11VD = 11 तो VD=0VD = 0, यदि VD=10VD = 10 तो VD=9VD = 9

चरण-दर-चरण मार्गदर्शिका

जनरेटर का उपयोग करना

  1. उपकरण इंटरफ़ेस के शीर्ष पर "जनरेटर" टैब चुनें।

  2. ड्रॉपडाउन मेनू से एक प्रकार कोड चुनें:

    • 20: पुरुष (CUIL)
    • 23: व्यवसाय (CUIT)
    • 24: अस्थायी व्यवसाय (CUIT)
    • 27: महिला (CUIL)
    • 30: निगम (CUIT)
    • 33: नागरिक संघ (CUIT)
    • 34: फाउंडेशन (CUIT)
  3. DNI नंबर दर्ज करें (वैकल्पिक):

    • प्रदान किए गए क्षेत्र में 8-अंकों का DNI नंबर दर्ज करें
    • यदि खाली छोड़ दिया गया, तो उपकरण यादृच्छिक रूप से उत्पन्न DNI का उपयोग करेगा
    • यदि आप 8 अंकों से कम दर्ज करते हैं, तो प्रणाली अग्रणी शून्य के साथ पैड करेगी
  4. यादृच्छिक DNI उत्पन्न करें (वैकल्पिक):

    • "यादृच्छिक" बटन पर क्लिक करें ताकि एक यादृच्छिक 8-अंकों का DNI नंबर उत्पन्न हो सके
  5. उत्पन्न CUIT/CUIL देखें:

    • उपकरण स्वचालित रूप से आपके इनपुट के आधार पर एक मान्य CUIT/CUIL प्रदर्शित करता है
    • प्रारूप XX-XXXXXXXX-X होगा जिसमें सही सत्यापन अंक होगा
  6. परिणाम की कॉपी करें:

    • उत्पन्न CUIT/CUIL को अपने क्लिपबोर्ड पर कॉपी करने के लिए कॉपी आइकन पर क्लिक करें
    • सफलतापूर्वक कॉपी होने पर एक पुष्टि संदेश दिखाई देगा

मान्यकर्ता का उपयोग करना

  1. उपकरण इंटरफ़ेस के शीर्ष पर "मान्यकर्ता" टैब चुनें।

  2. मान्य करने के लिए CUIT/CUIL दर्ज करें:

    • CUIT/CUIL को XX-XXXXXXXX-X प्रारूप में दर्ज करें
    • उपकरण आपके इनपुट को टाइप करते समय स्वचालित रूप से हाइफ़न के साथ प्रारूपित करेगा
    • आप हाइफ़न के बिना भी नंबर दर्ज कर सकते हैं (XXXXXXXXXXX)
  3. "मान्य करें" बटन पर क्लिक करें:

    • उपकरण प्रारूप, प्रकार कोड, और सत्यापन अंक की जांच करेगा
  4. मान्यता परिणाम देखें:

    • मान्य CUIT/CUIL नंबरों के लिए, एक हरा सफलता संदेश दिखाई देगा
    • अमान्य नंबरों के लिए, एक लाल त्रुटि संदेश समस्या को समझाएगा:
      • अमान्य प्रारूप (XX-XXXXXXXX-X होना चाहिए)
      • अमान्य प्रकार कोड (20, 23, 24, 27, 30, 33, 34 में से एक होना चाहिए)
      • अमान्य सत्यापन अंक
  5. अतिरिक्त जानकारी:

    • मान्य नंबरों के लिए, उपकरण घटकों का एक ब्रेकडाउन प्रदर्शित करता है:
      • प्रकार कोड और इसका अर्थ
      • DNI नंबर
      • सत्यापन अंक

उपयोग के मामले

विकास और परीक्षण

  1. सॉफ़्टवेयर विकास: अर्जेंटीना के कर पहचान को संभालने वाले अनुप्रयोगों का परीक्षण करने के लिए मान्य CUIT/CUIL नंबर उत्पन्न करें, जैसे:

    • ई-कॉमर्स प्लेटफ़ॉर्म
    • लेखा सॉफ़्टवेयर
    • एचआर प्रबंधन प्रणाली
    • सरकारी सेवा पोर्टल
    • बैंकिंग अनुप्रयोग
  2. डेटाबेस जनरेशन: अर्जेंटीना के उपयोगकर्ता जानकारी को स्टोर करने वाले सिस्टम के लिए यथार्थवादी परीक्षण डेटा बनाएं, यह सुनिश्चित करते हुए कि डेटाबेस प्रतिबंध और मान्यता नियम सही ढंग से काम करते हैं।

  3. फॉर्म मान्यता परीक्षण: वेब फॉर्म के लिए इनपुट मान्यता का परीक्षण करें जो CUIT/CUIL जानकारी इकट्ठा करते हैं, यह सुनिश्चित करते हुए कि अमान्य प्रविष्टियों के लिए उचित त्रुटि संदेश दिखाई देते हैं।

  4. API परीक्षण: API एंडपॉइंट्स के लिए मान्य पेलोड उत्पन्न करें जो CUIT/CUIL नंबरों की आवश्यकता होती है, यह सुनिश्चित करते हुए कि आपकी एकीकरण परीक्षण मान्य डेटा का उपयोग करें।

  5. QA स्वचालन: स्वचालित परीक्षण स्क्रिप्ट में CUIT/CUIL जनरेशन को शामिल करें ताकि स्थिर परीक्षण डेटा का उपयोग करने के बजाय गतिशील परीक्षण मामलों का निर्माण किया जा सके।

शैक्षिक उद्देश्य

  1. सत्यापन एल्गोरिदम सीखना: वास्तविकता में चेक अंक एल्गोरिदम कैसे काम करते हैं, इसे समझने के लिए CUIT/CUIL सत्यापन प्रक्रिया को क्रियान्वित होते देखें।

  2. डेटा मान्यता सिखाना: नए डेवलपर्स को फॉर्म मान्यता तकनीकों सिखाने के लिए शैक्षिक उदाहरण के रूप में उपयोग करें।

  3. अर्जेंटीना के व्यवसाय आवश्यकताओं को समझना: अंतर्राष्ट्रीय व्यापार विकास के लिए अर्जेंटीना में उपयोग की जाने वाली पहचान प्रणाली के बारे में जानें।

विकल्प

हालांकि हमारा उपकरण CUIT/CUIL नंबरों को उत्पन्न और मान्य करने का एक सीधा तरीका प्रदान करता है, आप विचार करने के लिए वैकल्पिक दृष्टिकोण ले सकते हैं:

  1. आधिकारिक सरकारी मान्यता: उत्पादन वातावरण के लिए, हमेशा संभव हो तो CUIT/CUIL नंबरों को आधिकारिक AFIP (एडमिनिस्ट्रेशन फेडरल डे इनग्रेसोस पब्लिकोस) डेटाबेस के खिलाफ मान्य करें।

  2. लाइब्रेरी और पैकेज: कई प्रोग्रामिंग भाषाओं में विशेष रूप से अर्जेंटीना के कर आईडी मान्यता के लिए लाइब्रेरी हैं:

    • JavaScript: validar-cuit npm पैकेज
    • PHP: afip-php लाइब्रेरी
    • Python: py-cuit पैकेज
  3. हाथ से गणना: शैक्षिक उद्देश्यों के लिए, आप पहले बताए गए एल्गोरिदम का उपयोग करके सत्यापन अंक को हाथ से गणना कर सकते हैं।

  4. व्यापक व्यवसाय मान्यता सेवाएँ: उद्यम अनुप्रयोगों के लिए, ऐसे व्यापक मान्यता सेवाओं का उपयोग करने पर विचार करें जो केवल प्रारूप की जांच नहीं करती हैं, बल्कि CUIT/CUIL से जुड़े संस्थाओं की उपस्थिति और स्थिति की भी पुष्टि करती हैं।

CUIT/CUIL प्रणाली का इतिहास

अर्जेंटीना में CUIT/CUIL पहचान प्रणाली ने अपनी स्थापना के बाद से महत्वपूर्ण विकास किया है:

उत्पत्ति और कार्यान्वयन

CUIT (क्लावे यूनिका डे आइडेंटिफिकेशन ट्रिबुटारिया) को पहली बार 1970 के दशक में अर्जेंटीना में पेश किया गया था, कर संग्रह प्रणाली को आधुनिक बनाने के प्रयासों के तहत। संघीय राजस्व प्रशासन (AFIP) ने इस अद्वितीय पहचानकर्ता को करदाताओं को अधिक कुशलता से ट्रैक करने और कर चोरी को कम करने के लिए लागू किया।

CUIL (क्लावे यूनिका डे आइडेंटिफिकेशन लेबरल) को बाद में श्रमिकों को सामाजिक सुरक्षा प्रणाली में विशेष रूप से पहचानने के लिए पेश किया गया, कर पहचान और श्रम पहचान के बीच एक भेद बनाते हुए, जबकि एक सुसंगत प्रारूप बनाए रखा।

विकास और डिजिटलाइजेशन

1990 के दशक में, जैसे-जैसे अर्जेंटीना ने महत्वपूर्ण आर्थिक सुधार किए, CUIT/CUIL प्रणाली आर्थिक गतिविधियों को ट्रैक करने के लिए अधिक महत्वपूर्ण होती गई। प्रणाली को और अधिक डिजिटल किया गया, और ऑनलाइन सत्यापन प्रणाली लागू की गई।

2000 के दशक की शुरुआत में CUIT/CUIL प्रणाली को विभिन्न डिजिटल सरकारी सेवाओं के साथ एकीकृत किया गया, जिससे यह अर्जेंटीना की ई-सरकारी पहलों का एक आवश्यक घटक बन गया। इस अवधि में सत्यापन एल्गोरिदम और प्रारूप का मानकीकरण किया गया जो आज भी उपयोग में है।

हाल के विकास

हाल के वर्षों में, AFIP ने CUIT/CUIL नंबरों के लिए सुरक्षा और सत्यापन प्रक्रियाओं को बढ़ाया है, अधिक जटिल मान्यता प्रणालियों को लागू किया है और उन्हें अन्य सरकारी डेटाबेस के साथ एकीकृत किया है। अब यह प्रणाली अर्जेंटीना के कर चोरी से लड़ने और अर्थव्यवस्था को औपचारिक बनाने के प्रयासों में एक महत्वपूर्ण भूमिका निभाती है।

आज, CUIT/CUIL न केवल कर और रोजगार उद्देश्यों के लिए उपयोग किया जाता है, बल्कि बैंकिंग, संपत्ति लेनदेन, उपयोगिता सेवाएँ, और ऑनलाइन खरीदारी सहित कई गतिविधियों के लिए एक आवश्यक पहचानकर्ता बन गया है, जो अर्जेंटीना में व्यक्तियों और व्यवसायों दोनों के लिए आवश्यक है।

कोड उदाहरण

पायथन

1def calculate_verification_digit(type_code, dni):
2    # स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
3    type_code_str = str(type_code)
4    dni_str = str(dni).zfill(8)
5    
6    # प्रकार कोड और DNI को मिलाएं
7    digits = type_code_str + dni_str
8    
9    # प्रत्येक स्थिति के लिए वजन
10    weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
11    
12    # उत्पादों का योग निकालें
13    sum_products = sum(int(digits[i]) * weights[i] for i in range(10))
14    
15    # सत्यापन अंक की गणना करें
16    verification_digit = 11 - (sum_products % 11)
17    
18    # विशेष मामले
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    # मान्य प्रकार कोड
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"अमान्य प्रकार कोड। होना चाहिए: {valid_type_codes}")
34    
35    # यदि प्रदान नहीं किया गया तो यादृच्छिक DNI उत्पन्न करें
36    if dni is None:
37        dni = random.randint(10000000, 99999999)
38    
39    # सत्यापन अंक की गणना करें
40    verification_digit = calculate_verification_digit(type_code, dni)
41    
42    # CUIT/CUIL प्रारूपित करें
43    return f"{type_code}-{str(dni).zfill(8)}-{verification_digit}"
44
45def validate_cuit_cuil(cuit_cuil):
46    # हाइफ़न हटा दें यदि मौजूद हो
47    cuit_cuil_clean = cuit_cuil.replace("-", "")
48    
49    # मूल प्रारूप की जांच करें
50    if not cuit_cuil_clean.isdigit() or len(cuit_cuil_clean) != 11:
51        return False, "अमान्य प्रारूप"
52    
53    # भागों को निकालें
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    # प्रकार कोड की मान्यता करें
59    valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
60    if type_code not in valid_type_codes:
61        return False, "अमान्य प्रकार कोड"
62    
63    # सत्यापन अंक की गणना करें और तुलना करें
64    calculated_digit = calculate_verification_digit(type_code, dni)
65    if calculated_digit != verification_digit:
66        return False, "अमान्य सत्यापन अंक"
67    
68    return True, "मान्य CUIT/CUIL"
69
70# उदाहरण का उपयोग
71print(generate_cuit_cuil(20, 12345678))  # विशेष DNI के लिए उत्पन्न करें
72print(generate_cuit_cuil(27))  # यादृच्छिक DNI के साथ उत्पन्न करें
73print(validate_cuit_cuil("20-12345678-9"))  # एक CUIT/CUIL मान्य करें
74

जावास्क्रिप्ट

1function calculateVerificationDigit(typeCode, dni) {
2  // स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
3  const typeCodeStr = typeCode.toString();
4  const dniStr = dni.toString().padStart(8, '0');
5  
6  // प्रकार कोड और DNI को मिलाएं
7  const digits = typeCodeStr + dniStr;
8  
9  // प्रत्येक स्थिति के लिए वजन
10  const weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
11  
12  // उत्पादों का योग निकालें
13  let sumProducts = 0;
14  for (let i = 0; i < 10; i++) {
15    sumProducts += parseInt(digits[i]) * weights[i];
16  }
17  
18  // सत्यापन अंक की गणना करें
19  let verificationDigit = 11 - (sumProducts % 11);
20  
21  // विशेष मामले
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  // मान्य प्रकार कोड
33  const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
34  
35  if (!validTypeCodes.includes(typeCode)) {
36    throw new Error(`अमान्य प्रकार कोड। होना चाहिए: ${validTypeCodes.join(', ')}`);
37  }
38  
39  // यदि प्रदान नहीं किया गया तो यादृच्छिक DNI उत्पन्न करें
40  if (dni === undefined) {
41    dni = Math.floor(Math.random() * 90000000) + 10000000;
42  }
43  
44  // सत्यापन अंक की गणना करें
45  const verificationDigit = calculateVerificationDigit(typeCode, dni);
46  
47  // CUIT/CUIL प्रारूपित करें
48  return `${typeCode}-${dni.toString().padStart(8, '0')}-${verificationDigit}`;
49}
50
51function validateCuitCuil(cuitCuil) {
52  // हाइफ़न हटा दें यदि मौजूद हो
53  const cuitCuilClean = cuitCuil.replace(/-/g, '');
54  
55  // मूल प्रारूप की जांच करें
56  if (!/^\d{11}$/.test(cuitCuilClean)) {
57    return { isValid: false, errorMessage: 'अमान्य प्रारूप' };
58  }
59  
60  // भागों को निकालें
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  // प्रकार कोड की मान्यता करें
66  const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
67  if (!validTypeCodes.includes(typeCode)) {
68    return { isValid: false, errorMessage: 'अमान्य प्रकार कोड' };
69  }
70  
71  // सत्यापन अंक की गणना करें और तुलना करें
72  const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73  if (calculatedDigit !== verificationDigit) {
74    return { isValid: false, errorMessage: 'अमान्य सत्यापन अंक' };
75  }
76  
77  return { isValid: true };
78}
79
80// उदाहरण का उपयोग
81console.log(generateCuitCuil(20, 12345678)); // विशेष DNI के लिए उत्पन्न करें
82console.log(generateCuitCuil(27)); // यादृच्छिक DNI के साथ उत्पन्न करें
83console.log(validateCuitCuil("20-12345678-9")); // एक CUIT/CUIL मान्य करें
84

जावा

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        // स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
11        String typeCodeStr = String.valueOf(typeCode);
12        String dniStr = String.format("%08d", dni);
13        
14        // प्रकार कोड और DNI को मिलाएं
15        String digits = typeCodeStr + dniStr;
16        
17        // उत्पादों का योग निकालें
18        int sumProducts = 0;
19        for (int i = 0; i < 10; i++) {
20            sumProducts += Character.getNumericValue(digits.charAt(i)) * WEIGHTS[i];
21        }
22        
23        // सत्यापन अंक की गणना करें
24        int verificationDigit = 11 - (sumProducts % 11);
25        
26        // विशेष मामले
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("अमान्य प्रकार कोड। होना चाहिए: " + VALID_TYPE_CODES);
39        }
40        
41        // यदि प्रदान नहीं किया गया तो यादृच्छिक DNI उत्पन्न करें
42        if (dni == null) {
43            Random random = new Random();
44            dni = 10000000 + random.nextInt(90000000);
45        }
46        
47        // सत्यापन अंक की गणना करें
48        int verificationDigit = calculateVerificationDigit(typeCode, dni);
49        
50        // CUIT/CUIL प्रारूपित करें
51        return String.format("%d-%08d-%d", typeCode, dni, verificationDigit);
52    }
53    
54    public static ValidationResult validateCuitCuil(String cuitCuil) {
55        // हाइफ़न हटा दें यदि मौजूद हो
56        String cuitCuilClean = cuitCuil.replace("-", "");
57        
58        // मूल प्रारूप की जांच करें
59        if (!cuitCuilClean.matches("\\d{11}")) {
60            return new ValidationResult(false, "अमान्य प्रारूप");
61        }
62        
63        // भागों को निकालें
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        // प्रकार कोड की मान्यता करें
69        if (!VALID_TYPE_CODES.contains(typeCode)) {
70            return new ValidationResult(false, "अमान्य प्रकार कोड");
71        }
72        
73        // सत्यापन अंक की गणना करें और तुलना करें
74        int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75        if (calculatedDigit != verificationDigit) {
76            return new ValidationResult(false, "अमान्य सत्यापन अंक");
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        // उदाहरण का उपयोग
102        System.out.println(generateCuitCuil(20, 12345678)); // विशेष DNI के लिए उत्पन्न करें
103        System.out.println(generateCuitCuil(27, null)); // यादृच्छिक DNI के साथ उत्पन्न करें
104        System.out.println(validateCuitCuil("20-12345678-9").isValid()); // एक CUIT/CUIL मान्य करें
105    }
106}
107

PHP

1<?php
2
3function calculateVerificationDigit($typeCode, $dni) {
4    // स्ट्रिंग में परिवर्तित करें और सुनिश्चित करें कि DNI 8 अंकों के साथ अग्रणी शून्य के साथ है
5    $typeCodeStr = (string)$typeCode;
6    $dniStr = str_pad((string)$dni, 8, '0', STR_PAD_LEFT);
7    
8    // प्रकार कोड और DNI को मिलाएं
9    $digits = $typeCodeStr . $dniStr;
10    
11    // प्रत्येक स्थिति के लिए वजन
12    $weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
13    
14    // उत्पादों का योग निकालें
15    $sumProducts = 0;
16    for ($i = 0; $i < 10; $i++) {
17        $sumProducts += (int)$digits[$i] * $weights[$i];
18    }
19    
20    // सत्यापन अंक की गणना करें
21    $verificationDigit = 11 - ($sumProducts % 11);
22    
23    // विशेष मामले
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    // मान्य प्रकार कोड
35    $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
36    
37    if (!in_array($typeCode, $validTypeCodes)) {
38        throw new Exception("अमान्य प्रकार कोड। होना चाहिए: " . implode(', ', $validTypeCodes));
39    }
40    
41    // यदि प्रदान नहीं किया गया तो यादृच्छिक DNI उत्पन्न करें
42    if ($dni === null) {
43        $dni = rand(10000000, 99999999);
44    }
45    
46    // सत्यापन अंक की गणना करें
47    $verificationDigit = calculateVerificationDigit($typeCode, $dni);
48    
49    // CUIT/CUIL प्रारूपित करें
50    return sprintf("%d-%08d-%d", $typeCode, $dni, $verificationDigit);
51}
52
53function validateCuitCuil($cuitCuil) {
54    // हाइफ़न हटा दें यदि मौजूद हो
55    $cuitCuilClean = str_replace('-', '', $cuitCuil);
56    
57    // मूल प्रारूप की जांच करें
58    if (!preg_match('/^\d{11}$/', $cuitCuilClean)) {
59        return ['isValid' => false, 'errorMessage' => 'अमान्य प्रारूप'];
60    }
61    
62    // भागों को निकालें
63    $typeCode = (int)substr($cuitCuilClean, 0, 2);
64    $dni = (int)substr($cuitCuilClean, 2, 8);
65    $verificationDigit = (int)substr($cuitCuilClean, 10, 1);
66    
67    // प्रकार कोड की मान्यता करें
68    $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
69    if (!in_array($typeCode, $validTypeCodes)) {
70        return ['isValid' => false, 'errorMessage' => 'अमान्य प्रकार कोड'];
71    }
72    
73    // सत्यापन अंक की गणना करें और तुलना करें
74    $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75    if ($calculatedDigit !== $verificationDigit) {
76        return ['isValid' => false, 'errorMessage' => 'अमान्य सत्यापन अंक'];
77    }
78    
79    return ['isValid' => true];
80}
81
82// उदाहरण का उपयोग
83echo generateCuitCuil(20, 12345678) . "\n"; // विशेष DNI के लिए उत्पन्न करें
84echo generateCuitCuil(27) . "\n"; // यादृच्छिक DNI के साथ उत्पन्न करें
85var_dump(validateCuitCuil("20-12345678-9")); // एक CUIT/CUIL मान्य करें
86?>
87

अक्सर पूछे जाने वाले प्रश्न

CUIT और CUIL के बीच क्या अंतर है?

CUIT (क्लावे यूनिका डे आइडेंटिफिकेशन ट्रिबुटारिया) कर पहचान उद्देश्यों के लिए उपयोग किया जाता है और इसे उन व्यक्तियों और कानूनी संस्थाओं को सौंपा जाता है जिन्हें अर्जेंटीना में कर चुकाने की आवश्यकता होती है। CUIL (क्लावे यूनिका डे आइडेंटिफिकेशन लेबरल) विशेष रूप से श्रमिकों के लिए है और श्रम और सामाजिक सुरक्षा उद्देश्यों के लिए उपयोग किया जाता है। जबकि वे एक ही प्रारूप और गणना एल्गोरिदम साझा करते हैं, वे विभिन्न प्रशासनिक उद्देश्यों की सेवा करते हैं।

व्यक्तियों के लिए कौन से प्रकार कोड उपयोग किए जाते हैं और कंपनियों के लिए कौन से?

व्यक्तियों के लिए:

  • 20, 23, 24: पुरुष व्यक्ति (CUIL)
  • 27: महिला व्यक्ति (CUIL)

कंपनियों और संगठनों के लिए:

  • 30: निगम (CUIT)
  • 33: नागरिक संघ (CUIT)
  • 34: फाउंडेशन (CUIT)

सत्यापन अंक कैसे गणना की जाती है?

सत्यापन अंक एक भारित योग एल्गोरिदम का उपयोग करके गणना की जाती है। पहले 10 अंकों में से प्रत्येक को एक संबंधित वजन (5, 4, 3, 2, 7, 6, 5, 4, 3, 2) के साथ गुणा किया जाता है, और परिणामों को जोड़ा जाता है। सत्यापन अंक 11 में से उस योग का शेषांक निकालने के बाद होता है। विशेष मामले: यदि परिणाम 11 है, तो सत्यापन अंक 0 है; यदि परिणाम 10 है, तो सत्यापन अंक 9 है।

क्या मैं इस उपकरण का उपयोग करके वास्तविक, आधिकारिक CUIT/CUIL नंबर उत्पन्न कर सकता हूँ?

नहीं, यह उपकरण परीक्षण और शैक्षिक उद्देश्यों के लिए डिज़ाइन किया गया है। उत्पन्न संख्या CUIT/CUIL एल्गोरिदम के अनुसार गणितीय रूप से मान्य हैं, लेकिन ये अर्जेंटीना के कर प्राधिकरण (AFIP) के साथ आधिकारिक रूप से पंजीकृत नहीं हैं। आधिकारिक CUIT/CUIL पंजीकरण के लिए व्यक्तियों और कंपनियों को AFIP के माध्यम से उचित कानूनी प्रक्रियाओं का पालन करना चाहिए।

क्यों मेरा CUIT/CUIL मान्यता असफल होती है जबकि प्रारूप सही दिखाई देता है?

मान्यता कई कारणों से असफल हो सकती है:

  1. प्रकार कोड मान्य कोड (20, 23, 24, 27, 30, 33, 34) में से एक नहीं है
  2. सत्यापन अंक गणना की गई मान के साथ मेल नहीं खाता
  3. प्रारूप गलत है (XX-XXXXXXXX-X होना चाहिए)
  4. इनपुट में गैर-संख्यात्मक वर्ण हैं (हाइफ़न के अलावा)

क्या CUIT/CUIL नंबर में DNI भाग में 8 अंकों से कम हो सकते हैं?

नहीं, DNI भाग हमेशा ठीक 8 अंक का होना चाहिए। यदि वास्तविक DNI में कम अंक हैं, तो इसे 8 अंकों तक पहुँचाने के लिए अग्रणी शून्य के साथ पैड किया जाना चाहिए। उदाहरण के लिए, यदि किसी का DNI 1234567 है, तो CUIT/CUIL में इसे 01234567 के रूप में प्रस्तुत किया जाएगा।

मैं कैसे सत्यापित कर सकता हूँ कि कोई CUIT/CUIL अर्जेंटीना में आधिकारिक रूप से पंजीकृत है?

आप AFIP (एडमिनिस्ट्रेशन फेडरल डे इनग्रेसोस पब्लिकोस) वेबसाइट या सेवाओं का उपयोग करके सत्यापित कर सकते हैं कि कोई CUIT/CUIL आधिकारिक रूप से पंजीकृत और सक्रिय है। हमारा उपकरण केवल संख्या की गणितीय वैधता की पुष्टि करता है, न कि इसकी आधिकारिक पंजीकरण स्थिति।

क्या CUIT/CUIL नंबरों में हाइफ़न आवश्यक हैं?

हालांकि CUIT/CUIL नंबरों को सामान्यतः हाइफ़न के साथ लिखा और प्रदर्शित किया जाता है (XX-XXXXXXXX-X), हाइफ़न वास्तव में गणना उद्देश्यों के लिए संख्या का हिस्सा नहीं होते हैं। हमारा मान्यकर्ता दोनों प्रारूपों (हाइफ़न के साथ या बिना) को स्वीकार करता है और उचित रूप से किसी भी प्रारूप को मान्य करेगा।

क्या CUIT/CUIL नंबर में DNI भाग में 8 अंकों से कम हो सकते हैं?

नहीं, DNI भाग हमेशा ठीक 8 अंक का होना चाहिए। यदि वास्तविक DNI में कम अंक हैं, तो इसे 8 अंकों तक पहुँचाने के लिए अग्रणी शून्य के साथ पैड किया जाना चाहिए। उदाहरण के लिए, यदि किसी का DNI 1234567 है, तो CUIT/CUIL में इसे 01234567 के रूप में प्रस्तुत किया जाएगा।

क्या मैं इस उपकरण का उपयोग अपने व्यावसायिक अनुप्रयोग में कर सकता हूँ?

हाँ, आप इस उपकरण में प्रदर्शित एल्गोरिदम और लॉजिक को अपने व्यावसायिक अनुप्रयोगों में एकीकृत कर सकते हैं। CUIT/CUIL मान्यता एल्गोरिदम एक सार्वजनिक मानक है। हालाँकि, उत्पादन वातावरण के लिए, हम उचित त्रुटि हैंडलिंग लागू करने और आवश्यकतानुसार आधिकारिक स्रोतों के खिलाफ अतिरिक्त मान्यता पर विचार करने की सिफारिश करते हैं।

क्या उपकरण उत्पन्न या मान्य CUIT/CUIL नंबरों में से कोई भी जानकारी संग्रहीत करता है?

नहीं, यह उपकरण किसी भी जानकारी को संग्रहीत नहीं करता है जो दर्ज की गई या उत्पन्न की गई हो। सभी प्रसंस्करण आपके ब्राउज़र में क्लाइंट-साइड किया जाता है, और कोई डेटा हमारे सर्वरों पर नहीं भेजा या संग्रहीत किया जाता है। यह आपके द्वारा दर्ज की गई किसी भी जानकारी की गोपनीयता और सुरक्षा सुनिश्चित करता है।

संदर्भ

  1. AFIP (एडमिनिस्ट्रेशन फेडरल डे इनग्रेसोस पब्लिकोस)। "CUIT/CUIL/CDI।" आधिकारिक वेबसाइट। https://www.afip.gob.ar/

  2. मंत्रालय श्रम, रोजगार और सामाजिक सुरक्षा। "CUIL - क्लावे यूनिका डे आइडेंटिफिकेशन लेबरल।" https://www.argentina.gob.ar/trabajo

  3. ANSES (एडमिनिस्ट्रेशन नेशनल डे ला सेगुरिदाद सोशल)। "मेरा CUIL प्राप्त करें।" https://www.anses.gob.ar/

  4. बोलेटिन आधिकारिक डे ला रिपब्लिका अर्जेंटीना। "रेसोल्यूशन जनरल AFIP 2854/2010: प्रक्रिया। क्लावे यूनिका डे आइडेंटिफिकेशन ट्रिबुटारिया (C.U.I.T.)।"

  5. कोडिगो फिस्कल डे ला रिपब्लिका अर्जेंटीना। "पहचान और करदाताओं का पंजीकरण।"


क्या आप अर्जेंटीना के CUIT/CUIL नंबर उत्पन्न करने या मान्य करने के लिए तैयार हैं? अब हमारे उपकरण का प्रयास करें और अपनी परीक्षण प्रक्रिया को सरल बनाएं!

🔗

संबंधित उपकरण

अधिक उपकरणों का पता लगाएँ जो आपके कार्यप्रवाह के लिए उपयोगी हो सकते हैं

अर्जेंटीना CUIT जनरेटर और मान्यकर्ता परीक्षण उद्देश्यों के लिए

इस उपकरण को आजमाएँ

अर्जेंटीना CBU जनरेटर और मान्यता उपकरण | बैंकिंग कोड

इस उपकरण को आजमाएँ

परीक्षण और सत्यापन के लिए IBAN जनरेटर और मान्यकर्ता उपकरण

इस उपकरण को आजमाएँ

ब्राज़ीलियन CNPJ जनरेटर और मान्यकर्ता उपकरण परीक्षण के लिए

इस उपकरण को आजमाएँ

मैक्सिकन CLABE जनरेटर और सॉफ़्टवेयर परीक्षण के लिए मान्यकर्ता

इस उपकरण को आजमाएँ

गीला परिधि कैलकुलेटर: चैनल आकारों के लिए गणना करें

इस उपकरण को आजमाएँ

परीक्षण के लिए मान्य CPF जनरेटर उपकरण का उपयोग करें

इस उपकरण को आजमाएँ

CUID जनरेटर: अद्वितीय पहचानकर्ता उत्पन्न करने का उपकरण

इस उपकरण को आजमाएँ

परीक्षण के लिए मैक्सिकन RFC जनरेटर | वैध कर आईडी कोड बनाएं

इस उपकरण को आजमाएँ