soff-id

v0.2.6~1KB Core

LATAM document validation library - Validate NIT, RUT, CPF, CUIT, and more.

Live Demo - NIT Validator (Colombia)

Try: 900123456-7 (valid) or 900123456-0 (invalid)

Validation Examples

validateNIT("900123456-7")

✗ Invalid

validateNIT("900123456-0")

✗ Invalid

formatNIT("9001234567")

900.123.456-7

calculateNITCheckDigit("900123456")

8

generateNIT()

899467549

isNITCompany("9001234567")

true

Installation

npm install soff-id

Quick Start

// Import only what you need
import { validateNIT, formatNIT, calculateNITCheckDigit } from 'soff-id/locales/co';
import { validateCPF, validateCNPJ } from 'soff-id/locales/br';
import { validateRUT } from 'soff-id/locales/cl';
import { validateCUIT } from 'soff-id/locales/ar';

// Colombian NIT
validateNIT('900123456-7');        // true
calculateNITCheckDigit('900123456'); // '7'
formatNIT('9001234567');            // '900.123.456-7'

// Brazilian CPF
validateCPF('123.456.789-09');     // true/false

// Chilean RUT
validateRUT('12.345.678-5');       // true/false

// Argentine CUIT
validateCUIT('20-12345678-9');     // true/false

Available Locales

🇨🇴Colombia
soff-id/locales/co
NITCCCETIgenerateisCompany/isPerson
🇧🇷Brasil
soff-id/locales/br
CPFCNPJgenerateisMatriz/isFilialgetBranchNumber
🇦🇷Argentina
soff-id/locales/ar
DNICUITCUILgenerategetCUITTypegetDNIFromCUIT
🇨🇱Chile
soff-id/locales/cl
RUTRUNgenerategetFormattedIfValid
🇲🇽México
soff-id/locales/mx
RFCCURPparseCURPparseRFCgetGendergetBirthDate

API Reference

Colombia - NIT, CC, CE, TI

import { 
  validateNIT, formatNIT, cleanNIT, calculateNITCheckDigit,
  generateNIT, isNITCompany, isNITPerson,
  validateCC, formatCC, cleanCC,
  validateCE, formatCE, cleanCE,
  validateTI, formatTI, cleanTI
} from 'soff-id/locales/co';

// NIT (Número de Identificación Tributaria)
validateNIT('900123456-7')         // boolean
formatNIT('9001234567')            // '900.123.456-7'
cleanNIT('900.123.456-7')          // '9001234567'
calculateNITCheckDigit('900123456') // '7'
generateNIT()                      // generates valid random NIT
isNITCompany('9001234567')         // true (starts with 8 or 9)
isNITPerson('123456789')           // true

// CC (Cédula de Ciudadanía)
validateCC('1234567890')           // boolean
formatCC('1234567890')             // '1.234.567.890'