Como retirar dados de contas públicas municipais via API do SICONFI

Neste texto, iremos mostrar como podemos retirar os dados dos demonstrativos contábeis de entes federativos do Brasil pelo Sistema de Informações Contábeis e Fiscais do Setor Público Brasileiro (SICONFI) via API no R.

Primeiramente, é necessário estar a par dos parâmetros que devem ser colocados como entradas para obter os dados dos diversos tipos de demonstrativos. O site http://apidatalake.tesouro.gov.br/docs/siconfi/ fornece detalhadamente quais parâmetros devem ser fornecidos para cada tipo de demonstrativos, bem como a url base para realizar a requisição do API.

Aqui iremos trabalhar como exemplo a Declaração de Contas Anuais (DCA) Anexo I-D do município de Varginha - Minas Gerais, no qual nos fornecerá as Despesas Orçamentárias por Natureza.

Para o DCA, há 3 parâmetros que devem ser inseridos: an_exercicio (Ano de exercício do demonstrativo); no_anexo (Qual anexo do relatório deseja obter) e id_ente (O código IBGE do ente em questão). Sendo an_exercicio e id_ente obrigatórios para esse demonstrativo em questão.

É fundamental a utilização dos pacotes a seguir.


library(httr)
library(jsonlite)
library(magrittr)
library(tibble)

Em seguida vamos realizar a chamada da API criando uma URL.

# URL da DCA de Varginha no ano de 2020 
url_dca <- paste("https://apidatalake.tesouro.gov.br/ords/siconfi/tt/dca?", # URL base para a chamada 
"an_exercicio=", 2020, "&", # Insere o parâmetro de Ano do exercício 
"no_anexo", "DCA-Anexo+I-D","&", # Insere o parâmetro do Anexo que se deseja obter 
"id_ente=", "3170701", sep = "") # Insere o parâmetro do Ente de acordo com o código IBGE do mesmo

Após isso, devemos realizar a requisição da API usando a função GET do pacote httr, bem como realizar a extração do conteúdo com as funções content e fromJSON dos pacotes httr e jsonlite, respectivamente.


api_dca <- GET(url_dca) 
 
# A chamada irá nos retornar os dados requisitados. Agora só precisamos extrair o conteúdo que nos interessa

json_dca <- api_dca %>%

content(as = "text", encoding = "UTF-8") %>%

fromJSON(flatten = FALSE)

# E após isso transforma-los em um tibble

dca_tb <- as.tibble(json_dca[["items"]])

Desta forma podemos obter os dados do DCA Anexo I-D do município de Varginha. O método pode ser replicado para outros anexos e demonstrativos, bem como para qualquer outro Ente do Brasil.

_________________

(*) Gostou? Conheça nosso Curso de Análise de Conjuntura usando o R.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como automatizar tarefas repetitivas usando Python? Um exemplo para largar o Excel

Manter relatórios diários com dados e análises atualizados é um desafio, pois envolve várias etapas: coleta de dados, tratamento de informações, produção de análises e atualização de relatório. Para superar este desafio algumas ferramentas como Python + Quarto + GitHub podem ser usadas para automatizar tudo que for automatizável. Neste artigo mostramos um exemplo com dados do mercado financeiro.

Criando um Dashboard de análise de Ações no Python

Um Dashboard é um painel de controle que consolida uma variedade de informações sobre um determinado objeto de estudo em um ou mais painéis. Ele simplifica significativamente o processo de análise de dados, oferecendo uma visão global e fácil de entender. Uma maneira simples de construir um Dashboard para acompanhar uma ação específica é utilizando duas ferramentas: Quarto e Python. Neste post, mostramos o resultado da criação de um Dashboard de Ação.

Analisando séries temporais no Python e esquecendo de vez o Excel

Séries temporais representam uma disciplina extremamente importante em diversas áreas, principalmente na economia e na ciência de dados. Mas, afinal, como lidar com esses dados que se apresentam ao longo do tempo? Neste exercício, demonstraremos como compreender uma série temporal e como o Python se destaca como uma das melhores ferramentas para analisar esse tipo de dado.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.