Biblioteca para validação de CPF e CNPJ brasileiros, incluindo suporte ao novo padrão alfanumérico
Project description
CNPJ/CPF Validator | Validador de CNPJ/CPF
Read this in: English | Português
Português
Biblioteca Python para validação de CPF e CNPJ brasileiros, com suporte ao novo padrão alfanumérico de CNPJ (a partir de julho de 2026).
Instalação
pip install cnpj-cpf-validator
Recursos
- Validação de CPF
- Formatação de CPF (adiciona pontuação)
- Validação de CNPJ (numérico e alfanumérico)
- Formatação de CNPJ (adiciona pontuação)
- Suporte ao novo formato alfanumérico de CNPJ (válido a partir de julho de 2026)
Uso
Validação de CPF
from cnpj_cpf_validator import CPF
# Verificar se um CPF é válido
CPF.is_valid("529.982.247-25") # True
CPF.is_valid("52998224725") # True
CPF.is_valid("529.982.247-26") # False (dígito verificador inválido)
# Formatar um CPF
CPF.format("52998224725") # "529.982.247-25"
Validação de CNPJ
from cnpj_cpf_validator import CNPJ
# Verificar se um CNPJ é válido (formato numérico tradicional)
CNPJ.is_valid("11.222.333/0001-81") # True
CNPJ.is_valid("11222333000181") # True
CNPJ.is_valid("11.222.333/0001-80") # False (dígito verificador inválido)
# Verificar se um CNPJ alfanumérico é válido (novo formato a partir de julho de 2026)
CNPJ.is_valid("12.ABC.345/01DE-35") # True - Exemplo oficial do SERPRO
CNPJ.is_valid("12ABC34501DE35") # True - Mesmo exemplo sem formatação
# Formatar um CNPJ
CNPJ.format("11222333000181") # "11.222.333/0001-81"
CNPJ.format("12ABC34501DE35") # "12.ABC.345/01DE-35"
Novo formato de CNPJ alfanumérico (a partir de julho de 2026)
A Receita Federal do Brasil anunciou mudanças no formato do CNPJ que começarão a valer a partir de julho de 2026. A principal alteração é a introdução do CNPJ alfanumérico, que incluirá letras, além dos números, na sua composição.
Como funcionará o novo CNPJ:
-
Formato Alfanumérico: O CNPJ continuará tendo 14 caracteres, mas:
- As oito primeiras posições (raiz do CNPJ) poderão conter tanto letras quanto números.
- As quatro posições seguintes (ordem do estabelecimento) também serão alfanuméricas.
- As duas últimas posições (dígitos verificadores) continuarão sendo exclusivamente numéricas.
-
Algoritmo de validação: O cálculo dos dígitos verificadores segue o algoritmo oficial do SERPRO:
- Caracteres alfanuméricos são convertidos para valores numéricos (A=10, B=11, ..., Z=35)
- Pesos específicos são aplicados da direita para a esquerda (2 a 9, recomeçando após o 8º caracter)
- O resto da divisão por 11 é usado para calcular os dígitos verificadores
-
Convivência de formatos: Os CNPJs já existentes (apenas numéricos) permanecerão válidos. O novo formato alfanumérico será implementado apenas para novas inscrições a partir de julho de 2026. Os dois formatos (numérico e alfanumérico) vão coexistir.
Exemplo de cálculo (SERPRO)
Para o CNPJ alfanumérico 12ABC34501DE:
-
Conversão dos caracteres:
- Valores: 1, 2, 10, 11, 12, 3, 4, 5, 0, 1, 13, 14
-
Cálculo do primeiro dígito verificador:
- Pesos: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Multiplicação: 5, 8, 30, 22, 108, 24, 28, 30, 0, 4, 39, 28
- Somatório: 459
- Resto da divisão por 11: 8
- Primeiro dígito: 11 - 8 = 3
-
Cálculo do segundo dígito verificador:
- Pesos: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Somatório com o primeiro dígito: 424
- Resto da divisão por 11: 6
- Segundo dígito: 11 - 6 = 5
-
Resultado final:
12.ABC.345/01DE-35
Licença
MIT
Recursos
- Validação de CPF
- Formatação de CPF (adiciona pontuação)
- Validação de CNPJ (numérico e alfanumérico)
- Formatação de CNPJ (adiciona pontuação)
- Suporte ao novo formato alfanumérico de CNPJ (válido a partir de julho de 2026)
Uso
Validação de CPF
from cnpj_cpf_validator import CPF
# Verificar se um CPF é válido
CPF.is_valid("529.982.247-25") # True
CPF.is_valid("52998224725") # True
CPF.is_valid("529.982.247-26") # False (dígito verificador inválido)
# Formatar um CPF
CPF.format("52998224725") # "529.982.247-25"
Validação de CNPJ
from cnpj_cpf_validator import CNPJ
# Verificar se um CNPJ é válido (formato numérico tradicional)
CNPJ.is_valid("11.222.333/0001-81") # True
CNPJ.is_valid("11222333000181") # True
CNPJ.is_valid("11.222.333/0001-80") # False (dígito verificador inválido)
# Verificar se um CNPJ alfanumérico é válido (novo formato a partir de julho de 2026)
CNPJ.is_valid("12.ABC.345/01DE-35") # True - Exemplo oficial do SERPRO
CNPJ.is_valid("12ABC34501DE35") # True - Mesmo exemplo sem formatação
# Formatar um CNPJ
CNPJ.format("11222333000181") # "11.222.333/0001-81"
CNPJ.format("12ABC34501DE35") # "12.ABC.345/01DE-35"
Novo formato de CNPJ alfanumérico (a partir de julho de 2026)
A Receita Federal do Brasil anunciou mudanças no formato do CNPJ que começarão a valer a partir de julho de 2026. A principal alteração é a introdução do CNPJ alfanumérico, que incluirá letras, além dos números, na sua composição.
Como funcionará o novo CNPJ:
-
Formato Alfanumérico: O CNPJ continuará tendo 14 caracteres, mas:
- As oito primeiras posições (raiz do CNPJ) poderão conter tanto letras quanto números.
- As quatro posições seguintes (ordem do estabelecimento) também serão alfanuméricas.
- As duas últimas posições (dígitos verificadores) continuarão sendo exclusivamente numéricas.
-
Algoritmo de validação: O cálculo dos dígitos verificadores segue o algoritmo oficial do SERPRO:
- Caracteres alfanuméricos são convertidos para valores numéricos (A=10, B=11, ..., Z=35)
- Pesos específicos são aplicados da direita para a esquerda (2 a 9, recomeçando após o 8º caracter)
- O resto da divisão por 11 é usado para calcular os dígitos verificadores
-
Convivência de formatos: Os CNPJs já existentes (apenas numéricos) permanecerão válidos. O novo formato alfanumérico será implementado apenas para novas inscrições a partir de julho de 2026. Os dois formatos (numérico e alfanumérico) vão coexistir.
Exemplo de cálculo (SERPRO)
Para o CNPJ alfanumérico 12ABC34501DE:
-
Conversão dos caracteres:
- Valores: 1, 2, 10, 11, 12, 3, 4, 5, 0, 1, 13, 14
-
Cálculo do primeiro dígito verificador:
- Pesos: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Multiplicação: 5, 8, 30, 22, 108, 24, 28, 30, 0, 4, 39, 28
- Somatório: 459
- Resto da divisão por 11: 8
- Primeiro dígito: 11 - 8 = 3
-
Cálculo do segundo dígito verificador:
- Pesos: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Somatório com o primeiro dígito: 424
- Resto da divisão por 11: 6
- Segundo dígito: 11 - 6 = 5
-
Resultado final:
12.ABC.345/01DE-35
Licença
MIT
English
Python library for validating Brazilian CPF and CNPJ, with support for the new alphanumeric CNPJ standard (from July 2026).
Installation
pip install cnpj-cpf-validator
Features
- CPF validation
- CPF formatting (adds punctuation)
- CNPJ validation (numeric and alphanumeric)
- CNPJ formatting (adds punctuation)
- Support for the new alphanumeric CNPJ format (valid from July 2026)
Usage
CPF Validation
from cnpj_cpf_validator import CPF
# Check if a CPF is valid
CPF.is_valid("529.982.247-25") # True
CPF.is_valid("52998224725") # True
CPF.is_valid("529.982.247-26") # False (invalid verification digit)
# Format a CPF
CPF.format("52998224725") # "529.982.247-25"
CNPJ Validation
from cnpj_cpf_validator import CNPJ
# Check if a CNPJ is valid (traditional numeric format)
CNPJ.is_valid("11.222.333/0001-81") # True
CNPJ.is_valid("11222333000181") # True
CNPJ.is_valid("11.222.333/0001-80") # False (invalid verification digit)
# Check if an alphanumeric CNPJ is valid (new format from July 2026)
CNPJ.is_valid("12.ABC.345/01DE-35") # True - Official SERPRO example
CNPJ.is_valid("12ABC34501DE35") # True - Same example without formatting
# Format a CNPJ
CNPJ.format("11222333000181") # "11.222.333/0001-81"
CNPJ.format("12ABC34501DE35") # "12.ABC.345/01DE-35"
New alphanumeric CNPJ format (from July 2026)
The Brazilian Federal Revenue Service has announced changes to the CNPJ format that will take effect from July 2026. The main change is the introduction of the alphanumeric CNPJ, which will include letters, in addition to numbers, in its composition.
How the new CNPJ will work:
-
Alphanumeric Format: The CNPJ will continue to have 14 characters, but:
- The first eight positions (CNPJ root) may contain both letters and numbers.
- The next four positions (establishment order) will also be alphanumeric.
- The last two positions (verification digits) will continue to be exclusively numeric.
-
Validation Algorithm: The calculation of verification digits follows the official SERPRO algorithm:
- Alphanumeric characters are converted to numeric values (A=10, B=11, ..., Z=35)
- Specific weights are applied from right to left (2 to 9, restarting after the 8th character)
- The remainder of division by 11 is used to calculate verification digits
-
Format Coexistence: Existing CNPJs (numeric only) will remain valid. The new alphanumeric format will be implemented only for new registrations from July 2026. Both formats (numeric and alphanumeric) will coexist.
Calculation Example (SERPRO)
For the alphanumeric CNPJ 12ABC34501DE:
-
Character Conversion:
- Values: 1, 2, 10, 11, 12, 3, 4, 5, 0, 1, 13, 14
-
First Verification Digit Calculation:
- Weights: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Multiplication: 5, 8, 30, 22, 108, 24, 28, 30, 0, 4, 39, 28
- Sum: 459
- Remainder of division by 11: 8
- First digit: 11 - 8 = 3
-
Second Verification Digit Calculation:
- Weights: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
- Sum including the first digit: 424
- Remainder of division by 11: 6
- Second digit: 11 - 6 = 5
-
Final Result:
12.ABC.345/01DE-35
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cnpj_cpf_validator-0.1.2.tar.gz.
File metadata
- Download URL: cnpj_cpf_validator-0.1.2.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d07ff812b711b92f73f2a4dbd5efd54db78d45cd9035b0ff334c08741308ecfa
|
|
| MD5 |
ada987d1a754b6124fb444ec5b15af64
|
|
| BLAKE2b-256 |
c70dc674090200f2261dd9b3d7db07b172b20381b422ccc2333c0ff800b96219
|
File details
Details for the file cnpj_cpf_validator-0.1.2-py3-none-any.whl.
File metadata
- Download URL: cnpj_cpf_validator-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9d1af21a3642208aca2380b188cbd7fe8fb191ff348a81d29943cf5897ebc5a
|
|
| MD5 |
9b9c1e3c9e2a66a02ee2abf750bc0ac7
|
|
| BLAKE2b-256 |
f16d6dbaf6b462830ee16361c66de53e6acad38125d2efcff608c1b3529ca0a3
|