உள்ளடக்கத்திற்கு செல்

அர்ஜெண்டீனா 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 என்றால் என்ன மற்றும் அது ஏன் முக்கியம்?

அர்ஜெண்டீனாவில் ஒவ்வொரு நபரும் மற்றும் வணிகமும் AFIP (கூட்டுத் தேசிய பொது வருமான நிர்வாகம்) வரி அதிகாரத்துடன் தொடர்பு கொள்ள CUIT (ஒரு தனிப்பட்ட வரி அடையாள எண்) தேவைப்படுகிறது. இதை அர்ஜெண்டீனாவின் வரி அடையாள அல்லது EIN வடிவமாக நினைத்துக் கொள்ளுங்கள் - CUIT இல்லாமல் எந்த அதிகாரப்பூர்வ வணிக பரிவர்த்தனைகளும், வங்கிக் கணக்குகளும், வரி தாக்கல்களும் இல்லை.

அர்ஜெண்டீன நிதி தரவை கையாளும் பயன்பாடுகளை உருவாக்கும்போது, நீங்கள் வேகமாக சரிபார்ப்பு சிக்கல்களை சந்திப்பீர்கள். CUIT சரியான வடிவத்தை பின்பற்றுகிறதா? சரிபார்ப்பு இலக்கம் சரியாக கணக்கிடப்பட்டுள்ளதா? சோதனைக்கான எந்த அமைப்பு வகை குறியீட்டைப் பயன்படுத்த வேண்டும்? இந்த கேள்விகள் மேம்பாட்டு மற்றும் QA சோதனை நேரத்தில் தொடர்ந்து வருகின்றன.

பொதுவாக நிகழ்வது என்னவெனில் டெவலப்பர்கள் CUIT சரிபார்ப்பை முற்றிலும் தவிர்க்கின்றனர் (தரவு நம்பகத்தன்மை சிக்கல்கள் ஏற்படும் அபாயம்) அல்லது கணிப்பில் சரியாக இல்லாத சோதனை எண்கள் கையாக உருவாக்குவதில் நேரத்தை வீணாக்குகின்றனர். இந்த கருவி இரண்டு பிரச்சினைகளையும் தீர்க்கிறது - எந்த அமைப்பு வகைக்கும் சரியாக வடிவமைக்கப்பட்ட CUIT-ஐ உருவாக்குவதன் மூலமும் அர்ஜெண்டீனாவின் அதிகாரப்பூர்வ வழிமுறைக்கு எதிராக நிலுவையிலுள்ள எண்களை சரிபார்ப்பதன் மூலமும்.

CUIT எண்கள் எவ்வாறு அமைக்கப்பட்டுள்ளன

அர்ஜெண்டினாவின் CUIT வடிவம் 11 இலக்கங்கள் கொண்ட ஒரு குறிப்பிட்ட மாதிரியில் அமைந்துள்ளது: XX-XXXXXXXX-X

இதை பிரிக்கும்போது:

  1. முதல் 2 இலக்கங்கள்: நிறுவன வகை குறிகாட்டி (ஆண்களுக்கு 20, பெண்களுக்கு 27, நிறுவனங்களுக்கு 30 போன்ற)
  2. அடுத்த 8 இலக்கங்கள்: தனித்துவமான அடையாள எண்
  3. இறுதி இலக்கம்: மாடுலோ 11 கணக்கீட்டின் மூலம் கணக்கிடப்பட்ட சரிபார்ப்பு இலக்கம் - இது பெரும்பாலான தட்டச்சு பிழைகளையும் தரவு நுழைவு பிழைகளையும் கண்டறிகிறது

