Saltar al contenido
VeloraBlog
← Todos los artículos

12 de junio de 2026

¿Cómo valido un CUIT/CUIL en Node.js o Python? (algoritmo módulo 11)

El CUIT tiene 11 dígitos: el verificador (posición 11) se calcula multiplicando los primeros 10 dígitos por los pesos [5,4,3,2,7,6,5,4,3,2], sumando, aplicando módulo 11 y restando de 11. Si el resultado es 11 el verificador es 0; si es 10 el CUIT es inválido. CUIT y CUIL comparten el mismo algoritmo.

Algoritmo módulo 11 paso a paso

Pesos: [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
1. Tomar los primeros 10 dígitos del CUIT (sin guiones)
2. Multiplicar cada dígito por su peso correspondiente
3. Sumar todos los productos
4. Calcular suma % 11
5. Resultado = 11 - (suma % 11)
6. Si resultado == 11 → dígito verificador = 0
7. Si resultado == 10 → CUIT inválido (no puede existir)
8. Si resultado es 0-9 → ese es el dígito verificador
9. Comparar con el dígito 11 del CUIT original

Prefijos válidos por tipo

  • Personas físicas hombres: 20, 23, 24
  • Personas físicas mujeres: 27, 23, 24
  • Personas jurídicas: 30, 33, 34
  • Uniones transitorias: 55

Nota: este algoritmo valida el formato matemático, no verifica existencia en ARCA. Para validar existencia usar ws_sr_padron_a13 (con throttling — cachear TTL 24h).

Velora expone validate_cuit como herramienta MCP pura en tools.somosvelora.com/api/mcp/public (sin autenticación).