1001Ferramentas
🇨🇱Validadores

Validador de RUT do Chile

Valida o RUT (Rol Único Tributario) do Chile — número + dígito verificador (0-9 ou K) calculado por mod 11. Aceita formato com pontos e hífen.

RUT (Rol Único Tributário): o identificador fiscal do Chile

O RUT (Rol Único Tributário) e o identificador fiscal único emitido no Chile pelo SII (Servicio de Impuestos Internos). E um corpo numérico de até 8 dígitos seguido de um dígito verificador separado, que pode ser um decimal ou a letra K. O RUT abrange pessoas físicas, juridicas, investidores estrangeiros e até contribuintes informais — e a espinha dorsal dos sistemas fiscal, trabalhista, de saúde (Fonasa, Isapres), eleitoral e consumidor do pais.

No dia a dia, RUT e RUN (Rol Único Nacional) são praticamente intercambiáveis para chilenos: o SII atribui o RUT para fins fiscais e o Registro Civil imprime os mesmos dígitos como RUN na carteira de identidade. Compartilham o mesmo algoritmo e o mesmo valor.

Para empresas brasileiras expandindo para o Chile — Mercado Livre, parcerias Falabella, Despegar, B2W e diversas fintechs — o RUT e o primeiro desafio de integracao: cada Boleta ou Factura Electronica, cada folha de pagamento e cada transação Webpay/Khipu e indexada por RUT.

Formato: 8 dígitos + DV, com separadores opcionais

O RUT e exibido na mascara XX.XXX.XXX-Y, com pontos separando milhares e hífen antes do DV Y. O DV vai de 0 a 9 ou a letra K. Duas representacoes comuns:

  • Exibição: 12.345.678-5 ou 7.654.321-K.
  • Armazenamento: sem pontos nem hífen, ex.: 123456785, geralmente armazenado como corpo numérico + DV como char separado.

Os RUTs chilenos seguem aproximadamente a ordem de registro: nascidos na década de 1950 costumam ter 7 dígitos de corpo; nascidos nos anos 2020 ja recebem corpos de 9 dígitos. Empresas usam o mesmo espaço numérico, mas convencionalmente começam acima de 50 milhões para se diferenciar de pessoas físicas.

O algoritmo mod 11 com pesos ciclicos 2-7

O DV usa uma rotina mod 11 com ciclo de pesos de 2 a 7, aplicada da direita para a esquerda sobre o corpo. Diferente do CPF brasileiro ou da CUIT argentina, os pesos são ciclicos, o que permite corpos de qualquer tamanho sem mudar o algoritmo.

  • Inverta a ordem dos dígitos do corpo.
  • Multiplique cada dígito pelo próximo peso do ciclo 2, 3, 4, 5, 6, 7, 2, 3, 4, ....
  • Some os produtos.
  • Calcule resto = 11 - (soma mod 11).
  • Se resto == 11, DV = 0. Se resto == 10, DV = K. Caso contrário, DV = dígito decimal.
function rutDV(body) {
  const w = [2,3,4,5,6,7];
  let s = 0, j = 0;
  for (let i = body.length - 1; i >= 0; i--) {
    s += +body[i] * w[j];
    j = (j + 1) % 6;
  }
  const r = 11 - (s % 11);
  if (r === 11) return '0';
  if (r === 10) return 'K';
  return String(r);
}

Exemplo sobre corpo 12345678: invertido fica 87654321. Soma ponderada = 8*2 + 7*3 + 6*4 + 5*5 + 4*6 + 3*7 + 2*2 + 1*3 = 16+21+24+25+24+21+4+3 = 138. 138 mod 11 = 6. 11 - 6 = 5. Logo, 12.345.678-5 e um RUT válido.

Por que o K importa e como guardar no banco

Aproximadamente 1 em cada 11 RUTs termina em K. Muitos sistemas legados modelados com coluna DECIMAL derrubam o K, corrompendo cerca de 9% dos registros na importacao. O esquema mais limpo guarda o corpo como inteiro e o DV como CHAR(1). Ao serializar em JSON, emita sempre o DV como string ("K" ou "5"), nunca como número — parseInt("K", 10) retorna NaN e quebra pipelines silenciosamente.

Na pratica, todas as libs open-source (rut.js, rut-helpers, chile-rut) tratam o RUT como string. A documentação oficial do SII também usa strings.

Onde o RUT e obrigatório

  • Emitir ou receber Boleta Electronica ou Factura Electronica via SII.
  • Declarar IVA, Impuesto a la Renta, Global Complementario.
  • Folha de pagamento, AFP, salud (Fonasa ou Isapre) e Mutual de Seguridad.
  • Votar em eleicoes chilenas (Servel indexa por RUN/RUT).
  • Abrir conta bancaria ou contratar Cuenta RUT no BancoEstado.
  • Carteira de motorista, registro de veículo e atos notariais.
  • Webpay, Khipu, MercadoPago Chile, Transbank Onepay.
  • Pre-pago de serviços (Movistar, Entel, WOM, fidelidades do Mall Plaza).

Bibliotecas de validação e dicas de integracao

Para Node e browser, helpers maduros: rut.js, rut-helpers, chile-rut e @fdograph/rut-utilities implementam a rotina mod 11 com pesos ciclicos e também formatacao. Em Python, python-stdnum fornece stdnum.cl.rut. O SII tem o portal Consulta RUT, mas não oferece API publica: integrar exige scraping (legalmente discutivel) ou contratar bureau pago como Equifax Chile, Dicom ou NIC.cl.

Ao validar entrada do usuário, normalize antes de armazenar: remova pontos, faca uppercase do K e rejeite tamanhos fora da faixa valida (8 ou 9 caracteres com DV). Sempre rode a verificação do DV no submit, não a cada tecla — usuários chilenos estão habituados a digitar os pontos.

FAQ

Por que o DV as vezes e K?

Porque o mod 11 pode dar 10, valor que não tem representação decimal em um dígito. O fisco chileno escolheu K (em vez de X ou zero a esquerda) para que o DV permaneca sempre um único caractere.

RUT e RUN são a mesma coisa?

Para chilenos pessoa física, sim — ambos são idênticos. RUT e o rótulo fiscal (SII); RUN e o rótulo civil (Registro Civil). Empresas e estrangeiros costumam ter apenas RUT.

Estrangeiro consegue RUT?

Sim. O SII emite RUT para individuos e empresas estrangeiras que precisam faturar no Chile (ex.: SaaS brasileiro vendendo para clientes chilenos). O processo passa pelo "RUT Investidor" do SII ou por representante fiscal local.

O RUT basta para emitir nota?

Não. O emissor precisa de perfil SII ativo, certificado digital e assina cada Boleta ou Factura no XML correspondente. O RUT do destinatário identifica o comprador, mas não autoriza a transação por si so.

Esta ferramenta envia meu RUT para algum servidor?

Não. A verificação roda inteiramente no client-side. Nenhuma requisição e feita e nada e logado.

Ferramentas Relacionadas