Skip to content

Maxwbh/python-boleto

 
 

Repository files navigation

python-boleto - Fork mantido por Trustcode

https://travis-ci.org/Trust-Code/python-boleto.svg?branch=master3 https://coveralls.io/repos/github/Trust-Code/python-boleto/badge.svg?branch=master3 Code Health

python-boleto é um projeto python para gerar boletos de cobrança.

O projeto original pode ser encontrado aqui: https://github.com/eduardocereto/pyboleto

🐳 Novidade: Agora com suporte completo a Docker! Execute a API em segundos sem configurar Python ou dependências. Veja `Quick Start - Usando Docker`_.

📦 Repositório atualizado: https://github.com/Maxwbh/python-boleto

Você pode ajudar criando códigos para mais bancos ou imprimir e testar as implementações já existentes.

Por enquanto, são essas que temos.

Banco Carteira / Convenio Implementado Testado
Banco do Brasil 18 Yes Yes
Banrisul x Yes Yes
Bradesco 06, 03 Yes Yes
Caixa Economica SR Yes No
HSBC CNR, CSB Yes No
Itau 157 Yes Yes
Itau 175, 174, 178, 104, 109 Yes No
Santander 102 Yes Yes
Santander 101, 201 Yes No
Sicoob 1 Yes Yes
Sicredi 1 Yes Yes
Cecred 1 Yes Yes

Ubuntu 24.04+ / Debian 12+: Use ambiente virtual (mais simples do que parece!)

# 1. Clonar o repositório
$ git clone https://github.com/Trust-Code/python-boleto.git
$ cd python-boleto

# 2. Criar ambiente virtual (apenas uma vez)
$ python3 -m venv venv

# 3. Ativar ambiente virtual
$ source venv/bin/activate

# 4. Instalar
(venv) $ pip install -e .

# 5. Usar normalmente
(venv) $ python seu_script.py

# Sempre ative o venv antes de usar:
$ source venv/bin/activate

Por que venv é necessário? Ubuntu 24.04+ bloqueia instalações de pacotes Python fora de ambientes virtuais para proteger o sistema. O --user também não funciona mais. Usar venv é a forma correta e segura.

Desativar o venv:

(venv) $ deactivate

Docker é a forma mais simples e rápida de executar a API de boletos, sem precisar configurar Python, dependências ou ambientes virtuais. Ideal para desenvolvimento local e produção.

Pré-requisitos:

  • Docker 20.10+ instalado
  • Docker Compose 2.0+ instalado

Opção 1: Script de Inicialização Rápida (Mais Simples)

# 1. Clonar o repositório
$ git clone https://github.com/Maxwbh/python-boleto.git
$ cd python-boleto

# 2. Executar script de inicialização rápida
$ ./quick-start.sh

O script apresenta um menu interativo com opções para:

  1. Iniciar aplicação
  2. Parar aplicação
  3. Reiniciar aplicação
  4. Ver logs
  5. Rebuild completo
  6. Status dos containers
  7. Testar API

Comandos diretos:

# Iniciar rapidamente
$ ./quick-start.sh --start

# Ver logs em tempo real
$ ./quick-start.sh --logs

# Parar aplicação
$ ./quick-start.sh --stop

A API estará disponível em: http://localhost:5000

Opção 2: Docker Compose Manual

# Iniciar a API (modo simples)
$ cd api
$ docker-compose -f docker-compose.simple.yml up -d

# Ver logs
$ docker-compose -f docker-compose.simple.yml logs -f

# Parar
$ docker-compose -f docker-compose.simple.yml down

Verificar se está funcionando:

$ curl http://localhost:5000/api/health

Resposta esperada:

{
  "status": "ok",
  "message": "API de boletos funcionando"
}

Para instalar em um servidor externo (Ubuntu/Debian), use o script automatizado de deployment:

Script Automatizado (Recomendado):

