What BR Utils does
Format
Apply or strip CPF and CNPJ masks.
Generate
Generate valid CPF and CNPJ identifiers.
Validate
Check check-digits and format.
Alphanumeric CNPJ
Support for the new alphanumeric CNPJ format (2026).
Unified API
One façade package wrapping CPF and CNPJ utilities.
Configurable defaults
Set instance defaults and override them per call.
The same flow, in every language
- JavaScript
- PHP
- Python
- Ruby
import brUtils from 'br-utils'
brUtils.cpf.format('47844241055') // '478.442.410-55'
brUtils.cpf.generate({ format: true })
brUtils.cpf.isValid('123.456.789-09') // true
brUtils.cnpj.format('03603568000195') // '03.603.568/0001-95'
brUtils.cnpj.generate({ format: true })
brUtils.cnpj.isValid('98765432000198') // true
<?php
use Lacus\BrUtils;
$utils = new BrUtils();
$utils->cpf->format('11144477735'); // '111.444.777-35'
$utils->cpf->generate();
$utils->cpf->isValid('11144477735'); // true
$utils->cnpj->format('03603568000195'); // '03.603.568/0001-95'
$utils->cnpj->generate();
$utils->cnpj->isValid('03603568000195'); // true
from br_utils import br_utils
br_utils.cpf.format('11144477735') # '111.444.777-35'
br_utils.cpf.generate()
br_utils.cpf.is_valid('11144477735') # True
br_utils.cnpj.format('03603568000195') # '03.603.568/0001-95'
br_utils.cnpj.generate()
br_utils.cnpj.is_valid('03603568000195') # True
require 'br-utilities'
BrUtils.cpf.format('12345678909') # => "123.456.789-09"
BrUtils.cpf.generate(format: true)
BrUtils.cpf.is_valid('123.456.789-09') # => true
BrUtils.cnpj.format('03603568000195') # => "03.603.568/0001-95"
BrUtils.cnpj.generate(format: true)
BrUtils.cnpj.is_valid('98765432000198') # => true
Available now
Four languages ready for production. Java, Go, and Rust are on the way.
In development
Java / Kotlin / ScalaComing soon
