Skip to main content

Bling ERP API SDK

PyPI version Python versions License: MIT CI Docs Downloads Code style: Ruff Type checker: basedpyright

Português (BR) | English

SDK Python não oficial para a API v3 do Bling ERP.

Acesso tipado e idiomático a mais de 40 recursos do Bling ERP, com transporte síncrono e assíncrono, autenticação OAuth2, limite de taxa, retry automático e modelos Pydantic.

Descrição

O Bling ERP API SDK é uma biblioteca Python que simplifica a integração com a API v3 do Bling ERP. Ela oferece uma interface canônica em português (com aliases em inglês para compatibilidade), modelos tipados com Pydantic v2, validação de contratos OpenAPI, e tratamento robusto de erros e rate limiting — tudo para que você possa focar no que importa: sua aplicação.

Recursos

  • 40+ módulos de recursos cobrindo toda a superfície da API do Bling ERP
  • Autenticação OAuth2 via bling-jwt-auth — renovação automática de tokens
  • Rate limiting (3 req/s padrão) com retry em respostas 429 e suporte a Retry-After
  • Modelos tipados com Pydantic v2 — campos em snake_case e mapeamento automático para nomes Bling
  • Transporte síncrono e assíncrono baseado em HTTPX
  • API canônica em pt-BR com aliases em inglês para compatibilidade
  • Contratos OpenAPI — gerados e testados contra a especificação oficial
  • 500+ testes com HTTP mockado
  • Documentação completa em mkdocs com suporte a busca

Instalação

pip install bling-erp-api

Ou com uv:

uv add bling-erp-api

Requer Python 3.12 ou superior.

Início Rápido

Defina as variáveis de ambiente necessárias (veja Autenticação):

export BLING_CLIENT_ID="seu_client_id"
export BLING_CLIENT_SECRET="seu_client_secret"
export BLING_REFRESH_TOKEN="seu_refresh_token"

Depois use o SDK:

from bling_erp_api import BlingClient

with BlingClient.from_env() as client:
    # Listar produtos da primeira página
    produtos = client.produtos.listar(limit=100)
    for produto in produtos.get("data", []):
        print(produto.get("nome"))

    # Obter um contato
    contato = client.contatos.obter(1)
    print(contato)

    # Criar um pedido de venda
    from bling_erp_api.models.aliases import PedidoVenda

    pedido = PedidoVenda(
        cliente=PedidoVenda.Cliente(nome="Cliente Exemplo"),
        itens=[
            PedidoVenda.Item(
                codigo="PROD-001",
                descricao="Produto Exemplo",
                quantidade=2,
                valor_unitario=49.90,
            )
        ],
    )
    resposta = client.pedidos_vendas.criar(pedido)
    print(resposta)

Autenticação

O SDK utiliza OAuth2 (fluxo de autorização) delegado ao pacote bling-jwt-auth.

A forma mais simples de começar é com variáveis de ambiente:

export BLING_CLIENT_ID="seu_client_id"
export BLING_CLIENT_SECRET="seu_client_secret"
export BLING_REFRESH_TOKEN="seu_refresh_token"
export BLING_REDIRECT_URI="sua_redirect_uri"  # opcional

Em seguida, crie um cliente com BlingClient.from_env().

Para autenticação personalizada, passe um token_provider que implemente get_access_token() -> str ou uma instância de httpx.Auth.

Consulte a documentação de autenticação para mais detalhes.

Recursos Disponíveis

