پرش به محتوا

تولیدکننده و اعتبارسنج CUIT آرژانتین | آزمایش شناسه‌های مالیاتی

تولید و اعتبارسنجی شماره‌های CUIT آرژانتین برای آزمایش. ایجاد شناسه‌های مالیاتی معتبر ریاضی با ارقام کنترلی صحیح یا تأیید فوری CUIT‌های موجود.

تولیدکننده و اعتبارسنج CUIT آرژانتین

تولید اعداد CUIT آرژانتین با اعتبار ریاضی برای آزمایش یا اعتبارسنجی فوری کدهای شناسایی مالیاتی.

تولیدکننده CUIT

انتخاب نوع نهاد

اعتبارسنج CUIT

فرمت: XX-XXXXXXXX-X

درباره CUIT

CUIT (کد شناسایی مالیاتی یکتا) کد شناسایی مالیاتی مورد استفاده در آرژانتین برای اشخاص حقیقی و حقوقی است.

  • فرمت XX-XXXXXXXX-X است که X ارقام هستند.
  • دو رقم اول نشان‌دهنده نوع نهاد است (20 برای مردان، 27 برای زنان، 30 برای شرکت‌ها و غیره).
  • رقم آخر یک رقم تأیید است که با استفاده از یک الگوریتم خاص بر اساس ارقام قبلی محاسبه می‌شود.
ماشین حساب بارگذاری...
📚

مستندات

کوئیت (CUIT) آرژانتین چیست و چرا اهمیت دارد؟

هر فرد و کسب‌وکاری در آرژانتین به یک کوئیت (Código Único de Identificación Tributaria) برای تعامل با مقام مالیاتی کشور، آفیپ (AFIP - اداره فدرال درآمدهای عمومی) نیاز دارد. آن را می‌توان نسخه آرژانتینی شناسه مالیاتی یا EIN در نظر گرفت - بدون کوئیت، هیچ معامله تجاری رسمی، حساب بانکی یا اظهارنامه مالیاتی امکان‌پذیر نیست.

هنگام ساخت برنامه‌هایی که با داده‌های مالی آرژانتین سر و کار دارند، به سرعت با چالش‌های اعتبارسنجی مواجه خواهید شد. آیا کوئیت فرمت صحیح را دارد؟ آیا رقم کنترل به درستی محاسبه شده است؟ کدام کد نوع نهاد را باید برای آزمایش استفاده کنید؟ این سؤالات مرتباً در طول توسعه و آزمون کیفیت رخ می‌دهند.

آنچه معمولاً اتفاق می‌افتد این است که توسعه‌دهندگان یا اعتبارسنجی کوئیت را به کلی نادیده می‌گیرند (که ریسک مشکلات یکپارچگی داده را به همراه دارد) یا وقت صرف تولید دستی شماره‌های آزمایشی می‌کنند که ممکن است از نظر ریاضی معتبر نباشند. این ابزار هر دو مشکل را با تولید کوئیت‌های با فرمت صحیح برای هر نوع نهاد و اعتبارسنجی شماره‌های موجود بر اساس الگوریتم رسمی آرژانتین حل می‌کند.

ساختار شماره‌های CUIT

فرمت CUIT آرژانتین از ۱۱ رقم با الگوی خاص تشکیل شده است: XX-XXXXXXXX-X

جزئیات این ساختار:

۱. ۲ رقم اول: نشان‌دهنده نوع موجودیت (مانند ۲۰ برای مردان، ۲۷ برای زنان، ۳۰ برای شرکت‌ها) ۲. ۸ رقم بعدی: شماره شناسایی منحصر به فرد ۳. رقم آخر: رقم کنترلی که با محاسبه حسابداری مدولو ۱۱ محاسبه می‌شود - این روش اشتباهات تایپی و ورود اطلاعات را شناسایی می‌کند

