@julioakira/cpf-cnpj-utils
v2.0.1
Published
CPF/CNPJ validator and formatter for NodeJS
Downloads
4,471
Maintainers
Readme
cpf-cnpj-utils
A zero-dependency simple toolkit to deal with CPFs and CNPJs written in Typescript. Now updated to support alphanumeric CNPJs
Installation
- yarn
yarn add @julioakira/cpf-cnpj-utils- npm
npm i @julioakira/cpf-cnpj-utilsUsage
You can import or require CPF, CNPJ or both in your code.
import { CPF, CNPJ } from '@julioakira/cpf-cnpj-utils'
const { CPF, CNPJ } = require('@julioakira/cpf-cnpj-utils');Both CPF and CNPJ packages have the same functionalities:
- Format - Formats and unformatted CPF/CNPJ.
- Strip - Strips a formatted CPF/CNPJ.
- Validate - Validates a formatted or unformatted CPF/CNPJ.
- Generate - Generates a valid CPF/CNPJ.
// Returns 30.306.294/0001-45
const formatted = CNPJ.Format('30306294000145');
// Returns 30306294000145
const stripped = CNPJ.Strip('30.306.294/0001-45');
// Generates a valid unformatted CNPJ
const cnpj = CNPJ.Generate()
// Generates a valid formatted CNPJ
const cnpj = CNPJ.Generate(true);
// Returns true for valid and false for invalid
const valid = CNPJ.Validate('30306294000145')
const valid = CNPJ.Validate('30.306.294/0001-45');
const invalid = CNPJ.Validate('30306294000155');
const invalid = CNPJ.Validate('30.306.294/0001-55');// Returns 606.772.720-06
const formatted = CPF.Format('60677272006');
// Returns 60677272006
const stripped = CPF.Strip('606.772.720-06');
// Generates a valid unformatted CPF
const cpf = CPF.Generate()
// Generates a valid formatted CNPJ
const cpf = CPF.Generate(true);
// Returns true for valid and false for invalid
const valid = CPF.Validate('60677272006')
const valid = CPF.Validate('606.772.720-06');
const invalid = CPF.Validate('40308985062');
const invalid = CPF.Validate('403.089.850-62');Alphanumeric CNPJs
Starting from july/2026, CNPJs might include alphanumeric characters. The validator and generator functions support them out of the box:
// Returns "IH.NKO.M5D/DLZU-99"
const generated = CNPJ.Generate(true)
// returns true
const validated = CNPJ.Validate('IH.NKO.M5D/DLZU-99')Variable Length CPFs and CNPJs
NOTE From versions below 2.0.0 the zero_pad argument is by default true. This was changed in versions above 2.0.0.
Some CPFs and CNPJs that use the pattern before july/2026 might have variable lengths and not be zero padded up to their regular length. The validate function has a optional zero_pad argument, which is false by default but can be manually set to true if desired:
// CNPJ with 13 digits returns false
const valid = CNPJ.Validate('4307650002502');
// Setting auto zero padding to true returns true
const invalid = CNPJ.Validate('4307650002502', true);
// CPF with 10 digits returns false
const valid = CPF.Validate('2204306240');
// Setting auto zero padding to true invalidates and returns true
const invalid = CNPJ.Validate('2204306240', true);
Tests
Tests are handled by Jest.
- yarn
yarn test- npm
npm test