Publicado em 5 de maio de 2026·9 min de leitura

IDs Fiscais Latino-Americanos: Um Guia para Desenvolvedores

Construir um produto que atende múltiplos mercados latino-americanos é um dos desafios de engenharia mais subestimados. Cada país tem seu próprio sistema de identificação fiscal, suas próprias regras de formatação, seu próprio algoritmo de dígito verificador e sua própria autoridade que emite e valida os números. Nenhum deles interopera. Um CPF brasileiro não se parece em nada com um CUIT argentino, e um RFC mexicano tem uma estrutura completamente diferente de um RUT chileno. Este guia é uma referência prática para desenvolvedores que integram com usuários ou empresas da LATAM. Cobrimos os mercados na cobertura atual da Normadata: Argentina e Brasil ao vivo, com Chile, Colômbia e México a caminho, além de Peru.

Tabela de referência rápida

Antes de entrar nos detalhes, veja um resumo dos principais IDs fiscais por país. Cada um leva à página do validador correspondente.

  • Argentina — CUIT (personas fisicas y juridicas): formato XX-XXXXXXXX-X, 11 dígitos, emitido pela AFIP. Dígito verificador módulo 11. /coverage
  • Brasil — CPF (pessoas físicas): formato XXX.XXX.XXX-XX, 11 dígitos, emitido pela Receita Federal. Módulo 11 em dois passos. /coverage
  • Brasil — CNPJ (empresas): formato XX.XXX.XXX/XXXX-XX, 14 dígitos, emitido pela Receita Federal. Módulo 11 em dois passos. /coverage
  • México — RFC (pessoas físicas e empresas): 12 chars (moral) ou 13 chars (física), emitido pelo SAT. Alfanumérico com dígito verificador. /coverage
  • México — CURP (pessoas físicas): 18 chars alfanuméricos, emitido pelo RENAPO. Identidade civil, não fiscal. /coverage
  • Chile — RUT (todas as entidades): formato XXXXXXXX-X, 8-9 dígitos + char verificador (0-9 ou K), emitido pelo SII. Módulo 11. /coverage
  • Colômbia — NIT (empresas): 9 dígitos + dígito verificador, emitido pela DIAN. Módulo 11 com pesos específicos. /coverage
  • Peru — RUC (todas as entidades): 11 dígitos começando com 10 (natural) ou 20 (jurídica), emitido pela SUNAT. Módulo 11. /coverage

Argentina: CUIT

O CUIT (Clave Unica de Identificacion Tributaria) é emitido pela AFIP (agora ARCA) e cobre todas as entidades tributáveis na Argentina. Formato: XX-XXXXXXXX-X. O prefixo de dois dígitos indica o tipo de entidade: 20, 23, 24 para pessoas físicas masculinas; 27 para pessoas físicas femininas; 30, 33, 34 para empresas. O corpo de oito dígitos é tipicamente o DNI da pessoa. O dígito final é um dígito verificador módulo 11 calculado com pesos [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]. Se o verificador calculado for 10, o CUIT é inválido (a AFIP reemite com um prefixo alternativo). Exemplo: 20-31456789-8.

O CUIL (Clave Unica de Identificacion Laboral) usa o formato e o algoritmo idênticos. A diferença é administrativa — o CUIL é usado em sistemas de trabalho e previdência social, o CUIT em declarações fiscais. Valide-os da mesma forma.

Brasil: CPF e CNPJ

O Brasil tem dois identificadores principais. O CPF (Cadastro de Pessoas Físicas) é para pessoas naturais: 9 dígitos de base mais 2 dígitos verificadores (11 no total), emitido pela Receita Federal. Os dígitos verificadores são calculados via dois passos sequenciais de módulo 11 ponderado. CPFs onde todos os dígitos são iguais (000.000.000-00 a 999.999.999-99) são estruturalmente inválidos mesmo que o algoritmo passe. Exemplo de CPF válido: 111.444.777-35.

O CNPJ (Cadastro Nacional da Pessoa Jurídica) é para empresas: 14 dígitos no formato XX.XXX.XXX/XXXX-XX. Os primeiros 8 dígitos identificam a empresa, os dígitos 9-12 identificam a filial (matriz é 0001), e os 2 últimos são dígitos verificadores calculados com pesos [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] e [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] respectivamente. CNPJs com todos os dígitos idênticos também são inválidos.

México: RFC e CURP

O México tem dois identificadores comumente usados. O RFC (Registro Federal de Contribuyentes) é emitido pelo SAT (autoridade fiscal) e usado para todos os fins fiscais. Para pessoas físicas tem 13 caracteres: 4 letras do nome + 6 dígitos da data de nascimento (YYMMDD) + 3 caracteres alfanuméricos (homoclave). Para empresas (persona moral) tem 12 caracteres: 3 letras do nome da empresa + 6 dígitos da data + 3 homoclave. O CURP (Clave Unica de Registro de Poblacion) tem 18 caracteres, é emitido pelo RENAPO e é um identificador de identidade civil, não um ID fiscal — ele codifica iniciais do nome, data de nascimento, estado e gênero. Veja o post dedicado para detalhes completos sobre quando usar cada um.

Chile: RUT

O RUT (Rol Unico Tributario) é o identificador universal do Chile para pessoas físicas e empresas, emitido pelo SII (Servicio de Impuestos Internos). Formato: XXXXXXXX-X onde o último caractere é um dígito verificador que pode ser 0-9 ou a letra K (representando 10 no cálculo de módulo 11). RUTs de pessoas físicas são tipicamente de 7-8 dígitos; RUTs de empresas são tipicamente de 8 dígitos. Sempre armazene e transmita K em maiúsculo. O RUN (Rol Unico Nacional) emitido pelo Registro Civil usa o mesmo formato e algoritmo — frequentemente é o mesmo número para pessoas físicas.

