Skip to main content

Biblioteca em Python com o objetivo de facilitar o acesso a dados financeiros periódicos de empresas brasileiras(B3/CVM).

Project description

Contributors Forks Stargazers Issues MIT License LinkedIn

brfinance - Acesse facilmente dados financeiros de empresas brasileiras na B3/CVM

Biblioteca em Python com o objetivo de facilitar o acesso a dados financeiros periódicos de empresas brasileiras(B3/CVM).

  • Financial statements:
    • Balanço Patrimonial Ativo (Balance sheet - Assets)
    • Balanço Patrimonial Passivo (Balance sheet - Liabilities)
    • Demonstração do Resultado (Income statement)
    • Demonstração do Resultado Abrangente
    • Demonstração do Fluxo de Caixa (Cash flow statement)
    • Demonstração das Mutações do Patrimônio Líquido
    • Demonstração de Valor Adicionado

Instalação

$ pip install brfinance

Como utilizar

Veja como é simples utilizar:

from cvm import CVMAsyncBackend, http_client, connector

from datetime import datetime, date


cvm_httpclient = CVMAsyncBackend()

# Realizando busca por Empresa

start_date = date(2010, 1, 1)
end_dt = date(2022, 1, 1)
cvm_codes_string = "021610" # B3
report_type = "EST_4" # Código de categoria para DFP
last_ref_date = False # Se "True" retorna apenas o último report no intervalo de datas
reports_list = None # Se None retorna todos os demonstrativos disponíveis.

# Busca
search_result = cvm_httpclient.get_consulta_externa_cvm_results(
    cod_cvm=cvm_codes_string,
    start_date=start_date,
    end_date=end_dt,
    last_ref_date=last_ref_date,
    report_type=report_type
    )

# Filtrar dataframe de busca para DFP e ITR apenas
search_result = search_result[
    (search_result['categoria']=="DFP - Demonstrações Financeiras Padronizadas") |
    (search_result['categoria']=="ITR - Informações Trimestrais")]
search_result = search_result[pd.to_numeric(search_result['numero_seq_documento'], errors='coerce').notnull()]

# Obter demonstrativos
for index, row in search_result.iterrows():
    empresa = f"{row['cod_cvm']} - {cvm_codes[row['cod_cvm']]}"
    print("*" * 20, empresa, "*" * 20)
    reports = cvm_httpclient.get_report(row["numero_seq_documento"], row["codigo_tipo_instituicao"], reports_list=reports_list)
    
    for report in reports:
        reports[report]["cod_cvm"] = row["cod_cvm"]
        print(reports[report].head())

Você pode acessar exemplos completos clicando aqui.

Funções disponíveis

Através da classe de client CVMAsyncBackend, você terá acesso as seguintes funções:

Função Parâmetros Descrição
get_cvm_codes - Obtém os códigos cvm disponíveis para todas as empresas. Retorna um dicionário com o código CVM de chave e o nome da empresa.
get_consulta_externa_cvm_categories - Obtém os códigos para as categorias de busca disponíveis, dentre elas "DFP", "ITR", etc. Retorna um dicionário com o código da busca e a descrição.
get_consulta_externa_cvm_results cod_cvm, start_date, end_date, last_ref_date, report_type Obtém o resultado da busca para os dados informados. Retorna um dataframe com os resultados.
get_report numero_seq_documento, codigo_tipo_instituicao Utilizado para obter todos os demonstrativos de uma empresa na CVM. Retorna um dicionário com os nomes e os valores dos demonstrativos em um dataframe.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brfinance-0.0.1.tar.gz (71.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page