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-5ou7.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. Seresto == 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
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.
Validador de Inscrição Estadual
Valide Inscrições Estaduais de SP, RJ, MG, RS, PR e BA. Verificação no navegador, sem enviar dados para servidores.
Validador de Expressão SPDX
Valide expressões SPDX de licença ("(MIT OR Apache-2.0) AND BSD-3-Clause") com parser oficial, útil para package.json e Cargo.toml.
Validador LEI (Legal Entity Identifier)
Valide um LEI (Legal Entity Identifier) de 20 caracteres pelo padrão ISO 17442 — o identificador global de empresas em transações financeiras.