Skip to main content

Biblioteca autoral AS-CNPJ para validacao, normalizacao e formatacao de CNPJ numerico e alfanumerico.

Project description

AS-CNPJ Python

Biblioteca autoral do ecossistema AS-CNPJ para validação, normalização, formatação e cálculo de dígitos verificadores de CNPJ numérico e alfanumérico em Python.

Repositório · PyPI · Site · Hub do ecossistema · API · Testes

PyPI as-cnpj CI as-cnpj-python Python 3.10 to 3.14 License MIT Site as-cnpj.org

Idiomas: Português (Brasil) | English | Español | Français

Status

  • repositório público e ativo;
  • publicado no PyPI como as-cnpj;
  • CI rodando em Python 3.10, Python 3.11, Python 3.12, Python 3.13 e Python 3.14;
  • API funcional e coberta por testes automatizados;
  • release workflow preparado para publicação no PyPI via Trusted Publishing;
  • fluxo de publicação e pacote já ativos publicamente.

Instalação

python -m pip install as-cnpj

Import público:

from as_cnpj import is_valid_cnpj

Exemplo rápido

from as_cnpj import (
    assert_valid,
    calculate_cnpj_check_digits,
    format_cnpj,
    is_valid,
    normalize,
)

is_valid("12.ABC.345/01DE-35")
normalize("12.abc.345/01de-35")
format_cnpj("12ABC34501DE35")
assert_valid("12.ABC.345/01DE-35", strict=True)
calculate_cnpj_check_digits("12ABC34501DE")

Casos de uso

  • formulários de cadastro B2B com aceitação do formato legado e do formato alfanumérico;
  • backends Python que precisam validar payloads antes de persistir ou integrar com ERP;
  • rotinas de saneamento e migração de base com normalização consistente;
  • suites de teste e homologação que precisam gerar e validar exemplos de CNPJ.

O que esta biblioteca entrega

  • validação de CNPJ numérico legado;
  • validação de CNPJ alfanumérico previsto pela Receita Federal para julho de 2026;
  • suporte a entradas com máscara e sem máscara;
  • modo permissivo e modo estrito;
  • zero dependências de runtime para o núcleo do algoritmo;
  • consistência com vetores compartilhados do hub.

API pública

Funções principais:

  • normalize(value)
  • is_valid(value, strict=False)
  • format(value, strict=False)
  • assert_valid(value, strict=False)
  • calculate_check_digits(base12)
  • validate_many(values, strict=False)

Aliases explícitos:

  • normalize_cnpj(value)
  • is_valid_cnpj(value, strict=False)
  • format_cnpj(value, strict=False)
  • assert_valid_cnpj(value, strict=False)
  • calculate_cnpj_check_digits(base12)
  • validate_many_cnpj(values, strict=False)

Validação em lote

Além da API unitária, a biblioteca também expõe:

  • validate_many(values, strict=False)
  • validate_many_cnpj(values, strict=False)

O retorno preserva a ordem de entrada e entrega:

  • items: resultado item a item com index, input, normalized, formatted, valid, strict_valid e reason;
  • summary: total, válidos, inválidos e contagem agregada por motivo.
from as_cnpj import validate_many

result = validate_many([
    "12.ABC.345/01DE-35",
    "12.ABC.345/01DE-36",
    None,
])

result["items"][0]["valid"]
result["items"][1]["reason"]
result["summary"]["reasons"]

Garantias centrais

  • aceita A-Z0-9 nos 12 primeiros caracteres;
  • mantém os 2 dígitos verificadores como numéricos;
  • usa módulo 11 com conversão ASCII - 48;
  • normaliza entrada para caixa alta;
  • rejeita repetições triviais inválidas;
  • mantém o contrato alinhado aos vetores compartilhados do ecossistema.

Documentação e referências

Publicação

  • pacote publicado no PyPI: as-cnpj
  • import público: as_cnpj
  • release via GitHub Releases com Trusted Publishing para o PyPI

Vetores compartilhados

O as-cnpj-python não define a verdade sozinho.

O contrato do ecossistema depende também de:

  • vetores compartilhados no hub;
  • regras documentadas a partir das fontes oficiais;
  • convergência entre implementações em linguagens diferentes.

Manutenção

Maintainer: @0moura
Contato institucional: ascnpj@0moura.io

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

as_cnpj-0.1.3.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

as_cnpj-0.1.3-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file as_cnpj-0.1.3.tar.gz.

File metadata

  • Download URL: as_cnpj-0.1.3.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for as_cnpj-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ad632135bfcabe265f9c91e4c0e422eccfa1c5cc433ea8a1183b5b524838f80f
MD5 19f385be8cfc357f234985c9264f73e8
BLAKE2b-256 5d708fdae375b888253f877aa4555240f510e16193e5d4978c23dda9f7165968

See more details on using hashes here.

Provenance

The following attestation bundles were made for as_cnpj-0.1.3.tar.gz:

Publisher: release.yml on as-cnpj/as-cnpj-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file as_cnpj-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: as_cnpj-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for as_cnpj-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 065742c75287b6144672bf1d398af37824f464069f115c00acff4af67de46c37
MD5 9bd930a7581701ad50acb71881274605
BLAKE2b-256 c7bd4bcacbdd1bd0ccf0f5aca576abef02a06ce4db4c39040cb888ff85e7cf48

See more details on using hashes here.

Provenance

The following attestation bundles were made for as_cnpj-0.1.3-py3-none-any.whl:

Publisher: release.yml on as-cnpj/as-cnpj-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page