Validate, format, and parse Brazilian CNPJs. Supports both numeric and alphanumeric formats (IN RFB nº 2.229/2024, effective July 2026).
npm install validate-cnpj
# or
bun add validate-cnpj
# or
yarn add validate-cnpjimport { validate, format, parse, isAlphanumeric } from "validate-cnpj";
// Validate
validate("11.222.333/0001-81"); // true
validate("11222333000181"); // true
validate("00000000000000"); // false
// Alphanumeric (new format, July 2026)
validate("12ABC3450001XX"); // validates check digits
// Format
format("11222333000181"); // "11.222.333/0001-81"
// Parse
parse("11222333000181");
// { root: "11222333", branch: "0001", digits: "81" }
// Detect format
isAlphanumeric("11222333000181"); // false| Function | Description |
|---|---|
validate(cnpj) |
Validate a CNPJ (numeric or alphanumeric) |
format(cnpj) |
Format as XX.XXX.XXX/XXXX-XX |
parse(cnpj) |
Extract root, branch, and check digits |
clean(cnpj) |
Strip formatting characters |
generateDigits(base) |
Generate check digits for a 12-char base |
isAlphanumeric(cnpj) |
Check if CNPJ uses the new alphanumeric format |
Starting July 2026, new CNPJ registrations in Brazil will use alphanumeric characters (A-Z, 0-9) in the first 12 positions. Check digits (positions 13-14) remain numeric. This library supports both formats from day one.
Legal basis: Instrução Normativa RFB nº 2.229, October 15, 2024.
checkpj.app — API for Brazilian company data. 69M+ companies, search, shareholders, validation. Free tier available.