Dados abertos · regras de utilização
Manual da Estrutura de Dados JSON
O que significa cada campo dos arquivos JSON exportados pelo portal da Câmara Municipal de Barrocas: licitações, contratos, documentos, folha de pagamento, receitas e despesas.
Baixar o manual em PDF Dados Abertos (CSV, JSON e XML)
O PDF é a versão original (Manual da Estrutura de Dados JSON v1.0, IBDM Modernização, março de 2018, 5 páginas). Esta página traz o mesmo conteúdo com exemplos.
Manual da Estrutura de Dados JSON
Este documento esclarece os dados exportados pelos sistemas de Licitações, Contratos, Documentos e Folha de Pagamento (e também Receitas e Despesas) em formato JSON (JavaScript Object Notation, Notação de Objetos JavaScript).
Todo arquivo exportado é um objeto com o índice data (dados): uma lista em que cada item é um registro (uma licitação, um contrato, um pagamento…). Cada tabela abaixo mostra a chave (índice) de cada informação, o tipo de dado e um comentário.
{
"data": [
{ "chave": "valor", "outra_chave": "valor" },
{ "chave": "valor", "outra_chave": "valor" }
]
}Tipos: “TEXTO” é uma string JSON (entre aspas), inclusive datas e valores em reais; “Numérico” é um número JSON (sem aspas, ponto decimal).
Como obter o arquivo JSON
- Abra a página dos dados: Licitações, Contratos, Documentos, Folha de Pessoal, Receitas, Despesas.
- Se quiser, aplique os filtros (período, palavra-chave…) e clique em Pesquisar.
- Clique no botão JSON acima da tabela (no celular: “Exportar como…” → JSON → Baixar). O arquivo traz os registros da lista, com os filtros aplicados.
Para acesso automatizado por sistemas externos, sem precisar clicar, use os Dados Abertos: cada conjunto tem endereço próprio da API, filtros, paginação e download em CSV, JSON e XML.
Importante: este manual descreve o JSON baixado pelos botões de exportação das páginas. A API de Dados Abertos usa nomes de campos próprios (ex.: des_valor, rec_data), descritos em cada conjunto, em “Como usar a API”.
Licitações
Nesta exportação há um objeto JSON com o índice data (dados), em que cada item é uma licitação com as seguintes informações:
| Chave (índice) | Tipo de dado | Comentário |
|---|---|---|
modalidade | TEXTO | Modalidade da licitação. Ex.: Pregão Presencial. |
tipo | TEXTO | Tipo da licitação. Ex.: Menor preço, melhor técnica, preço e técnica, preço e oferta, outros. |
numero | TEXTO | Número da licitação. Ex.: 001/2018. |
n_processo | TEXTO | Número do processo administrativo que gerou a licitação. Ex.: 001/2018. |
objeto | TEXTO | Descreve/resume o objetivo da licitação. Ex.: Contratação de empresa para serviço de merenda escolar. |
patrimonio_liquido_minimo | TEXTO | Valor mínimo do capital da empresa contratada (10% do valor da licitação). Formato: real brasileiro. Ex.: 250.488,00. |
orgao | TEXTO | Nome da secretaria ou setor responsável pela licitação. Ex.: Secretaria da Educação. |
dotacao_orcamentaria | TEXTO | Verba orçamentada destinada à licitação. Pode descrever a dotação de cada setor ou lote da licitação. |
situacao | TEXTO | Situação da licitação: em curso, contrato, revogada, anulada, homologada, fracassada ou deserta. |
data_realizacao | TEXTO | Data de realização da licitação. Formato AAAA-MM-DD. |
data_adjudicacao | TEXTO | Data de adjudicação. Formato AAAA-MM-DD. |
data_homologacao | TEXTO | Data de homologação. Formato AAAA-MM-DD. |
{
"data": [
{
"modalidade": "Pregão Presencial",
"tipo": "Menor preço",
"numero": "001/2018",
"n_processo": "001/2018",
"objeto": "Contratação de empresa para serviço de merenda escolar",
"patrimonio_liquido_minimo": "250.488,00",
"orgao": "Secretaria da Educação",
"dotacao_orcamentaria": "12.361.0010.2015 - 3.3.90.30.00",
"situacao": "homologada",
"data_realizacao": "2018-03-15",
"data_adjudicacao": "2018-03-20",
"data_homologacao": "2018-03-22"
}
]
}Contratos
Nesta exportação há um objeto JSON com o índice data (dados), em que cada item é um contrato com as seguintes informações:
| Chave (índice) | Tipo de dado | Comentário |
|---|---|---|
n | TEXTO | Número do contrato. Ex.: 001/2018. |
contratada | TEXTO | Nome da empresa contratada. |
contratante | TEXTO | Nome da entidade/órgão contratante. |
vigencia | TEXTO | Vigência do contrato. Ex.: 12 meses. |
valor_r | TEXTO | Valor total do contrato. Formato: real brasileiro. Ex.: 250.488,00. |
arquivo | TEXTO | Link para download do arquivo anexo do contrato digitalizado. |
{
"data": [
{
"n": "001/2018",
"contratada": "Empresa Exemplo Ltda",
"contratante": "Câmara Municipal de Barrocas",
"vigencia": "12 meses",
"valor_r": "250.488,00",
"arquivo": "https://…/contrato-001-2018.pdf"
}
]
}Documentos
Esta seção reúne os tipos de documento Lei, Decreto, Convênio, Lei Orgânica, Portaria, Prestação Anual de Contas e Relatório da Responsabilidade Fiscal (leis, decretos, convênios, portarias, prestação de contas e relatórios de responsabilidade fiscal). Ao exportar para JSON, há um objeto com o índice data (dados), em que cada item é um documento de um ou mais desses tipos, com as seguintes informações:
| Chave (índice) | Tipo de dado | Comentário |
|---|---|---|
tipo | TEXTO | Tipo do documento: Lei, Portaria, Decreto, RRF… |
n | TEXTO | Número do documento. Ex.: 001/2018. |
modelo | TEXTO | Modelo do documento. Ex.: RREO. |
descricao_ementa_objeto | TEXTO | Descrição, ementa ou objeto do documento. |
arquivo | TEXTO | Link para download do arquivo anexo do documento digitalizado. |
{
"data": [
{
"tipo": "Decreto",
"n": "001/2018",
"modelo": "RREO",
"descricao_ementa_objeto": "Dispõe sobre o horário de funcionamento…",
"arquivo": "https://…/decreto-001-2018.pdf"
}
]
}Folha de Pagamento (Folha de Pessoal)
Nesta exportação há um objeto JSON com o índice data (dados), em que cada objeto é um pagamento com as seguintes informações:
| Chave (índice) | Tipo de dado | Comentário |
|---|---|---|
id | TEXTO | Identificador do funcionário. |
funcionario | TEXTO | Nome do funcionário. |
cpfmatricula | TEXTO | Os 3 primeiros e os 2 últimos dígitos do CPF ou o número de matrícula completo do funcionário. Quando é o CPF, vem com a máscara 033.###.###-00. |
cargo | TEXTO | Cargo do funcionário. |
mes_referencia | TEXTO | Mês/ano de referência do pagamento. |
centro_de_custo | TEXTO | Centro de custos do pagamento. |
salario_bruto | Numérico | Salário bruto do funcionário. Ex.: 1280.24. |
salario_liquido | Numérico | Salário líquido do funcionário. |
total_de_descontos | Numérico | Valor total dos descontos aplicados na folha sobre o salário bruto. |
Atenção: nesta exportação, os valores de salário são numéricos, com ponto como separador decimal (ex.: 1280.24), diferente dos demais valores em texto no formato brasileiro.
{
"data": [
{
"id": "1234",
"funcionario": "Maria da Silva",
"cpfmatricula": "033.###.###-00",
"cargo": "Assistente Administrativo",
"mes_referencia": "03/2018",
"centro_de_custo": "Administração",
"salario_bruto": 1280.24,
"salario_liquido": 1150.5,
"total_de_descontos": 129.74
}
]
}Receitas
Nesta exportação, os objetos do índice data são receitas com as seguintes informações:
| Chave (índice) | Tipo de dado | Comentário |
|---|---|---|
data | TEXTO | Data da receita no formato brasileiro: DD/MM/AAAA. |
descrição | TEXTO | Breve descrição sobre a transação. Atenção: a chave tem acento (descrição). |
valor | TEXTO | Valor da receita em real brasileiro. |
unidade | TEXTO | Unidade à qual se destina a receita. |
natureza | TEXTO | Natureza da transação. |
tipo | TEXTO | Tipo da receita: Orçamentária, Não Orçamentária. |
data_pub | TEXTO | Data de publicação da receita. |
modalidade | TEXTO | Modalidade da receita. |
num_natureza | TEXTO | Número (ou código) que identifica a natureza da transação. |
{
"data": [
{
"data": "31/03/2018",
"descrição": "Rendimentos sobre aplicação financeira",
"valor": "3.609,06",
"unidade": "Unidade gestora exemplo",
"natureza": "Remuneração de depósitos bancários",
"tipo": "Orçamentária",
"data_pub": "01/04/2018",
"modalidade": "Arrecadação",
"num_natureza": "1321.00.1.1"
}
]
}Despesas
Nesta exportação, os objetos do índice data são despesas com as seguintes informações:
| Chave (índice) | Tipo de dado | Comentário |
|---|---|---|
data | TEXTO | Data da despesa no formato brasileiro: DD/MM/AAAA. |
descrição | TEXTO | Breve descrição sobre a transação. Atenção: a chave tem acento (descrição). |
valor | TEXTO | Valor da despesa em real brasileiro. |
unidade_gestora | TEXTO | Unidade gestora responsável pela despesa. |
natureza | TEXTO | Natureza da transação. |
tipo | TEXTO | Tipo da despesa: Orçamentária, Não Orçamentária. |
data_publicacao | TEXTO | Data de publicação da despesa. |
modalidade | TEXTO | Modalidade da despesa. |
numero_da_natureza | TEXTO | Número (ou código) que identifica a natureza da transação. |
credor | TEXTO | Pessoa física ou jurídica à qual se destina a transação. |
cpfcnpj | TEXTO | CPF ou CNPJ da pessoa à qual se destina a transação. |
funcao | TEXTO | Função da transação. |
subfuncao | TEXTO | Subfunção da transação. |
fonte_recurso | TEXTO | Fonte de onde se origina o recurso para a transação. |
num_processo | TEXTO | Número do processo administrativo que originou a transação. |
fase | TEXTO | Fase da transação: Empenho, Liquidação, Pagamento. |
numero | TEXTO | Número identificador da transação no sistema. |
Correção em relação ao PDF original: na tabela de Despesas, o manual repetia por engano os textos de Receitas (“valor da receita”, “unidade a qual se destina a receita”, “tipo da receita”, “data de publicação da receita”). Aqui eles se referem à despesa.
{
"data": [
{
"data": "31/03/2018",
"descrição": "Aquisição de gêneros alimentícios para a merenda escolar",
"valor": "8.494,64",
"unidade_gestora": "Unidade gestora exemplo",
"natureza": "Material de consumo",
"tipo": "Orçamentária",
"data_publicacao": "01/04/2018",
"modalidade": "Ordinário",
"numero_da_natureza": "3.3.90.30.00",
"credor": "Empresa Exemplo Ltda",
"cpfcnpj": "00.000.000/0001-00",
"funcao": "Educação",
"subfuncao": "Ensino Fundamental",
"fonte_recurso": "Recursos ordinários",
"num_processo": "146/2018",
"fase": "Pagamento",
"numero": "2018000123"
}
]
}Exemplos de uso
Ler o arquivo de licitações exportado e listar número, modalidade, situação e objeto:
import json
# arquivo baixado pelo botão JSON da página de Licitações
with open("licitacoes.json", encoding="utf-8") as f:
licitacoes = json.load(f)["data"]
for l in licitacoes:
print(l["numero"], l["modalidade"], l["situacao"], l["objeto"])Somar o valor das despesas (o campo valor é texto em real brasileiro):
// arquivo baixado pelo botão JSON da página de Despesas
const resposta = await fetch('despesas.json');
const { data } = await resposta.json();
// "valor" é TEXTO no formato brasileiro (8.494,64): converta antes de somar
const paraNumero = (v) => Number(String(v).replace(/\./g, '').replace(',', '.'));
const total = data.reduce((soma, d) => soma + paraNumero(d.valor), 0);
console.log(total.toFixed(2));