validator-brazil
Version:
Validate Brazilian CPF, CNPJ (including alphanumeric) and CEP
97 lines (64 loc) • 2.37 kB
Markdown
Validate Brazilian CPF, CNPJ and CEP. Lightweight, zero dependencies, written in TypeScript.
Supports the **new alphanumeric CNPJ** format (IN RFB 2.229/2024), effective from July 2026.
[](https://badge.fury.io/js/validator-brazil)
```
$ npm install validator-brazil
```
```
$ yarn add validator-brazil
```
```ts
import { isCpf, isCnpj, isCep } from "validator-brazil";
```
```js
const { isCpf, isCnpj, isCep } = require("validator-brazil");
```
Validates a Brazilian CPF (Cadastro de Pessoas Fisicas). Accepts input with or without mask.
```ts
isCpf("14552586017"); // true
isCpf("145.525.860-17"); // true
isCpf("12312345600"); // false
isCpf("123.123.456-00"); // false
```
Validates a Brazilian CNPJ (Cadastro Nacional da Pessoa Juridica). Accepts input with or without mask, both traditional numeric and the new alphanumeric format. Case insensitive.
#### Traditional (numeric)
```ts
isCnpj("54334068000136"); // true
isCnpj("54.334.068/0001-36"); // true
isCnpj("00111222000100"); // false
```
```ts
isCnpj("12ABC34501DE35"); // true
isCnpj("12.ABC.345/01DE-35"); // true
isCnpj("Y0W9NJBN000176"); // true
isCnpj("Y0.W9N.JBN/0001-76"); // true
isCnpj("12abc34501de35"); // true (case insensitive)
```
Validates a Brazilian CEP (Codigo de Enderecamento Postal). Accepts input with or without hyphen.
```ts
isCep("43710130"); // true
isCep("43710-130"); // true
isCep("5471013423"); // false
```
Starting July 2026, the Brazilian Federal Revenue Service (Receita Federal) will issue CNPJs containing letters (A-Z) in addition to digits. The format remains 14 characters:
| Positions | Content | Allowed characters |
|-----------|---------|-------------------|
| 1-8 | Root | `A-Z`, `0-9` |
| 9-12 | Order | `A-Z`, `0-9` |
| 13-14 | Check digits | `0-9` |
Existing numeric CNPJs remain valid and unchanged. This library handles both formats transparently.
## License
MIT