Regional Departament d'Economia i Finances — Generalitat de Catalunya

RELIC — Registro de Empresas Licitadoras y Clasificadas de Cataluña

Empresas inscritas en el registro de licitadores de la Generalitat de Cataluña, con su clasificación empresarial y, si la tienen, la prohibición de contratar anotada (ámbito, causa legal y fechas). Descarga CSV/JSON y API Socrata sin registro.

Ficha técnica

Formato
CSV, JSON, XML (API Socrata/SODA)
Cobertura
Empresas inscritas en el RELIC (Cataluña)
Actualización
Diaria
Licencia
Condiciones de uso del portal Transparència Catalunya
Entidad
Departament d'Economia i Finances — Generalitat de Catalunya

Descripción

El Registro de Empresas Licitadoras y Clasificadas de Cataluña (RELIC) es el registro oficial de licitadores de la Generalitat. Las empresas inscritas acreditan ante los órganos de contratación catalanes su personalidad, su capacidad de obrar y su clasificación sin tener que aportar la documentación en cada licitación. El Departament d'Economia i Finances publica la relación completa de inscripciones en el portal de datos abiertos de Transparència Catalunya y la actualiza cada día.

A diferencia del registro estatal (ROLECSP), cuyo registro completo exige identificarse (aunque Hacienda ofrece una consulta pública de las clasificaciones vigentes) y no publica ningún listado de prohibiciones, este conjunto indica en abierto si la empresa tiene una prohibición de contratar anotada. Para cada prohibición recoge el ámbito al que afecta, que puede ser todo el sector público o un ayuntamiento u organismo concreto, la causa legal según el artículo 71 de la LCSP y las fechas de resolución, inicio y fin. Así se puede saber si una prohibición sigue en vigor.

El fichero tiene una fila por clasificación empresarial: una empresa con varias clasificaciones aparece repetida y los datos de la prohibición se copian en cada fila, así que conviene quitar duplicados por número registral, ámbito y fecha de inicio. No incluye el NIF, solo la denominación y el número registral del RELIC. Los textos están en catalán y la columna de causa no sigue un formato uniforme (por ejemplo, «art. 71.2.d) LCSP» y «Article 71.2.d) LCSP»).

Estructura de datos

  • Nom empresa — Denominación social o nombre de la persona física
  • Número registral — Identificador de la inscripción en el RELIC
  • Data actualització — Fecha de la última actualización de la inscripción
  • Prohibició de contractar — true/false
  • Àmbit de la prohibició — Sector público afectado (todo el sector público o un órgano concreto)
  • Data resolució prohibició — Fecha de la resolución que declara la prohibición
  • Data inici prohibició / Data fi prohibició — Periodo de vigencia
  • Causa prohibició — Supuesto legal (art. 71 LCSP)
  • Classificació empresarial — true/false
  • Suspensió classificació — Clasificación suspendida (true/false)
  • Tipus / Grup / Subgrup / Categoria classificació — Clasificación de obras o servicios
  • Data atorgament classificació — Fecha en que se otorgó la clasificación
  • Sigles classificació — Código abreviado de la clasificación

Ejemplos de código

Prohibiciones de contratar más recientes (API SODA) curl
curl -sG "https://analisi.transparenciacatalunya.cat/resource/t3wj-j4pu.json" \
  --data-urlencode "\$select=nom_empresa,n_registral,ambit_pr,causa_legal_pr,data_inici_pr,data_fi_pr" \
  --data-urlencode "\$where=prohibicio = true" \
  --data-urlencode "\$group=nom_empresa,n_registral,ambit_pr,causa_legal_pr,data_inici_pr,data_fi_pr" \
  --data-urlencode "\$order=data_inici_pr DESC" | python3 -m json.tool
Descargar el CSV y listar prohibiciones vigentes python
import csv, io, urllib.request
from datetime import date, datetime

URL = 'https://analisi.transparenciacatalunya.cat/api/views/t3wj-j4pu/rows.csv?accessType=DOWNLOAD'
with urllib.request.urlopen(URL) as resp:
    filas = list(csv.DictReader(io.TextIOWrapper(resp, encoding='utf-8')))

# El CSV repite la empresa en cada clasificación: se quitan duplicados
prohibiciones = {}
for f in filas:
    if f['Prohibició de contractar'] == 'true':
        clave = (f['Número registral'], f['Àmbit de la prohibició'], f['Data inici prohibició'])
        prohibiciones[clave] = f

hoy = date.today()
for f in sorted(prohibiciones.values(), key=lambda f: f['Nom empresa']):
    fin = f['Data fi prohibició']
    vigente = not fin or datetime.strptime(fin, '%d/%m/%Y').date() >= hoy
    print(f['Nom empresa'], '|', f['Causa prohibició'], '|', f['Àmbit de la prohibició'],
          '|', f['Data inici prohibició'], '->', fin or 'sin fecha',
          '| vigente' if vigente else '| caducada')
print(len(prohibiciones), 'prohibiciones anotadas en el RELIC')