இந்த வடிவமைப்பில் சுவாரஸ்யமான விஷயம்: சரிபார்ப்பு இலக்கம் தற்செயலாக இல்லை. இது முதல் 10 இலக்கங்கள் மூலம் நிறைக்கப்பட்ட பெருக்கல் மூலம் கணக்கிடப்படுகிறது, இதன் மூலம் தரவுத்தளத்தைக் கேட்காமலேயே தவறான எண்களை உடனடியாக அடையாளம் காண முடியும். லத்தீன் அமெரிக்க வரி அமைப்புகளுடன் பணிபுரிந்த அனுபவத்தில், இந்த வாடிக்கையாளர் பக்க சரிபார்ப்பு திறன் API அழைப்புகளைக் குறைக்கவும் படிவ சரிபார்ப்பை மேம்படுத்தவும் உதவுகிறது.

CUIT வகை குறியீடுகள்

CUIT இன் முதல் இரண்டு இலக்கங்கள் வரி செலுத்துபவரின் வகையைக் குறிக்கின்றன:

நிறுவன வகைவகை குறியீடுவிளக்கம்
நிறுவனம்30கார்ப்பரேஷன்கள், LLCs மற்றும் பிற வணிக நிறுவனங்கள்
சங்கம்33இலாப நோக்கமற்ற சங்கங்கள்
அறக்கட்டளை30பொது நன்கொடை அறக்கட்டளைகள்
சமுதாயம்30கூட்டு மற்றும் பிற சமுதாய அமைப்புகள்
அரசாங்கம்30அரசாங்க நிறுவனங்கள் மற்றும் பொது நிறுவனங்கள்
வெளிநாட்டு நிறுவனம்30அர்ஜெண்டினாவிற்கு வெளியே அமைந்த நிறுவனங்கள்
தனிநபர் (ஆண்)20ஆண் தனிநபர்கள்
தனிநபர் (பெண்)27பெண் தனிநபர்கள்
நம்பிக்கை30நம்பிக்கை நிறுவனங்கள்

வெவ்வேறு சோதனை scenarios-ற்கான சரியான CUIT-கள் உருவாக்கப்பட பல்வேறு வகை குறியீடுகளைப் புரிந்துகொள்வது அவசியம்.

CUIT ஜெனரேட்டர் மற்றும் வாலிடேட்டரைப் பயன்படுத்துதல்

சோதனை CUIT-கள் உருவாக்குதல்

உங்கள் அமைப்பு வகையை (நிறுவனம், தனிநபர், சங்கம் போன்றவை) டிராப்டவுனில் இருந்து தேர்வு செய்து, "CUIT ஜெனரேட்" பொத்தானைக் கிளிக் செய்யவும். நீங்கள் சரியான சரிபார்ப்பு இலக்கத்துடன் சரியாக வடிவமைக்கப்பட்ட எண்ணைப் பெறுவீர்கள், இதை உங்கள் சோதனை தொகுப்பில் நகலெடுக்கலாம்.

ஒரு பொதுவான scenario: நீங்கள் ஒரு அர்ஜென்டைன் மின்வணிக தளத்திற்கான பயனர் பதிவுப் படிவத்தை உருவாக்குகிறீர்கள். வெவ்வேறு அமைப்பு வகைகளை - தனி உரிமையாளர்கள் (தனிநபர்கள்), கார்ப்பரேட் நிறுவனங்கள் மற்றும் வெளிநாட்டு நிறுவனங்கள் - எவ்வாறு சிஸ்டம் கையாள்கிறது என்பதைச் சோதிக்க வேண்டும். சரிபார்ப்பு இலக்கங்களை கைமுறையாகக் கணக்கிடுவதற்கோ அல்லது தவறான சோதனை தரவுக்கு அபாயம் ஏற்படுத்துவதற்கோ பதிலாக, ஒவ்வொரு வகைக்கும் CUIT-களை சில நிமிடங்களில் ஜெனரேட் செய்யவும்.

