Pular para o conteúdo principal
O COMPRASAL é o sistema de compras públicas de El Salvador, a cargo da Dirección Nacional de Compras Públicas (DINAC) do Ministerio de Hacienda. Cada ministério, município e entidade autônoma publica ali suas compras: cerca de 150.000 adjudicações desde que o sistema atual começou em dezembro de 2024, um cadastro de uns 8.600 fornecedores, a lista de fornecedores sancionados e os cerca de 500 processos abertos a propostas a cada momento. A Croma guarda tudo, então têm resposta perguntas que o próprio COMPRASAL não responde: cada adjudicação a um fornecedor em todas as entidades, quanto vendeu e para quem, se seu nome aparece na lista de sancionados, e quais processos abertos se parecem com o que já vendeu. Busque no cadastro por nome (tolerante a erros de digitação), leia o perfil de um fornecedor, busque adjudicações e processos abertos, leia o relatório de uma adjudicação com seus proponentes e códigos orçamentários, e cruze um fornecedor com as licitações em que poderia participar esta semana.

Buscar fornecedores

POST /sv/comprasal-sv/suppliers-search/v1 Dataset Encontre o id de um fornecedor pelo nome, como quer que tenha sido escrito.
Retorna as_of (o quão atuais são os dados), os filtros aplicados, total e total_is_exact, page, per_page, total_pages, count e results[]. Cada fornecedor traz id, name (a razão social, ou o nome da pessoa se for pessoa física), trade_name, sanctioned e score (de 0 a 100, o quão perto o nome está de query; null sem busca).
O cadastro do COMPRASAL não publica o NIT dos fornecedores, então a busca é por nome.

Perfil de um fornecedor

POST /sv/comprasal-sv/supplier/v1 Dataset Tudo o que as compras públicas sabem de um fornecedor, em uma só resposta.
Retorna as_of, found, supplier_id, supplier (id, name, trade_name, sanctioned), sanctions[] (name, start_date, end_date, sanctioning_entity, list, active, score) e awards: total, summarized e summary_is_complete (os valores somam as 2.000 adjudicações mais recentes), amount, first_awarded_date, last_awarded_date, entities[] (entity_id, entity_name, awards, amount) e latest[], as dez adjudicações mais recentes.
Um id que o cadastro não tem retorna found: false com HTTP 200, não um erro. As sanções são cruzadas por nome, porque a lista não traz o id do fornecedor: confira score antes de confiar em uma coincidência.

Buscar adjudicações

POST /sv/comprasal-sv/awards-search/v1 Dataset Cada adjudicação, por fornecedor, entidade, processo, data ou palavras.
Retorna as_of (o quão atuais são os dados), os filtros aplicados, total e total_is_exact, page, per_page, total_pages, count e results[]. Cada adjudicação traz id, amount (dólares), awarded_date, process_id, process_code, process_name (o que foi comprado), contracting_method e contracting_method_code, entity_id, entity_code, entity_name, supplier_id, supplier_name, supplier_trade_name e official_url (a adjudicação no COMPRASAL).

Relatório de uma adjudicação

POST /sv/comprasal-sv/award/v1 Lookup
Responde a partir da cópia da Croma quando ela tem uma resposta recente para a chave; caso contrário, lê a fonte e guarda a resposta. Cada resposta diz quando a fonte foi consultada pela última vez (checked_at) e de onde veio a resposta (served_from).
Retorna found, award_id, checked_at, served_from e award: contract_name, contracting_method, term_days, planned_amount, certified_amount, published_at, opened_at, closed_at, process_status, signed_at, budget_codes[], bidders[] (name, submitted_at), modifications, payments e official_url.
Um id que o COMPRASAL não tem retorna found: false com HTTP 200, não um erro.

Buscar processos abertos

POST /sv/comprasal-sv/tenders-search/v1 Dataset Os processos recebendo propostas agora, o que fecha primeiro no topo.
Retorna as_of (o quão atuais são os dados), os filtros aplicados, total e total_is_exact, page, per_page, total_pages, count e results[]. Cada processo traz id, code, name (o que está sendo comprado), entity_name, contracting_method e contracting_method_code, status, stage, current_stages[] e stages[] (name, starts_at, ends_at), offers_due_at (quando fecha o recebimento de propostas), activities[] (code, name: as atividades econômicas a que está aberto) e activity_codes.

Licitações para um fornecedor

POST /sv/comprasal-sv/tenders-for-supplier/v1 Dataset Do que um fornecedor já vendeu ao que poderia ofertar esta semana.
Retorna as_of, found, supplier_id, supplier_name, awards_considered, count e results[], a melhor coincidência primeiro. Cada processo traz id, code, name (o que está sendo comprado), entity_name, contracting_method e contracting_method_code, status, stage, current_stages[] e stages[] (name, starts_at, ends_at), offers_due_at (quando fecha o recebimento de propostas), activities[] (code, name: as atividades econômicas a que está aberto) e activity_codes. Cada coincidência acrescenta score, matched_terms e similar_award_ids.
Um fornecedor sem adjudicações não tem coincidências: o cruzamento sai do que ele vendeu.

Referência completa

Esquemas, todos os campos de resposta e um playground interativo.