Skip to main content

Visao Geral do Fluxo

APIs Governamentais (PNCP, Compras.gov)
    |
    v
Cloudflare Worker (pncp-ata360)
    |-- Transforma para ItemFlat
    |-- Insere no ClickHouse (items_flat)
    |-- Armazena metadados no D1 (sync_status, api_keys)
    |-- Armazena JSONs e PDFs no R2
    v
API ATA360 (endpoints publicos)

PNCP (Portal Nacional de Contratacoes Publicas)

Base URL: https://pncp.gov.br/api/ O PNCP e a fonte primaria da ATA360, responsavel por ~50.4M itens na base.

Dados Coletados

DadoEndpoint PNCPO que extraimos
ATAs de Registro de Preco/v1/orgaos/{cnpj}/compras/{ano}/{seq}/atasMetadados da ATA (vigencia, orgao, objeto)
Itens da Compra/v1/orgaos/{cnpj}/compras/{ano}/{seq}/itensDescricao, preco estimado, situacao
Resultados da Compra/v1/orgaos/{cnpj}/compras/{ano}/{seq}/itens/{seq}/resultadosVencedor, preco final, CNPJ fornecedor
Contratos/v1/contratos/{cnpj}/{ano}/{seq}Metadados do contrato, vigencia, fornecedor
Termos Aditivos/v1/contratos/{cnpj}/{ano}/{seq}/termosAditivos, apostilamentos
Arquivos/Documentos.../arquivosPDFs do edital, contrato, ATA
Contratacoes/v1/contratacoes/publicacaoDispensas, inexigibilidades
VwFtPNCPCompraItemEnriquecimentoNCM, unidade_medida, situacao_item, criterio_julgamento

Limitacoes do PNCP

A API do PNCP nao retorna o campo catalogoCodigoItem (codigo CATMAT/CATSER) na maioria das respostas. Por isso, 99.95% dos itens PNCP tem codigo_item = 0 no ClickHouse. A busca textual e usada como fallback para esses itens.

Compras.gov.br (API Compras)

Base URL: https://dadosabertos.compras.gov.br/modulo-pesquisa-preco/ O Compras.gov fornece dados estruturados com codigos CATMAT e informacoes mais detalhadas dos itens.

Dados Coletados

DadoEndpointO que extraimos
ARPItem (Itens de ATA)/v1/informacao-arp-itemItems com codigo CATMAT, quantidade, fornecedor, UASG
ContratosItem/v1/informacao-contratos-itemItems de contratos com precos realizados
Pesquisa de Precos/v1/pesquisa-preco-material-servicoPrecos oficiais (consultado on-demand, nao ingerido)
CATMAT Grupos/v1/catmat-grupo79 grupos de materiais
CATMAT Classes/v1/catmat-classe~700 classes de materiais
CATMAT PDM/v1/catmat-pdm~20K Padroes Descritivos de Material
CATMAT Itens/v1/catmat-item337K+ itens do catalogo de materiais (inclui NCM)
CATMAT Unidades de Fornecimento/modulo-material/6_consultarMaterialUnidadeFornecimentoUnidades permitidas por PDM (ex: UN, KG, PCT)
CATMAT Caracteristicas/modulo-material/7_consultarMaterialCaracteristicasCaracteristicas detalhadas por item (chave/valor)
CATSER Grupos/v1/catser-grupo147 grupos de servicos
CATSER Classes/v1/catser-classe~900 classes de servicos
CATSER Itens/v1/catser-item3K+ itens do catalogo de servicos
UASGs/v1/uasg21K+ unidades administrativas

Vantagens do Compras.gov

  • Retorna codigo_item (CATMAT/CATSER) em todos os registros
  • Informacoes de classificacao do fornecedor (ME/EPP)
  • Quantidades homologadas e empenhadas
  • Situacao SICAF do fornecedor
  • Modulo Pesquisa de Precos com dados oficiais
  • Unidades de fornecimento padrao por PDM (multiplas por produto)
  • Caracteristicas detalhadas por item CATMAT (material, tipo, bitola, etc.)
  • NCM (Nomenclatura Comum do Mercosul) por item

Dados On-Demand vs Ingeridos

Nem todos os dados do Compras.gov sao ingeridos para o ClickHouse. Alguns sao consultados sob demanda:
  • Ingeridos (D1): Grupos, Classes, PDMs, Itens, Unidades de Fornecimento, UASGs, Orgaos
  • Ingeridos (ClickHouse): ARPItem, ContratosItem
  • On-demand (proxy): Pesquisa de Precos oficial, Caracteristicas por item

Mapeamento Coluna → API

A tabela abaixo mostra de qual API cada campo da items_flat se origina:
CampoPNCPCompras.govObs
source, source_system--Gerado internamente
id_item--Hash gerado
codigo_itemRaro (0.05%)SemprePNCP quase nunca retorna
descricao_itemSimSimAmbos
valor_unitarioSimSimAmbos
valor_totalSimSimAmbos
quantidadeSimSimAmbos
cnpj_fornecedorSimSimAmbos
nome_fornecedorSimSimAmbos
classificacao_fornecedor-SimSomente Compras.gov
porte_fornecedorSimSimAmbos
situacao_sicaf-SimSomente Compras.gov ARPItem
codigo_uasgExtraidoSimPNCP: extraido do controle
uf, municipio--JOIN com tabela UASG (D1)
nome_orgaoSimSimAmbos
cnpj_orgaoExtraido-Extraido do numero_controle_pncp
quantidade_homologada_*-SimSomente Compras.gov ARPItem
quantidade_empenhada-SimSomente Compras.gov ARPItem
maximo_adesao-SimSomente Compras.gov
ncm_codigo, ncm_descricaoEnriquecimento-PNCP VwFtPNCPCompraItem
unidade_medidaEnriquecimento-PNCP VwFtPNCPCompraItem
situacao_itemEnriquecimento-PNCP VwFtPNCPCompraItem
criterio_julgamentoEnriquecimento-PNCP VwFtPNCPCompraItem
tipo_beneficioEnriquecimento-PNCP VwFtPNCPCompraItem
valor_estimadoEnriquecimento-PNCP VwFtPNCPCompraItem
data_assinaturaSimSimAmbos
data_atualizacaoSimSimAmbos