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:
- Iniciar aplicação
- Parar aplicação
- Reiniciar aplicação
- Ver logs
- Rebuild completo
- Status dos containers
- 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:
- 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/
- 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
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
--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
- A flag
--break-system-packagessobrepõ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-reinstallremove 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.pyou 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:
- Abra o Postman
- Clique em Import
- Selecione o arquivo
postman_sicoob_examples.json - 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 detalhesTESTES_POSTMAN_INDICE.md- Índice de todos os recursosexemplos_json/README.md- Documentação dos exemplos JSONapi/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