Skip to main content

📦 cnpjalfanum

Biblioteca Python para geração, validação e formatação de CNPJ alfanumérico, conforme o novo padrão da Receita Federal do Brasil.
Ideal para uso em testes automatizados com Robot Framework.


🚀 Instalação

Recomenda-se o uso de ambiente virtual:

python -m venv venv
source venv/bin/activate   # Linux/macOS
venv\Scripts\activate.bat  # Windows

pip install .

🤖 Integração com Robot Framework

No seu arquivo .robot:

*** Settings ***
Library    cnpjalfanum.validator.CNPJAlfanumKeywords

🔑 Keywords disponíveis

Keyword Descrição
Gerar Cnpj Gera um CNPJ alfanumérico válido com 14 caracteres.
Validar Cnpj Verifica se o CNPJ é válido conforme os dígitos verificadores.
Formatar Cnpj Aplica a máscara XX.XXX.XXX/XXXX-XX ao CNPJ.
Completar DV Calcula os dois dígitos verificadores a partir dos 12 primeiros caracteres.
Reconstruir Cnpj Retorna o CNPJ completo (14 caracteres) a partir da base.
É Formatado Verifica se o CNPJ está no formato com máscara.
Normalizar Remove a formatação e converte para maiúsculas.
É Valido Parcial Verifica se os 12 primeiros caracteres são válidos para cálculo de DV.
Gerar Cnpj Invalido Gera um CNPJ com estrutura válida, mas com DV incorreto.

🧪 Exemplo de uso em Robot Framework

*** Test Cases ***
Gerar CNPJ Válido
    ${cnpj}=    Gerar Cnpj
    Log    CNPJ gerado: ${cnpj}
    Should Be Equal As Integers    ${len(${cnpj})}    14

Validar CNPJ Gerado
    ${cnpj}=    Gerar Cnpj
    ${valido}=  Validar Cnpj    ${cnpj}
    Should Be True    ${valido}

Formatar CNPJ
    ${cnpj}=    Gerar Cnpj
    ${formatado}=    Formatar Cnpj    ${cnpj}
    Log    CNPJ formatado: ${formatado}
    Should Match Regexp    ${formatado}    ^[A-Z0-9]{2}\.[A-Z0-9]{3}\.[A-Z0-9]{3}/[A-Z0-9]{4}-\d{2}$

Completar Dígito Verificador
    ${cnpj}=    Gerar Cnpj
    ${base}=    Set Variable    ${cnpj[:12]}
    ${dv}=      Completar DV    ${base}
    Log    DV calculado: ${dv}
    Should Be Equal    ${cnpj[12:]}    ${dv}

Reconstruir CNPJ
    ${cnpj}=    Gerar Cnpj
    ${base}=    Set Variable    ${cnpj[:12]}
    ${reconstruido}=    Reconstruir Cnpj    ${base}
    Should Be Equal    ${cnpj}    ${reconstruido}

Verificar Formatação
    ${cnpj}=    Gerar Cnpj
    ${formatado}=    Formatar Cnpj    ${cnpj}
    ${resultado}=    É Formatado    ${formatado}
    Should Be True    ${resultado}

Normalizar CNPJ
    ${cnpj}=    Gerar Cnpj
    ${formatado}=    Formatar Cnpj    ${cnpj}
    ${limpo}=    Normalizar    ${formatado}
    Should Be Equal    ${limpo}    ${cnpj}

Verificar Validade Parcial
    ${cnpj}=    Gerar Cnpj
    ${base}=    Set Variable    ${cnpj[:12]}
    ${parcial}=    É Valido Parcial    ${base}
    Should Be True    ${parcial}

Gerar CNPJ Inválido
    ${cnpj_invalido}=    Gerar Cnpj Invalido
    ${valido}=    Validar Cnpj    ${cnpj_invalido}
    Log    CNPJ inválido gerado: ${cnpj_invalido}
    Should Be False    ${valido}

🧪 Como executar os testes com Robot Framework (Windows) Para validar o funcionamento da biblioteca e garantir que os keywords estão operando corretamente, você pode rodar os testes automatizados usando o Robot Framework. Certifique-se de estar na raiz do projeto e que o Python reconheça o pacote da biblioteca. Para isso, é necessário configurar a variável de ambiente PYTHONPATH apontando para o diretório atual.

$env:PYTHONPATH = "."
robot .\examples\example_keywords.robot

🔍 Diferença entre Completar DV e Reconstruir Cnpj

Ambas as keywords trabalham com os dígitos verificadores (DV) do CNPJ alfanumérico, mas têm propósitos distintos:

  • Completar DV
    Recebe os 12 primeiros caracteres do CNPJ e retorna apenas os dois dígitos verificadores calculados.
    🔧 Ideal para validar ou comparar DVs separadamente.

  • Reconstruir Cnpj
    Recebe os 12 primeiros caracteres e retorna o CNPJ completo (14 caracteres), já com os DVs anexados.
    📦 Útil para gerar o CNPJ final a partir da base.

Essas funções são especialmente úteis em:

  • Testes de preenchimento parcial
  • Validação de campos
  • Reconstrução de dados em sistemas que adotam o novo padrão alfanumérico.

🧠 Sobre o CNPJ Alfanumérico

A partir de julho de 2026, o CNPJ passará a aceitar letras e números nas 12 primeiras posições, aumentando a capacidade de identificação de empresas.
Esta biblioteca já está preparada para o novo padrão.


🛠️ Testes unitários

Execute os testes com:

python -m unittest tests.tests_units

📜 Licença

Apache 2.0 — Livre para uso, modificação e distribuição, com proteção de patentes e exigência de manter avisos de copyright e alterações.

Metadata

Release files for robotframework-cnpjalfanum 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robotframework-cnpjalfanum 0.1.0
File Size Uploaded
robotframework_cnpjalfanum-0.1.0.tar.gz 9.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robotframework-cnpjalfanum 0.1.0
File Interpreter ABI Platform
robotframework_cnpjalfanum-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.7 kB

Release files / robotframework_cnpjalfanum-0.1.0.tar.gz

Download URL robotframework_cnpjalfanum-0.1.0.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
47360e70f3afa4ebd009e4cf64aa9e4d940e7dacd9d892b5af8a7a03302e5a7f
BLAKE2b-256 checksum
How to use checksums
038afbc0e4a3e5cc0dfe8a7fd6d48a647fd4bc895e15ffd903a46f774161c4ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / robotframework_cnpjalfanum-0.1.0-py3-none-any.whl

Download URL robotframework_cnpjalfanum-0.1.0-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b2f30845d30e80c86ea648460584e726ede372270daf933b99a7d4acce0f5b57
BLAKE2b-256 checksum
How to use checksums
6f0ff9cc8a36f6243df88022f8440a711bbb54f1c599f0b6b8d64aaaa0f9ee9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page