Skip to main content

Banco Inter Python

Este projeto consome a API do Banco Inter PJ de boletos registrados. Para acesso a documentação precisa estar logado no internet banking do Banco Inter. Para criar seu aplicativo, siga estas etapas simples:

  • Faça login no Internet Banking (Banco Inter).
  • Navegue até a seção APIs:
  • Conta Digital > Aplicações > Nova Aplicação

Atualizado para a API versão 3

  • Crie um arquivo .env com os seguitntes atributos na aplicação que irá usar este projeto.
    # Application Environment - SANDBOX or PRODUCTION
    APP_ENV=SANDBOX
    CPFCNPJ_BENEF='Número CPF OU CNPJ da conta no banco inter'
    X_INTER_CONTA_CORRENTE='Numero da conta corrente'
    # SANDBOX
    API_SBX_TOKEN_V2=https://cdpj-sandbox.partners.uatinter.co/oauth/v2/token
    API_SBX_COBRA_V3=https://cdpj-sandbox.partners.uatinter.co/cobranca/v3/
    # PRODUCTION
    API_URL_TOKEN_V2=https://cdpj.partners.bancointer.com.br/oauth/v2/token
    API_URL_COBRA_V3=https://cdpj.partners.bancointer.com.br/cobranca/v3/
    API_URL_COBRA_V2=https://cdpj.partners.bancointer.com.br/cobranca/v2/
    API_URL_COBRA_V1=https://apis.bancointer.com.br/openbanking/v1/certificado/
    SSL_DIR_BASE='Diretorio base dos arquivos SSL'
    PUBLIC_KEY_V1='Path do arquivo public key da versão 1'
    PRIVATE_KEY_V1='Path do Arquivo private key da versão 1'
    PUBLIC_KEY_V2='Path do arquivo public key da versão 2'
    PRIVATE_KEY_V2='Path do Arquivo private key da versão 2'
    DOWNLOAD_PATH='Path do diretorio que os arquivos PDF de download serão salvos'
    CLIENT_ID='Chave client id da sua app no banco inter'
    CLIENT_SECRET='Chave client secret da sua app no banco inter'

Referências:

Funcionalidades disponíveis

* API Cobrança (Boleto com Pix)
    * Cobrança
        - Emissão de boletos
        - Download de boletos
        - Baixa de boletos
        - Consulta detalhada de boletos

* API Banking
    * Saldo
        - Consultar saldo
    * Extrato
        - Consultar extrato
        - Recuperar extrato em PDF
    * Pagamento
        - Incluir pagamento com código de barras
        - Incluir pagamento DARF
        - Cancelar agendamento do pagamento
        - Buscar pagamentos
        - Buscar pagamentos de DARF
    * Pix pagamento
        - Incluir Pagamento Pix
        - Consultar Pagamento Pix

* Api Pix
    * Cobrança imediata
        - Criar cobrança imediata com txid
        - Revisar cobrança imediata
        - Criar cobrança imediata
        - Consultar cobrança imediata
        - Pagar Pix de cobrança imediata (Sandbox)
    * Cobrança com vencimento
        - Criar cobrança com vencimento
        - Revisar cobrança com vencimento
        - Consultar cobrança com vencimento
    * Pix
        - Consultar pix
    * Webhook
        - Criar webhook
        - Obter webhook cadastrado
        - Excluir webhook

Novas funcionalidades a serem implementadas

* Recursos da API Cobrança (Boleto com Pix)
    * Webhook
        - Criar ou editar um webhook
        - Obter webhook cadastrado
        - Excluir webhook

* Recursos da Api Banking
    * Extrato
        - Consultar extrato enriquecido

* Recursos da Api Pix
    * Pix
        - Consultar pix recebidos
        - Solicitar devolução
        - Consultar devolução

Instalação para utilização

pip install bancointer-python

ou

pip install .

Exemplos de Uso

Exemplos de utilização da API do Banco Inter (SANDBOX) para emissão, download e baixa de títulos bancários. Veja a pasta examples/.

  • Importe as dependências necessárias:
from decouple import config
from bancointer.utils.environment import Environment

