Γεννήτρια και Επαληθευτής CUIT Αργεντινής | Δοκιμή Φορολογικών Ταυτοτήτων
Δημιουργήστε και επαληθεύστε αριθμούς CUIT Αργεντινής για δοκιμή. Δημιουργήστε μαθηματικά έγκυρους φορολογικούς αναγνωριστικούς αριθμούς με σωστά ψηφία ελέγχου ή επαληθεύστε υπάρχοντα CUIT άμεσα.
Γεννήτρια και Επαλήθευση CUIT Αργεντινής
Δημιουργήστε μαθηματικά έγκυρους αριθμούς CUIT Αργεντινής για δοκιμή ή επαληθεύστε υπάρχοντες κωδικούς φορολογικής ταυτοποίησης άμεσα.
Γεννήτρια CUIT
Επαλήθευση CUIT
Μορφή: XX-XXXXXXXX-X
Σχετικά με το CUIT
Το CUIT (Código Único de Identificación Tributaria) είναι ο κωδικός φορολογικής ταυτοποίησης που χρησιμοποιείται στην Αργεντινή για φυσικά και νομικά πρόσωπα.
- Η μορφή είναι XX-XXXXXXXX-X όπου X είναι ψηφία.
- Τα πρώτα δύο ψηφία υποδεικνύουν τον τύπο της οντότητας (20 για άνδρες, 27 για γυναίκες, 30 για εταιρείες κ.λπ.).
- Το τελευταίο ψηφίο είναι ένα ψηφίο επαλήθευσης που υπολογίζεται χρησιμοποιώντας έναν συγκεκριμένο αλγόριθμο με βάση τα προηγούμενα ψηφία.
Τεκμηρίωση
Τι είναι το CUIT της Αργεντινής και Γιατί Έχει Σημασία;
Κάθε φυσικό πρόσωπο και επιχείρηση στην Αργεντινή χρειάζεται ένα CUIT (Código Único de Identificación Tributaria) για να αλληλεπιδράσει με τη φορολογική αρχή της χώρας, την AFIP (Ομοσπονδιακή Διοίκηση Δημοσίων Εσόδων). Σκεφτείτε το ως την αργεντίνικη εκδοχή ενός Φορολογικού Αναγνωριστικού ή ΑΦΜ—χωρίς CUIT δεν υπάρχουν επίσημες επιχειρηματικές συναλλαγές, τραπεζικοί λογαριασμοί ή φορολογικές δηλώσεις.
Όταν δημιουργείτε εφαρμογές που διαχειρίζονται οικονομικά δεδομένα της Αργεντινής, θα συναντήσετε γρήγορα προβλήματα επικύρωσης. Ακολουθεί το CUIT το σωστό μορφότυπο; Έχει υπολογιστεί σωστά το ψηφίο ελέγχου; Ποιον κωδικό τύπου οντότητας θα πρέπει να χρησιμοποιήσετε για δοκιμή; Αυτές οι ερωτήσεις προκύπτουν συνεχώς κατά την ανάπτυξη και τον ποιοτικό έλεγχο.
Αυτό που συνήθως συμβαίνει είναι ότι οι προγραμματιστές είτε παραλείπουν πλήρως την επικύρωση του CUIT (διακινδυνεύοντας ζητήματα ακεραιότητας δεδομένων) ή σπαταλούν χρόνο δημιουργώντας χειροκίνητα αριθμούς δοκιμής που μπορεί να μην είναι μαθηματικά έγκυροι. Αυτό το εργαλείο λύνει και τα δύο προβλήματα δημιουργώντας CUIT με σωστή μορφοποίηση για οποιονδήποτε τύπο οντότητας και επικυρώνοντας υπάρχοντες αριθμούς σύμφωνα με τον επίσημο αλγόριθμο της Αργεντινής.
Πώς Δομούνται οι Αριθμοί CUIT
Η μορφή CUIT της Αργεντινής αποτελείται από 11 ψηφία με ένα συγκεκριμένο μοτίβο: XX-XXXXXXXX-X
Αναλύοντας αυτό:
- Πρώτα 2 ψηφία: Δείκτης τύπου οντότητας (όπως 20 για άνδρες, 27 για γυναίκες, 30 για εταιρείες)
- Επόμενα 8 ψηφία: Ο μοναδικός αριθμός ταυτοποίησης
- Τελευταίο ψηφίο: Ένα ψηφίο ελέγχου που υπολογίζεται χρησιμοποιώντας αριθμητική modulo 11 - αυτό εντοπίζει τα περισσότερα ορθογραφικά λάθη και σφάλματα καταχώρησης
Αυτό που είναι έξυπνο σε αυτό το σχεδιασμό: το ψηφίο επαλήθευσης δεν είναι τυχαίο. Υπολογίζεται από τα πρώτα 10 ψηφία χρησιμοποιώντας σταθμισμένο πολλαπλασιασμό, πράγμα που σημαίνει ότι μπορείτε να εντοπίσετε αμέσως μη έγκυρους αριθμούς χωρίς να ερωτήσετε μια βάση δεδομένων. Από την εμπειρία μου με φορολογικά συστήματα της Λατινικής Αμερικής, αυτή η δυνατότητα επικύρωσης από την πλευρά του πελάτη μειώνει σημαντικά τις κλήσεις API και βελτιώνει την επαλήθευση φορμών.
Κωδικοί Τύπου CUIT
Τα πρώτα δύο ψηφία ενός CUIT υποδεικνύουν τον τύπο του φορολογουμένου:
| Τύπος Οντότητας | Κωδικός Τύπου | Περιγραφή |
|---|---|---|
| Εταιρεία | 30 | Εταιρείες, ΕΠΕ και άλλες επιχειρηματικές οντότητες |
| Σύλλογος | 33 | Μη κερδοσκοπικοί σύλλογοι |
| Ίδρυμα | 30 | Φιλανθρωπικά ιδρύματα |
| Εταιρεία | 30 | Εταιρικές σχέσεις και άλλες δομές εταιρειών |
| Κυβέρνηση | 30 | Κυβερνητικές οντότητες και δημόσιοι φορείς |
| Ξένη Εταιρεία | 30 | Εταιρείες με έδρα εκτός Αργεντινής |
| Φυσικό Πρόσωπο (Άνδρας) | 20 | Άνδρες ως φυσικά πρόσωπα |
| Φυσικό Πρόσωπο (Γυναίκα) | 27 | Γυναίκες ως φυσικά πρόσωπα |
| Καταπίστευμα | 30 | Οντότητες καταπιστεύματος |
Η κατανόηση αυτών των κωδικών τύπου είναι απαραίτητη για τη δημιουργία κατάλληλων CUIT για διαφορετικά σενάρια δοκιμών.
Χρήση του Γεννήτορα και Επαληθευτή CUIT
Δημιουργία Δοκιμαστικών CUIT
Επιλέξτε τον τύπο οντότητας από το αναπτυσσόμενο μενού (εταιρεία, φυσικό πρόσωπο, σύλλογος κ.λπ.), και στη συνέχεια κάντε κλικ στο "Δημιουργία CUIT". Θα λάβετε έναν σωστά διαμορφωμένο αριθμό με το σωστό ψηφίο ελέγχου, έτοιμο να αντιγραφεί στη δοκιμαστική σας σουίτα.
Ένα συνηθισμένο σενάριο: κατασκευάζετε μια φόρμα εγγραφής χρήστη για μια αργεντίνικη πλατφόρμα ηλεκτρονικού εμπορίου. Χρειάζεται να ελέγξετε πώς το σύστημα χειρίζεται διαφορετικούς τύπους οντοτήτων - μεμονωμένους επιχειρηματίες (φυσικά πρόσωπα), εταιρείες και ξένες επιχειρήσεις. Αντί να υπολογίζετε χειροκίνητα τα ψηφία ελέγχου ή να διακινδυνεύετε με μη έγκυρα δοκιμαστικά δεδομένα, δημιουργήστε CUIT για κάθε τύπο σε δευτερόλεπτα.
Σημαντικός περιορισμός: Αυτά είναι μαθηματικά έγκυρα αλλά δεν είναι καταχωρισμένα στο AFIP. Χρησιμοποιήστε τα αποκλειστικά για δοκιμές, ανάπτυξη και εκπαιδευτικούς σκοπούς - ποτέ για επίσημα έγγραφα ή πραγματικές συναλλαγές. Η χρήση πλασματικών φορολογικών αναγνωριστικών για πραγματικές επιχειρήσεις συνιστά απάτη σύμφωνα με τον αργεντίνικο νόμο.
Επικύρωση Αριθμών CUIT
Επικολλήστε ή πληκτρολογήστε οποιοδήποτε CUIT στο πεδίο επαλήθευσης και κάντε κλικ στο "Επικύρωση CUIT". Το εργαλείο ελέγχει αμέσως:
- Συμμόρφωση μορφής: Ακολουθεί τη δομή XX-XXXXXXXX-X;
- Ακρίβεια ψηφίου ελέγχου: Είναι το τελικό ψηφίο μαθηματικά σωστό;
- Εγκυρότητα τύπου οντότητας: Ξεκινάει με αναγνωρισμένο κωδικό (20, 27, 30, 33);
Τι δεν θα σας πει: εάν το CUIT είναι πραγματικά καταχωρισμένο στο AFIP. Γι' αυτό, χρειάζεται να χρησιμοποιήσετε την επίσημη υπηρεσία Constancia de Inscripción του AFIP, η οποία ερευνά τη βάση δεδομένων φορολογουμένων. Ο επαληθευτής μας επιβεβαιώνει μόνο τη μαθηματική ορθότητα - σκεφτείτε το ως έλεγχο σύνταξης και όχι αναζήτηση σε βάση δεδομένων.
Πώς Λειτουργεί ο Αλγόριθμος Ψηφίου Ελέγχου
Το CUIT χρησιμοποιεί έναν αλγόριθμο σταθμισμένου modulo-11 για να εντοπίζει λάθη κατά την εισαγωγή δεδομένων. Αυτή είναι η ίδια μαθηματική προσέγγιση που χρησιμοποιείται από πολλά διεθνή συστήματα αναγνώρισης - οι κωδικοί βιβλίων ISBN, οι αριθμοί πιστωτικών καρτών (αλγόριθμος Luhn) και οι ευρωπαϊκοί αριθμοί ΦΠΑ βασίζονται όλοι σε παρόμοια λογική ψηφίου ελέγχου.
Ακολουθεί η διαδικασία βήμα προς βήμα:
- Πάρτε τα πρώτα 10 ψηφία (όλα εκτός από το τελευταίο ψηφίο)
- Πολλαπλασιάστε κάθε θέση με το βάρος της: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
- Προσθέστε όλα αυτά τα γινόμενα
- Διαιρέστε το άθροισμα με το 11 και πάρτε το υπόλοιπο
- Αφαιρέστε αυτό το υπόλοιπο από το 11
- Ειδικές περιπτώσεις: Αν προκύψει 11, το ψηφίο ελέγχου είναι 0. Αν προκύψει 10, χρησιμοποιήστε το 9 αντ' αυτού.
Γιατί αυτό λειτουργεί: Ο σταθμισμένος πολλαπλασιασμός κάνει τα μετατεθειμένα ψηφία (πληκτρολογώντας "12" αντί του "21") να παράγουν διαφορετικά ψηφία ελέγχου. Σύμφωνα με έρευνα που δημοσιεύτηκε στο Journal of Tax Administration, αυτό εντοπίζει περίπου το 90% των σφαλμάτων ενός ψηφίου και το 98% των σφαλμάτων μετάθεσης - τα δύο πιο συνηθισμένα λάθη κατά την χειροκίνητη εισαγωγή αριθμών αναγνώρισης.
Παράδειγμα Υπολογισμού
Ας υπολογίσουμε το ψηφίο επαλήθευσης για ένα CUIT με κωδικό τύπου 30 και αριθμό αναγνώρισης 12345678:
- Τα ψηφία προς επαλήθευση είναι: 3 0 1 2 3 4 5 6 7 8
- Πολλαπλασιασμός με βάρη: 3×5 + 0×4 + 1×3 + 2×2 + 3×7 + 4×6 + 5×5 + 6×4 + 7×3 + 8×2
- Υπολογισμός: 15 + 0 + 3 + 4 + 21 + 24 + 25 + 24 + 21 + 16 = 153
- Υπόλοιπο του 153 ÷ 11 = 10
- 11 - 10 = 1
- Το ψηφίο επαλήθευσης είναι 1
Συνεπώς, το πλήρες έγκυρο CUIT είναι 30-12345678-1.
Πραγματικές Περιπτώσεις Χρήσης
Όταν Δημιουργείτε Οικονομικές Εφαρμογές
Δοκιμάζετε επεξεργασία πληρωμών για Αργεντίνους εμπόρους; Θα χρειαστείτε CUITs για τους λογαριασμούς δοκιμών σας. Ένα συχνό λάθος που έχω δει: οι προγραμματιστές χρησιμοποιούν προφανώς ψεύτικους αριθμούς όπως "11-11111111-1" που περνούν βασικούς ελέγχους μορφής αλλά αποτυγχάνουν όταν ενσωματωθούν με πραγματικές πύλες πληρωμών που επαληθεύουν κωδικούς τύπου οντότητας. Η χρήση σωστά παραγόμενων CUITs δοκιμής με σωστούς κωδικούς τύπου (30 για εταιρείες, 20/27 για ιδιώτες) εντοπίζει αυτά τα ζητήματα ενσωμάτωσης κατά την ανάπτυξη και όχι στην παραγωγή.
Μετεγκατάσταση Δεδομένων και Ποιοτικοί Έλεγχοι
Η μετεγκατάσταση παλαιών συστημάτων σε νέες πλατφόρμες συχνά αποκαλύπτει διαφθορά δεδομένων CUIT - λείπουσες ψηφίες, λάθος ψηφία ελέγχου ή εντελώς άκυρες μορφές. Η εκτέλεση ολόκληρου του συνόλου δεδομένων μέσω του επαληθευτή βοηθά στον εντοπισμό των εγγραφών που χρειάζονται χειροκίνητη διόρθωση πριν τη μετεγκατάσταση. Σε ένα έργο που αφορούσε πάνω από 50.000 εγγραφές πελατών, αυτή η προσέγγιση εντόπισε περίπου το 3% των άκυρων CUITs που θα προκαλούσαν αποτυχίες συναλλαγών.
Ρύθμιση Περιβάλλοντος Ανάπτυξης
Όταν ρυθμίζετε τοπικά ή προσωρινά περιβάλλοντα για αργεντίνικες εφαρμογές χρηματοοικονομικής τεχνολογίας, χρειάζεστε ρεαλιστικά δεδομένα δοκιμής που δεν θα συγκρουστούν κατά λάθος με πραγματικές πληροφορίες φορολογουμένων. Δημιουργήστε CUITs για διαφορετικούς τύπους οντοτήτων (εταιρείες, ιδιώτες, καταπιστεύματα) για να προσομοιώσετε ρεαλιστικά σενάρια χωρίς νομικό κίνδυνο.
Έλεγχος Ποιότητας για Επικύρωση Φορμών
Η φόρμα εγγραφής σας απορρίπτει σωστά CUITs με λανθασμένα ψηφία ελέγχου; Χειρίζεται CUITs που εισάγονται χωρίς παύλες; Μπορεί να εντοπίσει όταν κάποιος εισάγει CUIL αντί CUIT; Αυτές οι οριακές περιπτώσεις έχουν σημασία όταν επεξεργάζεστε χιλιάδες εγγραφές. Η ύπαρξη ενός επαληθευτή σάς βοηθά να δημιουργήσετε περεταίρω περιπτώσεις δοκιμής.
Κατανόηση Φορολογικών Συστημάτων της Λατινικής Αμερικής
Αν επεκτείνεστε σε πολλές αγορές της Λατινικής Αμερικής, θα συναντήσετε παρόμοια αλλά διακριτά συστήματα φορολογικών ταυτοτήτων - CPF/CNPJ της Βραζιλίας, RUT της Χιλής, NIT της Κολομβίας. Ο αλγόριθμος CUIT δείχνει κοινά πρότυπα: προθέματα τύπου οντότητας, επικύρωση ψηφίων ελέγχου και επαλήθευση με βάση το modulo. Η κατανόηση ενός συστήματος επιταχύνει την εκμάθηση των υπολοίπων.
Παραδείγματα Κώδικα για Επικύρωση και Δημιουργία CUIT
Τα ακόλουθα παραδείγματα κώδικα δείχνουν πώς να υλοποιήσετε επικύρωση και δημιουργία CUIT σε διάφορες γλώσσες προγραμματισμού:
JavaScript
1// Επικύρωση CUIT σε JavaScript
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')); // true ή false
40Python
1# Δημιουργία CUIT σε Python
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'))
43PHP
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?>
41Java
1// Δημιουργία και Επικύρωση CUIT σε Java
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}
95C#
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
Πριν από τη δεκαετία του 1990, η φορολογική ταυτοποίηση στην Αργεντινή ήταν κατακερματισμένη—διαφορετικοί οργανισμοί χρησιμοποιούσαν ασύμβατα συστήματα αρίθμησης, καθιστώντας δύσκολη την παρακολούθηση των φορολογουμένων μεταξύ βάσεων δεδομένων. Η φοροδιαφυγή ήταν διαδεδομένη, εν μέρει επειδή η έλλειψη τυποποίησης καθιστούσε την επιβολή δύσκολη.
Το AFIP εισήγαγε το CUIT στις αρχές της δεκαετίας του 1990 ως μέρος ευρύτερων οικονομικών μεταρρυθμίσεων κατά τη διάρκεια της διοίκησης του Προέδρου Κάρλος Μένεμ. Ο χρόνος συνέπεσε με το σχέδιο μετατρεψιμότητας του νομίσματος της Αργεντινής, το οποίο συνέδεσε το πέσο με το δολάριο των ΗΠΑ και απαιτούσε πιο αυστηρούς δημοσιονομικούς ελέγχους.
Το σύστημα εξελίχθηκε ταχέως:
- Αρχές 1990: Εφαρμόστηκε για επιχειρήσεις και αυτοαπασχολούμενους επαγγελματίες
- Μέσα 1990: Επεκτάθηκε σε εργαζόμενους, δημιουργώντας ένα καθολικό μητρώο φορολογουμένων
- Τέλη 1990: Ενσωματώθηκε με ηλεκτρονική υποβολή—ένα σημαντικό τεχνικό επίτευγμα για την εποχή
- 2000 και μετά: Κατέστη υποχρεωτικό για τραπεζικές συναλλαγές, συμβάσεις εργασίας και τελικά το ηλεκτρονικό εμπόριο
Σήμερα, δεν μπορείτε να ανοίξετε επιχειρηματικό τραπεζικό λογαριασμό, να υπογράψετε σύμβαση εργασίας ή να εκδώσετε ηλεκτρονικά τιμολόγια στην Αργεντινή χωρίς CUIT. Έχει γίνει το θεμελιώδες αναγνωριστικό για ολόκληρη την επίσημη οικονομία, παρόμοιο με τους Αριθμούς Κοινωνικής Ασφάλισης στις Ηνωμένες Πολιτείες—αν και με ισχυρότερες νομικές προστασίες όσον αφορά το απόρρητο και τους περιορισμούς χρήσης σύμφωνα με τον Νόμο Προστασίας Προσωπικών Δεδομένων 25.326 της Αργεντινής.
Συχνές Ερωτήσεις
Τι είναι ο αριθμός CUIT στην Αργεντινή;
Το CUIT (Código Único de Identificación Tributaria) είναι ο φορολογικός αναγνωριστικός αριθμός της Αργεντινής για φυσικά πρόσωπα και επιχειρήσεις. Είναι ένας κωδικός 11 ψηφίων με μορφή XX-XXXXXXXX-X που η AFIP (η ομοσπονδιακή φορολογική αρχή) αναθέτει σε όλους όσους χρειάζεται να διεξάγουν επίσημη οικονομική δραστηριότητα - από το άνοιγμα τραπεζικού λογαριασμού μέχρι την έκδοση τιμολογίων.
Πώς μπορώ να ελέγξω αν ένα CUIT είναι πραγματικό ή πλαστό;
Το εργαλείο μας επικυρώνει τη μαθηματική δομή - σωστή μορφή, έγκυρος κωδικός τύπου οντότητας και ακριβές ψηφίο ελέγχου. Ωστόσο, δεν μπορεί να σας πει αν ένα CUIT είναι καταχωρισμένο στην AFIP. Για επίσημη επαλήθευση, χρησιμοποιήστε την υπηρεσία Constancia de Inscripción της AFIP που ερευνά τη βάση δεδομένων τους. Σκεφτείτε το εργαλείο μας σαν διόρθωση ορθογραφίας: εντοπίζει μορφοποιητικά σφάλματα αλλά δεν επαληθεύει την αυθεντικότητα.
Ποια είναι η διαφορά μεταξύ CUIT και CUIL;
Και τα δύο χρησιμοποιούν πανομοιότυπη 11-ψήφια μορφή και τον ίδιο αλγόριθμο επικύρωσης. Η διάκριση:
- CUIT: Για φορολογούμενους που διεξάγουν οικονομικές δραστηριότητες (επιχειρήσεις, αυτοαπασχολούμενοι επαγγελματίες, freelancers)
- CUIL: Για εργαζόμενους υπό εργασιακή σύμβαση χωρίς ανεξάρτητες επιχειρηματικές λειτουργίες
Στην πράξη, πολλοί άνθρωποι χρησιμοποιούν το CUIL τους όταν τους ζητείται CUIT σε έντυπα, και τα συστήματα συχνά δέχονται και τα δύο εναλλακτικά. Η τεχνική διαφορά έχει μεγαλύτερη σημασία σε νομικά και λογιστικά πλαίσια παρά στην καθημερινή χρήση.
Μπορώ να χρησιμοποιήσω παραγόμενα CUIT για πραγματικές συναλλαγές;
Σε καμία περίπτωση. Τα παραγόμενα CUIT είναι μαθηματικά έγκυρα αλλά δεν είναι καταχωρισμένα στην AFIP. Η χρήση τους σε επίσημα έγγραφα, συμβόλαια ή φορολογικές δηλώσεις είναι απάτη σύμφωνα με το νόμο της Αργεντινής. Χρησιμοποιήστε τα μόνο για:
- Ανάπτυξη λογισμικού και δοκιμές
- Περιβάλλοντα QA και σταδιακής ανάπτυξης
- Εκπαιδευτικές επιδείξεις
- Επικύρωση ακεραιότητας δεδομένων
Γιατί ο κωδικός τύπου 30 ισχύει για πολλούς τύπους οντοτήτων;
Η AFIP απλοποίησε την ταξινόμηση οντοτήτων ομαδοποιώντας παρόμοιες οντότητες υπό τον κωδικό 30 (εταιρείες, ιδρύματα, κρατικοί φορείς, καταπιστεύματα). Η πραγματική διάκριση τύπου οντότητας συμβαίνει στο εσωτερικό σύστημα καταχώρισης της AFIP, όχι στο ίδιο το CUIT. Αυτή η σχεδιαστική επιλογή έδωσε προτεραιότητα στην απλότητα έναντι της λεπτομερούς ταξινόμησης - μια ισορροπία που καθιστά το σύστημα ευκολότερο στην υλοποίηση αλλά λιγότερο αυτοεπεξηγηματικό.
(Η μετάφραση συνεχίζεται στο επόμενο μέρος...)
Επίσημες Αναφορές και Περαιτέρω Ανάγνωση
-
Ομοσπονδιακή Διοίκηση Δημοσίων Εσόδων (AFIP) - Επίσημη φορολογική αρχή της Αργεντινής https://www.afip.gob.ar/
-
Πιστοποιητικό Εγγραφής AFIP - Επίσημη υπηρεσία επαλήθευσης CUIT https://www.afip.gob.ar/genericos/consultaCUIT/
-
Νόμος 11.683 περί Φορολογικής Διαδικασίας - Νόμος φορολογικής διαδικασίας που καθορίζει τις απαιτήσεις CUIT Επίσημο Δελτίο της Αργεντινής Δημοκρατίας
-
Γενική Απόφαση AFIP 1817/2005 - Διαδικασίες εγγραφής και ταυτοποίησης Επίσημη τεκμηρίωση AFIP
-
Νόμος 25.326 περί Προστασίας Προσωπικών Δεδομένων - Νόμος προστασίας προσωπικών δεδομένων που διέπει τη χρήση CUIT https://www.argentina.gob.ar/aaip/datospersonales
-
Οικονομική Επιτροπή των Ηνωμένων Εθνών για τη Λατινική Αμερική και την Καραϊβική - "Φορολογική Πολιτική στη Λατινική Αμερική: Αξιολόγηση και Κατευθυντήριες Γραμμές για Μεταρρύθμιση" Gómez Sabaini, J.C., & Morán, D. (2016) - Συγκριτική ανάλυση φορολογικών συστημάτων συμπεριλαμβανομένης της Αργεντινής
-
Περιοδικό Διοίκησης Φορολογίας - Έρευνα σε συστήματα φορολογικής ταυτοποίησης και αλγόριθμους ψηφίων ελέγχου https://www.jota.website/
Ξεκινήστε με την Επικύρωση CUIT
Είτε δημιουργείτε μια πύλη πληρωμών για Αργεντινούς εμπόρους, μεταφέρετε παλαιές βάσεις δεδομένων πελατών ή ελέγχετε τη συμμόρφωση της πλατφόρμας ηλεκτρονικού εμπορίου σας με τις απαιτήσεις του AFIP, αυτό το εργαλείο σας βοηθά να εργαστείτε με CUITs με αυτοπεποίθηση.
Δημιουργήστε δοκιμαστικά δεδομένα που δεν θα καταρρεύσουν το περιβάλλον σταδιοδρομίας σας. Επικυρώστε σύνολα δεδομένων πριν από τη μετεγκατάσταση. Κατανοήστε τον αλγόριθμο πίσω από το φορολογικό σύστημα αναγνώρισης της Αργεντινής.
Καμία κλείδα API. Κανένα όριο ρυθμού. Καμία περιττή λειτουργία. Απλώς αξιόπιστη δημιουργία και επικύρωση CUIT όταν το χρειάζεστε.