Colômbia: NIT

O NIT (Numero de Identificacion Tributaria) é emitido pela DIAN e usado para fins fiscais por todas as entidades na Colômbia. Consiste em 9 dígitos mais um dígito verificador calculado via módulo 11 com pesos [3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71]. A identificação fiscal individual usa a Cédula de Ciudadania ou Cédula de Extranjería como corpo do NIT. O dígito verificador às vezes é omitido em uso informal, então sempre trate entradas de 9 e 10 dígitos.

Venezuela: RIF

O RIF (Registro de Informacion Fiscal) é emitido pelo SENIAT. É prefixado com uma única letra indicando o tipo de entidade: V (persona natural venezuelana), E (estrangeiro), J (jurídica / empresa), G (governo), C (comunas). A letra é seguida por 9 dígitos e um dígito verificador (1 dígito). Comprimento total: 11 caracteres. O algoritmo do dígito verificador usa módulo 11 com pesos específicos da implementação do SENIAT. Sempre preserve o prefixo de letra — removê-lo produz um número ambíguo.

Peru: RUC

O RUC (Registro Unico de Contribuyentes) é emitido pela SUNAT. Tem 11 dígitos. Pessoas naturais começam com 10, entidades jurídicas começam com 20. Os 9 dígitos restantes incluem um corpo de 8 dígitos e um único dígito verificador calculado via módulo 11 com pesos [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] — os mesmos pesos do CUIT argentino. Não confunda o RUC com o DNI (Documento Nacional de Identidad), que tem 8 dígitos e é usado para identidade civil, não fiscal.

Armadilhas comuns em todos os IDs fiscais da LATAM

Estes são os erros mais comuns que vemos ao validar IDs fiscais em sistemas de produção:

  • Tratar IDs como inteiros — Zeros à esquerda são eliminados. Sempre armazene e transmita como strings.
  • Não normalizar a formatação — Hífens, pontos e barras aparecem de forma inconsistente em diferentes fontes de dados. Remova caracteres não alfanuméricos antes da validação.
  • Confundir identificadores de pessoa física e empresa — Aplicar o algoritmo de dígito verificador errado para o tipo de entidade produz falsos negativos.
  • Ignorar o resultado 10 do dígito verificador — Vários algoritmos produzem 10 como resultado intermediário, o que significa que o número é inválido (não que o dígito verificador seja 10). Trate esse caso explicitamente.
  • Sensibilidade a maiúsculas — O RUT chileno usa K como caractere verificador; o RIF venezuelano usa um prefixo de letra. Sempre normalize para maiúsculas antes da comparação.
  • IDs expirados e reemitidos — IDs fiscais podem ser revogados e reemitidos com prefixos diferentes. Um checksum localmente válido não garante que o ID esteja atualmente ativo.

Validando IDs fiscais da LATAM em produção

Você tem duas opções para validação em produção: implementar os algoritmos de dígito verificador você mesmo, ou usar uma API dedicada. A implementação própria funciona para um único país, mas se torna uma carga de manutenção em vários países com algoritmos diferentes, casos extremos e variações de formato. A API Validate da Normadata cobre CUIT, CUIL, CPF, CNPJ, RFC, CURP, RUT (CL), NIT (CO) e RUC (PE) com um único endpoint consistente. Você envia o código do país, o tipo de identificador e o valor — e recebe de volta um resultado de validação estruturado com metadados do tipo de entidade.

cURL — validar um RUT chileno
curl -X POST https://api.normadata.io/v1/validate/tax-ids \
  -H "X-API-Key: nd_your_key_here" \
  -H "Content-Type: application/json" \
  -d {
    "value": "12345678-9",
    "country": "CL",
    "type": "rut"
  }
Resposta
{
  "valid": true,
  "country": "CL",
  "type": "rut",
  "value": {
    "raw": "123456789",
    "formatted": "12345678-9"
  },
  "metadata": {
    "check_digit": "9",
    "entity_type": "natural"
  }
}

Próximos passos

Consulte a página de cobertura para a lista completa de identificadores e países suportados. Se você está processando especificamente CUITs argentinos, leia o post dedicado à validação de CUIT para um passo a passo completo do algoritmo. Pronto para integrar? Entre na lista de espera em /waitlist para obter acesso à API.

Pronto para começar a desenvolver?

Solicitar acessoLer documentação

Artigos relacionados

5 de maio de 2026Validando o CUIT Argentino: Algoritmo, Formato e API5 de maio de 2026Validação de CPF: Algoritmo, Exemplos e API REST5 de maio de 2026RFC vs CURP no México: Quando Usar Cada Um15 de março de 2026Como Validar um Número de CUIT com uma API1 de abril de 2026Validação de CPF: Formato, Algoritmo e Integração com API para o Brasil2 de abril de 2026RFC no México: Formato, Estrutura e Validação para Desenvolvedores10 de março de 2026O Guia Completo de IDs Fiscais na América Latina1 de março de 2026Boas Práticas para Integrar APIs de Terceiros em Aplicações LATAM11 de maio de 2026Quanto orçamento KYC você desperdiça com dados malformados (e como medir)16 de maio de 2026Como validar todos os tax IDs da LATAM com uma única API16 de maio de 2026Por que pré-validar dados antes do KYC economiza dinheiro — com números16 de maio de 2026Construindo um formulário de checkout consciente da LATAM16 de maio de 2026O custo oculto dos erros de mod-11 no seu onboarding LATAM