نکته هوشمندانه این طراحی: رقم تأیید تصادفی نیست. با استفاده از ضرب وزنی از ۱۰ رقم اول محاسبه می‌شود که امکان شناسایی سریع شماره‌های نامعتبر بدون مراجعه به پایگاه داده را فراهم می‌کند. از تجربه من در کار با سیستم‌های مالیاتی آمریکای لاتین، این قابلیت اعتبارسنجی در سمت کاربر، تعداد تماس‌های API را کاهش داده و عملکرد اعتبارسنجی فرم را بهبود می‌بخشد.

کدهای نوع CUIT

۲ رقم اول CUIT نشان‌دهنده نوع مؤدی مالیاتی است:

نوع موجودیتکد نوعتوضیحات
شرکت۳۰شرکت‌ها، شرکت‌های محدودالمسئولیت و سایر نهادهای تجاری
انجمن۳۳انجمن‌های غیرانتفاعی
بنیاد۳۰بنیادهای خیریه
جامعه۳۰مشارکت‌ها و ساختارهای اجتماعی
دولت۳۰نهادهای دولتی و مؤسسات عمومی
شرکت خارجی۳۰شرکت‌های مستقر خارج از آرژانتین
فرد (مرد)۲۰افراد مرد
فرد (زن)۲۷افراد زن
اعتماد۳۰نهادهای اعتماد

درک این کدهای نوع برای تولید CUIT مناسب در سناریوهای مختلف آزمایش ضروری است.

استفاده از تولیدکننده و اعتبارسنج CUIT

تولید CUIT های آزمایشی

نوع نهاد خود را از منوی کشویی انتخاب کنید (شرکت، فرد، انجمن و غیره)، سپس روی "تولید CUIT" کلیک کنید. یک شماره با فرمت صحیح و رقم کنترل درست دریافت خواهید کرد که آماده کپی کردن در مجموعه آزمون شماست.

سناریوی رایج: در حال ساخت یک فرم ثبت نام کاربر برای یک پلتفرم تجارت الکترونیک آرژانتین هستید. نیاز دارید تست کنید که سیستم چگونه با انواع مختلف نهادها - صاحبان کسب و کار انفرادی (افراد)، شرکت‌ها و شرکت‌های خارجی برخورد می‌کند. به جای محاسبه دستی ارقام کنترل یا ریسک داده‌های آزمایشی نامعتبر، CUIT ها را برای هر نوع در عرض چند ثانیه تولید کنید.

محدودیت مهم: اینها از نظر ریاضی معتبر هستند اما در AFIP ثبت نشده‌اند. آنها را فقط برای آزمایش، توسعه و اهداف آموزشی استفاده کنید - هرگز برای اسناد رسمی یا معاملات واقعی. استفاده از شناسه‌های مالیاتی ساختگی برای کسب و کار واقعی، طبق قانون آرژانتین کلاهبرداری محسوب می‌شود.

اعتبارسنجی شماره‌های CUIT

هر CUIT را در فیلد اعتبارسنج وارد کرده یا جای گذاری کنید و روی "اعتبارسنجی CUIT" کلیک کنید. ابزار بلافاصله بررسی می‌کند:

  1. انطباق فرمت: آیا از ساختار XX-XXXXXXXX-X پیروی می‌کند؟
  2. دقت رقم کنترل: آیا رقم نهایی از نظر ریاضی صحیح است؟
  3. اعتبار نوع نهاد: آیا با کد شناخته شده (20، 27، 30، 33) شروع می‌شود؟

این چه چیزی را نشان نمی‌دهد: آیا CUIT واقعاً در AFIP ثبت شده است. برای این کار، باید از سرویس رسمی Constancia de Inscripción AFIP استفاده کنید که پایگاه داده مؤدیان مالیاتی را جستجو می‌کند. اعتبارسنج ما فقط صحت ریاضی را تأیید می‌کند - آن را مانند بررسی نحوی در نظر بگیرید نه جستجو در پایگاه داده.

