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 Unico Tributario): o identificador fiscal do Chile

O RUT (Rol Unico Tributario) e o identificador fiscal unico emitido no Chile pelo SII (Servicio de Impuestos Internos). E um corpo numerico de ate 8 digitos seguido de um digito verificador separado, que pode ser um decimal ou a letra K. O RUT abrange pessoas fisicas, juridicas, investidores estrangeiros e ate contribuintes informais — e a espinha dorsal dos sistemas fiscal, trabalhista, de saude (Fonasa, Isapres), eleitoral e consumidor do pais.

No dia a dia, RUT e RUN (Rol Unico Nacional) sao praticamente intercambiaveis para chilenos: o SII atribui o RUT para fins fiscais e o Registro Civil imprime os mesmos digitos 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 transacao Webpay/Khipu e indexada por RUT.

Formato: 8 digitos + DV, com separadores opcionais

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

  • Exibicao: 12.345.678-5 ou 7.654.321-K.
  • Armazenamento: sem pontos nem hifen, ex.: 123456785, geralmente armazenado como corpo numerico + DV como char separado.

Os RUTs chilenos seguem aproximadamente a ordem de registro: nascidos na decada de 1950 costumam ter 7 digitos de corpo; nascidos nos anos 2020 ja recebem corpos de 9 digitos. Empresas usam o mesmo espaco numerico, mas convencionalmente comecam acima de 50 milhoes para se diferenciar de pessoas fisicas.

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 sao ciclicos, o que permite corpos de qualquer tamanho sem mudar o algoritmo.

  • Inverta a ordem dos digitos do corpo.
  • Multiplique cada digito pelo proximo 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 contrario, DV = digito 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 valido.

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 numero — 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 documentacao oficial do SII tambem usa strings.

Onde o RUT e obrigatorio

  • 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 veiculo e atos notariais.
  • Webpay, Khipu, MercadoPago Chile, Transbank Onepay.
  • Pre-pago de servicos (Movistar, Entel, WOM, fidelidades do Mall Plaza).

Bibliotecas de validacao 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 tambem formatacao. Em Python, python-stdnum fornece stdnum.cl.rut. O SII tem o portal Consulta RUT, mas nao oferece API publica: integrar exige scraping (legalmente discutivel) ou contratar bureau pago como Equifax Chile, Dicom ou NIC.cl.

Ao validar entrada do usuario, 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 verificacao do DV no submit, nao a cada tecla — usuarios chilenos estao habituados a digitar os pontos.

FAQ

Por que o DV as vezes e K?

Porque o mod 11 pode dar 10, valor que nao tem representacao decimal em um digito. O fisco chileno escolheu K (em vez de X ou zero a esquerda) para que o DV permaneca sempre um unico caractere.

RUT e RUN sao a mesma coisa?

Para chilenos pessoa fisica, sim — ambos sao identicos. RUT e o rotulo fiscal (SII); RUN e o rotulo 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?

Nao. O emissor precisa de perfil SII ativo, certificado digital e assina cada Boleta ou Factura no XML correspondente. O RUT do destinatario identifica o comprador, mas nao autoriza a transacao por si so.

Esta ferramenta envia meu RUT para algum servidor?

Nao. A verificacao roda inteiramente no client-side. Nenhuma requisicao e feita e nada e logado.

Ferramentas Relacionadas