PHPackages                             samuelpietro/cnpjutils - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. samuelpietro/cnpjutils

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

samuelpietro/cnpjutils
======================

Funções úteis para gerar e validar números de CNPJ no novo padrão alfanumérico.

v2.3.1(3mo ago)4159proprietaryPHPPHP &gt;=8.0CI passing

Since Nov 24Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/SamuelPietro/CNPJUtils)[ Packagist](https://packagist.org/packages/samuelpietro/cnpjutils)[ Docs](https://github.com/SamuelPietro/cnpjutils)[ RSS](/packages/samuelpietro-cnpjutils/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (10)Used By (0)

CNPJUtils
=========

[](#cnpjutils)

[![PHP](https://camo.githubusercontent.com/0dd2a37da08907ededaaefb42aa5a449a11461cce545ed5e14d907dad6a65570/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344253230382e302d626c7565)](https://camo.githubusercontent.com/0dd2a37da08907ededaaefb42aa5a449a11461cce545ed5e14d907dad6a65570/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344253230382e302d626c7565)[![License](https://camo.githubusercontent.com/27d0eb762f0a2e9efc3b528a37b55ac9adcdac612990a4f1cd1077564b2d9846/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d6d69742d626c7565)](https://camo.githubusercontent.com/27d0eb762f0a2e9efc3b528a37b55ac9adcdac612990a4f1cd1077564b2d9846/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d6d69742d626c7565)

**CNPJUtils** é uma biblioteca PHP de código aberto que oferece funções úteis para trabalhar com o novo padrão de CNPJ alfanumérico do Brasil. Esta biblioteca permite calcular dígitos verificadores e validar o formato do CNPJ conforme o novo padrão de doze caracteres alfanuméricos e dois dígitos numéricos.

Funcionalidades
---------------

[](#funcionalidades)

- **Geração de CNPJ**: Cria um CNPJ aleatório que respeita o formato e as regras de validação, podendo ser usado para testes ou preenchimentos automáticos.
- **Validação de CNPJ**: Confirma se um CNPJ segue o formato padrão e está devidamente estruturado, validando a conformidade dos caracteres e a correta formação dos dígitos verificadores.
- **Formatar/Mascarar**: Formata um CNPJ alfanumérico para um formato legível, com a máscara padrão de pontuação e separação de caracteres.
- **Remover mascara**: Remove a formatação de um CNPJ, retornando apenas os caracteres alfanuméricos.
- **Cálcular dígitos verificadores (DV)**: Gera os dois dígitos verificadores para um CNPJ alfanumérico, garantindo que o número esteja correto conforme as regras estabelecidas pela legislação brasileira.

Estrutura do Projeto
--------------------

[](#estrutura-do-projeto)

A estrutura do projeto é organizada para facilitar o desenvolvimento modular.

```
/project-root
├── src
│   ├── Interfaces
│   │   └── CNPJInterface.php  # Interface para validação e geração de CNPJ
│   ├── CNPJ.php              # Classe principal para validação e geração de CNPJ
│   └── DigitoVerificador.php # Classe auxiliar para cálculo do dígito verificador
├── tests
│   ├── CNPJTest.php          # Testes unitários para validação e geração de CNPJ
│   └── DigitoVerificadorTest.php # Testes unitários para cálculo do dígito verificador

```

Requisitos
----------

[](#requisitos)

- PHP versão 8.0 ou superior

Instalação
----------

[](#instalação)

1. Para instalar a biblioteca via Composer, execute o seguinte comando:

    ```
    composer require samuelpietro/cnpjutils
    ```

Uso
---

[](#uso)

1. Para gerar um CNPJ:

    ```
    use CNPJUtils\CNPJ;
    CNPJ::gerar(); // Retorna uma ‘string’ contendo um CNPJ aleatório
    ```
2. Para validar a formatação/máscara de um CNPJ:

    ```
    use CNPJUtils\CNPJ;
    CNPJ::validar('12ABC34501DE35'); // Retorna true se o CNPJ for válido e false se for inválido
    ```
3. Para mascarar um CNPJ:

    ```
    use CNPJUtils\CNPJ;
    CNPJ::mascarar('12ABC34501DE35'); // Retorna uma ‘string’ contendo o CNPJ formatado
    ```
4. Para remover a máscara de um CNPJ:

    ```
    use CNPJUtils\CNPJ;
    CNPJ::removerMascara('12.ABC.345/01DE-35'); // Retorna uma ‘string’ contendo o CNPJ sem máscara
    ```
5. Para calcular os dígitos verificadores de um CNPJ:

    ```
     use CNPJUtils\DigitoVerificador();
     DigitoVerificador::calcular('12ABC34501DE'); // Retorna uma ‘string’ contendo os dígitos verificadores
    ```

Documentação Técnica
--------------------

[](#documentação-técnica)

### 1. Cálculo dos Dígitos Verificadores do CNPJ Alfanumérico

[](#1-cálculo-dos-dígitos-verificadores-do-cnpj-alfanumérico)

1. O CNPJ é composto por doze caracteres alfanuméricos e dois dígitos verificadores (DV) calculados em duas etapas.
2. Os pesos para o cálculo são distribuídos de 2 a 9, aplicados da direita para a esquerda, reiniciando após o oitavo dígito.
3. A soma ponderada dos valores ASCII dos caracteres determina os dígitos verificadores conforme o módulo 11.

Contribuindo
------------

[](#contribuindo)

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests para adicionar melhorias e novas funcionalidades.

Para enviar pull requests siga os passos abaixo.

1. Faça um fork do repositório
2. Crie uma branch (`git checkout -b minha-feature`)
3. Commit as suas alterações (`git commit -m 'Minha nova feature'`)
4. Envie para o repositório (`git push origin minha-feature`)
5. Abra um pull request

Licença
-------

[](#licença)

Este projeto está licenciado sob a Licença MIT, que permite o uso, modificação e distribuição do ‘software’ para qualquer finalidade, desde que a atribuição ao autor original, Samuel Pietro, seja mantida em todas as cópias, modificações ou distribuições do ‘Software’.

**© 2024 Samuel Pietro / CNPJUtils**

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance80

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 83.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~53 days

Recently: every ~75 days

Total

9

Last Release

106d ago

Major Versions

1.0.1 → v2.0.02025-02-25

PHP version history (2 changes)1.0.0PHP &gt;=7.4

v2.0.0PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/52246c88edc709567962b6d974338db6a831babdd701ac061e6d5b2b88bb9ae4?d=identicon)[SamuelPietro](/maintainers/SamuelPietro)

---

Top Contributors

[![SamuelPietro](https://avatars.githubusercontent.com/u/47873743?v=4)](https://github.com/SamuelPietro "SamuelPietro (26 commits)")[![deepsource-autofix[bot]](https://avatars.githubusercontent.com/in/57168?v=4)](https://github.com/deepsource-autofix[bot] "deepsource-autofix[bot] (3 commits)")[![deepsource-io[bot]](https://avatars.githubusercontent.com/in/16372?v=4)](https://github.com/deepsource-io[bot] "deepsource-io[bot] (2 commits)")

---

Tags

cnpjbrasilvalidargerar

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/samuelpietro-cnpjutils/health.svg)

```
[![Health](https://phpackages.com/badges/samuelpietro-cnpjutils/health.svg)](https://phpackages.com/packages/samuelpietro-cnpjutils)
```

###  Alternatives

[bissolli/validador-cpf-cnpj

Classe em PHP para validação de CPF e CNPJ.

2089.0k](/packages/bissolli-validador-cpf-cnpj)[yiibr/yii2-br-validator

Provide validations and features for brazilian localization

14103.2k4](/packages/yiibr-yii2-br-validator)[tecactus/reniec-php

RENIEC package for PHP

118.4k](/packages/tecactus-reniec-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
