Gerador e Validador de CUIT/CUIL Argentino
Gere números de CUIT/CUIL argentinos válidos para testes ou valide os existentes. Ferramenta simples para desenvolvedores que trabalham com números de identificação fiscal e trabalhista argentinos.
Gerador de CUIT/CUIL
Digite um número de DNI de 8 dígitos ou use o gerador aleatório
CUIT/CUIL Gerado
Documentação
Gerador e Validador de CUIT/CUIL Argentino
Introdução
O CUIT (Clave Única de Identificação Tributária) e o CUIL (Clave Única de Identificação Laboral) argentinos são números de identificação únicos usados na Argentina para fins fiscais e de emprego, respectivamente. Esses códigos de 11 dígitos são essenciais para indivíduos e empresas operarem legalmente dentro do sistema econômico argentino. Nossa ferramenta de Gerador e Validador de CUIT/CUIL fornece uma maneira simples e eficiente de gerar números de CUIT/CUIL válidos para fins de teste e validar números existentes para garantir que estejam em conformidade com o formato oficial e o algoritmo de verificação.
Se você é um desenvolvedor testando aplicativos que manipulam IDs fiscais argentinos, um especialista em QA verificando a funcionalidade do sistema, ou simplesmente precisa entender como esses números de identificação funcionam, esta ferramenta oferece uma solução direta sem complexidades desnecessárias. A ferramenta possui duas funções principais: um gerador que cria números de CUIT/CUIL válidos aleatoriamente ou com base em parâmetros específicos, e um validador que verifica se um determinado número de CUIT/CUIL segue as regras de formato e cálculo corretas.
Estrutura e Cálculo do CUIT/CUIL
Entendendo o Formato
Um número de CUIT/CUIL válido consiste em 11 dígitos normalmente exibidos no formato XX-XXXXXXXX-X:
-
Código do Tipo (primeiros 2 dígitos): Indica o tipo de entidade
- 20, 23, 24: Indivíduos do sexo masculino (CUIL)
- 27: Indivíduos do sexo feminino (CUIL)
- 30, 33, 34: Empresas e organizações (CUIT)
-
Número do DNI (8 dígitos do meio): Para indivíduos, este é o número do documento de identidade nacional (DNI), preenchido com zeros à esquerda, se necessário, para alcançar 8 dígitos. Para empresas, este é um número único atribuído.
-
Dígito de Verificação (último dígito): Um dígito de verificação calculado usando um algoritmo específico para validar todo o número.
Cálculo do Dígito de Verificação
O dígito de verificação é calculado usando o seguinte algoritmo:
- Pegue os primeiros 10 dígitos do CUIT/CUIL (código do tipo + DNI)
- Multiplique cada dígito por um peso correspondente desta sequência: 5, 4, 3, 2, 7, 6, 5, 4, 3, 2
- Some todos os produtos resultantes
- Calcule 11 menos o resto da soma dividido por 11
- Se o resultado for 11, o dígito de verificação é 0
- Se o resultado for 10, o dígito de verificação é 9
- Caso contrário, o resultado é o dígito de verificação
Matematicamente, isso pode ser expresso como:
Onde:
- é o dígito de verificação
- é o -ésimo dígito dos primeiros 10 dígitos
- é o peso correspondente da sequência [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
- Casos especiais: se então , se então
Guia Passo a Passo
Usando o Gerador
-
Selecione a aba "Gerador" na parte superior da interface da ferramenta.
-
Escolha um Código do Tipo no menu suspenso:
- 20: Masculino (CUIL)
- 23: Empresa (CUIT)
- 24: Empresa Temporária (CUIT)
- 27: Feminino (CUIL)
- 30: Corporação (CUIT)
- 33: Associação Civil (CUIT)
- 34: Fundação (CUIT)
-
Insira um Número de DNI (opcional):
- Digite um número de DNI de 8 dígitos no campo fornecido
- Se deixado em branco, a ferramenta usará um DNI gerado aleatoriamente
- Se você inserir menos de 8 dígitos, o sistema preencherá com zeros à esquerda
-
Gerar DNI Aleatório (opcional):
- Clique no botão "Aleatório" para gerar um número de DNI de 8 dígitos aleatório
-
Visualize o CUIT/CUIL Gerado:
- A ferramenta exibe automaticamente um CUIT/CUIL válido com base em suas entradas
- O formato será XX-XXXXXXXX-X com o dígito de verificação correto
-
Copie o Resultado:
- Clique no ícone de copiar para copiar o CUIT/CUIL gerado para sua área de transferência
- Uma mensagem de confirmação aparecerá quando copiado com sucesso
Usando o Validador
-
Selecione a aba "Validador" na parte superior da interface da ferramenta.
-
Insira o CUIT/CUIL para Validar:
- Digite o CUIT/CUIL no formato XX-XXXXXXXX-X
- A ferramenta formatará automaticamente sua entrada com hífens enquanto você digita
- Você também pode inserir o número sem hífens (XXXXXXXXXXX)
-
Clique no botão "Validar":
- A ferramenta verificará o formato, o código do tipo e o dígito de verificação
-
Visualize o Resultado da Validação:
- Para números de CUIT/CUIL válidos, uma mensagem de sucesso em verde aparecerá
- Para números inválidos, uma mensagem de erro em vermelho explicará o problema:
- Formato inválido (deve ser XX-XXXXXXXX-X)
- Código do tipo inválido (deve ser um dos: 20, 23, 24, 27, 30, 33, 34)
- Dígito de verificação inválido
-
Informações Adicionais:
- Para números válidos, a ferramenta exibe uma análise dos componentes:
- Código do tipo e seu significado
- Número do DNI
- Dígito de verificação
- Para números válidos, a ferramenta exibe uma análise dos componentes:
Casos de Uso
Desenvolvimento e Testes
-
Desenvolvimento de Software: Gere números de CUIT/CUIL válidos para testar aplicativos que lidam com identificação fiscal argentina, como:
- Plataformas de e-commerce
- Software de contabilidade
- Sistemas de gestão de RH
- Portais de serviços governamentais
- Aplicativos bancários
-
População de Banco de Dados: Crie dados de teste realistas para sistemas que armazenam informações de usuários argentinos, garantindo que as restrições e regras de validação do banco de dados funcionem corretamente.
-
Teste de Validação de Formulários: Teste a validação de entrada para formulários da web que coletam informações de CUIT/CUIL, verificando se mensagens de erro apropriadas aparecem para entradas inválidas.
-
Teste de API: Gere cargas úteis válidas para endpoints de API que requerem números de CUIT/CUIL, garantindo que seus testes de integração usem dados válidos.
-
Automação de QA: Incorpore a geração de CUIT/CUIL em scripts de teste automatizados para criar casos de teste dinâmicos em vez de usar dados de teste estáticos.
Fins Educacionais
-
Aprendendo Algoritmos de Validação: Entenda como os algoritmos de dígitos de verificação funcionam na prática, vendo o processo de verificação do CUIT/CUIL em ação.
-
Ensinando Validação de Dados: Use como um exemplo educacional ao ensinar técnicas de validação de formulários para novos desenvolvedores.
-
Entendendo Requisitos Empresariais Argentinos: Aprenda sobre o sistema de identificação usado na Argentina para desenvolvimento de negócios internacionais.
Alternativas
Embora nossa ferramenta forneça uma maneira direta de gerar e validar números de CUIT/CUIL, existem abordagens alternativas que você pode considerar:
-
Validação Oficial do Governo: Para ambientes de produção, sempre valide números de CUIT/CUIL contra o banco de dados oficial da AFIP (Administración Federal de Ingressos Públicos) quando possível.
-
Bibliotecas e Pacotes: Várias linguagens de programação possuem bibliotecas especificamente projetadas para validação de ID fiscal argentino:
- JavaScript: pacote npm
validar-cuit
- PHP: biblioteca
afip-php
- Python: pacote
py-cuit
- JavaScript: pacote npm
-
Cálculo Manual: Para fins educacionais, você pode calcular o dígito de verificação manualmente usando o algoritmo descrito anteriormente.
-
Serviços de Validação Empresarial Abrangentes: Para aplicativos empresariais, considere usar serviços de validação abrangentes que não apenas verifiquem o formato, mas também confirmem a existência e o status da entidade associada ao CUIT/CUIL.
História do Sistema CUIT/CUIL
O sistema de identificação CUIT/CUIL na Argentina evoluiu significativamente desde sua criação:
Origens e Implementação
O CUIT (Clave Única de Identificação Tributária) foi introduzido pela primeira vez na Argentina na década de 1970 como parte dos esforços para modernizar o sistema de arrecadação de impostos. A Administração Federal de Receita Pública (AFIP) implementou este identificador único para rastrear contribuintes de maneira mais eficiente e reduzir a evasão fiscal.
O CUIL (Clave Única de Identificação Laboral) foi introduzido posteriormente para identificar especificamente os trabalhadores no sistema de seguridade social, criando uma distinção entre identificação fiscal e identificação laboral, mantendo um formato consistente.
Evolução e Digitalização
Na década de 1990, à medida que a Argentina passava por reformas econômicas significativas, o sistema CUIT/CUIL tornou-se cada vez mais importante para rastrear a atividade econômica. O sistema foi ainda mais digitalizado, e sistemas de verificação online foram implementados.
O início dos anos 2000 viu a integração do sistema CUIT/CUIL com vários serviços digitais do governo, tornando-se um componente essencial das iniciativas de governo eletrônico da Argentina. Este período também viu a padronização do algoritmo de verificação e do formato que permanece em uso até hoje.
Desenvolvimentos Recentes
Nos últimos anos, a AFIP aprimorou os processos de segurança e verificação para números de CUIT/CUIL, implementando sistemas de validação mais sofisticados e integrando-os com outros bancos de dados governamentais. O sistema agora desempenha um papel crucial nos esforços da Argentina para combater a evasão fiscal e formalizar a economia.
Hoje, o CUIT/CUIL é usado não apenas para fins fiscais e de emprego, mas também para uma ampla gama de atividades, incluindo transações bancárias, compra de propriedades, serviços públicos e compras online, tornando-se um identificador essencial para indivíduos e empresas que operam na Argentina.
Exemplos de Código
Python
1def calculate_verification_digit(type_code, dni):
2 # Converter para string e garantir que o DNI tenha 8 dígitos com zeros à esquerda
3 type_code_str = str(type_code)
4 dni_str = str(dni).zfill(8)
5
6 # Combinar código do tipo e DNI
7 digits = type_code_str + dni_str
8
9 # Pesos para cada posição
10 weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
11
12 # Calcular soma dos produtos
13 sum_products = sum(int(digits[i]) * weights[i] for i in range(10))
14
15 # Calcular dígito de verificação
16 verification_digit = 11 - (sum_products % 11)
17
18 # Casos especiais
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 # Códigos de tipo válidos
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"Código do tipo inválido. Deve ser um dos: {valid_type_codes}")
34
35 # Gerar DNI aleatório se não fornecido
36 if dni is None:
37 dni = random.randint(10000000, 99999999)
38
39 # Calcular dígito de verificação
40 verification_digit = calculate_verification_digit(type_code, dni)
41
42 # Formatar CUIT/CUIL
43 return f"{type_code}-{str(dni).zfill(8)}-{verification_digit}"
44
45def validate_cuit_cuil(cuit_cuil):
46 # Remover hífens se presentes
47 cuit_cuil_clean = cuit_cuil.replace("-", "")
48
49 # Verificar formato básico
50 if not cuit_cuil_clean.isdigit() or len(cuit_cuil_clean) != 11:
51 return False, "Formato inválido"
52
53 # Extrair partes
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 # Validar código do tipo
59 valid_type_codes = [20, 23, 24, 27, 30, 33, 34]
60 if type_code not in valid_type_codes:
61 return False, "Código do tipo inválido"
62
63 # Calcular e comparar dígito de verificação
64 calculated_digit = calculate_verification_digit(type_code, dni)
65 if calculated_digit != verification_digit:
66 return False, "Dígito de verificação inválido"
67
68 return True, "CUIT/CUIL válido"
69
70# Exemplo de uso
71print(generate_cuit_cuil(20, 12345678)) # Gerar para DNI específico
72print(generate_cuit_cuil(27)) # Gerar com DNI aleatório
73print(validate_cuit_cuil("20-12345678-9")) # Validar um CUIT/CUIL
74
JavaScript
1function calculateVerificationDigit(typeCode, dni) {
2 // Converter para string e garantir que o DNI tenha 8 dígitos com zeros à esquerda
3 const typeCodeStr = typeCode.toString();
4 const dniStr = dni.toString().padStart(8, '0');
5
6 // Combinar código do tipo e DNI
7 const digits = typeCodeStr + dniStr;
8
9 // Pesos para cada posição
10 const weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
11
12 // Calcular soma dos produtos
13 let sumProducts = 0;
14 for (let i = 0; i < 10; i++) {
15 sumProducts += parseInt(digits[i]) * weights[i];
16 }
17
18 // Calcular dígito de verificação
19 let verificationDigit = 11 - (sumProducts % 11);
20
21 // Casos especiais
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 // Códigos de tipo válidos
33 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
34
35 if (!validTypeCodes.includes(typeCode)) {
36 throw new Error(`Código do tipo inválido. Deve ser um dos: ${validTypeCodes.join(', ')}`);
37 }
38
39 // Gerar DNI aleatório se não fornecido
40 if (dni === undefined) {
41 dni = Math.floor(Math.random() * 90000000) + 10000000;
42 }
43
44 // Calcular dígito de verificação
45 const verificationDigit = calculateVerificationDigit(typeCode, dni);
46
47 // Formatar CUIT/CUIL
48 return `${typeCode}-${dni.toString().padStart(8, '0')}-${verificationDigit}`;
49}
50
51function validateCuitCuil(cuitCuil) {
52 // Remover hífens se presentes
53 const cuitCuilClean = cuitCuil.replace(/-/g, '');
54
55 // Verificar formato básico
56 if (!/^\d{11}$/.test(cuitCuilClean)) {
57 return { isValid: false, errorMessage: 'Formato inválido' };
58 }
59
60 // Extrair partes
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 // Validar código do tipo
66 const validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
67 if (!validTypeCodes.includes(typeCode)) {
68 return { isValid: false, errorMessage: 'Código do tipo inválido' };
69 }
70
71 // Calcular e comparar dígito de verificação
72 const calculatedDigit = calculateVerificationDigit(typeCode, dni);
73 if (calculatedDigit !== verificationDigit) {
74 return { isValid: false, errorMessage: 'Dígito de verificação inválido' };
75 }
76
77 return { isValid: true };
78}
79
80// Exemplo de uso
81console.log(generateCuitCuil(20, 12345678)); // Gerar para DNI específico
82console.log(generateCuitCuil(27)); // Gerar com DNI aleatório
83console.log(validateCuitCuil("20-12345678-9")); // Validar um CUIT/CUIL
84
Java
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 // Converter para string e garantir que o DNI tenha 8 dígitos com zeros à esquerda
11 String typeCodeStr = String.valueOf(typeCode);
12 String dniStr = String.format("%08d", dni);
13
14 // Combinar código do tipo e DNI
15 String digits = typeCodeStr + dniStr;
16
17 // Calcular soma dos produtos
18 int sumProducts = 0;
19 for (int i = 0; i < 10; i++) {
20 sumProducts += Character.getNumericValue(digits.charAt(i)) * WEIGHTS[i];
21 }
22
23 // Calcular dígito de verificação
24 int verificationDigit = 11 - (sumProducts % 11);
25
26 // Casos especiais
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("Código do tipo inválido. Deve ser um dos: " + VALID_TYPE_CODES);
39 }
40
41 // Gerar DNI aleatório se não fornecido
42 if (dni == null) {
43 Random random = new Random();
44 dni = 10000000 + random.nextInt(90000000);
45 }
46
47 // Calcular dígito de verificação
48 int verificationDigit = calculateVerificationDigit(typeCode, dni);
49
50 // Formatar CUIT/CUIL
51 return String.format("%d-%08d-%d", typeCode, dni, verificationDigit);
52 }
53
54 public static ValidationResult validateCuitCuil(String cuitCuil) {
55 // Remover hífens se presentes
56 String cuitCuilClean = cuitCuil.replace("-", "");
57
58 // Verificar formato básico
59 if (!cuitCuilClean.matches("\\d{11}")) {
60 return new ValidationResult(false, "Formato inválido");
61 }
62
63 // Extrair partes
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 // Validar código do tipo
69 if (!VALID_TYPE_CODES.contains(typeCode)) {
70 return new ValidationResult(false, "Código do tipo inválido");
71 }
72
73 // Calcular e comparar dígito de verificação
74 int calculatedDigit = calculateVerificationDigit(typeCode, dni);
75 if (calculatedDigit != verificationDigit) {
76 return new ValidationResult(false, "Dígito de verificação inválido");
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 // Exemplo de uso
102 System.out.println(generateCuitCuil(20, 12345678)); // Gerar para DNI específico
103 System.out.println(generateCuitCuil(27, null)); // Gerar com DNI aleatório
104 System.out.println(validateCuitCuil("20-12345678-9").isValid()); // Validar um CUIT/CUIL
105 }
106}
107
PHP
1<?php
2
3function calculateVerificationDigit($typeCode, $dni) {
4 // Converter para string e garantir que o DNI tenha 8 dígitos com zeros à esquerda
5 $typeCodeStr = (string)$typeCode;
6 $dniStr = str_pad((string)$dni, 8, '0', STR_PAD_LEFT);
7
8 // Combinar código do tipo e DNI
9 $digits = $typeCodeStr . $dniStr;
10
11 // Pesos para cada posição
12 $weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
13
14 // Calcular soma dos produtos
15 $sumProducts = 0;
16 for ($i = 0; $i < 10; $i++) {
17 $sumProducts += (int)$digits[$i] * $weights[$i];
18 }
19
20 // Calcular dígito de verificação
21 $verificationDigit = 11 - ($sumProducts % 11);
22
23 // Casos especiais
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 // Códigos de tipo válidos
35 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
36
37 if (!in_array($typeCode, $validTypeCodes)) {
38 throw new Exception("Código do tipo inválido. Deve ser um dos: " . implode(', ', $validTypeCodes));
39 }
40
41 // Gerar DNI aleatório se não fornecido
42 if ($dni === null) {
43 $dni = rand(10000000, 99999999);
44 }
45
46 // Calcular dígito de verificação
47 $verificationDigit = calculateVerificationDigit($typeCode, $dni);
48
49 // Formatar CUIT/CUIL
50 return sprintf("%d-%08d-%d", $typeCode, $dni, $verificationDigit);
51}
52
53function validateCuitCuil($cuitCuil) {
54 // Remover hífens se presentes
55 $cuitCuilClean = str_replace('-', '', $cuitCuil);
56
57 // Verificar formato básico
58 if (!preg_match('/^\d{11}$/', $cuitCuilClean)) {
59 return ['isValid' => false, 'errorMessage' => 'Formato inválido'];
60 }
61
62 // Extrair partes
63 $typeCode = (int)substr($cuitCuilClean, 0, 2);
64 $dni = (int)substr($cuitCuilClean, 2, 8);
65 $verificationDigit = (int)substr($cuitCuilClean, 10, 1);
66
67 // Validar código do tipo
68 $validTypeCodes = [20, 23, 24, 27, 30, 33, 34];
69 if (!in_array($typeCode, $validTypeCodes)) {
70 return ['isValid' => false, 'errorMessage' => 'Código do tipo inválido'];
71 }
72
73 // Calcular e comparar dígito de verificação
74 $calculatedDigit = calculateVerificationDigit($typeCode, $dni);
75 if ($calculatedDigit !== $verificationDigit) {
76 return ['isValid' => false, 'errorMessage' => 'Dígito de verificação inválido'];
77 }
78
79 return ['isValid' => true];
80}
81
82// Exemplo de uso
83echo generateCuitCuil(20, 12345678) . "\n"; // Gerar para DNI específico
84echo generateCuitCuil(27) . "\n"; // Gerar com DNI aleatório
85var_dump(validateCuitCuil("20-12345678-9")); // Validar um CUIT/CUIL
86?>
87
Perguntas Frequentes
Qual é a diferença entre CUIT e CUIL?
CUIT (Clave Única de Identificação Tributária) é usado para fins de identificação fiscal e é atribuído tanto a indivíduos quanto a entidades jurídicas que precisam pagar impostos na Argentina. CUIL (Clave Única de Identificação Laboral) é especificamente para trabalhadores e é usado para fins laborais e de seguridade social. Embora compartilhem o mesmo formato e algoritmo de cálculo, servem a propósitos administrativos diferentes.
Quais códigos de tipo são usados para indivíduos e quais para empresas?
Para indivíduos:
- 20, 23, 24: Indivíduos do sexo masculino (CUIL)
- 27: Indivíduos do sexo feminino (CUIL)
Para empresas e organizações:
- 30: Corporações (CUIT)
- 33: Associações Civis (CUIT)
- 34: Fundações (CUIT)
Como é calculado o dígito de verificação?
O dígito de verificação é calculado usando um algoritmo de soma ponderada. Cada um dos primeiros 10 dígitos é multiplicado por um peso correspondente (5, 4, 3, 2, 7, 6, 5, 4, 3, 2), e os resultados são somados. O dígito de verificação é 11 menos o resto quando essa soma é dividida por 11. Casos especiais: se o resultado for 11, o dígito de verificação é 0; se o resultado for 10, o dígito de verificação é 9.
Posso usar esta ferramenta para gerar números de CUIT/CUIL reais e oficiais?
Não, esta ferramenta é projetada para fins de teste e educacionais apenas. Os números gerados são matematicamente válidos de acordo com o algoritmo CUIT/CUIL, mas não estão oficialmente registrados junto às autoridades fiscais argentinas (AFIP). Para registro oficial de CUIT/CUIL, indivíduos e empresas devem seguir os procedimentos legais adequados através da AFIP.
Por que a validação do meu CUIT/CUIL falha, mesmo que o formato pareça correto?
A validação pode falhar por várias razões:
- O código do tipo não é um dos códigos válidos (20, 23, 24, 27, 30, 33, 34)
- O dígito de verificação não corresponde ao valor calculado com base no algoritmo
- O formato está incorreto (deve ser XX-XXXXXXXX-X)
- Existem caracteres não numéricos na entrada (além dos hífens)
Os hífens são obrigatórios nos números de CUIT/CUIL?
Embora os números de CUIT/CUIL sejam comumente escritos e exibidos com hífens (XX-XXXXXXXX-X), os hífens não fazem parte do número real para fins de cálculo. Nosso validador aceita ambos os formatos (com ou sem hífens) e validará corretamente qualquer um dos formatos.
Um número de CUIT/CUIL pode ter menos de 8 dígitos na parte do DNI?
Não, a parte do DNI deve ter sempre exatamente 8 dígitos. Se o DNI real tiver menos dígitos, ele deve ser preenchido com zeros à esquerda para alcançar 8 dígitos. Por exemplo, se o DNI de alguém for 1234567, no CUIT/CUIL ele seria representado como 01234567.
Como posso verificar se um CUIT/CUIL está oficialmente registrado na Argentina?
Para verificar se um CUIT/CUIL está oficialmente registrado e ativo, você deve usar o site ou serviços oficiais da AFIP (Administración Federal de Ingressos Públicos). Nossa ferramenta apenas verifica a validade matemática do número, não seu status oficial de registro.
Posso usar esta ferramenta em meu aplicativo comercial?
Sim, você pode integrar o algoritmo e a lógica demonstrados nesta ferramenta em seus aplicativos comerciais. O algoritmo de validação de CUIT/CUIL é um padrão público. No entanto, para ambientes de produção, recomendamos implementar um tratamento de erros adequado e considerar validações adicionais contra fontes oficiais quando necessário.
Esta ferramenta armazena algum dos números de CUIT/CUIL gerados ou validados?
Não, esta ferramenta não armazena nenhuma das informações inseridas ou geradas. Todo o processamento é feito no lado do cliente em seu navegador, e nenhum dado é enviado ou armazenado em nossos servidores. Isso garante a privacidade e a segurança de qualquer informação que você insira.
Referências
-
AFIP (Administración Federal de Ingressos Públicos). "CUIT/CUIL/CDI." Site Oficial. https://www.afip.gob.ar/
-
Ministério do Trabalho, Emprego e Segurança Social. "CUIL - Clave Única de Identificação Laboral." https://www.argentina.gob.ar/trabajo
-
ANSES (Administración Nacional de la Seguridad Social). "Obter meu CUIL." https://www.anses.gob.ar/
-
Boletim Oficial da República Argentina. "Resolução Geral AFIP 2854/2010: Procedimento. Clave Única de Identificação Tributária (C.U.I.T.)."
-
Código Fiscal da República Argentina. "Identificação e Registro de Contribuintes."
Pronto para gerar ou validar números de CUIT/CUIL argentinos? Experimente nossa ferramenta agora e simplifique seu processo de teste!
Feedback
Clique no aviso de feedback para começar a dar feedback sobre esta ferramenta
Ferramentas Relacionadas
Descubra mais ferramentas que podem ser úteis para seu fluxo de trabalho