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
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 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')