Caso de uso · Contratación pública

API de contratación pública

Consulta adjudicaciones de contratos públicos de España, Francia, Reino Unido, Irlanda, Polonia y Noruega por comprador, proveedor, identificador, código CPV o fecha desde una sola API REST. Datos tal y como los publica cada plataforma oficial, actualizados a diario.

Publicado el 18 de septiembre de 2026, actualizado el 30 de septiembre de 2026 · English version · Version française

El problema

Cada órgano de contratación publica sus propias adjudicaciones por separado: en España en la Plataforma de Contratación del Sector Público, en Francia en los datos esenciales de la contratación pública que cada comprador difunde. Para un equipo de riesgo de crédito o compras eso significa entrar organismo por organismo para saber a quién ha adjudicado contratos un ayuntamiento, un ministerio o una mairie, o si un proveedor concreto ya trabaja para el sector público y en qué volumen. Para un equipo de cumplimiento que da de alta a un proveedor, la pregunta suele ser más simple: ¿tiene historial de adjudicaciones públicas, y con quién?

La API de Prometiam reúne esas adjudicaciones en un único endpoint REST, consultable por comprador, proveedor, NIF o SIRET del adjudicatario, código CPV o fecha, actualizado a diario desde las plataformas oficiales.

El endpoint

GET /procurement/awards admite country (ES, FR, GB, IE, PL o NO; sin él devuelve todos), company_id (id Prometiam del adjudicatario), nif (el identificador del adjudicatario tal y como se publica, exacto: NIF/CIF, SIRET, número de Companies House, CRO, NIP u organisasjonsnummer), supplier (nombre, mínimo 3 caracteres), buyer (órgano de contratación, mínimo 3 caracteres), cpv (código CPV o prefijo, de 2 a 8 dígitos), date_from, date_to (AAAA-MM-DD), min_amount (en EUR), limit (de 1 a 100) y cursor para paginación por keyset (AAAA-MM-DD_<id>). Hay que enviar al menos uno de company_id, nif, supplier, buyer, cpv o date_from.

Cada fila es una adjudicación a un adjudicatario y trae id, country, company_id, supplier_name, supplier_tax_id, buyer, buyer_id, subject, amount_eur, amount_contract_eur, amount_is_ceiling, amount_suspect, award_date, nature, is_framework, n_suppliers, contract_type, procedure, cpv, bids_received, sme, duration_months, file_reference y source_url, de más reciente a más antigua.

# Obras de carretera adjudicadas desde enero de 2026, todos los países, por comprador
curl "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?buyer=Ayuntamiento&cpv=45&date_from=2026-01-01" \
  -H "Authorization: Bearer rk_live_..."

También se puede consultar todo el historial de un proveedor ya identificado por su NIF o su SIRET, y de ahí saltar a su ficha registral:

# 1. Adjudicaciones de un proveedor español por NIF
curl "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?nif=B12345678" \
  -H "Authorization: Bearer rk_live_..."

# 2. Si la fila trae company_id, la ficha registral completa
curl "https://api.prometiam.com/functions/v1/risk-api/companies/812044?include=procurement" \
  -H "Authorization: Bearer rk_live_..."

# 3. Un proveedor francés por SIRET, solo Francia
curl "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?country=FR&nif=12345678900011" \
  -H "Authorization: Bearer rk_live_..."

GET /companies/{id}?include=procurement adjunta las diez adjudicaciones más recientes de una empresa española directamente en su ficha, sin una segunda llamada al endpoint de adjudicaciones.

Captura del panel de clientes: contratos públicos adjudicados a un proveedorCaptura del panel de clientes: contratos públicos adjudicados a un proveedor
Las adjudicaciones de un proveedor en la pestaña Contratos públicos del panel, los datos de GET /procurement/awards: comprador, objeto, importe y procedimiento. Se muestra una empresa española; lo que se publica varía según el país. Ábrelo en el panel

Casos de uso

Diligencia debida de un proveedor. Antes de contratar o financiar a una empresa, comprueba si ya tiene historial de adjudicaciones públicas, con quién y por qué importe publicado. Es una señal más dentro del expediente, no un veredicto.

Concentración en un comprador. El endpoint no calcula concentración: devuelve filas. Sumando amount_eur por buyer sobre las filas de un mismo nif o company_id se puede ver si un proveedor depende de un único organismo, pero ese cálculo lo hace quien consume la API, no Prometiam.

Alta de un cliente del sector público. Filtrando por buyer se ve qué adjudica un ayuntamiento, un ministerio o una mairie y a quién, útil para entender el perfil de gasto de un organismo antes de trabajar con él. Para una lectura ya puntuada del comprador está el riesgo de comprador público (beta).

Enlazar con el registro mercantil. Cuando el NIF o el SIRET del adjudicatario coincide con una empresa del registro de ese país, la fila trae company_id. Con ese id, GET /companies/{id} da el estado de la empresa y sus administradores; los concursos de acreedores españoles se consultan en GET /insolvency/search?country=ES y los procedimientos colectivos franceses en GET /insolvency/search?country=FR, no en este endpoint.

Límites de alcance, dicho con claridad

  • Cobertura: España (PLACSP) y Francia (DECP) desde sus plataformas nacionales; el Reino Unido desde Contracts Finder y Find a Tender; Irlanda, Polonia y Noruega desde el TED, solo por encima de los umbrales europeos. En las consultas de adjudicaciones, country admite ES, FR, GB, IE, PL y NO, y sin él se devuelven todos.
  • Divisas: los importes publicados en libras, eslotis o coronas se convierten al tipo medio anual del BCE del año de la adjudicación; currency conserva la moneda publicada. El Reino Unido publica importe solo en parte de sus adjudicaciones.
  • Importe: amount_eur es la parte del adjudicatario tal y como se publica, sin IVA donde la fuente lo distingue; amount_contract_eur es el contrato entero, contado una sola vez aunque lo compartan varios adjudicatarios.
  • Acuerdos marco y sistemas dinámicos: publican un tope, no gasto ejecutado, y la fila lo indica con amount_is_ceiling; una cifra que es un valor por defecto del formulario lleva amount_suspect.
  • Contratos menores y número de ofertas: los contratos menores se adjudican directamente por ley, así que una cuota alta de oferta única no es por sí sola una señal de riesgo; Francia solo publica el número de ofertas en parte de sus adjudicaciones.
  • Enlace con el registro: company_id solo aparece cuando el identificador del adjudicatario coincide con una empresa registrada en ese país (hoy España, Francia y Reino Unido; Irlanda, Polonia y Noruega llevan el identificador publicado sin enlace); si no coincide, la adjudicación se devuelve igual. Las adjudicaciones a personas físicas nunca se devuelven.
  • Sin scoring: el endpoint no devuelve cuentas anuales ni una puntuación de riesgo de ningún tipo, solo las filas publicadas.

Preguntas frecuentes

¿Qué cubre este endpoint?
Las adjudicaciones de contratos públicos tal y como las publica cada órgano de contratación: en España la Plataforma de Contratación del Sector Público (PLACSP), licitaciones y contratos menores por igual; en Francia los datos esenciales de la contratación pública (DECP) consolidados; en el Reino Unido Contracts Finder y Find a Tender; en Irlanda, Polonia y Noruega el TED, solo por encima de los umbrales europeos. GET /procurement/awards las devuelve consultables por comprador, proveedor, identificador, código CPV o fecha; country (ES, FR, GB, IE, PL, NO) limita a un país.

¿El importe incluye IVA?
No. amount_eur es la parte del adjudicatario tal y como se publica, sin IVA donde la fuente lo distingue, y amount_contract_eur es el contrato entero contado una sola vez. Un acuerdo marco o un sistema dinámico de adquisición publica un tope, no gasto ejecutado, y la fila lo indica con amount_is_ceiling — no lo trate como una cifra de facturación real.

¿Una sola oferta en un contrato es una señal de riesgo?
No por sí sola. Los contratos menores se adjudican directamente por ley en España, así que una cuota alta de oferta única en ese tipo de contrato es lo esperable, no una anomalía. Francia solo publica el número de ofertas en parte de sus adjudicaciones: un bids_received vacío no significa una sola oferta. El endpoint no marca nada como sospechoso: devuelve filas, sin scoring.

¿Puedo enlazar una adjudicación con la ficha registral de la empresa?
Sí, cuando el identificador del adjudicatario coincide con una empresa del registro de ese país (hoy España, Francia y Reino Unido; las filas de Irlanda, Polonia y Noruega llevan el identificador sin enlace): la fila trae company_id, y GET /companies/{id} da el estado y los administradores; para empresas españolas, GET /companies/{id}?include=procurement adjunta las diez adjudicaciones más recientes. Si no hay coincidencia, la adjudicación se devuelve igualmente, sin ese enlace.

¿Esto sustituye un análisis de riesgo de crédito?
No. El endpoint devuelve adjudicaciones publicadas, sin cuentas anuales, sin scoring y sin ninguna puntuación de riesgo. Sirve como una señal más dentro de un proceso de diligencia debida, no como un veredicto.

Ver también