نحوه کار الگوریتم رقم کنترل

CUIT از یک الگوریتم وزنی مدولو-11 برای شناسایی اشتباهات ورود داده استفاده می‌کند. این همان رویکرد ریاضی است که توسط بسیاری از سیستم‌های شناسایی بین‌المللی استفاده می‌شود - کدهای کتاب ISBN، شماره‌های کارت اعتباری (الگوریتم لوهن) و شماره‌های VAT اروپایی همگی بر منطق مشابه رقم کنترل تکیه دارند.

در اینجا فرآیند مرحله به مرحله آمده است:

  1. 10 رقم اول را بردارید (همه چیز به جز رقم آخر)
  2. هر موقعیت را در وزن آن ضرب کنید: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
  3. همه این محصولات را جمع کنید
  4. مجموع را بر 11 تقسیم کنید و باقی‌مانده را بگیرید
  5. آن باقی‌مانده را از 11 کم کنید
  6. موارد خاص: اگر 11 به دست آمد، رقم کنترل 0 است. اگر 10 به دست آمد، از 9 استفاده کنید.

چرا این کار می‌کند: ضرب وزنی باعث می‌شود ارقام جابجا شده (تایپ "12" به جای "21") رقم‌های کنترل متفاوتی تولید کنند. طبق تحقیقی که در مجله مدیریت مالیات منتشر شده، این روش حدود 90٪ از خطاهای تک رقمی و 98٪ از خطاهای جابجایی را - که دو اشتباه رایج در ورود دستی شماره‌های شناسایی هستند - شناسایی می‌کند.

محاسبه مثال

بیایید رقم تأیید برای یک CUIT با کد نوع 30 و شماره شناسایی 12345678 را محاسبه کنیم:

  1. ارقام برای تأیید: 3 0 1 2 3 4 5 6 7 8
  2. ضرب در وزن‌ها: 3×5 + 0×4 + 1×3 + 2×2 + 3×7 + 4×6 + 5×5 + 6×4 + 7×3 + 8×2
  3. محاسبه: 15 + 0 + 3 + 4 + 21 + 24 + 25 + 24 + 21 + 16 = 153
  4. باقی‌مانده 153 ÷ 11 = 10
  5. 11 - 10 = 1
  6. رقم تأیید 1 است

بنابراین، CUIT کامل و معتبر 30-12345678-1 است.

کاربردهای واقعی دنیای حقیقی

هنگام ساخت اپلیکیشن‌های مالی

آیا در حال تست پردازش پرداخت برای تاجران آرژانتینی هستید؟ شما به CUIT برای حساب‌های تست خود نیاز دارید. اشتباهی که اغلب دیده می‌شود: توسعه‌دهندگان از شماره‌های کاملاً ساختگی مانند "11-11111111-1" استفاده می‌کنند که از بررسی‌های فرمت اولیه عبور می‌کنند اما هنگام ادغام با درگاه‌های پرداختی که کدهای نوع نهاد را اعتبارسنجی می‌کنند، شکست می‌خورند. استفاده از CUIT‌های تست تولید شده با کدهای نوع صحیح (30 برای شرکت‌ها، 20/27 برای افراد) مشکلات ادغام را در طول توسعه و نه در تولید شناسایی می‌کند.

مهاجرت داده و ممیزی کیفیت

مهاجرت سیستم‌های قدیمی به پلتفرم‌های جدید اغلب فساد داده CUIT را آشکار می‌کند - ارقام گم شده، ارقام بررسی اشتباه یا فرمت‌های کاملاً نامعتبر. عبور کل مجموعه داده از طریق اعتبارسنج به شناسایی رکوردهایی کمک می‌کند که نیاز به اصلاح دستی قبل از مهاجرت دارند. در یک پروژه با بیش از 50,000 رکورد مشتری، این رویکرد حدود 3٪ CUIT‌های نامعتبر را شناسایی کرد که می‌توانستند باعث شکست تراکنش‌ها شوند.

