A Python SDK for Sicoob API
Project description
Sicoob SDK Python
SDK Python para integração com a API do Banco Sicoob
Instalação
pip install -r requirements.txt
# ou
pip install -e .
Configuração
Crie um arquivo .env na raiz do projeto com as seguintes variáveis:
SICOOB_CLIENT_ID=seu_client_id
SICOOB_CERTIFICADO=caminho/para/certificado.pem
SICOOB_CHAVE_PRIVADA=caminho/para/chave_privada.key
Uso Básico
from sicoob import Sicoob
# Inicializa o cliente
cliente = Sicoob(
client_id="seu_client_id",
certificado="caminho/para/certificado.pem",
chave_privada="caminho/para/chave_privada.key"
)
# Exemplo: consulta de extratos
extrato = cliente.conta_corrente.consulta_extrato(conta="12345", data_inicio="2023-01-01", data_fim="2023-01-31")
API de Boletos
A classe BoletoAPI permite emitir e consultar boletos bancários:
from sicoob import Sicoob
# Inicializa o cliente
cliente = Sicoob(
client_id="seu_client_id",
certificado="caminho/para/certificado.pem",
chave_privada="caminho/para/chave_privada.key"
)
# Obtém instância do BoletoAPI
boleto_api = cliente.boleto()
# Emitir boleto
dados_boleto = {
"numeroContrato": 123456,
"modalidade": 1,
"valor": 100.50,
"beneficiario": {
"nome": "Nome Beneficiário",
"documento": "12345678901"
}
}
boleto = boleto_api.emitir_boleto(dados_boleto)
# Consultar boleto
nosso_numero = boleto["nossoNumero"]
boleto_consultado = boleto_api.consultar_boleto(nosso_numero)
Tratamento de Erros
A API trata os seguintes casos de erro:
- 404 Not Found: Retorna
Nonequando o boleto não existe - Erros HTTP (400, 500, etc): Levanta exceção com código e mensagem
- Erros de conexão: Levanta exceção com detalhes do erro
Versionamento e Deploy
O projeto segue Semantic Versioning. Para criar um novo release:
-
Atualize a versão em:
setup.pypyproject.tomlsicoob/__init__.py
-
Execute os testes:
make test
- Crie um novo release no GitHub:
- Acesse "Releases" no repositório
- Clique em "Draft a new release"
- Defina a tag no formato
vX.Y.Z(ex:v0.1.3) - O GitHub Actions irá automaticamente:
- Construir o pacote (
make build) - Publicar no PyPI (
make publish)
- Construir o pacote (
Comandos Úteis
# Construir pacote
make build
# Executar testes
make test
# Publicar no PyPI (requer TWINE_USERNAME e TWINE_PASSWORD)
make publish
# Incrementar versão (patch, minor ou major)
make bump-patch # Incrementa patch version (0.1.2 → 0.1.3)
make bump-minor # Incrementa minor version (0.1.2 → 0.2.0)
make bump-major # Incrementa major version (0.1.2 → 1.0.0)
Como Incrementar a Versão
- Execute o comando apropriado:
make bump-patch # Para correções de bugs
make bump-minor # Para novas funcionalidades compatíveis
make bump-major # Para mudanças incompatíveis
- Verifique as alterações nos arquivos:
git diff
- Commit e push das alterações:
git add .
git commit -m "Bump version to X.Y.Z"
git push
Links Úteis
Documentação Técnica
Visão Geral
Biblioteca Python para integração com a API do Banco Sicoob, incluindo:
- Autenticação OAuth2
- Cobrança (Boletos e PIX)
- Conta Corrente
- Operações bancárias
Índice
Classe Sicoob
Cliente principal que fornece acesso a todos os serviços.
Arquivo: sicoob/client.py
Métodos:
__init__(client_id=None, certificado=None, chave_privada=None, sandbox_mode=False)- Inicializa o cliente com credenciais
- Parâmetros:
client_id: Client ID fornecido pelo Sicoobcertificado: Caminho para o certificado .pemchave_privada: Caminho para a chave privada .keysandbox_mode: Se True, usa ambiente sandbox (default: False)
Propriedades:
cobranca: Acesso às APIs de Cobrança (Boleto e PIX)conta_corrente: Acesso à API de Conta Corrente
Autenticação OAuth2
Arquivo: sicoob/auth/oauth.py
Classe: OAuth2Client
Gerencia tokens de acesso com escopos específicos.
Métodos:
get_access_token(scope=None): Obtém token para o escopo especificado_is_token_expired(scope): Verifica se token expirou (método interno)
Escopos Comuns:
- Boletos:
"boletos_inclusao boletos_consulta..." - Conta Corrente:
"cco_consulta cco_transferencias..." - PIX:
"cob.write cob.read..."
Serviços
API de Boletos
Arquivo: sicoob/boleto.py
Classe: BoletoAPI
Operações com boletos bancários.
Métodos:
emitir_boleto(dados_boleto): Emite novo boletoemitir_segunda_via(): Emite segunda via de um boleto existenteconsultar_boleto(nosso_numero): Consulta boleto existenteconsultar_boletos_por_pagador(): Consulta lista de boletos por pagadorconsultar_faixas_nosso_numero(): Consulta faixas de nosso número disponíveisalterar_boleto(): Altera dados de um boleto existentealterar_pagador(): Altera informações do cadastro do pagadorbaixar_boleto(): Comanda a baixa de um boleto existentecadastrar_webhook(): Cadastra um webhook para receber notificaçõesconsultar_webhook(): Consulta os detalhes de um webhook cadastradoatualizar_webhook(): Atualiza um webhook cadastradoexcluir_webhook(): Remove permanentemente um webhook cadastradoconsultar_solicitacoes_webhook(): Consulta as solicitações de notificação
API de PIX
Arquivo: sicoob/pix.py
Classe: PixAPI
Operações com PIX.
Métodos Principais:
criar_cobranca_pix(txid, dados): Cria cobrança imediataconsultar_cobranca_pix(txid): Consulta cobrançaconfigurar_webhook(chave, url): Configura webhook
API de Conta Corrente
Arquivo: sicoob/conta_corrente.py
Classe: ContaCorrenteAPI
Operações bancárias.
Métodos:
extrato(): Obtém extrato por períodosaldo(): Consulta saldotransferencia(): Realiza transferência
Classe Base
Arquivo: sicoob/api_client.py
Classe: APIClientBase
Fornece funcionalidades comuns a todas as APIs.
Métodos:
_get_base_url(): Retorna URL conforme sandbox/produção_get_headers(scope): Retorna headers com autenticação
Diagrama de Relacionamentos
classDiagram
class Sicoob {
+cobranca
+conta_corrente
}
class OAuth2Client {
+get_access_token()
}
class APIClientBase {
<<abstract>>
+_get_base_url()
+_get_headers()
}
class BoletoAPI {
+emitir_boleto()
+consultar_boleto()
}
class PixAPI {
+criar_cobranca_pix()
+consultar_cobranca_pix()
}
class ContaCorrenteAPI {
+extrato()
+saldo()
}
Sicoob --> OAuth2Client
Sicoob --> BoletoAPI
Sicoob --> PixAPI
Sicoob --> ContaCorrenteAPI
BoletoAPI --|> APIClientBase
PixAPI --|> APIClientBase
ContaCorrenteAPI --|> APIClientBase
APIClientBase --> OAuth2Client
Exemplos de Uso
from sicoob import Sicoob
from sicoob.auth import OAuth2Client
import requests
# Configuração
oauth = OAuth2Client(client_id, certificado, chave)
session = requests.Session()
sicoob = Sicoob(oauth_client=oauth, session=session)
# Uso dos serviços
extrato = sicoob.conta_corrente.extrato(
mes=6, ano=2025, dia_inicial=1, dia_final=30,
numero_conta_corrente=123456
)
boleto = sicoob.cobranca.boleto.emitir_boleto({
"numeroContrato": 123456,
"modalidade": 1,
"valor": 100.50
})
pix = sicoob.cobranca.pix.criar_cobranca_pix(
"tx123",
{"valor": {"original": "100.50"}}
)
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 sicoob_sdk-0.1.6.tar.gz.
File metadata
- Download URL: sicoob_sdk-0.1.6.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
814456ad7c3a08ec21031d9ce969b44964b206295ce0a9b0dd3d7b68afea17ad
|
|
| MD5 |
c823624be293e66d3683ca52641f0b07
|
|
| BLAKE2b-256 |
e78dd6a177f57443574cf6322e58cb624313e110020a26339d868dd6abf1246e
|
File details
Details for the file sicoob_sdk-0.1.6-py3-none-any.whl.
File metadata
- Download URL: sicoob_sdk-0.1.6-py3-none-any.whl
- Upload date:
- Size: 28.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35330fc9180d97c12ec9e00aa7beb0dc49130f29617e597bfe0d69104976fda5
|
|
| MD5 |
91510e9c9f02d2cf4b028a0d43b919b8
|
|
| BLAKE2b-256 |
c344ec3d2979b1b3d763329ba158db9c94703b0c28c18e29210259d9fe966ca3
|