CNPJ é uma biblioteca Java de alto desempenho para Geração, formatação e validação de CNPJs no formato tradicional (numérico) e no novo formato alfanumérico definido pela Nota Técnica Conjunta 2025.001.
Ideal para sistemas fiscais, contábeis, ERPs e integrações com SEFAZ.
- Funcionalidades
- Exemplo Rápido
- Compatibilidade com a NT 2025.001
- Instalação (Maven/Gradle)
- Licença
- Contribuindo
- Geração de CNPJ numérico e alfanumérico (base 36)
- Validação com cálculo de dígitos verificadores via Módulo 11
- Compatível com o novo formato da NT 2025.001
- Formatação e desformatação (strip)
- Sem dependências externas
- Compatível com Java 8+
import io.github.robsonkades.Cnpj;
import io.github.robsonkades.CnpjAlphanumeric;
import io.github.robsonkades.CnpjNumeric;
public class Main {
public static void main(String[] args) {
try {
// Criar um CNPJ numérico válido
Cnpj numericCnpj = CnpjNumeric.create("12345678000195");
System.out.println("CNPJ Numérico: " + numericCnpj.getValue());
System.out.println("CNPJ Formatado: " + numericCnpj.format());
System.out.println("Raiz do CNPJ: " + numericCnpj.getRoot());
System.out.println("Representação: " + numericCnpj);
// Criar um CNPJ alfanumérico (apenas para demonstração, não padrão no Brasil)
Cnpj alphaCnpj = CnpjAlphanumeric.create("12ABC34501DE35");
System.out.println("\nCNPJ Alfanumérico: " + alphaCnpj.getValue());
System.out.println("CNPJ Alfanumérico Formatado: " + alphaCnpj.format());
// Gerar um CNPJ numérico aleatório
Cnpj randomCnpj = CnpjNumeric.random();
System.out.println("\nCNPJ Aleatório: " + randomCnpj.getValue());
System.out.println("CNPJ Aleatório Formatado: " + randomCnpj.format());
// Tentar criar um CNPJ inválido (deve lançar exceção)
Cnpj invalidCnpj = CnpjNumeric.create("12345678000100");
} catch (IllegalArgumentException e) {
System.out.println("\nErro: CNPJ inválido - " + e.getMessage());
}
}
}
A partir de julho de 2026, a Receita Federal iniciará a emissão de CNPJs com letras e números. Esta biblioteca já suporta:
- Cálculo de dígitos verificadores usando ASCII - 48
- Identificação de tipo: numérico ou alfanumérico
- Validação automática de qualquer versão
- Formatação no padrão AA.AAA.AAA/AAAA-DV
<dependency>
<groupId>io.github.robsonkades</groupId>
<artifactId>cnpj</artifactId>
<version>1.0.0</version>
</dependency>
implementation("io.github.robsonkades:cnpj:1.0.0")
This project is licensed under the Apache 2.0 license.
Contributions, bug reports, and feature requests are always welcome! Please see CONTRIBUTING.md for more details.