Biblioteca em Python com o objetivo de facilitar o acesso a dados financeiros periódicos de empresas brasileiras (B3/CVM).
Project description
brFinance v2
brFinance v2 é uma biblioteca Python projetada para facilitar o acesso e a extração de dados financeiros de empresas brasileiras listadas na B3 e reguladas pela CVM.
Com ela, você pode acessar facilmente:
- Demonstrativos Financeiros (ITR e DFP):
- Balanço Patrimonial (Ativo e Passivo)
- Demonstração do Resultado (DRE)
- Demonstração do Resultado Abrangente (DRA)
- Demonstração do Fluxo de Caixa (DFC)
- Demonstração das Mutações do Patrimônio Líquido (DMPL)
- Demonstração de Valor Adicionado (DVA)
- Dados Cadastrais da CVM e B3
- Informações sobre Emissores e Instrumentos Financeiros
📦 Instalação
Você pode instalar a biblioteca diretamente do PyPI:
pip install brfinance_v2
🚀 Como Usar
Abaixo está um exemplo completo de como utilizar a biblioteca para buscar empresas, encontrar documentos e baixar relatórios financeiros.
1. Inicializando o Backend
A classe principal para interação é a CVMBackend.
from brfinance_v2 import CVMBackend
from datetime import date
import pandas as pd
# Inicializa o cliente
cvm_client = CVMBackend()
2. Buscando Códigos CVM
Obtenha um dicionário com todas as empresas registradas e seus respectivos códigos CVM.
# Retorna dict {codigo_cvm: nome_empresa}
cvm_codes = cvm_client.get_cvm_codes()
# Exemplo: Imprimir o código da PETROBRAS
print("Código da PETROBRAS:", {k: v for k, v in cvm_codes.items() if 'PETROBRAS' in v})
3. Buscando Documentos (ITR, DFP, etc.)
Você pode buscar por documentos específicos usando códigos CVM e intervalos de datas.
# Parâmetros de busca
start_date = date(2023, 1, 1)
end_date = date.today()
cvm_codes_list = ['9512'] # Código CVM da PETROBRAS (Exemplo)
categories = ["EST_4", "EST_3"] # EST_4 = DFP, EST_3 = ITR
# Realiza a busca
search_results = cvm_client.search_document_results(
cod_cvm=cvm_codes_list,
start_date=start_date,
end_date=end_date,
category=categories,
last_ref_date=False # Se True, retorna apenas o último documento por data de referência
)
# Filtra apenas DFP e ITR válido
search_results = search_results[
search_results['categoria'].isin(["DFP - Demonstrações Financeiras Padronizadas", "ITR - Informações Trimestrais"])
]
search_results = search_results[pd.to_numeric(search_results['numero_seq_documento'], errors='coerce').notnull()]
print(search_results[['data_referencia', 'categoria', 'numero_seq_documento']].head())
4. Baixando Relatórios Financeiros
Com o numero_seq_documento obtido na busca anterior, você pode baixar as tabelas financeiras.
# Lista de relatórios desejados (se None, baixa todos disponíveis)
reports_list = [
'Balanço Patrimonial Ativo',
'Demonstração do Resultado',
'Demonstração do Fluxo de Caixa'
]
# Itera sobre os resultados da busca e baixa os relatórios
for index, row in search_results.iterrows():
print(f"Baixando relatórios para: {row['nome_empresa']} - Ref: {row['data_referencia']}")
financial_reports = cvm_client.get_report(
numero_sequencial_documento=row["numero_seq_documento"],
codigo_tipo_instituicao=row["codigo_tipo_instituicao"],
reports_list=reports_list
)
for report_name, data_frame in financial_reports.items():
print(f"--- {report_name} ---")
print(data_frame.head())
📚 Documentação da API
CVMBackend
| Método | Parâmetros Principais | Descrição |
|---|---|---|
get_cvm_codes() |
Nenhum | Retorna dicionário com códigos CVM de todas as empresas. |
get_search_categories() |
Nenhum | Retorna dicionário com categorias de documentos disponíveis (DFP, ITR, Fato Relevante, etc.). |
get_participant_types() |
Nenhum | Retorna dicionário com tipos de participantes. |
search_document_results(...) |
cod_cvm, start_date, end_date, category |
Realiza a busca de documentos na base da CVM. Retorna um DataFrame. |
get_report(...) |
numero_sequencial_documento, codigo_tipo_instituicao |
Baixa o conteúdo (tabelas) de um documento específico. |
get_b3_instruments(...) |
ref_date |
Baixa o cadastro de instrumentos/ativos da B3 para uma data. |
get_b3_issuers() |
Nenhum | Baixa a lista de emissores da B3. |
get_cvm_public_companies() |
Nenhum | Retorna cadastro completo de cias abertas da CVM. |
🛠 Desenvolvimento
Para configurar o ambiente de desenvolvimento:
- Clone o repositório.
- Crie um ambiente virtual:
python -m venv .venv - Instale as dependências:
pip install -r requirements.txt - Execute os testes:
pytest
⚖️ Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
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 brfinance_v2-0.1.0.tar.gz.
File metadata
- Download URL: brfinance_v2-0.1.0.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60dd15e7e8bb069ae35838fe489fac14a426a189873cc0efc356acb15945ddd0
|
|
| MD5 |
27d8f6c4c72ea6406d343b02b1fc7688
|
|
| BLAKE2b-256 |
422a5d0207ddb3ca4781c0d6272400c5699d86d3991b89045e5352bbc5ede266
|
File details
Details for the file brfinance_v2-0.1.0-py3-none-any.whl.
File metadata
- Download URL: brfinance_v2-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c48c937ade7ef79867d884cea836a692174a03eac81a77b49ea881d210673dea
|
|
| MD5 |
f6e21019e58d5d388b312cecdcaab5cc
|
|
| BLAKE2b-256 |
a92f4621d37a5eecba619030ca9e4c93d680e7606440932e08b2a39a4d2943bf
|