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}"
RSQL filter query (e.g., activo==true;titulo=like='Research')
Sort specification (e.g., fechaPublicacion,desc)
Array of Convocatoria objects
Management unit reference
Get Convocatoria by ID
curl -X GET "http://localhost:4280/convocatorias/123" \
-H "Authorization: Bearer {token}"
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.
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.
Array of Proyecto objects
Originating application ID
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
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