முக்கிய வரம்பு: இவை கணிதப்பூர்வமாக சரியானவை ஆனால் AFIP-யில் பதிவு செய்யப்படவில்லை. இவற்றை வெறுமனே சோதனை, மேம்பாடு மற்றும் கல்வி நோக்கங்களுக்கு மட்டுமே பயன்படுத்தவும் - ஒருபோதும் அதிகாரப்பூர்வ ஆவணங்கள் அல்லது உண்மையான பரிவர்த்தனைகளுக்கு அல்ல. கற்பனை வரி அடையாளங்களை உண்மையான வணிகத்திற்குப் பயன்படுத்துவது அர்ஜென்டைன் சட்டத்தின் கீழ் மோசடி ஆகும்.

CUIT எண்கள் சரிபார்ப்பு

CUIT-ஐ சரிபார்ப்பு புலத்தில் ஒட்டவும் அல்லது தட்டச்சு செய்யவும் மற்றும் "CUIT சரிபார்ப்பு" பொத்தானைக் கிளிக் செய்யவும். கருவி உடனடியாகச் சரிபார்க்கிறது:

  1. வடிவமைப்பு இணக்கம்: XX-XXXXXXXX-X அமைப்பைப் பின்பற்றுகிறதா?
  2. சரிபார்ப்பு இலக்கம் துல்லியம்: இறுதி இலக்கம் கணிதப்பூர்வமாக சரியானதா?
  3. அமைப்பு வகை சரிபார்ப்பு: அங்கீகரிக்கப்பட்ட குறியீட்டில் (20, 27, 30, 33) தொடங்குகிறதா?

இது உங்களுக்குச் சொல்லாது: CUIT AFIP-யில் உண்மையில் பதிவு செய்யப்பட்டுள்ளதா. அதற்கு, நீங்கள் AFIP-யின் அதிகாரப்பூர்வ பதிவுச் சான்றிதழ் சேவையைப் பயன்படுத்த வேண்டும், இது அவர்களின் வரிசெலுத்துநர் தரவுத்தளத்தைக் கேட்கிறது. நமது சரிபார்ப்பி வெறுமனே கணிதப்பூர்வ சரியைப் பரிசீலிக்கிறது - இதை தரவுத்தள தேடல் அல்ல, தொடரியல் சரிபார்ப்பு என்று நினைத்துக் கொள்ளுங்கள்.

சரிபார்ப்பு இலக்க வழிமுறை எவ்வாறு வேலை செய்கிறது

CUIT ஒரு நிறுவப்பட்ட மொடுலோ-11 வழிமுறையைப் பயன்படுத்தி தரவு நுழைவு பிழைகளைக் கண்டறிகிறது. பல்வேறு சர்வதேச அடையாள அமைப்புகளில் இதே கணக்கீட்டு அணுகுமுறை பயன்படுத்தப்படுகிறது - ISBN நூல் குறியீடுகள், கடன் அட்டை எண்கள் (லுன் வழிமுறை), மற்றும் ஐரோப்பிய வாட் எண்கள் அனைத்தும் இதேபோன்ற சரிபார்ப்பு இலக்க தர்க்கத்தைச் சார்ந்துள்ளன.

இங்கே படிப்படியான செயல்முறை:

  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% ஐக் கண்டறிகிறது - அடையாள எண்கள் கைமுறையாக நுழைக்கும்போது மிகவும் பொதுவான இரண்டு பிழைகள்.

எடுத்துக்காட்டு கணக்கீடு

30 வகை குறியீடு மற்றும் அடையாள எண் 12345678 கொண்ட CUIT இன் சரிபார்ப்பு இலக்கத்தைக் கணக்கிடுவோம்:

  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.

உண்மை உலக பயன்பாட்டு சூழல்கள்

நிதி பயன்பாட்டுத் தளங்களை உருவாக்கும்போது