# No servidor, execute:
$ git clone https://github.com/Maxwbh/python-boleto.git
$ cd python-boleto
$ sudo ./deploy-server.sh

O script irá:

  • ✅ Instalar Docker, Docker Compose e Git automaticamente
  • ✅ Configurar firewall (portas 80, 443, 22)
  • ✅ Fazer build e deploy da aplicação
  • ✅ Configurar Nginx como reverse proxy (opcional)
  • ✅ Configurar healthcheck e restart automático

Opções de instalação:

  1. Instalação completa com Nginx (Recomendado para produção)
    • Nginx como reverse proxy
    • Suporte a SSL/HTTPS
    • API disponível em: http://seu-servidor/api/
  2. Instalação simples sem Nginx (Para ambientes controlados)
    • API exposta diretamente
    • API disponível em: http://seu-servidor:5000/api/

Modos de execução:

# Modo interativo (menu)
$ sudo ./deploy-server.sh

# Instalação automática com Nginx
$ sudo ./deploy-server.sh --nginx

# Instalação automática simples
$ sudo ./deploy-server.sh --auto

# Apenas atualizar aplicação
$ sudo ./deploy-server.sh --update

Comandos úteis após instalação:

# Ver logs
$ cd /opt/pyboleto/api && docker-compose logs -f

# Reiniciar aplicação
$ cd /opt/pyboleto/api && docker-compose restart

# Parar aplicação
$ cd /opt/pyboleto/api && docker-compose down

# Atualizar aplicação
$ sudo /opt/pyboleto/deploy-server.sh --update

Configurações avançadas:

Para SSL/HTTPS, edição de recursos, variáveis de ambiente e troubleshooting, consulte a documentação completa de deployment:

$ cat DEPLOY.md

Ou visite: https://github.com/Maxwbh/python-boleto/blob/master/DEPLOY.md

⚠️ NÃO RECOMENDADO - Apenas se você realmente não pode usar venv.

Opção 1: Remover proteção temporariamente

# Remover arquivo de proteção
$ sudo rm /usr/lib/python3.*/EXTERNALLY-MANAGED

# Agora pode usar --user
$ pip3 install --user -e .

# Reinstalar arquivo de proteção
$ sudo apt install --reinstall python3-pip

Opção 2: Forçar instalação global (pode quebrar o sistema)

$ pip3 install --break-system-packages -e .

Para instalar a versão estável do PyPI (dentro do venv):

$ python3 -m venv venv
$ source venv/bin/activate
(venv) $ pip install python3-boleto

Nota: O comando python setup.py install está deprecado desde 2021. Use sempre pip install ao invés de executar setup.py diretamente.

Esta seção cobre o gerenciamento completo do ambiente de desenvolvimento, incluindo instalação, desinstalação, reinstalação e limpeza de objetos antigos.

A instalação em modo desenvolvimento (editable mode) permite que você faça alterações no código e teste imediatamente sem precisar reinstalar o pacote a cada modificação.

Dentro do ambiente virtual (Recomendado):

# 1. Clonar o repositório
$ git clone https://github.com/Trust-Code/python-boleto.git
$ cd python-boleto

# 2. Criar ambiente virtual
$ python3 -m venv venv

# 3. Ativar ambiente virtual
$ source venv/bin/activate

# 4. Instalar em modo desenvolvimento
(venv) $ pip install -e .

# 5. Verificar instalação
(venv) $ pip list | grep boleto

O que é modo desenvolvimento (-e)?

  • A flag -e (editable) cria um link simbólico para o código fonte
  • Alterações no código são refletidas imediatamente, sem reinstalação
  • Ideal para desenvolvimento e testes

Fora do ambiente virtual (Não Recomendado):

$ pip3 install --user -e . --break-system-packages

⚠️ Aviso: Usar --break-system-packages pode causar conflitos com pacotes do sistema.

Para remover o pacote python-boleto do seu ambiente.

Dentro do ambiente virtual:

