Skip to content

Biblioteca Java de alto desempenho para geração, formatação e validação de CNPJ (numérico e alfanumérico, compatível com NT 2025.001)

License

Notifications You must be signed in to change notification settings

robsonkades/cnpj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CNPJ

Maven Central
License: MIT
Build Status

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.


📚 Índice

  1. Funcionalidades
  2. Exemplo Rápido
  3. Compatibilidade com a NT 2025.001
  4. Instalação (Maven/Gradle)
  5. Licença
  6. Contribuindo

✅ Funcionalidades

  • 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+

🚀 Exemplo Rápido

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());
        }
    }
}

🏛️ Compatibilidade com a NT 2025.001

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

📦 Instalação (Maven/Gradle)

Maven

<dependency>
  <groupId>io.github.robsonkades</groupId>
  <artifactId>cnpj</artifactId>
  <version>1.0.0</version>
</dependency>

Gradle (Kotlin DSL)

implementation("io.github.robsonkades:cnpj:1.0.0")

License

This project is licensed under the Apache 2.0 license.

Contributing

Contributions, bug reports, and feature requests are always welcome! Please see CONTRIBUTING.md for more details.

About

Biblioteca Java de alto desempenho para geração, formatação e validação de CNPJ (numérico e alfanumérico, compatível com NT 2025.001)

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages