Plan Enterprise
Integración Completa
Descripción
Integración completa con APIs REST para sincronización bidireccional. Incluye migración inicial por lotes y sincronización continua automática.
Arquitectura de Integración
Requisitos Técnicos
Importante
El área de TI de la universidad debe poder:
- • Enviar peticiones POST para crear estudiantes
- • Enviar peticiones PATCH para actualizar estudiantes
- • Manejar autenticación mediante API keys
- • Integrar desde sus sistemas internos
Autenticación y seguridad
Todas las peticiones requieren un token de autenticación enviado en el header:
x-api-key: {api_key}Además, la API cuenta con una lista blanca de direcciones IP (IP Whitelist). Solo las peticiones provenientes de IPs autorizadas podrán acceder a los endpoints protegidos.
ALLOWED_IPS=127.0.0.1,190.12.xxx.xxxSi una solicitud proviene de una IP no autorizada, la API responderá con un error 403 – Forbidden, incluso si el API Key es válido.
Endpoints Disponibles
Estudiantes
/api/students/push/{universidad}Crear o actualizar información de un estudiante (Upsert)
POST /api/students/push/ulima{
"status": 201,
"success": true,
"message": "Estudiante creado exitosamente",
"result": "created",
"data": {
"coIdPs": "20201234"
}
}/api/students/{universidad}Consultar información de estudiantes
GET /api/students/{universidad}?coIdPs=20201234{
"success": true,
"data": {
"userId": "abc123xyz",
"co_id_ps": "20201234",
"email": "juan.perez@ulima.pe",
"displayName": "Juan Carlos Pérez García",
"carrera": "Ingeniería de Software",
"ciclo": 9,
"facultad": "Ingeniería",
"estado": "egresado",
"createdAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-01-20T14:45:00Z"
}
}Empleadores
/api/employers/push/{universidad}Crear o actualizar información de un empleador (Upsert)
POST /api/employers/push/ulima{
"status": 201,
"success": true,
"message": "Employer creado exitosamente",
"result": "created",
"data": {
"taxId": "2010005523144"
}
}/api/employers/{universidad}Consultar información de empleadores
GET /api/employers/{universidad}?taxId=2010005523144{
"status": 200,
"success": true,
"message": "Empleador obtenido correctamente",
"data": {
"importedId": "",
"industries": [
{
"id": "298",
"label": "INDUSTRIAS MANUFACTURERAS"
}
],
"description": null,
"label": "ALICORP SAA",
"name": "ALICORP SAA",
...
}
}Manejo de Errores
La API responde con códigos de estado HTTP claros y mensajes descriptivos ante cualquier error. Es fundamental que las integraciones manejen adecuadamente estos errores, validando los datos enviados y gestionando respuestas como se muestra a continuación.
| Código | Descripción |
|---|---|
| 400 | Datos inválidos |
| 401 | API key inválida |
| 403 | Forbidden (IP no permitida) |
| 404 | No encontrado |
| 429 | Rate limit excedido |
{
"status": 400,
"label": "Bad Request",
"description": "Datos inválidos",
"body": {
"error": "Bad Request",
"message": "El cuerpo de la petición contiene datos inválidos o mal formateados.",
"details": [
{
...
}
]
}
}Rate Limiting
Fases de Implementación
Fase 1: Migración (días 1-3)
Excel inicial + creación masiva en Firebase
Fase 2: APIs (días 4-7)
Configuración de endpoints y autenticación
Fase 3: Go-live (días 8-10)
Capacitación, pruebas y monitoreo