அர்ஜென்டீன் வியாபாரிகளுக்கான கட்டண செயலாக்கத்தைச் சோதிக்கிறீர்களா? உங்கள் சோதனைக் கணக்குகளுக்கு CUITs தேவைப்படும். நான் அடிக்கடி பார்த்த ஒரு பொதுவான தவறு: உருவாக்குநர்கள் "11-11111111-1" போன்ற தெளிவாகத் தவறான எண்களைப் பயன்படுத்துகிறார்கள், இவை அடிப்படை வடிவமைப்பு சோதனைகளைத் தாண்டுகின்றன ஆனால் நிறுவன வகை குறியீடுகளைச் சரிபார்க்கும் கட்டண நுழைவாயில்களுடன் ஒருங்கிணைக்கும்போது தோல்வியடைகின்றன. சரியான வகை குறியீடுகளுடன் (நிறுவனங்களுக்கு 30, தனிநபர்களுக்கு 20/27) சரியாக உருவாக்கப்பட்ட சோதனை CUITs ஐப் பயன்படுத்துவது மேம்பாட்டின் போது இந்த ஒருங்கிணைப்பு சிக்கல்களைக் கண்டறிய உதவுகிறது.

தரவு இடப்பெயர்ச்சி மற்றும் தரத்தின் தணிக்கை

பாரம்பரிய அமைப்புகளை புதிய தளங்களுக்கு இடப்பெயர்ச்சி செய்யும்போது அடிக்கடி CUIT தரவு சிதைவு வெளிப்படுகிறது - எண்கள் இல்லாமல் போதல், தவறான சரிபார்ப்பு எண்கள் அல்லது முற்றிலும் தவறான வடிவமைப்புகள். முழு தரவுத் தொகுப்பையும் சரிபார்ப்பாளர் வழியாக ஓட்டுவது, இடப்பெயர்ச்சிக்கு முன் கைமுறையாகத் திருத்தப்பட வேண்டிய பதிவுகளைக் கண்டறிய உதவுகிறது. 50,000+ வாடிக்கையாளர் பதிவுகளைக் கொண்ட ஒரு திட்டத்தில், இந்த அணுகுமுறை சுமார் 3% தவறான CUITs ஐக் கண்டறிந்தது, இவை பரிவர்த்தனை தோல்விகளை ஏற்படுத்தியிருக்கும்.

மேம்பாட்டு சூழல் அமைப்பு

அர்ஜென்டீன் நிதி தொழில்நுட்ப பயன்பாடுகளுக்கான உள்ளமைவு அல்லது நிலைப்படுத்தல் சூழல்களை அமைக்கும்போது, நிஜ வரி வழங்குநர் தகவலுடன் தற்செயலாகப் பொருந்தாத யதார்த்தமான சோதனைத் தரவு தேவைப்படுகிறது. வெவ்வேறு நிறுவன வகைகளுக்கான (நிறுவனங்கள், தனிநபர்கள், நம்பிக்கைகள்) CUITs ஐ உருவாக்கி சட்ட அபாயமின்றி நிஜ உலக காட்சிகளைச் சிமுலேட் செய்யுங்கள்.

படிவ சரிபார்ப்பிற்கான QA சோதனை

உங்கள் பதிவுப் படிவம் தவறான சரிபார்ப்பு எண்கள் கொண்ட CUITs ஐ சரியாகத் தள்ளுகிறதா? தட்டச்சு செய்யப்பட்ட CUITs ஐ தட்டச்சு அல்லாமல் கையாளுகிறதா? CUIL ஐ CUIT ஆக மாற்ற முடிகிறதா? நீங்கள் ஆயிரக்கணக்கான பதிவுகளைச் செயல்படுத்தும்போது இந்த விளிம்பு நிலைமைகள் முக்கியமாக அமைகின்றன. சரிபார்ப்பாளரைக் கைவசம் வைத்திருப்பது விரிவான சோதனைக் கேஸ்கள் வடிவமைக்க உதவுகிறது.

லத்தீன அமெரிக்க வரி அமைப்புகளைப் புரிந்துகொள்ளல்

