https://github.com/lacussolutions/cnpj-utils-js
Straight forward JavaScript package to handle CNPJ data (Brazilian employer ID).
https://github.com/lacussolutions/cnpj-utils-js
br bun cnpj format formatter generate generator javascript node npm typescript validate validator
Last synced: 4 months ago
JSON representation
Straight forward JavaScript package to handle CNPJ data (Brazilian employer ID).
- Host: GitHub
- URL: https://github.com/lacussolutions/cnpj-utils-js
- Owner: LacusSolutions
- License: mit
- Archived: true
- Created: 2021-06-08T02:32:07.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-08-19T04:43:14.000Z (10 months ago)
- Last Synced: 2025-09-18T13:48:38.629Z (9 months ago)
- Topics: br, bun, cnpj, format, formatter, generate, generator, javascript, node, npm, typescript, validate, validator
- Language: JavaScript
- Homepage: https://cnpj-utils.vercel.app/
- Size: 969 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# cnpj-utils for JavaScript






Toolkit to handle the main operations with CNPJ data (Brazilian corporate ID): validation, formatting and generation of valid character sequences.
## Browser Support
 |  |  |  |  |  |
--- | --- | --- | --- | --- | --- |
Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 11 ✔ |
## Installation
```bash
# using NPM
$ npm install --save cnpj-utils
# using Bun
$ bun add cnpj-utils
```
## Import
```js
// Common JS syntax:
const cnpjUtils = require('cnpj-utils')
// ES Module syntax:
import cnpjUtils from 'cnpj-utils'
// or get the specific function with ES tree-shaking:
import { isValid, generate, format } from 'cnpj-utils'
```
or import it through your HTML file, using CDN:
```html
```
## API
`cnpj-utils` is only a wrapper to the libraries maintained by **LacusSoft**, [`cnpj-fmt`](https://www.npmjs.com/package/@lacussoft/cnpj-fmt), [`cnpj-gen`](https://www.npmjs.com/package/@lacussoft/cnpj-gen) and [`cnpj-val`](https://www.npmjs.com/package/@lacussoft/cnpj-val), so you can refer directly to their specific documentation. Anyway, the API is detailed hereby with examples.
### `cnpjUtils.format(string[, options])`
**returns** `string`
The `format` method expects a string as its first parameter.
If the input does not contain 14 digits (it does not need to be a valid CNPJ, but it MUST be 14-digits long) an `onFail` callback is invoked. By default, a copy of the input is returned as a fallback, but this callback and other customizations may be defined in the second parameter.
```js
const cnpj = '03603568000195'
cnpjUtils.format(cnpj) // returns '03.603.568/0001-95'
cnpjUtils.format(cnpj, { // returns '03.603.***/****-**'
hidden: true
})
cnpjUtils.format(cnpj, { // returns '03603568|0001_95'
delimiters: {
dot: '',
slash: '|',
dash: '_'
}
})
```
Here are the available default configurations that can be overwritten by the `options` parameter:
```js
cnpjUtils.format(cnpj, {
delimiters: {
dot: '.', // string to replace the dot characters
slash: '/', // string to replace the slash character
dash: '-' // string to replace the dash character
},
escape: false, // boolean to define if the result should be HTML escaped
hidden: false, // boolean to define if digits should be hidden
hiddenKey: '*', // string to replace hidden digits
hiddenRange: {
start: 5, // starting index of the numeric sequence to be hidden (min 0)
end: 13 // ending index of the numeric sequence to be hidden (max 13)
},
onFail(value) { // fallback function to be invoked in case a non-14-digits is passed
return value
}
})
```
### `cnpjUtils.generate([options])`
**returns** `string`
If you need to generate valid CNPJs, the `generate` method makes this task easy and safe. Invoke it without parameters to obtain a 14‑digit string. You can also provide an `options` object to configure its output, like flagging it to format or to complete a digits string with a valid CNPJ sequence:
```js
let cnpj = cnpjUtils.generate() // returns '65453043000178'
cnpj = cnpjUtils.generate({ // returns '73.008.535/0005-06'
format: true
})
cnpj = cnpjUtils.generate({ // returns '45623767000296'
prefix: '45623767'
})
cnpj = cnpjUtils.generate({ // returns '45.623.767/0002-96'
prefix: '456237670002',
format: true
})
```
The default configurations are:
```js
cnpjUtils.generate({
format: false, // indicates if output should be formatted
prefix: '' // if you have a CNPJ initials and want to complete it with valid
}) // digits. The string provided must contain between 1 and 12 digits!
```
Keep in mind that, for the `prefix` option, it must be a **string** containing up to 12 digits.
### `cnpjUtils.isValid(string)`
**returns** `boolean`
The `isValid` method receives a string as its single parameter, evaluates it and returns `true` or `false` as output. This parameter may contain any character like letters, symbols, punctuation or white spaces, but it will immediately return `false` in case the expected 14 digits are not found to be deeply evaluated.
```js
cnpjUtils.isValid('98765432000198') // returns 'true'
cnpjUtils.isValid('98.765.432/0001-98') // returns 'true'
cnpjUtils.isValid('98765432000199') // returns 'false'
^^
```