$ source venv/bin/activate
(venv) $ pip uninstall python3-boleto -y

Fora do ambiente virtual:

$ pip3 uninstall python3-boleto -y

Verificar se foi removido:

$ pip list | grep boleto
# Não deve retornar nenhum resultado

Desinstalar também as dependências (opcional):

Se você quiser remover também as dependências que foram instaladas junto com o python-boleto:

# Dentro do venv
$ source venv/bin/activate
(venv) $ pip uninstall python3-boleto -y
(venv) $ pip freeze | xargs pip uninstall -y

# Ou simplesmente remova todo o ambiente virtual
$ deactivate
$ rm -rf venv/

Durante o desenvolvimento, você pode precisar reinstalar o pacote após fazer alterações estruturais no código (como mudanças em setup.py ou na estrutura de pacotes).

Reinstalação Normal:

$ source venv/bin/activate
(venv) $ pip install -e . --upgrade

Reinstalação Forçada:

Use --force-reinstall quando houver problemas de cache ou dependências corrompidas:

$ source venv/bin/activate
(venv) $ pip install -e . --force-reinstall

Reinstalação sem dependências:

Se você quer reinstalar apenas o python-boleto sem tocar nas dependências:

$ source venv/bin/activate
(venv) $ pip install -e . --upgrade --no-deps

Fora do ambiente virtual (Ubuntu 24.04+/Debian 12+):

Se você não está usando venv e precisa forçar a reinstalação:

$ pip3 install --user -e . --break-system-packages --force-reinstall

⚠️ Avisos:

  • A flag --break-system-packages sobrepõe a proteção do sistema e deve ser usada com cautela
  • Use sempre venv quando possível para evitar conflitos com pacotes do sistema
  • A flag --force-reinstall remove e reinstala o pacote e todas as suas dependências

Durante o desenvolvimento, diversos arquivos temporários e de cache são criados. É importante limpá-los periodicamente para evitar problemas.

Limpeza Básica - Arquivos Python compilados:

# Remover arquivos .pyc e __pycache__
$ find . -type f -name '*.pyc' -delete
$ find . -type d -name '__pycache__' -exec rm -rf {} +

Limpeza Completa - Todos os artefatos de build:

# Remover diretórios de build e distribuição
$ rm -rf build/
$ rm -rf dist/
$ rm -rf *.egg-info/
$ rm -rf .eggs/

# Remover cache do pytest
$ rm -rf .pytest_cache/

# Remover arquivos de cobertura
$ rm -rf htmlcov/
$ rm -f .coverage
$ rm -f coverage.xml

# Remover arquivos temporários
$ find . -type f -name '*.py[co]' -delete
$ find . -type d -name '__pycache__' -exec rm -rf {} +
$ find . -type d -name '*.egg-info' -exec rm -rf {} +

Script de Limpeza Automatizada:

Crie um arquivo clean.sh na raiz do projeto para facilitar a limpeza:

#!/bin/bash
# Script de limpeza do ambiente de desenvolvimento

echo "🧹 Limpando arquivos de build..."
rm -rf build/ dist/ *.egg-info/ .eggs/

echo "🧹 Limpando cache Python..."
find . -type f -name '*.pyc' -delete
find . -type d -name '__pycache__' -exec rm -rf {} + 2>/dev/null

echo "🧹 Limpando cache de testes..."
rm -rf .pytest_cache/ htmlcov/ .coverage coverage.xml

echo "🧹 Limpando arquivos temporários..."
find . -type f -name '*~' -delete
find . -type f -name '*.bak' -delete

echo "✅ Limpeza concluída!"

Para usar o script:

$ chmod +x clean.sh
$ ./clean.sh

Limpeza do ambiente virtual (quando necessário):

Se o ambiente virtual estiver corrompido ou com problemas, é melhor recriá-lo:

# Desativar e remover venv antigo
$ deactivate
$ rm -rf venv/

# Criar novo venv
$ python3 -m venv venv
$ source venv/bin/activate

