Skip to main content

Overview

The CSP (Convocatorias, Solicitudes y Proyectos) service manages the complete lifecycle of research funding:
  • Convocatorias - Grant calls and funding opportunities
  • Solicitudes - Grant applications and submissions
  • Proyectos - Funded research projects
Base URL: /convocatorias, /solicitudes, /proyectos

Authentication

All endpoints require JWT authentication with appropriate role-based permissions:
  • CSP-CON-* - Convocatoria permissions
  • CSP-SOL-* - Solicitud permissions
  • CSP-PRO-* - Proyecto permissions
Permissions ending in -C, -E, -V, -B, -R indicate Create, Edit, View, Delete, and Reactivate respectively.

Convocatorias (Grant Calls)

List Convocatorias

curl -X GET "http://localhost:4280/convocatorias/investigador?q=activo==true" \
  -H "Authorization: Bearer {token}"
q
string
RSQL filter query (e.g., activo==true;titulo=like='Research')
s
string
Sort specification (e.g., fechaPublicacion,desc)
page
integer
Page number (zero-based)
size
integer
default:"10"
Page size
content
array
Array of Convocatoria objects

Get Convocatoria by ID

curl -X GET "http://localhost:4280/convocatorias/123" \
  -H "Authorization: Bearer {token}"
id
long
required
Convocatoria identifier

Create Convocatoria

curl -X POST "http://localhost:4280/convocatorias" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "titulo": "National Research Grant 2024",
    "fechaPublicacion": "2024-01-15",
    "unidadGestionRef": "UG-001",
    "modeloEjecucion": {"id": 1},
    "activo": true
  }'
Required Permission: CSP-CON-C

Update Convocatoria

curl -X PUT "http://localhost:4280/convocatorias/123" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"titulo": "Updated Title"}'
Required Permission: CSP-CON-E

Convocatoria Sub-Resources

Get Convocatoria Phases

curl -X GET "http://localhost:4280/convocatorias/123/convocatoriafases" \
  -H "Authorization: Bearer {token}"
Returns the phases/milestones defined for a grant call.

Get Funding Entities

curl -X GET "http://localhost:4280/convocatorias/123/convocatoriaentidadfinanciadoras" \
  -H "Authorization: Bearer {token}"

Get Convocatoria Documents

curl -X GET "http://localhost:4280/convocatorias/123/convocatoriadocumentos" \
  -H "Authorization: Bearer {token}"

Solicitudes (Applications)

List Solicitudes

curl -X GET "http://localhost:4280/solicitudes?q=estado.estado==BORRADOR" \
  -H "Authorization: Bearer {token}"
Returns applications within the user’s management unit.
q
string
RSQL filter query
content
array
Array of Solicitud objects

Get Solicitud by ID

curl -X GET "http://localhost:4280/solicitudes/456" \
  -H "Authorization: Bearer {token}"

Create Solicitud

curl -X POST "http://localhost:4280/solicitudes" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "titulo": "My Research Proposal",
    "convocatoriaId": 123,
    "solicitanteRef": "USR-001"
  }'
Required Permission: CSP-SOL-C or CSP-SOL-INV-C

Update Solicitud Status

curl -X PATCH "http://localhost:4280/solicitudes/456/cambiar-estado" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"estado": "PRESENTADA"}'
Changes the application state (e.g., from BORRADOR to PRESENTADA).

Solicitud Sub-Resources

Get Application Project Data

curl -X GET "http://localhost:4280/solicitudes/456/solicitudproyecto" \
  -H "Authorization: Bearer {token}"

Get Application Budget

curl -X GET "http://localhost:4280/solicitudes/456/solicitudproyectopresupuestos" \
  -H "Authorization: Bearer {token}"

Get Application Documents

curl -X GET "http://localhost:4280/solicitudes/456/solicituddocumentos" \
  -H "Authorization: Bearer {token}"

Proyectos (Projects)

List Projects

curl -X GET "http://localhost:4280/proyectos?q=activo==true" \
  -H "Authorization: Bearer {token}"
Returns active projects within the user’s management unit.
content
array
Array of Proyecto objects

Get Project by ID

curl -X GET "http://localhost:4280/proyectos/789" \
  -H "Authorization: Bearer {token}"

Create Project from Application

curl -X POST "http://localhost:4280/proyectos/456/solicitud" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"fechaInicio": "2024-03-01"}'
Creates a new project from an approved application. Required Permission: CSP-PRO-C

Update Project Status

curl -X PATCH "http://localhost:4280/proyectos/789/cambiar-estado" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"estado": "CONCEDIDO"}'

Project Sub-Resources

Get Project Team

curl -X GET "http://localhost:4280/proyectos/789/proyectoequipos" \
  -H "Authorization: Bearer {token}"
Returns project team members with their roles and participation periods.

Get Project Budget

curl -X GET "http://localhost:4280/proyectos/789/anualidades" \
  -H "Authorization: Bearer {token}"

Get Project Documents

curl -X GET "http://localhost:4280/proyectos/789/documentos" \
  -H "Authorization: Bearer {token}"

Get Project Phases

curl -X GET "http://localhost:4280/proyectos/789/proyectofases" \
  -H "Authorization: Bearer {token}"

Error Responses

status
integer
HTTP status code
error
string
Error type
message
string
Error message
path
string
Request path

Common Error Codes

  • 400 - Bad Request: Invalid parameters or request body
  • 401 - Unauthorized: Missing or invalid authentication token
  • 403 - Forbidden: Insufficient permissions
  • 404 - Not Found: Resource does not exist
  • 409 - Conflict: Business rule violation
  • 500 - Internal Server Error

Build docs developers (and LLMs) love