Skip to content

rut-kit ​

Referencia de la API core para validar, formatear y trabajar con RUTs chilenos.

typescript
import { isValidRut, validateRut, formatRut, cleanRut, getRutCheckDigit, getErrorMessage } from 'rut-kit'

isValidRut ​

Valida si un RUT chileno es válido.

typescript
function isValidRut(rut: string): boolean

Parámetros ​

NombreTipoDescripciĂłn
rutstringRUT a validar

Retorno ​

boolean — true si el RUT es válido, false en caso contrario.

Formatos aceptados ​

  • Con puntos y guiĂłn: 18.972.631-7
  • Solo guiĂłn: 18972631-7
  • Sin formato: 189726317

WARNING

Solo acepta formatos chilenos válidos. Otros separadores (comas, asteriscos) son rechazados. RUT mínimo: 1.000.000.

Ejemplo ​

typescript
isValidRut('18.972.631-7')  // true
isValidRut('18.972.631-0')  // false
isValidRut('18,972,631-7')  // false

validateRut ​

Valida un RUT y retorna informaciĂłn detallada del resultado.

typescript
function validateRut(rut: string): RutValidationResult

Parámetros ​

NombreTipoDescripciĂłn
rutstringRUT a validar

Retorno ​

RutValidationResult — Objeto con el resultado de la validación:

typescript
// Si es válido
{ valid: true, rut: string }

// Si es inválido
{ valid: false, error: RutValidationError }

Tipos de error ​

ErrorDescripciĂłn
invalidFormatFormato no válido, largo incorrecto, o caracteres no permitidos
invalidCheckDigitEl dĂ­gito verificador no coincide

Ejemplo ​

typescript
validateRut('18.972.631-7')
// { valid: true, rut: '189726317' }

validateRut('18.972.631-0')
// { valid: false, error: 'invalidCheckDigit' }

validateRut('18,972,631-7')
// { valid: false, error: 'invalidFormat' }

formatRut ​

Formatea un RUT al formato especificado.

typescript
function formatRut(rut: string, format?: RutOutputFormat): string

Parámetros ​

NombreTipoDescripciĂłn
rutstringRUT a formatear
formatRutOutputFormatFormato de salida (opcional)

Formatos de salida ​

FormatoResultadoUso recomendado
undefined (default)18972631-7Almacenamiento
'formatted'18.972.631-7Mostrar al usuario
'clean'189726317Comparaciones, APIs

Retorno ​

string — RUT formateado.

Ejemplo ​

typescript
formatRut('189726317')              // '18972631-7'
formatRut('189726317', 'formatted') // '18.972.631-7'
formatRut('189726317', 'clean')     // '189726317'

TIP

Esta funciĂłn es permisiva: acepta cualquier separador de entrada. Usa cleanRut() internamente.


cleanRut ​

Extrae solo los dígitos y la letra K de un RUT, removiendo cualquier otro carácter.

typescript
function cleanRut(rut: string): string

Parámetros ​

NombreTipoDescripciĂłn
rutstringRUT a limpiar

Retorno ​

string — RUT limpio (solo dígitos y K en mayúscula). Elimina ceros iniciales.

Ejemplo ​

typescript
cleanRut('18.972.631-7')  // '189726317'
cleanRut('33.333.335-k')  // '33333335K'
cleanRut('18,972,631-7')  // '189726317'
cleanRut('18*972*631*7')  // '189726317'

TIP

Función permisiva. Útil para limpiar datos de Excel, PDFs u otras fuentes con separadores no estándar.


getRutCheckDigit ​

Calcula el dĂ­gito verificador de un RUT usando el algoritmo mĂłdulo 11.

typescript
function getRutCheckDigit(rut: string): string

Parámetros ​

NombreTipoDescripciĂłn
rutstringCuerpo del RUT (sin dĂ­gito verificador)

Retorno ​

string — Dígito verificador calculado ('0'-'9' o 'K').

Ejemplo ​

typescript
getRutCheckDigit('18972631')  // '7'
getRutCheckDigit('33333335')  // 'K'
getRutCheckDigit('11111111')  // '1'

getErrorMessage ​

Convierte un tipo de error a un mensaje legible.

typescript
function getErrorMessage(error: RutValidationError, messages?: RutErrorMessages): string

Parámetros ​

NombreTipoDescripciĂłn
errorRutValidationErrorTipo de error a convertir
messagesRutErrorMessagesMensajes personalizados (opcional)

Retorno ​

string — Mensaje de error legible.

Mensajes por defecto ​

ErrorMensaje
invalidFormat'Formato de RUT inválido'
invalidCheckDigit'DĂ­gito verificador incorrecto'

Ejemplo ​

typescript
const result = validateRut('18.972.631-0')

if (!result.valid) {
  getErrorMessage(result.error)
  // 'DĂ­gito verificador incorrecto'

  getErrorMessage(result.error, {
    invalidCheckDigit: 'RUT no válido'
  })
  // 'RUT no válido'
}