# Reinstalar pacote
(venv) $ pip install -e .

Limpeza do cache do pip:

O pip mantém um cache de pacotes baixados que pode crescer com o tempo:

# Ver tamanho do cache
$ du -sh ~/.cache/pip

# Limpar cache do pip
$ pip cache purge

Quando fazer limpeza?

  • Antes de commits importantes: Para garantir que não há arquivos desnecessários
  • Após mudanças estruturais: Quando você altera setup.py ou estrutura de pacotes
  • Problemas de importação: Quando módulos não são encontrados ou comportam-se estranhamente
  • Antes de gerar distribuição: Para garantir um build limpo
  • Espaço em disco baixo: Para liberar espaço ocupado por caches

1. Instalar poppler-utils (necessário para alguns testes):

# Ubuntu/Debian
$ sudo apt-get install poppler-utils

# Fedora/RHEL
$ sudo dnf install poppler-utils

# macOS
$ brew install poppler

2. Configurar ambiente virtual e instalar projeto:

$ cd python-boleto
$ python3 -m venv venv
$ source venv/bin/activate
(venv) $ pip install -e .

NOTA: Alguns testes podem falhar devido a bugs conhecidos em bancos específicos, mas isso não impede o uso da biblioteca para gerar boletos.

Método 1: Usando pytest (Recomendado)

# Ativar venv (se ainda não estiver ativo)
$ source venv/bin/activate

# Instalar pytest
(venv) $ pip install pytest pytest-cov

# Executar todos os testes
(venv) $ pytest tests/

# Com cobertura de código
(venv) $ pytest --cov=pyboleto tests/

# Teste específico por banco
(venv) $ pytest tests/test_banco_sicoob.py -v
(venv) $ pytest tests/test_banco_itau.py -v
(venv) $ pytest tests/test_banco_bradesco.py -v

Método 2: Usando unittest (padrão Python)

# Ativar venv
$ source venv/bin/activate

# Executar todos os testes
(venv) $ python -m unittest discover tests/

# Teste específico por banco
(venv) $ python -m unittest tests.test_banco_sicoob
(venv) $ python -m unittest tests.test_banco_itau
(venv) $ python -m unittest tests.test_banco_bradesco

Status dos testes por banco:

Banco Status Observações
Banco do Brasil ✓ OK Todos os testes passam
Bradesco ✓ OK Todos os testes passam
Itaú ✓ OK Todos os testes passam
Santander ✓ OK Todos os testes passam
Sicoob ✓ OK Cálculo de DV corrigido, PDF funciona
Sicredi ✓ OK Todos os testes passam
Caixa ⚠ Parcial Alguns testes podem falhar

Regenerando arquivos XML esperados (testes PDF)

Se você atualizou o pdftohtml e os testes de PDF estão falhando apenas por diferenças de formatação XML (ordem de atributos), você pode regenerar os arquivos esperados:

# Ativar venv
$ source venv/bin/activate

# Instalar poppler-utils (se ainda não instalado)
$ sudo apt install poppler-utils

# Regenerar arquivos XML esperados
(venv) $ python3 regenerate_expected_xml.py

# Verificar se os testes passam
(venv) $ python3 -m unittest tests.test_banco_sicoob

Observação: O pdftohtml versão 24.02.0+ gera XML com ordem de atributos diferente das versões anteriores, mas o conteúdo é idêntico.

CORREÇÕES IMPLEMENTADAS: Os bugs do Sicoob foram corrigidos! O cálculo do dígito verificador, templates HTML e formatação agora funcionam corretamente.

1. Executar teste unitário do Sicoob:

$ cd python-boleto
$ source venv/bin/activate
(venv) $ python -m unittest tests.test_banco_sicoob

Resultado esperado:

test_agencia (tests.test_banco_sicoob.TestBancoSicoob) ... ok
test_conta (tests.test_banco_sicoob.TestBancoSicoob) ... ok
test_dv_nosso_numero (tests.test_banco_sicoob.TestBancoSicoob) ... ok