நீங்கள் பல லத்தீன அமெரிக்க சந்தைகளுக்கு விரிவாக்கம் செய்கிறீர்கள் என்றால், நீங்கள் ஒத்த ஆனால் வேறுபட்ட வரி அடையாள அமைப்புகளைச் சந்திப்பீர்கள் - பிரேசிலின் CPF/CNPJ, சிலியின் RUT, கொலம்பியாவின் NIT. CUIT வழிமுறை பொதுவான முன்னுரிமைகளைக் காட்டுகிறது: நிறுவன வகை முன்னுரிமைகள், சரிபார்ப்பு எண் சரிபார்ப்பு மற்றும் மாடுலோ-அடிப்படையிலான சரிபார்ப்பு. ஒரு அமைப்பைப் புரிந்துகொள்வது மற்ற அமைப்புகளைக் கற்பதை துரிதப்படுத்துகிறது.

CUIT சரிபார்ப்பு மற்றும் உருவாக்கத்திற்கான கோட் எடுத்துக்காட்டுகள்

பின்வரும் கோட் எடுத்துக்காட்டுகள் பல்வேறு நscheduling மொழிகளில் CUIT சரிபார்ப்பு மற்றும் உருவாக்கத்தை எவ்வாறு செயல்படுத்துவது என்பதைக் காட்டுகின்றன:

JavaScript

1// JavaScript இல் 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')); // true அல்லது false
40

Python

1# Python இல் 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// PHP இல் CUIT சரிபார்ப்பு
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

Java

1// Java இல் 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 இலக்கங்கள் இல்லையெனில் மூல CUIT ஐ திருப்பு
57        }
58        
59        return $"{cleanCuit.Substring(0, 2)}-{cleanCuit.Substring(2, 8)}-{cleanCuit.Substring(10, 1)}";
60    }
61}
62

பின்னணி: அர்ஜெண்டீனா CUIT அமைப்பை ஏன் கையாண்டது

1990 களுக்கு முன்பு, அர்ஜெண்டீனாவின் வரி அடையாள அமைப்பு பிரிந்திருந்தது - வெவ்வேறு நிறுவனங்கள் பொருந்தாத எண் அமைப்புகளைப் பயன்படுத்தி, வரி செலுத்துபவர்களை தரவுத்தளங்களில் கண்காணிப்பது கடினமாக இருந்தது. வரி ஏய்ப்பு பரவலாக நடந்தது, இந்த தரப்படுத்தப்படாத அமைப்பின் காரணமாக அமல்படுத்தல் சவாலாக இருந்தது.

AFIP 1990 களின் தொடக்கத்தில் அதிபர் கார்லோஸ் மெனெம் நிர்வாகத்தின் பொருளாதார சீர்திருத்தங்களின் ஒரு பகுதியாக CUIT-ஐ அறிமுகப்படுத்தியது. இந்த நேரம் அர்ஜெண்டீனாவின் நாணய மாற்று திட்டத்துடன் ஒத்திருந்தது, இது பெசோவை அமெரிக்க டாலருடன் இணைத்து மிகவும் கடுமையான நிதி கட்டுப்பாடுகளை தேவைப்படுத்தியது.

அமைப்பு வேகமாக வளர்ந்தது:

  • ஆரம்ப 1990 கள்: வணிகங்கள் மற்றும் சுயமாக வேலை செய்யும் தொழில் நிபுணர்களுக்கு அறிமுகப்படுத்தப்பட்டது
  • நடுத்தர 1990 கள்: ஊழியர்களுக்கு நீட்டிக்கப்பட்டு, ஒரு சர்வலோக வரி செலுத்துபவர் பதிவேடு உருவாக்கப்பட்டது
  • பிற்பகுதி 1990 கள்: மின்னணு தாக்கல் உடன் ஒருங்கிணைக்கப்பட்டது - அக்கால கட்டத்திற்கு ஒரு குறிப்பிடத்தக்க தொழில்நுட்ப சாதனை
  • 2000 மற்றும் அதற்கு பிறகு: வங்கி, வேலை ஒப்பந்தங்கள் மற்றும் இறுதியில் மின்வணிகத்திற்கு கட்டாயமாக்கப்பட்டது

