Documentation Index Fetch the complete documentation index at: https://mintlify.com/elegroag/nuxt-credito-caja/llms.txt
Use this file to discover all available pages before exploring further.
Este grupo de endpoints permite a un afiliado autenticado crear, consultar y eliminar sus solicitudes de crédito. El endpoint principal POST /api/solicitudes/guardar-solicitud es el destino final del wizard multi-paso de la aplicación: recibe el payload completo con la información de la solicitud, del solicitante y todos los datos complementarios, los valida con Zod y los persiste en la base de datos.
El owner_username se toma directamente de la sesión activa del usuario, no del cuerpo de la petición, garantizando que una solicitud siempre pertenezca al afiliado autenticado.
POST /api/solicitudes/guardar-solicitud
Autenticación: Requiere sesión activa.
Cuerpo de la petición
El payload es un objeto JSON con las secciones del wizard. Todas las secciones excepto solicitud son opcionales a nivel del schema, aunque el negocio requiere que estén completas para avanzar en el ciclo de vida.
Sección solicitud (requerida)
Datos principales de la solicitud de crédito. solicitud.valor_solicitud
Monto total solicitado en pesos colombianos (COP). Debe ser un número no negativo.
Plazo de pago expresado en meses. Número entero no negativo.
Tasa de interés mensual aplicada al crédito. Número no negativo. Opcional si la línea de crédito define la tasa automáticamente.
Cuota mensual calculada en pesos COP.
Estado inicial de la solicitud. Por defecto "POSTULADO" si no se especifica.
Tipo de producto crediticio solicitado (ej. "LIBRE_INVERSION", "VIVIENDA").
Clasificación del crédito según el catálogo de Comfaca.
Moneda de la solicitud. Por defecto "COP".
solicitud.detalle_modalidad
Descripción de la modalidad de crédito seleccionada.
solicitud.ha_tenido_credito
Indica si el afiliado ya tuvo un crédito anterior con Comfaca.
solicitud.rol_en_solicitud
Rol del usuario en la solicitud. Valores válidos: "T" (Titular), "S" (Solicitante), "C" (Codeudor), "E" (Empleado).
Nombre de usuario propietario. Se asigna automáticamente desde la sesión si no se incluye.
Sección solicitante (opcional en schema, requerida en negocio)
Datos personales y laborales del solicitante principal. Show Campos de solicitante
"natural" o "juridica". También acepta objeto {label, value} desde el wizard.
solicitante.tipo_documento
Código del tipo de documento de identidad (ej. "CC", "CE").
solicitante.numero_documento
Número de documento de identidad.
Apellidos del solicitante.
Razón social (aplica solo para personas jurídicas).
NIT de la empresa (aplica solo para personas jurídicas).
solicitante.pais_nacimiento
Código del país de nacimiento del solicitante (ej. "CO").
solicitante.fecha_nacimiento
Fecha de nacimiento en formato ISO 8601 ("YYYY-MM-DD").
solicitante.fecha_expedicion
Fecha de expedición del documento de identidad en formato ISO 8601 ("YYYY-MM-DD").
Género del solicitante: "M" (Masculino), "F" (Femenino), "O" (Otro).
Estado civil según catálogo de parámetros (ej. "S", "C", "U").
solicitante.nivel_educativo
Nivel educativo: "primaria", "bachillerato", "tecnico", "universitario", "posgrado", "ninguno".
Profesión u ocupación del solicitante.
Correo electrónico del solicitante.
solicitante.telefono_movil
Teléfono móvil del solicitante.
solicitante.telefono_fijo
Teléfono fijo del solicitante.
Ciudad de residencia. Acepta string o objeto {label, value, description}.
Departamento de residencia.
solicitante.pais_residencia
País de residencia (código ISO).
solicitante.tipo_vivienda
Tipo de vivienda: "N" (Ninguna), "F" (Familiar), "P" (Propia), "A" (Arrendada), "H" (Hipotecada).
solicitante.personas_a_cargo
Número de personas a cargo del solicitante. Mínimo 0.
Cargo o posición laboral actual.
Salario mensual en pesos COP. No negativo.
solicitante.antiguedad_meses
Antigüedad laboral en meses. Mínimo 0.
solicitante.tipo_contrato
Tipo de contrato laboral según catálogo.
solicitante.sector_economico
Sector económico de la empresa empleadora.
solicitante.codigo_categoria
Código de la categoría del afiliado en Comfaca.
solicitante.vive_con_nucleo_familiar
Indica si el solicitante vive con su núcleo familiar.
Secciones adicionales del wizard
Datos de la línea de crédito seleccionada (convenio, producto, condiciones especiales).
Datos del cónyuge o compañero permanente del solicitante (cuando aplica).
Información detallada del empleo actual del solicitante.
Relación de ingresos mensuales y descuentos de nómina existentes.
Resumen de la situación económica general del solicitante.
Lista de propiedades (bienes inmuebles o vehículos) del solicitante.
Relación de deudas activas del solicitante con otras entidades.
Referencias familiares y personales del solicitante.
Respuestas
true cuando la solicitud fue creada exitosamente.
"Solicitud guardada exitosamente."
Objeto con los datos de la solicitud creada, incluyendo el numero_solicitud generado y todos los campos persistidos.
Tabla de errores
Código HTTP Causa Descripción 401Sin sesión No hay sesión activa o expiró. 422Validación Zod valor_solicitud o plazo_meses ausentes, rol_en_solicitud inválido u otro fallo de schema.429Límite alcanzado El afiliado superó el número máximo de solicitudes activas permitidas. 502Error de backend Fallo al persistir en la base de datos o al conectar con el servicio.
Ejemplo — Petición JSON
{
"solicitud" : {
"valor_solicitud" : 5000000 ,
"plazo_meses" : 24 ,
"tasa_interes" : 1.5 ,
"cuota_mensual" : 242872 ,
"estado" : "POSTULADO" ,
"producto_tipo" : "LIBRE_INVERSION" ,
"tipo_credito" : "LI" ,
"moneda" : "COP" ,
"detalle_modalidad" : "Libre Inversión" ,
"ha_tenido_credito" : false ,
"rol_en_solicitud" : "T"
},
"solicitante" : {
"tipo_persona" : "natural" ,
"tipo_documento" : "CC" ,
"numero_documento" : "1012345678" ,
"nombres" : "JUAN CARLOS" ,
"apellidos" : "PÉREZ GÓMEZ" ,
"fecha_nacimiento" : "1985-06-15" ,
"genero" : "M" ,
"estado_civil" : "S" ,
"nivel_educativo" : "universitario" ,
"email" : "juan.perez@empresa.com" ,
"telefono_movil" : "3001234567" ,
"direccion" : "Cra 15 # 93-47" ,
"barrio" : "Chicó" ,
"ciudad" : "11001" ,
"departamento" : "11" ,
"pais_residencia" : "CO" ,
"tipo_vivienda" : "A" ,
"personas_a_cargo" : 0 ,
"cargo" : "INGENIERO DE SISTEMAS" ,
"salario" : 4500000 ,
"antiguedad_meses" : 36 ,
"tipo_contrato" : "INDEFINIDO" ,
"sector_economico" : "TEC" ,
"codigo_categoria" : "A" ,
"vive_con_nucleo_familiar" : true
},
"informacion_laboral" : {
"empresa" : "Tech Solutions SAS" ,
"nit_empresa" : "900123456-1" ,
"telefono_empresa" : "6012345678" ,
"direccion_empresa" : "Calle 72 # 12-65"
}
}
Ejemplo — cURL
curl -X POST http://localhost:4000/api/solicitudes/guardar-solicitud \
-H 'Content-Type: application/json' \
-b cookies.txt \
-d @solicitud-payload.json
Ejemplo — Respuesta exitosa 200
{
"success" : true ,
"message" : "Solicitud guardada exitosamente." ,
"data" : {
"numero_solicitud" : "000001-202501-LI" ,
"owner_username" : "juan.perez" ,
"estado" : "POSTULADO" ,
"valor_solicitud" : 5000000 ,
"plazo_meses" : 24 ,
"tasa_interes" : 1.5 ,
"cuota_mensual" : 242872 ,
"created_at" : "2025-01-15T10:30:00.000Z"
}
}
GET /api/solicitudes/mis-solicitudes
Lista todas las solicitudes de crédito del usuario autenticado con soporte de paginación mediante limit y offset.
Autenticación: Requiere sesión activa.
Query Parameters
Número máximo de solicitudes a retornar por página. Por defecto 20.
Número de solicitudes a omitir para la paginación. Por defecto 0.
Respuesta exitosa 200
Lista de solicitudes del usuario. Cada elemento contiene el detalle de la solicitud.
Total de solicitudes del usuario (para calcular páginas).
El límite aplicado en esta consulta.
El offset aplicado en esta consulta.
Ejemplo — cURL
curl -X GET "http://localhost:4000/api/solicitudes/mis-solicitudes?limit=10&offset=0" \
-b cookies.txt
Ejemplo — Respuesta 200
{
"success" : true ,
"message" : "Solicitudes obtenidas exitosamente" ,
"data" : {
"solicitudes" : [
{
"numero_solicitud" : "000001-202501-LI" ,
"estado" : "POSTULADO" ,
"valor_solicitud" : 5000000 ,
"plazo_meses" : 24 ,
"created_at" : "2025-01-15T10:30:00.000Z"
}
],
"total" : 1 ,
"limit" : 10 ,
"offset" : 0
}
}
GET /api/solicitudes/:id
Obtiene el detalle completo de una solicitud de crédito por su numero_solicitud. Incluye los registros de PDFs generados asociados.
Autenticación: Requiere sesión activa. Solo el propietario de la solicitud puede consultarla.
Path Parameters
El numero_solicitud de la solicitud a consultar. Formato: "000001-202501-LI".
Tabla de errores
Código HTTP Causa Descripción 400ID ausente No se proporcionó el parámetro id. 401Sin sesión No hay sesión activa. 403Sin permisos La solicitud pertenece a otro usuario. 404No encontrada No existe una solicitud con ese numero_solicitud.
Ejemplo — cURL
curl -X GET http://localhost:4000/api/solicitudes/000001-202501-LI \
-b cookies.txt
Ejemplo — Respuesta 200
{
"success" : true ,
"data" : {
"numero_solicitud" : "000001-202501-LI" ,
"owner_username" : "juan.perez" ,
"estado" : "DOCUMENTOS_CARGADOS" ,
"valor_solicitud" : "5000000" ,
"plazo_meses" : 24 ,
"tasa_interes" : "1.5" ,
"cuota_mensual" : "242872" ,
"created_at" : "2025-01-15T10:30:00.000Z" ,
"updated_at" : "2025-01-16T09:00:00.000Z" ,
"pdfs_generados" : null
}
}
Los campos numéricos de tipo BigInt (como valor_solicitud y tasa_interes) son serializados como strings para compatibilidad JSON. El cliente debe parsearlos a número si los necesita para cálculos.
DELETE /api/solicitudes/:id
Elimina una solicitud de crédito de forma permanente. Solo el propietario de la solicitud o un usuario con rol administrator pueden ejecutar esta operación.
Autenticación: Requiere sesión activa.
Path Parameters
El numero_solicitud de la solicitud a eliminar.
Tabla de errores
Código HTTP Causa Descripción 400ID ausente No se proporcionó el parámetro id. 401Sin sesión No hay sesión activa. 403Sin permisos El usuario no es propietario ni administrador. 404No encontrada No existe la solicitud con ese ID.
Ejemplo — cURL
curl -X DELETE http://localhost:4000/api/solicitudes/000001-202501-LI \
-b cookies.txt
Ejemplo — Respuesta 200
{
"success" : true ,
"message" : "Solicitud eliminada exitosamente" ,
"data" : null
}
La eliminación es permanente e irreversible . Todos los documentos y datos asociados a la solicitud también serán eliminados en cascada. Solo ejecuta esta operación si estás completamente seguro.