Ran 10 tests in 0.02s
OK (skipped=1)

Nota: Testes de rendering PDF podem falhar se pdftohtml não estiver instalado, mas a geração de PDF funciona perfeitamente.

2. Gerar um boleto do Sicoob em PDF:

Crie um arquivo test_sicoob.py no diretório do projeto:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Exemplo de geração de boleto Sicoob
"""
from datetime import date
from decimal import Decimal
from pyboleto.bank.sicoob import BoletoSicoob
from pyboleto.pdf import BoletoPDF

# Criar lista de boletos
lista_dados = []

# Configurar dados do boleto Sicoob
boleto = BoletoSicoob()
boleto.carteira = '1'
boleto.agencia_cedente = '3069'
boleto.conta_cedente = '84725'
boleto.codigo_beneficiario = '225'

# Dados do cedente (quem está cobrando)
boleto.cedente = 'Cooperativa de Crédito Exemplo LTDA'
boleto.cedente_documento = '12.345.678/0001-90'
boleto.cedente_endereco = 'Rua das Cooperativas, 123 - Centro - Cidade/UF'

# Dados do sacado (quem vai pagar)
boleto.sacado_nome = 'João da Silva'
boleto.sacado_documento = '123.456.789-00'
boleto.sacado_endereco = 'Rua do Cliente, 456 - Bairro - Cidade/UF - CEP: 12345-678'

# Dados do documento
boleto.data_vencimento = date(2025, 12, 31)
boleto.data_documento = date(2025, 11, 10)
boleto.data_processamento = date(2025, 11, 10)
boleto.valor_documento = Decimal('250.00')
boleto.nosso_numero = '3'
boleto.numero_documento = '1001'

# Informações adicionais
boleto.instrucoes = [
    'Não receber após o vencimento',
    'Multa de 2% após o vencimento',
    'Juros de 0,1% ao dia'
]
boleto.demonstrativo = [
    'Mensalidade ref. 11/2025',
    'Taxa de manutenção',
]

lista_dados.append(boleto)

# Gerar PDF
pdf = BoletoPDF('boleto-sicoob.pdf')
for boleto in lista_dados:
    pdf.drawBoleto(boleto)
    pdf.nextPage()
pdf.save()

print("✓ Boleto Sicoob gerado: boleto-sicoob.pdf")
print(f"  Nosso Número: {boleto.format_nosso_numero()}")
print(f"  Código de Barras: {boleto.barcode}")
print(f"  Linha Digitável: {boleto.linha_digitavel}")

3. Execute o script (com venv ativo):

$ source venv/bin/activate
(venv) $ python test_sicoob.py

Saída esperada (se o script imprimir as informações):

✓ Boleto Sicoob gerado: boleto-sicoob.pdf
  Nosso Número: 00000003
  Código de Barras: 756xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  Linha Digitável: 75691.30698 01000.022507 00000.030015 x xxxxxxxxxxxxxxx

Nota: Os valores exatos dependem dos dados configurados. O importante é que:

  • O arquivo PDF seja gerado sem erros
  • O PDF possa ser aberto e visualizado
  • Contenha o código de barras e linha digitável

Verificar se o boleto foi gerado:

(venv) $ ls -lh boleto-sicoob.pdf
-rw-r--r-- 1 user user 15K Nov 10 15:30 boleto-sicoob.pdf

# Abrir o PDF para visualização
(venv) $ xdg-open boleto-sicoob.pdf  # Linux
(venv) $ open boleto-sicoob.pdf      # macOS

Dica: Após ativar o venv com source venv/bin/activate, você pode executar vários scripts sem precisar ativar novamente. O prompt mudará para (venv) $ indicando que o ambiente está ativo.

Testar outros bancos:

Para testar outros bancos, substitua o import:

# Bradesco
from pyboleto.bank.bradesco import BoletoBradesco

# Banco do Brasil
from pyboleto.bank.bancodobrasil import BoletoBB

# Itaú
from pyboleto.bank.itau import BoletoItau

# Santander
from pyboleto.bank.santander import BoletoSantander

# Sicredi
from pyboleto.bank.sicredi import BoletoSicredi

# Caixa
from pyboleto.bank.caixa import BoletoCaixa

Os scripts de exemplo estão disponíveis após a instalação:

# Gerar boleto em PDF (exemplo multi-banco)
$ pdf_pyboleto_sample.py

# Gerar boleto em HTML
$ html_pyboleto_sample.py

Este projeto inclui uma API REST Flask para geração de boletos e uma collection completa do Postman para testes. Ideal para integração com sistemas web e aplicações.

Opção 1: Usando Docker (Recomendado)

A forma mais rápida e fácil de executar a API:

# Usando o script de inicialização rápida
$ ./quick-start.sh --start

# Ou usando Docker Compose diretamente
$ cd api
$ docker-compose -f docker-compose.simple.yml up -d

A API estará disponível em: http://localhost:5000

Veja mais detalhes na seção `Quick Start - Usando Docker`_.

Opção 2: Usando ambiente virtual Python

$ cd python-boleto
$ source venv/bin/activate
(venv) $ python api/app.py

A API estará disponível em: http://localhost:5000

2. Verificar se está funcionando:

$ curl http://localhost:5000/api/health

Resposta esperada:

{
  "status": "ok",
  "message": "API de boletos funcionando"
}
Método Endpoint Descrição
GET /api/health Status da API
GET /api/bancos Lista bancos disponíveis
POST /api/boleto/gerar Gera boleto (JSON/PDF/HTML)
POST /api/boleto/pdf Download direto do PDF
POST /api/boleto/html Retorna HTML do boleto
POST /api/boleto/gerar-multiplos Gera múltiplos boletos (carnê duplo/normal)

Novo Endpoint: Geração de Múltiplos Boletos

O endpoint /api/boleto/gerar-multiplos permite gerar vários boletos em uma única requisição, usando dois formatos diferentes:

  • carne_duplo: Usa drawBoletoCarneDuplo (2 boletos por página)
  • normal: Usa drawBoleto (1 boleto por página)

Exemplo de requisição:

{
  "tipo_formato": "carne_duplo",    // ou "normal"
  "formato_saida": "pdf",            // "json", "pdf" ou "ambos"
  "boletos": [
    { /* dados do boleto 1 */ },
    { /* dados do boleto 2 */ },
    ...
  ]
}

Resposta:

{
  "sucesso": true,
  "total_boletos": 10,
  "tipo_formato": "carne_duplo",
  "boletos": [
    {
      "linha_digitavel": "...",
      "codigo_barras": "..."
    },
    ...
  ],
  "pdf_base64": "..."  // se formato_saida for "pdf" ou "ambos"
}

Collection pronta para importar: postman_sicoob_examples.json

Como importar no Postman:

  1. Abra o Postman
  2. Clique em Import
  3. Selecione o arquivo postman_sicoob_examples.json
  4. A collection "API Boletos Sicoob" aparecerá na sidebar com 14 exemplos prontos

Exemplos incluídos:

  • Health check da API
  • Listar bancos disponíveis
  • Gerar boleto básico (JSON)
  • Gerar boleto com PDF (Base64)
  • Gerar boleto com HTML
  • Download direto de PDF/HTML
  • Boleto com desconto e multa
  • Boleto completo (todos os campos)
  • Carnê duplo com 10 prestações (drawBoletoCarneDuplo)
  • Formato normal com múltiplos boletos (drawBoleto)
  • E mais...

A pasta exemplos_json/ contém 11 arquivos JSON prontos para uso:

exemplos_json/
├── 01_basico_json.json              # Boleto simples
├── 02_com_pdf.json                  # Com PDF (Base64)
├── 03_com_html.json                 # Com HTML
├── 04_ambos_pdf_html.json           # PDF + HTML
├── 05_empresa_telecom_vox.json      # Caso real - Telecom
├── 06_academia_desconto_multa.json  # Com desconto/multa
├── 07_condominio.json               # Taxa de condomínio
├── 08_completo_todos_campos.json    # Todos os campos
├── 09_carne_10_parcelas.json        # Carnê 10 prestações (array)
├── 10_carne_duplo_multiplos.json    # Carnê duplo (drawBoletoCarneDuplo)
├── 11_formato_normal_multiplos.json # Formato normal (drawBoleto)
└── README.md                        # Documentação

Uso com cURL:

# Gerar boleto básico
$ curl -X POST http://localhost:5000/api/boleto/gerar \
  -H "Content-Type: application/json" \
  -d @exemplos_json/01_basico_json.json

# Download direto de PDF
$ curl -X POST http://localhost:5000/api/boleto/pdf \
  -H "Content-Type: application/json" \
  -d @exemplos_json/02_com_pdf.json \
  --output boleto.pdf

1. Testar todos os exemplos automaticamente:

$ source venv/bin/activate
(venv) $ python test_all_examples.py

Saída:

🧪 TESTE AUTOMATIZADO - API BOLETOS SICOOB
✅ API está rodando!
📁 Encontrados 8 arquivos para testar

============================================================
📄 Testando: 01_basico_json.json
============================================================
✅ Boleto gerado com sucesso!
   - Linha Digitável: 75691.31753 01055.961005 00014.080015...
...
Total: 8/8 testes passaram
🎉 Todos os testes passaram!

2. Decodificar PDF Base64:

# De string Base64 direto
$ python decode_pdf_base64.py "JVBERi0xLjQK..." boleto.pdf

# De arquivo JSON da API
$ python decode_pdf_base64.py --json response.json boleto.pdf

3. Teste rápido (Bash):

$ ./quick_test.sh

Para instruções detalhadas, troubleshooting e exemplos avançados, consulte:

  • GUIA_TESTES_POSTMAN_SICOOB.md - Guia completo com todos os detalhes
  • TESTES_POSTMAN_INDICE.md - Índice de todos os recursos
  • exemplos_json/README.md - Documentação dos exemplos JSON
  • api/exemplo_uso_sicoob.py - 5 exemplos Python para a API

Gerar boleto Sicoob via API (cURL):

curl -X POST http://localhost:5000/api/boleto/gerar \
  -H "Content-Type: application/json" \
  -d '{
    "codigo_banco": "756",
    "formato": "json",
    "cedente": "Empresa Teste LTDA",
    "cedente_documento": "11.222.333/0001-81",
    "agencia_cedente": "3175",
    "conta_cedente": "1063679",
    "codigo_beneficiario": "559610",
    "carteira": "1",
    "sacado": "Cliente Teste",
    "numero_documento": "123",
    "nosso_numero": "140",
    "valor_documento": 100.00,
    "data_vencimento": "2025-12-31"
  }'

Resposta:

{
  "sucesso": true,
  "dados": {
    "linha_digitavel": "75691.31753 01055.961005 00014.080015 2 13180000010000",
    "codigo_barras": "75692131800000100003175310105596100001408001",
    "nosso_numero_formatado": "140-8",
    "valor_documento": "100.00",
    ...
  }
}

Download direto de PDF:

curl -X POST http://localhost:5000/api/boleto/pdf \
  -H "Content-Type: application/json" \
  -d @exemplos_json/02_com_pdf.json \
  --output boleto_sicoob.pdf

Este software é licenciado sob a New BSD License. Veja o arquivo LICENSE na raiz do projeto para ler o texto completo. .. vim:tw=0:sw=4:et

About

Boleto mantido por Trustcode

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HTML 55.5%
  • Python 40.2%
  • Shell 4.2%
  • Dockerfile 0.1%