இன்று, அர்ஜெண்டீனாவில் ஒரு வணிக வங்கிக் கணக்கைத் திறக்கவோ, வேலை ஒப்பந்தத்தில் கையெழுத்திடவோ அல்லது மின்னணு பில்கள் வெளியிடவோ CUIT இல்லாமல் முடியாது. இது அமெரிக்காவில் சமூக பாதுகாப்பு எண்கள் செய்வது போல் முழு அதிகார பொருளாதாரத்தின் அடிப்படை அடையாளமாக மாறியுள்ளது - அர்ஜெண்டீனாவின் தனிப்பட்ட தரவு பாதுகாப்பு சட்டம் 25,326 இன் கீழ் தனியுரிமை மற்றும் பயன்பாட்டு கட்டுப்பாடுகளுடன் மிகவும் வலுவான சட்ட பாதுகாப்புகளுடன்.

அடிக்கடி கேட்கப்படும் கேள்விகள்

அர்ஜெண்டீனாவில் CUIT எண் என்றால் என்ன?

CUIT (Código Único de Identificación Tributaria) அர்ஜெண்டீனாவின் தனிநபர்கள் மற்றும் வணிகங்களுக்கான வரி அடையாள எண் ஆகும். இது AFIP (கூட்டாட்சி வரி அதிகாரம்) வழங்கும் 11 இலக்க குறியீடு XX-XXXXXXXX-X வடிவத்தில் வரும், மேலும் வங்கிக் கணக்கைத் திறப்பது முதல் விலைப்பட்டியல் வெளியிடுவது வரை அனைத்து அதிகார பூர்வ பொருளாதார நடவடிக்கைகளுக்கும் தேவைப்படுகிறது.

ஒரு CUIT உண்மையானதா அல்லது போலியானதா என்பதை எப்படி சரிபார்ப்பது?

நமது கருவி கணித அமைப்பை சரிபார்க்கிறது - சரியான வடிவம், சரியான அமைப்பு குறியீடு மற்றும் துல்லிய சரிபார்ப்பு இலக்கம். இருப்பினும், AFIP-யில் CUIT பதிவு செய்யப்பட்டுள்ளதா என்பதை சொல்ல முடியாது. அதிகாரப்பூர்வ சரிபார்ப்புக்கு, AFIP-யின் பதிவுச் சான்றிதழ் சேவை ஐப் பயன்படுத்தவும் இது அவர்கள் தரவுத்தளத்தை வினவும். நமது கருவியை எழுத்துப் பிழை சரிபார்ப்பு போல நினையுங்கள்: இது வடிவமைப்பு பிழைகளைக் கண்டறிகிறது ஆனால் உண்மைத்தன்மையை சரிபார்க்காது.

CUIT மற்றும் CUIL-இல் உள்ள வேறுபாடு என்ன?

இரண்டும் ஒரே 11 இலக்க வடிவத்தையும் ஒரே சரிபார்ப்பு வழிமுறையையும் பயன்படுத்துகின்றன. வேறுபாடு:

  • CUIT: பொருளாதார நடவடிக்கைகளில் ஈடுபடும் வரிசெலுத்துநர்கள் (வணிகங்கள், சுயமாக வேலை செய்யும் தொழிலாளர்கள், சுதந்திர தொழிலாளர்கள்)
  • CUIL: சுதந்திர வணிக நடவடிக்கைகளின்றி தொழிற்பட்டியல் ஒப்பந்தத்தின் கீழ் வேலை செய்யும் ஊழியர்கள்

நடைமுறையில், பல மக்கள் CUIT கேட்கப்பட்ட படிவங்களில் தங்கள் CUIL ஐப் பயன்படுத்துகிறார்கள் மற்றும் அமைப்புகள் பெரும்பாலும் இரண்டையும் மாற்றிப் பயன்படுத்துகின்றன. தொழில்நுட்ப வேறுபாடு சட்ட மற்றும் கணக்கியல் சூழல்களில் அதிக முக்கியத்துவம் வாய்ந்தது தன்றி அன்றாட பயன்பாட்டில் அல்ல.