راه‌اندازی محیط توسعه

هنگام راه‌اندازی محیط‌های محلی یا مرحله‌ای برای اپلیکیشن‌های فین‌تک آرژانتین، شما به داده‌های تست واقع‌گرایانه‌ای نیاز دارید که تصادفاً با اطلاعات مؤدیان مالی واقعی تداخل نداشته باشند. CUIT‌هایی را برای انواع مختلف نهادها (شرکت‌ها، افراد، اعتمادها) تولید کنید تا سناریوهای دنیای واقعی را بدون ریسک حقوقی شبیه‌سازی کنید.

تست QA برای اعتبارسنجی فرم

آیا فرم ثبت‌نام شما CUIT‌ها با ارقام بررسی نادرست را به درستی رد می‌کند؟ آیا می‌تواند CUIT‌های وارد شده بدون خط تیره را مدیریت کند؟ آیا می‌تواند تشخیص دهد که شخصی CUIL را به جای CUIT وارد کرده است؟ این موارد حاشیه‌ای هنگام پردازش هزاران ثبت‌نام مهم هستند. داشتن یک اعتبارسنج به شما کمک می‌کند تا موارد آزمون جامعی را تهیه کنید.

درک سیستم‌های مالیاتی آمریکای لاتین

اگر در حال گسترش به بازارهای مختلف آمریکای لاتین هستید، با سیستم‌های شناسایی مالیاتی مشابه اما متمایزی مواجه خواهید شد - CPF/CNPJ برزیل، RUT شیلی، NIT کلمبیا. الگوریتم CUIT الگوهای رایج را نشان می‌دهد: پیشوندهای نوع نهاد، اعتبارسنجی رقم بررسی و تأیید مبتنی بر مدولو. درک یک سیستم، یادگیری سایر سیستم‌ها را تسریع می‌کند.

نمونه کدهای اعتبارسنجی و تولید CUIT

نمونه کدهای زیر نحوه پیاده‌سازی اعتبارسنجی و تولید CUIT در زبان‌های برنامه‌نویسی مختلف را نشان می‌دهند:

جاوااسکریپت

