Relatórios fiscais de qualquer ente
O SICONFI, do Tesouro Nacional, é a fonte mais rica de dado fiscal do país e uma das poucas que responde a qualquer um, sem cadastro e sem chave. Todos os municípios, todos os estados, a União e o Distrito Federal entregam ali os mesmos relatórios, na mesma forma — o que é raro o bastante para mudar o que dá para fazer.
O que tem lá
- RREO — Relatório Resumido da Execução Orçamentária, bimestral. É onde está a despesa por função (Anexo 02), a receita e a execução ao longo do ano. Base legal: LC 101/2000, art. 52. Para entender o conteúdo: como ler o orçamento.
- RGF — Relatório de Gestão Fiscal, quadrimestral ou semestral. É onde está a despesa com pessoal contra o limite legal e a dívida consolidada.
- DCA — Declaração de Contas Anuais: o balanço do exercício inteiro, com mais detalhe que o RREO.
- Tabela de entes — código do IBGE, população, região, esfera e CNPJ de todos os entes. É a chave que junta qualquer tabela fiscal com dado demográfico e com o mapa.
A primeira chamada
Cole no navegador. Devolve a despesa por função de Luziânia (GO) no 6º bimestre de 2025:
https://apidatalake.tesouro.gov.br/ords/siconfi/tt/rreo?an_exercicio=2025&nr_periodo=6&co_tipo_demonstrativo=RREO&no_anexo=RREO-Anexo%2002&co_esfera=M&id_ente=5212501
Os parâmetros, um a um:
an_exercicio— o ano.nr_periodo— o bimestre, de 1 a 6. O 6º acumula o ano inteiro.co_tipo_demonstrativo—RREO,RGFouDCA.no_anexo— qual quadro do relatório.RREO-Anexo 02é a despesa por função; o espaço precisa ir codificado como%20.co_esfera—Mpara município,Epara estado,Upara a União,Dpara o Distrito Federal. Leia a armadilha abaixo antes de usar oD.id_ente— o código do IBGE: sete dígitos para município, dois para estado e para o DF.
As armadilhas, verificadas
- O Distrito Federal responde como estado. Com
co_esfera=D&id_ente=53a resposta é"count": 0— sem erro, sem aviso, em todos os anos testados. O que funciona éco_esfera=E&id_ente=53, apesar de a própria tabela de entes do Tesouro classificar o DF como esferaD. É a pior forma de falhar, porque parece ausência de dado. - Resposta vazia não é erro.
count: 0pode significar que o ente não entregou aquele relatório naquele período — o que, por si só, já é informação: a entrega é obrigatória e o atraso aparece no extrato de entregas. - Função e subfunção vêm misturadas. No Anexo 02, "Saúde" e "Atenção Básica" aparecem no mesmo campo
conta, sem código que distinga o nível. Somar tudo conta duas vezes. Trate os rótulos como vêm, e não presuma hierarquia que a resposta não declara. - Cada linha é uma coluna do relatório impresso. O campo
colunadiz se aquele número éDOTAÇÃO INICIAL,DESPESAS EMPENHADAS,DESPESAS LIQUIDADASe assim por diante. Filtre por ele, ou você soma dotação com pagamento. - Educação e saúde não vêm pela API. Pedindo o RREO do 6º bimestre de 2025 sem filtrar anexo, um estado e duas prefeituras devolveram os Anexos 1, 2, 3, 4, 6, 7, 9, 11, 13 e 14 (e o 10, do regime próprio de previdência, onde há) — mas não os Anexos 8 (educação) e 12 (saúde); pedido pelo nome, cada um volta vazio (conferido em 30/10/2026). Esses números saem do SIOPE e do SIOPS: playbook de educação e saúde.
- O endereço de resposta muda. Os links internos do retorno apontam para um host interno da infraestrutura do Tesouro. Ignore-os e continue usando o endereço público.
O roteiro, passo a passo
- Ache o código do ente. Na tabela de entes (
/tt/entes) ou no valor por habitante, que confere o dígito verificador do código do IBGE. - Puxe um período só, primeiro. Confira se o
counté maior que zero e se os nomes das contas fazem sentido, antes de automatizar qualquer coisa. - Filtre a coluna. Escolha uma —
DESPESAS LIQUIDADASé a que melhor responde "o que foi entregue e reconhecido". Misturar colunas é o erro mais comum. - Monte o CSV com a fonte ao lado. Três colunas bastam: conta, valor e a URL exata da chamada. Acrescente a data de acesso.
- Confira o total. A soma das funções tem de bater com a linha de total do próprio retorno. Se não bate, você misturou função com subfunção ou colunas diferentes.
- Desenhe. Despesa por função vai bem no treemap; a execução ao longo dos bimestres, na série temporal; a comparação entre entes, nas barras — depois de passar pelo valor por habitante.
- Corrija a inflação se houver mais de um ano. Em corrigir pela inflação.
Conferir contra a lei, sem planilha
Baixou o RGF (Anexo 1, pessoal; Anexo 2, dívida) de um ente? Cole a resposta da API em pisos e tetos: a página lê pelo código de cada conta e confere a despesa com pessoal e a dívida contra os limites da LRF e do Senado, no seu navegador.
Perguntas que este dado responde bem
- Quanto o meu município autorizou para saúde, e quanto de fato liquidou? (Anexo 02, colunas de dotação e de liquidação.)
- A despesa com pessoal está perto do limite legal? (RGF — e o limite está em base legal.)
- A execução se concentrou no fim do ano? (Bimestres 1 a 6, na série temporal.)
- O meu município gasta mais por habitante que os vizinhos de porte parecido? (Anexo 02 mais população.)
O que este dado não prova
- Não prova irregularidade. Execução baixa pode ser contingenciamento, receita que não veio ou obra atrasada por licença ambiental. É pergunta, não conclusão.
- Não mostra o destino do dinheiro. Função e subfunção dizem a finalidade, não quem recebeu. Para fornecedor e contrato, o caminho é o portal do ente e o PNCP.
- Não é auditado por estar ali. O ente declara; o Tesouro consolida. Quem audita é o Tribunal de Contas.
- Não é sobre ninguém. O dado é do ente, não de quem o dirige. Um gráfico que troca o nome do município pelo nome de quem governa mudou de assunto — e saiu do escopo deste site.