Publicado el 5 de mayo de 2026·9 min de lectura

Tax IDs en Latinoamérica: guía para desarrolladores

Construir un producto que atienda a múltiples mercados latinoamericanos es uno de los desafíos de ingeniería más subestimados. Cada país tiene su propio sistema de identificación tributaria, sus propias reglas de formato, su propio algoritmo de dígito verificador y su propia autoridad que emite y valida los números. Ninguno interopera con los demás. Un CPF brasileño no se parece en nada a un CUIT argentino, y un RFC mexicano tiene una estructura completamente diferente a un RUT chileno. Esta guía es una referencia práctica para desarrolladores que integran con usuarios o empresas de LATAM. Cubrimos los países en la cobertura actual de Normadata: Argentina, Brasil, México, Chile, Colombia y Perú.

Tabla de referencia rápida

Antes de entrar en los detalles, acá va un resumen de los principales tax IDs por país.

  • Argentina — CUIT (personas físicas y jurídicas): formato XX-XXXXXXXX-X, 11 dígitos, emitido por AFIP. Dígito verificador módulo 11. /coverage
  • Brasil — CPF (personas físicas): formato XXX.XXX.XXX-XX, 11 dígitos, emitido por Receita Federal. Módulo 11 en dos pasos. /coverage
  • Brasil — CNPJ (empresas): formato XX.XXX.XXX/XXXX-XX, 14 dígitos, emitido por Receita Federal. Módulo 11 en dos pasos. /coverage
  • México — RFC (personas físicas y morales): 12 chars (moral) o 13 chars (física), emitido por SAT. Alfanumérico con dígito verificador. /coverage
  • México — CURP (personas físicas): 18 caracteres alfanuméricos, emitido por RENAPO. Identidad, no fiscal. /coverage
  • Chile — RUT (todas las entidades): formato XXXXXXXX-X, 8-9 dígitos + char verificador (0-9 o K), emitido por SII. Módulo 11. /coverage
  • Colombia — NIT (empresas): 9 dígitos + dígito verificador, emitido por DIAN. Módulo 11 con pesos específicos. /coverage
  • Perú — RUC (todas las entidades): 11 dígitos que empiezan con 10 (natural) o 20 (jurídica), emitido por SUNAT. Módulo 11. /coverage

Argentina: CUIT

El CUIT (Clave Única de Identificación Tributaria) es emitido por AFIP (ahora ARCA) y cubre a todas las entidades imponibles en Argentina. Formato: XX-XXXXXXXX-X. El prefijo de dos dígitos indica el tipo de entidad: 20, 23, 24 para personas físicas masculinas; 27 para personas físicas femeninas; 30, 33, 34 para empresas. El cuerpo de ocho dígitos es típicamente el DNI de la persona. El último dígito es un dígito verificador módulo 11 calculado con pesos [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]. Si el check calculado es 10, el CUIT es inválido (AFIP lo re-emite con un prefijo alternativo). Ejemplo: 20-31456789-8.

El CUIL (Clave Única de Identificación Laboral) usa el formato y el algoritmo idénticos. La diferencia es administrativa — el CUIL se usa en sistemas laborales y de seguridad social, el CUIT en declaraciones impositivas. Validarlos de la misma manera.

Brasil: CPF y CNPJ

Brasil tiene dos identificadores principales. El CPF (Cadastro de Pessoas Físicas) es para personas naturales: 9 dígitos base más 2 dígitos verificadores (11 en total), emitido por Receita Federal. Los dígitos verificadores se calculan mediante dos pasadas secuenciales de módulo 11 ponderado. Los CPFs donde todos los dígitos son iguales (000.000.000-00 hasta 999.999.999-99) son estructuralmente inválidos aunque el algoritmo pase. Ejemplo de CPF válido: 111.444.777-35.

El CNPJ (Cadastro Nacional da Pessoa Jurídica) es para empresas: 14 dígitos en formato XX.XXX.XXX/XXXX-XX. Los primeros 8 dígitos identifican la empresa, los dígitos 9-12 identifican la sucursal (matriz es 0001), y los últimos 2 son dígitos verificadores calculados con pesos [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] y [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] respectivamente. Los CNPJs con todos los dígitos idénticos también son inválidos.

México: RFC y CURP

México tiene dos identificadores de uso frecuente. El RFC (Registro Federal de Contribuyentes) es emitido por el SAT (autoridad fiscal) y se usa para todos los fines tributarios. Para personas físicas son 13 caracteres: 4 letras del nombre + 6 dígitos de fecha de nacimiento (AAMMDD) + 3 caracteres alfanuméricos (homoclave). Para personas morales son 12 caracteres: 3 letras del nombre de la empresa + 6 dígitos de fecha + 3 de homoclave. La CURP (Clave Única de Registro de Población) tiene 18 caracteres, emitida por RENAPO, y es un identificador de identidad civil, no fiscal — codifica iniciales del nombre, fecha de nacimiento, estado y género. Ver la guía dedicada para saber cuándo usar cada uno.

Chile: RUT

El RUT (Rol Único Tributario) es el identificador universal de Chile para personas y empresas, emitido por el SII (Servicio de Impuestos Internos). Formato: XXXXXXXX-X donde el último carácter es un dígito verificador que puede ser 0-9 o la letra K (que representa 10 en el cálculo de módulo 11). Los RUTs individuales tienen típicamente 7-8 dígitos; los de empresas típicamente 8 dígitos. Siempre almacenar y transmitir K en mayúscula. El RUN (Rol Único Nacional) emitido por el Registro Civil usa el mismo formato y algoritmo — suelen ser el mismo número para personas naturales.

