Skip to main content

Uma biblioteca Python completa para a geração de BR Codes (QR Code e Copia e Cola) do Pix, seguindo as especificações do Banco Central do Brasil.

Project description

PixCore

logo do projeto

Github Releases PyPI Version License

Uma biblioteca Python robusta e intuitiva para a geração de QR Codes e payloads "Copia e Cola" do Pix, seguindo as especificações do Banco Central do Brasil.

O PixCore foi projetado para ser simples de usar, mas poderoso o suficiente para cobrir todos os campos e customizações necessárias, desde transações simples até casos de uso mais complexos com dados adicionais e logos personalizados.

Principais Funcionalidades

  • Geração de Payload (BR Code): Crie a string "Copia e Cola" no formato TLV (Type-Length-Value) pronta para ser usada.
  • Criação de QR Code: Gere imagens de QR Code (PNG) a partir dos dados do Pix.
  • Validação de Dados: A classe PixData valida automaticamente os campos para garantir a conformidade com o padrão do BACEN (ex: tamanho dos campos, formatos, etc.).
  • Customização Flexível:
    • Defina valor fixo ou permita que o pagador insira o valor.
    • Adicione um logo customizado no centro do QR Code.
    • Personalize as cores do QR Code.
    • Inclua campos opcionais como CEP, dados em outro idioma e método de iniciação (QR estático/dinâmico).
  • Totalmente Testada: Cobertura de testes para garantir a confiabilidade na geração dos códigos.
  • Interface de Linha de Comando (CLI): Utilize todas as funcionalidades diretamente do seu terminal, sem escrever código Python.
  • Decodificação de Payload: Analise e valide uma string "Copia e Cola" existente para inspecionar seus dados.
  • Geração em Lote via CSV: Crie múltiplos QR Codes a partir de um arquivo CSV, ideal para cobranças em massa.
  • Gerenciamento de Configurações: Salve seus dados padrão (nome, cidade, chave) para agilizar o uso da CLI.

Instalação

Você pode instalar o PixCore diretamente do PyPI:

pip install pixcore

Uso como Biblioteca Python

Usar o PixCore é um processo de apenas dois passos:

  1. Crie uma instância de PixData com as informações do recebedor.
  2. Use um objeto Pix para gerar o payload ou o QR Code.

A biblioteca utiliza um sistema de exceções customizadas (ex: ChavePixInvalidaError, GeracaoPayloadError) para permitir um tratamento de erros preciso e robusto em sua aplicação.

Exemplo 1: Gerando um QR Code com Valor e Logo

from pixcore import PixData
from pixcore import Pix

# 1. Defina os dados da cobrança Pix
dados_pix = PixData(
    recebedor_nome="Empresa Exemplo LTDA",
    recebedor_cidade="SAO PAULO",
    pix_key="a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",  # Chave aleatória (EVP)
    valor=99.90,
    transacao_id="PedidoXPTO123"
)

# 2. Crie a instância principal do Pix
gerador_pix = Pix(dados_pix)

# 3. Gere e salve a imagem do QR Code
gerador_pix.save_qrcode(
    "meu_pix_qr.png",
    caminho_logo="caminho/para/seu/logo.png",
    cor_qr="#004AAD" # Cor customizada
)

# (Opcional) Obtenha a string "Copia e Cola"
payload = gerador_pix.payload()
print("\nPayload (Copia e Cola):")
print(payload)

Exemplo 2: QR Code sem valor definido (pagador decide o valor)

Para gerar um QR Code onde o pagador pode digitar o valor, simplesmente omita o parâmetro valor ao criar o PixData.

from pixcore import PixData
from pixcore import Pix

dados_doacao = PixData(
    recebedor_nome="ONG BEM MAIOR",
    recebedor_cidade="RIO DE JANEIRO",
    pix_key="ajude@ongbemmaior.org", # Chave tipo e-mail
    transacao_id="DOACAO" # O ID da transação é obrigatório
)

pix_doacao = Pix(dados_doacao)
pix_doacao.save_qrcode("qr_code_doacao.png")

Uso via Linha de Comando (CLI)

O PixCore também é uma poderosa ferramenta de linha de comando que permite gerar QR Codes e payloads sem precisar escrever nenhum código.

Comandos Principais

1. Gerar um QR Code e salvar em arquivo

Use o comando qrcode com a opção -o (output) para salvar a imagem.

pixcore qrcode -k "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" \
               -n "Empresa Exemplo LTDA" \
               -c "SAO PAULO" \
               -a 99.90 \
               --txid "PedidoXPTO123" \
               -o "meu_pix_qr.png"
  • Dica: Se você omitir a opção -o, o QR Code será exibido no visualizador de imagens padrão do seu sistema.

2. Gerar apenas o payload "Copia e Cola"

Use o comando payload para obter a string que pode ser usada em aplicativos de banco.

pixcore payload -k "seu-email@exemplo.com" -n "Seu Nome" -c "SUA CIDADE" -a 19.99

3. Decodificar um código Pix existente

Com o comando decode, você pode validar um payload e ver seus dados de forma organizada.

pixcore decode "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d520400005303986540599.905802BR5918Empresa Exemplo LTDA6009SAO PAULO62150511Pedido1236304ABCD"

4. Gerar QR Codes em Lote a partir de um CSV

O comando lote processa um arquivo CSV e gera um QR Code para cada linha. O CSV deve conter as colunas valor e txid.

# Exemplo de conteúdo do arquivo 'cobrancas.csv':
# valor,txid
# 10.50,cliente001
# 25.00,cliente002

pixcore lote "cobrancas.csv" "qrcodes_gerados/" --name "Minha Empresa" --key "meu-cnpj" --city "CIDADE"

5. Configurar valores padrão

Para evitar digitar seu nome, cidade ou chave Pix toda vez, use o comando config set.

pixcore config set name "Empresa Exemplo LTDA"
pixcore config set city "SAO PAULO"
pixcore config set key "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
  • Para ver as configurações salvas, use pixcore config show.

📚 Documentação

Para um guia completo sobre todos os campos, validações e funcionalidades, acesse a nossa documentação oficial.

Link para documentação.

🤝 Contribuições

Contribuições são muito bem-vindas! Se você tem ideias para melhorias, novas funcionalidades ou encontrou algum bug, sinta-se à vontade para:

1. Abrir uma Issue para discutir o que você gostaria de mudar.
2. Fazer um Fork do projeto e enviar um Pull Request com suas alterações.

📄 Licença

Este projeto é distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

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

pixcore-1.0.0.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

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

pixcore-1.0.0-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file pixcore-1.0.0.tar.gz.

File metadata

  • Download URL: pixcore-1.0.0.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixcore-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1f8ed0061103ec887f824d7771b77b46a5462f905e5da57d2092a3a15c7827a1
MD5 b44457c5879da1b148ec81526d3a68b2
BLAKE2b-256 5390232168878b0156d11dc48910de37a9cd763eb05199a290c3c52d4d723c2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixcore-1.0.0.tar.gz:

Publisher: pypi.yml on gustjose/pixcore

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

File details

Details for the file pixcore-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pixcore-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixcore-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0fa90fd848c6b198668de7ffab580ca0d5f0091cd4092192fc0b4e6d4ec5fcc5
MD5 7b89696dcaf36552167de33e8695ec84
BLAKE2b-256 b074a7cbf7e2a0101e999b58822534d4bf2a42812ad6a82b60ec24fcf62131b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixcore-1.0.0-py3-none-any.whl:

Publisher: pypi.yml on gustjose/pixcore

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