நான் உருவாக்கப்பட்ட CUIT-ஐ உண்மையான பரிவர்த்தனைகளுக்குப் பயன்படுத்தலாமா?

கண்டிப்பாக இல்லை. உருவாக்கப்பட்ட CUIT-கள் கணிதப்பூர்வமாக சரியானவை ஆனால் AFIP-யில் பதிவு செய்யப்படவில்லை. அவற்றை அதிகாரப்பூர்வ ஆவணங்கள், ஒப்பந்தங்கள் அல்லது வரி தாக்கல்களுக்குப் பயன்படுத்துவது அர்ஜெண்டீன் சட்டத்தின் கீழ் மோசடி ஆகும். அவற்றைப் பயன்படுத்தலாம்:

  • மென்பொருள் மேம்பாடு மற்றும் சோதனை
  • தரக் கட்டுப்பாடு மற்றும் நிலை சூழல்கள்
  • கல்வி வெளிப்பாடுகள்
  • தரவு நம்பகத்தன்மை சரிபார்ப்பு

30 வகை குறியீடு பல்வேறு அமைப்பு வகைகளுக்கு ஏன் பொருந்தும்?

AFIP வகை வகைப்பாட்டை எளிமைப்படுத்தியுள்ளது, ஒரே வகை 30 (நிறுவனங்கள், அறக்கட்டளைகள், அரசாங்க நிறுவனங்கள், நம்பிக்கை நிதிகள்) கீழ் ஒத்த அமைப்புகளை குழுமியுள்ளது. உண்மையான அமைப்பு வகை வேறுபாடு 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. ஐக்கிய நாடுகள் ECLAC - "லத்தீன் அமெரிக்காவில் வரி கொள்கை: மதிப்பீடு மற்றும் சீர்திருத்த வழிகாட்டுதல்கள்" கோமெஸ் சபாய்னி, J.C., & மொரான், D. (2016) - அர்ஜெண்டீனா உள்ளிட்ட வரி அமைப்புகளின் ஒப்பீட்டு பகுப்பாய்வு

  7. வரி நிர்வாக இதழ் - வரி அடையாள அமைப்புகள் மற்றும் சரிபார்ப்பு இலக்க வழிமுறைகள் பற்றிய ஆராய்ச்சி https://www.jota.website/

அர்ஜெண்டீன CUIT சரிபார்ப்பு தொடங்குங்கள்

அர்ஜெண்டீன வியாபாரிகளுக்கான கட்டண நுழைவாயில் உருவாக்குகிறீர்களா, பழைய வாடிக்கையாளர் தரவுத்தளங்களை இடம்பெயர்க்கிறீர்களா, அல்லது உங்கள் மின்வாணிப தளத்தின் AFIP தேவைகளுக்கு இணக்கத்தை சோதிக்கிறீர்களா, இந்த கருவி உங்களுக்கு CUIT-யுடன் நம்பிக்கையுடன் வேலை செய்ய உதவுகிறது.

உங்கள் நிலைமை சூழலை உடைக்காத சோதனை தரவை உருவாக்குங்கள். இடம்பெயர்ப்பிற்கு முன் தரவுத்தொகுப்புகளை சரிபார்க்கவும். அர்ஜெண்டீன வரி அடையாள அமைப்பின் பின்னணி நுட்பத்தை புரிந்துகொள்ளுங்கள்.

எந்த API விசைகள் இல்லை. எந்த வரம்பு வரம்புகள் இல்லை. எந்த அவசியமற்ற அம்சங்கள் இல்லை. நீங்கள் தேவைப்படும்போது மட்டுமே நம்பகமான CUIT உருவாக்கம் மற்றும் சரிபார்ப்பு.