Namespace pt-BR Alias EN Descrição
client.contatos client.contacts CRUD de contatos e gerenciamento de situação
client.produtos client.products CRUD de produtos e gerenciamento de situação
client.produtos_estruturas client.product_structures Estruturas de produtos (BOM)
client.produtos_fornecedores client.product_suppliers Fornecedores de produtos
client.produtos_lojas client.product_stores Mapeamento de produtos por loja
client.lotes client.product_batches Lotes de produtos
client.lotes_lancamentos client.product_batch_entries Lançamentos de lotes
client.produtos_variacoes client.product_variations Variações de produtos
client.pedidos_vendas client.sales_orders Pedidos de venda
client.pedidos_compras client.purchase_orders Pedidos de compra
client.notas_fiscais client.invoices NF-e (notas fiscais eletrônicas)
client.notas_fiscais_consumidor client.consumer_invoices NFC-e (notas fiscais ao consumidor)
client.notas_servicos client.service_invoices NFS-e (notas fiscais de serviços)
client.anuncios client.ads Anúncios em marketplaces
client.anuncios_categorias client.ad_categories Categorias de anúncios
client.caixas_bancos client.cash_entries Movimentações de caixa e bancos
client.borderos client.payment_bundles Gerenciamento de borderôs
client.categorias_lojas client.store_categories Categorias de lojas
client.categorias_produtos client.product_categories Categorias de produtos
client.categorias_receitas_despesas client.income_expense_categories Categorias de receitas e despesas
client.contas_pagar client.accounts_payable Contas a pagar
client.contas_receber client.accounts_receivable Contas a receber
client.contas_contabeis client.financial_accounts Contas contábeis / plano de contas
client.depositos client.warehouses Depósitos
client.empresas client.companies Dados da empresa
client.estoques client.stock Saldos de estoque
client.formas_pagamentos client.payment_methods Formas de pagamento
client.grupos_produtos client.product_groups Grupos de produtos
client.homologacao client.homologation Testes / homologação
client.logisticas client.logistics Transportadoras / logísticas
client.logisticas_servicos client.logistics_services Serviços logísticos
client.logisticas_objetos client.logistics_objects Objetos logísticos
client.logisticas_etiquetas client.logistics_labels Etiquetas de envio
client.logisticas_remessas client.logistics_shipments Remessas logísticas
client.naturezas_operacoes client.natures_of_operations Naturezas de operações fiscais
client.notificacoes client.notifications Notificações
client.ordens_producao client.production_orders Ordens de produção
client.propostas_comerciais client.commercial_proposals Propostas comerciais
client.situacoes client.situations Situações / status
client.situacoes_modulos client.situation_modules Módulos de situações
client.situacoes_transicoes client.situation_transitions Transições de situações
client.vendedores client.sellers Vendedores
client.usuarios client.users Gerenciamento de usuários

Documentação

A documentação completa está disponível em:

https://tempont.github.io/bling-erp-api-python/

Contribuindo

Contribuições são bem-vindas! Consulte o guia completo em CONTRIBUTING.md — em inglês.

Resumo rápido

  1. Faça um fork do repositório
  2. Crie um branch para sua feature (git checkout -b feat/minha-feature)
  3. Instale as dependências: uv sync --all-groups
  4. Faça suas alterações
  5. Verifique com make check (executa ruff, basedpyright e pytest)
  6. Commit e push, depois abra um Pull Request

Para convenções detalhadas de nomenclatura, docstrings, modelos e implementação, veja o arquivo AGENTS.md na raiz do projeto.

Reportando Problemas

Encontrou um bug? Use o rastreador de issues do GitHub.

Ao reportar, inclua:

  • Versão do Python (python --version)
  • Versão do SDK (bling-erp-api --version)
  • Código mínimo para reproduzir o problema
  • Comportamento esperado vs. observado

Problemas de segurança devem ser reportados em privado — entre em contato pelos canais do GitHub.

Licença

MIT — veja o arquivo LICENSE.

Roadmap

  • Expansão da geração de modelos Pydantic a partir do OpenAPI spec
  • Continuação dos slices verticais para mais recursos (contas, estoques, categorias, logística, anúncios)
  • Mais exemplos e documentação interativa

Metadata

Release files for bling-erp-api 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bling-erp-api 0.3.2
File Size Uploaded Provenance
bling_erp_api-0.3.2.tar.gz 461.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bling-erp-api 0.3.2
File Interpreter ABI Platform
bling_erp_api-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 799.7 kB

Release files / bling_erp_api-0.3.2.tar.gz

Download URL bling_erp_api-0.3.2.tar.gz
Size 461.2 kB
Tags Source
SHA-256 checksum
How to use checksums
48f8169839cd0d7f6acfb100bc9b012c091c991c6b84e71a3e1fdac49b1db14c
BLAKE2b-256 checksum
How to use checksums
65556d4d4c28a4671e99da1511a39784c1b4308b6e1d544bfb6bb6e130205bde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / bling_erp_api-0.3.2-py3-none-any.whl

Download URL bling_erp_api-0.3.2-py3-none-any.whl
Size 338.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e432c3a35eb6531ac93a7c8092528fedbfdb5d40f1d39a1608ed27354ec9c9d1
BLAKE2b-256 checksum
How to use checksums
4b5fc998360cbc436dae19f2b8eda9020e388283177c32f9760e65e81eaac87c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Security for bling-erp-api 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bling_erp_api-0.3.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page