Colombia: NIT

El NIT (Número de Identificación Tributaria) es emitido por la DIAN y se usa para fines fiscales por todas las entidades en Colombia. Consiste en 9 dígitos más un dígito verificador calculado via módulo 11 con pesos [3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71]. El dígito verificador a veces se omite en el uso informal, así que siempre manejar inputs de 9 y 10 dígitos.

Venezuela: RIF

El RIF (Registro de Información Fiscal) es emitido por el SENIAT. Lleva un prefijo de una sola letra que indica el tipo de entidad: V (persona natural venezolana), E (extranjero), J (jurídica / empresa), G (gobierno), C (comunas). La letra va seguida de 9 dígitos y un dígito verificador (1 dígito). Longitud total: 11 caracteres. El algoritmo del dígito verificador usa módulo 11 con pesos específicos de SENIAT. Siempre preservar el prefijo de letra — quitarlo produce un número ambiguo.

Perú: RUC

El RUC (Registro Único de Contribuyentes) es emitido por SUNAT. Tiene 11 dígitos. Las personas naturales empiezan con 10, las personas jurídicas con 20. Los 9 dígitos restantes incluyen un cuerpo de 8 dígitos y un único dígito verificador calculado via módulo 11 con pesos [5, 4, 3, 2, 7, 6, 5, 4, 3, 2] — los mismos pesos que el CUIT argentino. No confundir el RUC con el DNI (Documento Nacional de Identidad), que tiene 8 dígitos y se usa para identidad civil, no fiscal.

Errores comunes en todos los tax IDs de LATAM

Estos son los errores más frecuentes que vemos al validar tax IDs en sistemas de producción:

  • Tratar los IDs como enteros — Se pierden ceros iniciales. Siempre almacenar y transmitir como strings.
  • No normalizar el formato — Guiones, puntos y barras aparecen de forma inconsistente en distintas fuentes de datos. Eliminar caracteres no alfanuméricos antes de validar.
  • Confundir identificadores de persona vs. empresa — Aplicar el algoritmo de dígito verificador incorrecto para el tipo de entidad produce falsos negativos.
  • Ignorar el resultado 10 del dígito verificador — Varios algoritmos producen 10 como resultado intermedio, lo que significa que el número es inválido (no que el dígito verificador sea 10). Manejar este caso explícitamente.
  • Sensibilidad a mayúsculas — El RUT chileno usa K como carácter verificador; el RIF venezolano usa un prefijo de letra. Siempre normalizar a mayúsculas antes de comparar.
  • IDs vencidos o re-emitidos — Los tax IDs pueden ser revocados y re-emitidos con prefijos diferentes. Un checksum localmente válido no garantiza que el ID esté actualmente activo.

Validar tax IDs de LATAM en producción

Tenés dos opciones para la validación en producción: implementar los algoritmos de dígito verificador vos mismo, o usar una API dedicada. El enfoque DIY funciona para un solo país pero se convierte en una carga de mantenimiento en varios países con algoritmos, casos especiales y variaciones de formato distintas. La API Validate de Normadata cubre CUIT, CUIL, CPF, CNPJ, RFC, CURP, RUT (CL), NIT (CO) y RUC (PE) con un único endpoint consistente. Enviás el código de país, el tipo de identificador y el valor — recibís un resultado de validación estructurado con metadatos del tipo de entidad.

cURL — validar un 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"
  }
Respuesta
{
  "valid": true,
  "country": "CL",
  "type": "rut",
  "value": {
    "raw": "123456789",
    "formatted": "12345678-9"
  },
  "metadata": {
    "check_digit": "9",
    "entity_type": "natural"
  }
}

Próximos pasos

Consultá la página de cobertura para ver la lista completa de identificadores y países soportados. Si procesás CUITs argentinos específicamente, leé la guía dedicada de validación de CUIT para un recorrido paso a paso del algoritmo. ¿Listo para integrar? Unite a la lista de espera en /waitlist para obtener acceso a la API.

¿Listo para empezar a construir?

Solicitá tu accesoLeer documentación

Artículos relacionados

5 de mayo de 2026Validar CUIT en Argentina: algoritmo, formato y API5 de mayo de 2026Validación de CPF: algoritmo, ejemplos y API REST5 de mayo de 2026RFC vs CURP en México: cuando usar cada uno15 de marzo de 2026Cómo validar un número de CUIT con una API1 de abril de 2026Validación de CPF: Formato, algoritmo e integración con API para Brasil2 de abril de 2026RFC en México: Formato, estructura y validación para desarrolladores10 de marzo de 2026La guía completa de tax IDs en Latinoamérica1 de marzo de 2026Mejores prácticas para integrar APIs de terceros en aplicaciones de LATAM11 de mayo de 2026Cuánto presupuesto KYC se te va en data malformada (y cómo medirlo)16 de mayo de 2026Cómo validar todos los tax IDs de LATAM con una sola API16 de mayo de 2026Por qué pre-validar datos antes del KYC te ahorra dinero — con números16 de mayo de 2026Construyendo un formulario de checkout consciente de LATAM16 de mayo de 2026El costo oculto de los errores de mod-11 en tu onboarding LATAM