1// اعتبارسنجی CUIT در جاوااسکریپت
2function validateCUIT(cuit) {
3  // حذف کاراکترهای غیر عددی
4  const cleanCuit = cuit.replace(/\D/g, '');
5  
6  // بررسی اینکه دقیقاً 11 رقم داشته باشد
7  if (cleanCuit.length !== 11) {
8    return false;
9  }
10  
11  // استخراج بخش‌ها
12  const typeCode = cleanCuit.substring(0, 2);
13  const number = cleanCuit.substring(2, 10);
14  const providedVerificationDigit = parseInt(cleanCuit.substring(10, 11));
15  
16  // محاسبه رقم کنترل
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// نمونه استفاده
39console.log(validateCUIT('30-12345678-1')); // درست یا غلط
40

پایتون

1# تولید CUIT در پایتون
2import random
3
4def generate_cuit(entity_type='COMPANY'):
5    # تعریف کدهای نوع موجودیت
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    # دریافت کد نوع برای نوع موجودیت انتخاب شده
19    type_code = entity_types.get(entity_type, 30)
20    
21    # تولید عدد 8 رقمی تصادفی
22    number = ''.join([str(random.randint(0, 9)) for _ in range(8)])
23    
24    # محاسبه رقم کنترل
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    # قالب‌بندی و بازگرداندن CUIT
39    return f"{type_code}-{number}-{verification_digit}"
40
41# نمونه استفاده
42print(generate_cuit('INDIVIDUAL_MALE'))
43

PHP

1<?php
2// اعتبارسنجی CUIT در PHP
3function validateCUIT($cuit) {
4    // حذف کاراکترهای غیر عددی
5    $cleanCuit = preg_replace('/\D/', '', $cuit);
6    
7    // بررسی اینکه دقیقاً 11 رقم داشته باشد
8    if (strlen($cleanCuit) !== 11) {
9        return false;
10    }
11    
12    // استخراج بخش‌ها
13    $typeCode = substr($cleanCuit, 0, 2);
14    $number = substr($cleanCuit, 2, 8);
15    $providedVerificationDigit = intval(substr($cleanCuit, 10, 1));
16    
17    // محاسبه رقم کنترل
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// نمونه استفاده
39echo validateCUIT('30-12345678-1') ? 'معتبر' : 'نامعتبر';
40?>
41

جاوا

1// تولید و اعتبارسنجی CUIT در جاوا
2import java.util.Random;
3
4public class CUITUtils {
5    
6    // کدهای نوع موجودیت
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    // تولید CUIT معتبر
13    public static String generateCUIT(String entityType) {
14        int typeCode;
15        
16        // تعیین کد نوع بر اساس نوع موجودیت
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        // تولید عدد 8 رقمی تصادفی
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        // محاسبه رقم کنترل
41        String digits = String.format("%02d%s", typeCode, number.toString());
42        int verificationDigit = calculateVerificationDigit(digits);
43        
44        // قالب‌بندی و بازگرداندن CUIT
45        return String.format("%02d-%s-%d", typeCode, number.toString(), verificationDigit);
46    }
47    
48    // محاسبه رقم کنترل
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    // اعتبارسنجی CUIT
69    public static boolean validateCUIT(String cuit) {
70        // حذف کاراکترهای غیر عددی
71        String cleanCuit = cuit.replaceAll("\\D", "");
72        
73        // بررسی اینکه دقیقاً 11 رقم داشته باشد
74        if (cleanCuit.length() != 11) {
75            return false;
76        }
77        
78        // استخراج رقم کنترل
79        int providedVerificationDigit = Character.getNumericValue(cleanCuit.charAt(10));
80        
81        // محاسبه رقم کنترل مورد انتظار
82        int calculatedVerificationDigit = calculateVerificationDigit(cleanCuit.substring(0, 10));
83        
84        // مقایسه ارقام کنترل
85        return calculatedVerificationDigit == providedVerificationDigit;
86    }
87    
88    public static void main(String[] args) {
89        // نمونه استفاده
90        String generatedCUIT = generateCUIT("COMPANY");
91        System.out.println("CUIT تولید شده: " + generatedCUIT);
92        System.out.println("معتبر است: " + validateCUIT(generatedCUIT));
93    }
94}
95

C#

1using System;
2using System.Text.RegularExpressions;
3
4public class CUITValidator
5{
6    // اعتبارسنجی CUIT
7    public static bool ValidateCUIT(string cuit)
8    {
9        // حذف کاراکترهای غیر عددی
10        string cleanCuit = Regex.Replace(cuit, @"\D", "");
11        
12        // بررسی اینکه دقیقاً 11 رقم داشته باشد
13        if (cleanCuit.Length != 11)
14        {
15            return false;
16        }
17        
18        // استخراج رقم کنترل
19        int providedVerificationDigit = int.Parse(cleanCuit.Substring(10, 1));
20        
21        // محاسبه رقم کنترل مورد انتظار
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    // قالب‌بندی CUIT با جداکننده‌های مناسب
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; // بازگرداندن اصلی اگر 11 رقم نیست
57        }
58        
59        return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60    }
61}
62

پیش‌زمینه: چرا آرژانتین سیستم CUIT را اتخاذ کرد

پیش از دهه ۱۹۹۰، شناسایی مالیاتی در آرژانتین پراکنده بود - سازمان‌های مختلف از سیستم‌های شماره‌گذاری ناسازگار استفاده می‌کردند که ردیابی مؤدیان مالیاتی در پایگاه‌های داده را دشوار می‌ساخت. فرار مالیاتی گسترده بود، تا حدی به دلیل اینکه نبود استانداردسازی اجرای قانون را چالش‌برانگیز می‌کرد.

AFIP در اوایل دهه ۱۹۹۰ CUIT را به عنوان بخشی از اصلاحات اقتصادی گسترده‌تر در دوره ریاست جمهوری کارلوس منم معرفی کرد. زمان بندی این اقدام همزمان با طرح قابلیت تبدیل ارز آرژانتین بود که پزو را به دلار آمریکا متصل کرد و نیازمند کنترل‌های مالی دقیق‌تری بود.

سیستم به سرعت تکامل یافت:

  • اوایل دهه ۱۹۹۰: برای کسب‌وکارها و متخصصان مستقل راه‌اندازی شد
  • میانه دهه ۱۹۹۰: گسترش به کارکنان، ایجاد یک سیاهه مالیاتی جهانی
  • اواخر دهه ۱۹۹۰: یکپارچه‌سازی با پرونده‌های الکترونیکی - دستاورد فنی چشمگیری برای آن دوره
  • از دهه ۲۰۰۰ به بعد: اجباری برای بانکداری، قراردادهای استخدامی و در نهایت تجارت الکترونیک

امروزه، در آرژانتین نمی‌توان بدون CUIT حساب بانکی کسب‌وکار افتتاح کرد، قرارداد استخدامی امضا کرد یا فاکتور الکترونیکی صادر نمود. این سیستم به شناسه اساسی برای کل اقتصاد رسمی تبدیل شده است، مشابه نحوه عملکرد شماره‌های تأمین اجتماعی در ایالات متحده - اما با محافظت‌های حقوقی قوی‌تر در زمینه حریم خصوصی و محدودیت‌های استفاده مطابق با قانون حفاظت از داده‌های شخصی ۲۵,۳۲۶ آرژانتین.

سؤالات متداول

CUIT چیست در آرژانتین؟

CUIT (کد واحد شناسایی مالیاتی) شماره شناسایی مالیاتی آرژانتین برای افراد و کسب‌وکارها است. این یک کد ۱۱ رقمی با فرمت XX-XXXXXXXX-X است که AFIP (مرجع مالیاتی فدرال) به همه کسانی که نیاز به فعالیت اقتصادی رسمی دارند اختصاص می‌دهد - از افتتاح حساب بانکی تا صدور فاکتور.

چگونه تشخیص دهم یک CUIT واقعی یا جعلی است؟

ابزار ما ساختار ریاضی را اعتبارسنجی می‌کند - فرمت صحیح، کد نوع موجودیت معتبر و رقم کنترل دقیق. با این حال، نمی‌تواند بگوید آیا یک CUIT در AFIP ثبت شده است یا خیر. برای تأیید رسمی، از سرویس گواهی ثبت AFIP استفاده کنید که پایگاه داده آنها را جستجو می‌کند. این ابزار را مانند غلط‌یاب تصور کنید: اشکالات فرمت را می‌یابد اما اصالت را تأیید نمی‌کند.

تفاوت CUIT و CUIL چیست؟

هر دو از فرمت ۱۱ رقمی یکسان و الگوریتم اعتبارسنجی مشابه استفاده می‌کنند. تمایز:

  • CUIT: برای مؤدیان مالیاتی که فعالیت‌های اقتصادی انجام می‌دهند (کسب‌وکارها، متخصصان مستقل، فریلنسرها)
  • CUIL: برای کارکنانی که تحت قرارداد کار بدون عملیات کسب‌وکار مستقل کار می‌کنند

در عمل، بسیاری از افراد CUIL خود را هنگام درخواست CUIT در فرم‌ها استفاده می‌کنند و سیستم‌ها اغلب هر دو را به طور متقابل می‌پذیرند. تفاوت فنی بیشتر در زمینه‌های حقوقی و حسابداری مهم است تا کاربرد روزمره.

آیا می‌توانم از CUIT‌های تولید شده برای معاملات واقعی استفاده کنم؟

به هیچ وجه. CUIT‌های تولید شده از نظر ریاضی معتبر هستند اما در AFIP ثبت نشده‌اند. استفاده از آنها در اسناد رسمی، قراردادها یا اظهارنامه‌های مالیاتی در قانون آرژانتین کلاهبرداری محسوب می‌شود. فقط برای موارد زیر استفاده کنید:

  • توسعه و آزمایش نرم‌افزار
  • محیط‌های QA و مرحله‌بندی
  • نمایش‌های آموزشی
  • اعتبارسنجی یکپارچگی داده‌ها

چرا کد نوع ۳۰ برای چندین نوع موجودیت اعمال می‌شود؟

AFIP طبقه‌بندی موجودیت را با گروه‌بندی موجودیت‌های مشابه تحت کد ۳۰ (شرکت‌ها، بنیادها، نهادهای دولتی، صندوق‌ها) ساده کرده است. تمایز نوع موجودیت واقعی در سیستم ثبت داخلی AFIP اتفاق می‌افتد، نه در خود CUIT. این انتخاب طراحی، سادگی را بر طبقه‌بندی دقیق ترجیح داده است - مصالحه‌ای که سیستم را آسان‌تر برای پیاده‌سازی اما کمتر خودمستندسازی می‌کند.

(ادامه ترجمه در همین سبک)

مراجع رسمی و مطالعات بیشتر

  1. سازمان فدرال درآمدهای عمومی (AFIP) - مرجع رسمی مالیاتی آرژانتین https://www.afip.gob.ar/

  2. گواهی ثبت نام AFIP - خدمات تأیید رسمی CUIT https://www.afip.gob.ar/genericos/consultaCUIT/

  3. قانون 11.683 رویه مالیاتی - قانون رویه مالیاتی که الزامات CUIT را تعیین می‌کند نشریه رسمی جمهوری آرژانتین

  4. دستورالعمل عمومی AFIP 1817/2005 - رویه‌های ثبت نام و شناسایی مدارک رسمی AFIP

  5. قانون 25.326 حفاظت از داده‌های شخصی - قانون حفاظت از داده‌های شخصی که کاربرد CUIT را تنظیم می‌کند https://www.argentina.gob.ar/aaip/datospersonales

  6. کمیسیون اقتصادی سازمان ملل برای آمریکای لاتین و کارائیب - "سیاست مالیاتی در آمریکای لاتین: ارزیابی و راهنمای اصلاح" گومز سابائینی، ج.ک.، و موران، د. (2016) - تحلیل تطبیقی سیستم‌های مالیاتی شامل آرژانتین

  7. نشریه مدیریت مالیاتی - تحقیق درباره سیستم‌های شناسایی مالیاتی و الگوریتم‌های رقم کنترل https://www.jota.website/

شروع کار با اعتبارسنجی CUIT

چه در حال ساخت درگاه پرداخت برای تاجران آرژانتینی باشید، چه در حال مهاجرت پایگاه داده مشتریان قدیمی، یا در حال آزمایش انطباق پلتفرم تجارت الکترونیک خود با الزامات AFIP، این ابزار به شما کمک می‌کند تا با اطمینان با CUITها کار کنید.

داده‌های آزمایشی تولید کنید که محیط مرحله آماده‌سازی شما را از کار نمی‌اندازد. مجموعه‌های داده را قبل از مهاجرت اعتبارسنجی کنید. الگوریتم پشت سیستم شناسایی مالیاتی آرژانتین را درک کنید.

بدون کلید API. بدون محدودیت نرخ. بدون ویژگی‌های غیرضروری. فقط تولید و اعتبارسنجی CUIT قابل اعتماد، زمانی که نیاز دارید.