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-5ou7.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. Seresto == 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
Validador de RFC do México
Valida o RFC (Registro Federal de Contribuyentes) do México — pessoa física (13 caracteres) ou pessoa jurídica (12 caracteres). Verifica formato e dígito verificador.
Validador de NIF de Portugal
Valida o NIF (Número de Identificação Fiscal) de Portugal — algoritmo de dígito verificador mod 11 e prefixos válidos (1, 2, 3, 5, 6, 8, 9).
Validador de CUIT da Argentina
Valida o CUIT/CUIL (Clave Única de Identificación Tributaria/Laboral) da Argentina — 11 dígitos com prefixo de tipo e dígito verificador mod 11.