Skip to main content

Biblioteca em Python para comunicação com APIs bancárias focada na integração com o PIX

Project description

pypix-api

Biblioteca em Python para comunicação com APIs bancárias, focada na integração com o PIX.

Sumário

Visão Geral

O pypix-api facilita a integração de sistemas Python com APIs bancárias brasileiras, com ênfase no ecossistema do PIX. A biblioteca abstrai autenticação, comunicação segura (MTLS/OAuth2), e operações comuns de bancos como Banco do Brasil e Sicoob.

Instalação

Recomenda-se o uso de ambiente virtual.

pip install .

Ou, para desenvolvimento:

git clone https://github.com/seu-usuario/pypix-api.git
cd pypix-api
pip install -e .

Exemplo de Uso

Banco do Brasil

from pypix_api.banks.bb import BancoDoBrasil

# Instanciação do banco (OAuth2 é inicializado internamente)
bb = BancoDoBrasil(
    client_id="SEU_CLIENT_ID",
    cert_path="caminho/do/certificado.pem",
    key_path="caminho/da/chave.key"
)

# Exemplo: Cobrança com Vencimento
payload = {
    "calendario": {
        "dataDeVencimento": "2025-12-31",
        "validadeAposVencimento": 30
    },
    "loc": {
        "id": 789
    },
    "devedor": {
        "logradouro": "Alameda Souza, Numero 80, Bairro Braz",
        "cidade": "Recife",
        "uf": "PE",
        "cep": "70011750",
        "cpf": "12345678909",
        "nome": "Francisco da Silva"
    },
    "valor": {
        "original": "123.45",
        "multa": {
            "modalidade": "2",
            "valorPerc": "15.00"
        },
        "juros": {
            "modalidade": "2",
            "valorPerc": "2.00"
        },
        "desconto": {
            "modalidade": "1",
            "descontoDataFixa": [
                {
                    "data": "2025-11-30",
                    "valorPerc": "30.00"
                }
            ]
        }
    },
    "chave": "5f84a4c5-c5cb-4599-9f13-7eb4d419dacc",
    "solicitacaoPagador": "Cobrança dos serviços prestados."
}

# Criar cobrança com vencimento
cobv = bb.criar_cobv(txid="uuid-unico", body=payload)
print(cobv)

Sicoob

from pypix_api.banks.sicoob import Sicoob

# Instanciação do Sicoob
sicoob = Sicoob(
    client_id="SEU_CLIENT_ID",
    cert_path="caminho/do/certificado.pem",
    key_path="caminho/da/chave.key"
)

# Exemplo: Cobrança imediata
payload_cob = {
    "calendario": {
        "expiracao": 3600
    },
    "devedor": {
        "cpf": "12345678909",
        "nome": "Francisco da Silva"
    },
    "valor": {
        "original": "37.00"
    },
    "chave": "5f84a4c5-c5cb-4599-9f13-7eb4d419dacc",
    "solicitacaoPagador": "Pagamento de serviços."
}

cob = sicoob.criar_cob(txid="uuid-unico-2", body=payload_cob)
print(cob)

Estrutura do Projeto

pypix_api/
├── auth/           # Autenticação (MTLS, OAuth2)
├── banks/          # Integrações com bancos (BB, Sicoob, métodos PIX)
├── models/         # Modelos de dados do PIX
├── utils/          # Utilitários (HTTP client, helpers)
tests/              # Testes automatizados
openapi.yaml        # Especificação OpenAPI (se aplicável)
pyproject.toml      # Configuração do projeto Python
Makefile            # Comandos úteis para desenvolvimento
.env.exemplo        # Exemplo de variáveis de ambiente

Configuração

Parâmetros de Inicialização

Para todos os bancos suportados:

  • client_id: ID do cliente fornecido pelo banco
  • cert_path: Caminho para o certificado digital (.pem)
  • key_path: Caminho para a chave privada (.key)

URLs das APIs

As URLs base são configuradas automaticamente por cada banco:

  • Banco do Brasil: Definido internamente pela classe BBPixAPI
  • Sicoob: Definido internamente pela classe SicoobPixAPI

Crie um arquivo .env baseado em .env.exemplo com as credenciais e configurações necessárias para autenticação e acesso às APIs bancárias.

Testes

Para rodar os testes automatizados:

make test

ou diretamente com pytest:

pytest

Contribuição

Contribuições são bem-vindas! Siga os passos:

  1. Fork este repositório
  2. Crie uma branch (git checkout -b feature/nova-funcionalidade)
  3. Commit suas alterações (git commit -am 'Adiciona nova funcionalidade')
  4. Push para a branch (git push origin feature/nova-funcionalidade)
  5. Abra um Pull Request

Licença

Este projeto está licenciado sob os termos da licença MIT.

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

pypix_api-0.2.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

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

pypix_api-0.2.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file pypix_api-0.2.0.tar.gz.

File metadata

  • Download URL: pypix_api-0.2.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for pypix_api-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b526c056fba75f11a6c891c6c6fbd998ce5cc71a600eba7f2d307304bfa59d2c
MD5 c18106e2e6045cd073f82ca764ab3a63
BLAKE2b-256 fa2771e78b298d2d1fccf0bcbd5a6195013908f863cb6d67acbfff8e27caeb59

See more details on using hashes here.

File details

Details for the file pypix_api-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pypix_api-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for pypix_api-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa7bf4f844b6d08541a58a77019f3a9a83355e532e592675b9c12d9ccc007e5d
MD5 a1e7c9ab1790f4077e93d1b528214d28
BLAKE2b-256 ffd3c9aaeaa3b17465efbf19117349469bf2a042d74a5b1cbe48832ff5eef6ff

See more details on using hashes here.

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