Câmara Municipal de Barrocas

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.

Estrutura geral do arquivo JSON
{
  "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

  1. Abra a página dos dados: Licitações, Contratos, Documentos, Folha de Pessoal, Receitas, Despesas.
  2. Se quiser, aplique os filtros (período, palavra-chave…) e clique em Pesquisar.
  3. 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:

Campos do JSON de Licitações
Chave (índice)Tipo de dadoComentário
modalidadeTEXTOModalidade da licitação. Ex.: Pregão Presencial.
tipoTEXTOTipo da licitação. Ex.: Menor preço, melhor técnica, preço e técnica, preço e oferta, outros.
numeroTEXTONúmero da licitação. Ex.: 001/2018.
n_processoTEXTONúmero do processo administrativo que gerou a licitação. Ex.: 001/2018.
objetoTEXTODescreve/resume o objetivo da licitação. Ex.: Contratação de empresa para serviço de merenda escolar.
patrimonio_liquido_minimoTEXTOValor mínimo do capital da empresa contratada (10% do valor da licitação). Formato: real brasileiro. Ex.: 250.488,00.
orgaoTEXTONome da secretaria ou setor responsável pela licitação. Ex.: Secretaria da Educação.
dotacao_orcamentariaTEXTOVerba orçamentada destinada à licitação. Pode descrever a dotação de cada setor ou lote da licitação.
situacaoTEXTOSituação da licitação: em curso, contrato, revogada, anulada, homologada, fracassada ou deserta.
data_realizacaoTEXTOData de realização da licitação. Formato AAAA-MM-DD.
data_adjudicacaoTEXTOData de adjudicação. Formato AAAA-MM-DD.
data_homologacaoTEXTOData de homologação. Formato AAAA-MM-DD.
Exemplo ilustrativo (valores fictícios): Licitações
{
    "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:

Campos do JSON de Contratos
Chave (índice)Tipo de dadoComentário
nTEXTONúmero do contrato. Ex.: 001/2018.
contratadaTEXTONome da empresa contratada.
contratanteTEXTONome da entidade/órgão contratante.
vigenciaTEXTOVigência do contrato. Ex.: 12 meses.
valor_rTEXTOValor total do contrato. Formato: real brasileiro. Ex.: 250.488,00.
arquivoTEXTOLink para download do arquivo anexo do contrato digitalizado.
Exemplo ilustrativo (valores fictícios): Contratos
{
    "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:

Campos do JSON de Documentos
Chave (índice)Tipo de dadoComentário
tipoTEXTOTipo do documento: Lei, Portaria, Decreto, RRF…
nTEXTONúmero do documento. Ex.: 001/2018.
modeloTEXTOModelo do documento. Ex.: RREO.
descricao_ementa_objetoTEXTODescrição, ementa ou objeto do documento.
arquivoTEXTOLink para download do arquivo anexo do documento digitalizado.
Exemplo ilustrativo (valores fictícios): Documentos
{
    "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:

Campos do JSON de Folha de Pagamento (Folha de Pessoal)
Chave (índice)Tipo de dadoComentário
idTEXTOIdentificador do funcionário.
funcionarioTEXTONome do funcionário.
cpfmatriculaTEXTOOs 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.
cargoTEXTOCargo do funcionário.
mes_referenciaTEXTOMês/ano de referência do pagamento.
centro_de_custoTEXTOCentro de custos do pagamento.
salario_brutoNuméricoSalário bruto do funcionário. Ex.: 1280.24.
salario_liquidoNuméricoSalário líquido do funcionário.
total_de_descontosNuméricoValor 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.

Exemplo ilustrativo (valores fictícios): Folha de Pagamento (Folha de Pessoal)
{
    "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:

Campos do JSON de Receitas
Chave (índice)Tipo de dadoComentário
dataTEXTOData da receita no formato brasileiro: DD/MM/AAAA.
descriçãoTEXTOBreve descrição sobre a transação. Atenção: a chave tem acento (descrição).
valorTEXTOValor da receita em real brasileiro.
unidadeTEXTOUnidade à qual se destina a receita.
naturezaTEXTONatureza da transação.
tipoTEXTOTipo da receita: Orçamentária, Não Orçamentária.
data_pubTEXTOData de publicação da receita.
modalidadeTEXTOModalidade da receita.
num_naturezaTEXTONúmero (ou código) que identifica a natureza da transação.
Exemplo ilustrativo (valores fictícios): Receitas
{
    "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:

Campos do JSON de Despesas
Chave (índice)Tipo de dadoComentário
dataTEXTOData da despesa no formato brasileiro: DD/MM/AAAA.
descriçãoTEXTOBreve descrição sobre a transação. Atenção: a chave tem acento (descrição).
valorTEXTOValor da despesa em real brasileiro.
unidade_gestoraTEXTOUnidade gestora responsável pela despesa.
naturezaTEXTONatureza da transação.
tipoTEXTOTipo da despesa: Orçamentária, Não Orçamentária.
data_publicacaoTEXTOData de publicação da despesa.
modalidadeTEXTOModalidade da despesa.
numero_da_naturezaTEXTONúmero (ou código) que identifica a natureza da transação.
credorTEXTOPessoa física ou jurídica à qual se destina a transação.
cpfcnpjTEXTOCPF ou CNPJ da pessoa à qual se destina a transação.
funcaoTEXTOFunção da transação.
subfuncaoTEXTOSubfunção da transação.
fonte_recursoTEXTOFonte de onde se origina o recurso para a transação.
num_processoTEXTONúmero do processo administrativo que originou a transação.
faseTEXTOFase da transação: Empenho, Liquidação, Pagamento.
numeroTEXTONú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.

Exemplo ilustrativo (valores fictícios): Despesas
{
    "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:

Python: ler o JSON de licitações
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):

JavaScript: somar o valor das despesas
// 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));