# Configurações Banco Inter para operações na API (.env)
dir_base_ssl = config("SSL_DIR_BASE")
cert = (dir_base_ssl + config("PUBLIC_KEY_V2"), dir_base_ssl + config("PRIVATE_KEY_V2"))
client_id = config("CLIENT_ID")
client_secret = config("CLIENT_SECRET")
conta_corrente = config("X_INTER_CONTA_CORRENTE")

# Environment SANDBOX or PRODUCTION
app_env_name = config("APP_ENV")
env = Environment.get_environment_by_value(app_env_name.upper())

Emissão de Boleto

payer = Pessoa(
    "9" * 11,  # valido
    PersonType.FISICA,
    "NOME DO PAGADOR",
    "ENDERECO DO PAGADOR",
    "CIDADE DO PAGADOR",
    "PR",
    "80030000",
)  # OU FISICA
# Pagador

discount = Desconto("PERCENTUALDATAINFORMADA", 0, 1.2, 2)
multa = Multa("VALORFIXO", 0, 100)
mora = Mora("TAXAMENSAL", 0, 4.5)
message = Message("message 1", "message 2", "message 3", "", "message 5")

# Beneficiario final, mesmo que o pagador
beneficiario_final = Pessoa(
    "12345678901",
    PersonType.FISICA,
    "Nome do beneficiário",
    "Avenida Brasil, 1200",
    "Belo Horizonte",
    "MG",
    "30110000",
)

cobranca = Cobranca.criar_sobranca_simples("0001", 2.5, "2024-11-22", payer)
cobranca.multa = multa
cobranca.desconto = discount
cobranca.beneficiarioFinal = beneficiario_final

sol_new_cobranca = SolicitacaoEmitirCobranca(cobranca)

emite_cobranca = EmiteCobranca(env, client_id, client_secret, cert, conta_corrente)
resposta = emite_cobranca.emitir(sol_new_cobranca)

print(resposta)

Consultar dados do Boleto

request_code = "1783d19f-ab81-4a54-92a3-a0064f9b26ee"

recupera_cobranca = RecuperaCobranca(env, client_id, client_secret, cert, conta_corrente)

response = recupera_cobranca.recuperar(request_code)

Download de Boleto

request_code = "1783d19f-ab81-4a54-92a3-a0064f9b26ee"

recupera_cobranca = RecuperaCobrancaPDF(env, client_id, client_secret, cert, conta_corrente)

response = recupera_cobranca.recuperar_pdf(request_code, config("DOWNLOAD_PATH"))

Baixa de Boleto

request_code = "1783d19f-ab81-4a54-92a3-a0064f9b26ee"

cancela_cobranca = CancelaCobranca(env, client_id, client_secret, cert, conta_corrente)

response = cancela_cobranca.cancelar(request_code, Baixa.ACERTOS.value)

Contribua com este projeto

Clone o repositório do projeto

$ git clone https://github.com/renatojdev/bancointer-python.git

Se não tiver o pipenv instalado, para instalar:

$ pip install -U pipenv

Instale as dependências

$ make install

Dependências

Licença

MIT

Release files for bancointer-python 0.16

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

Source distribution (sdist)

Source distribution for bancointer-python 0.16
File Size Uploaded
bancointer_python-0.16.tar.gz 322.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bancointer-python 0.16
File Interpreter ABI Platform
bancointer_python-0.16-py3-none-any.whl Python 3 none any Details

Total release size: 420.7 kB

Release files / bancointer_python-0.16.tar.gz

Download URL bancointer_python-0.16.tar.gz
Size 322.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4fe4c1d25e984f831f5a0f33a33847a49252bd66b6bc13ea404b693d970905db
BLAKE2b-256 checksum
How to use checksums
406cade16bcb764645de718bf4a491f27d2618801e552b62b0d93eb06c1d107b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.2

Release files / bancointer_python-0.16-py3-none-any.whl

Download URL bancointer_python-0.16-py3-none-any.whl
Size 97.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6bfc3f7147094bbd931ea51f5f65e36b5a13027f083879e748ba594796877f82
BLAKE2b-256 checksum
How to use checksums
94f852f3ff092c368b9403b968b9def8230e080f54714a88251bb769a7126dea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.16 This release

2 release files

0.15

2 release files

0.14

2 release files

0.13

2 release files

0.12

2 release files

0.11

2 release files

0.10

2 release files

0.9

2 release files

0.7

2 release files

0.3

3 release files

0.2

1 release file

0.1

1 release file

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