PSICOLE Plataforma de Gestión Integral del Colegio
Gestión de matrículas, finanzas, cursos y trámites para el Colegio de Psicólogos. Una plataforma unificada para los 9 perfiles del sistema.


Manual PSICOLE
Bienvenido al manual de usuario del sistema PSICOLE — plataforma de gestión integral del Colegio de Psicólogos.
¿Qué es PSICOLE?
PSICOLE es el sistema centralizado para la gestión de matrículas, finanzas, cursos de capacitación y autogestión de profesionales matriculados. Permite a los operadores del Colegio y a los propios profesionales realizar todos sus trámites de forma digital.
¿Por dónde empiezo?
Elegí tu perfil para ir directo a la guía de inicio rápido:
-
Administrador
Gestión completa del sistema, usuarios y configuración.
Guía del Administrador
-
Operador de Matrículas
Alta, seguimiento y validación de solicitudes de matrícula.
Guía del Operador de Matrículas
-
Operador de Finanzas
Gestión de pagos, recibos, cuotas y conciliación bancaria.
Guía del Operador de Finanzas
-
Operador de Cursos
Alta y gestión de cursos de capacitación continua.
Guía del Operador de Cursos
-
Operador de Trámites
Procesamiento de solicitudes y trámites administrativos.
Guía del Operador de Trámites
-
Supervisor de Trámites
Supervisión y aprobación de trámites del equipo.
Guía del Supervisor de Trámites
-
Colegiado
Portal de autogestión para profesionales matriculados.
Guía del Colegiado
-
Prestador
Envío de órdenes de obras sociales y seguimiento de liquidaciones.
Guía del Prestador
-
Aspirante
Solicitantes de matrícula que aún no están matriculados.
Guía del Aspirante
Módulos del sistema
| Módulo | Descripción |
|---|---|
| Autenticación y Permisos | Login, roles y control de acceso |
| Solicitud de Matrícula | Proceso de solicitud para nuevos profesionales |
| Gestión de Matrículas | Administración de matrículas activas |
| Finanzas | Cuotas, pagos, recibos, descuentos y recargos |
| Pagos Online | Pagos digitales vía Mercado Pago |
| Conciliación Bancaria | Importación y matching de extractos bancarios |
| Cursos y Capacitación | Gestión de cursos de formación continua |
| Prestadores y Órdenes | Órdenes de obras sociales |
| Liquidaciones y Comisiones | Cálculo y pago de comisiones |
| Autogestión del Profesional | Portal de autoservicio para colegiados |
Referencia rápida
- Glosario de términos
- Matriz de permisos por rol
- Preguntas frecuentes
- Errores comunes y soluciones


Guía de Inicio Rápido — Administrador
¿Qué es este rol?
El Administrador es el rol con mayor nivel de acceso en PSICOLE. Tiene control total sobre la configuración del sistema, la gestión de usuarios y permisos, y la supervisión de todos los módulos. Es responsable de mantener la integridad operativa de la plataforma, crear y desactivar cuentas de operadores, configurar parámetros globales y auditar el comportamiento del sistema.
Este rol está reservado para el personal técnico o directivo del Colegio de Psicólogos con responsabilidad sobre la administración TI del sistema.
Acceso al sistema
- URL de login:
https://psicole.app/login(o la URL interna asignada por el Colegio) - Credenciales: proporcionadas por el equipo técnico durante la puesta en marcha; se recomienda cambiar la contraseña en el primer ingreso
- Dashboard: al ingresar verás el panel de administración con métricas globales: total de colegiados activos, matrículas pendientes, recaudación del mes, trámites en curso y estado de los jobs automáticos (CRON)
Tus tareas principales
1. Crear y gestionar usuarios del sistema
La tarea más frecuente del Administrador es dar de alta o de baja a operadores del Colegio.
- Ingresá a Administración → Usuarios.
- Hacé clic en + Nuevo usuario.
- Completá: nombre completo, correo electrónico institucional, contraseña temporal y rol (elegí uno de los 9 roles disponibles).
- Asigná los permisos específicos si el rol lo requiere (los permisos se expresan como triplets
modulo/accion/recurso, por ejemploFINANZAS/CREATE/PAYMENT). - Guardá. El usuario recibirá un correo de bienvenida con instrucciones para activar su cuenta.
Para desactivar un usuario: buscalo en la lista, hacé clic en los tres puntos (⋮) y seleccioná Desactivar cuenta. El usuario pierde acceso inmediatamente pero sus datos históricos se conservan.
2. Configurar parámetros globales del sistema
- Ingresá a Administración → Configuración.
- Desde allí podés ajustar:
- Valores de cuotas mensuales y categorías de matrícula.
- Integración con Mercado Pago: actualizá las claves API (
ACCESS_TOKEN,PUBLIC_KEY) y configurá las URLs de webhook. - CRON jobs: habilitá o deshabilitá las tareas automáticas (generación mensual de cuotas, envío de notificaciones de vencimiento, conciliación automática).
- Parámetros de PDF: logotipo, datos del Colegio que aparecen en recibos y certificados.
- Guardá cada sección por separado. Los cambios en Mercado Pago requieren reiniciar el servicio desde Administración → Servicios.
3. Auditar el sistema y revisar logs
- Ingresá a Administración → Auditoría.
- Filtrá por fecha, usuario o módulo para ver el registro de acciones.
- Cada entrada muestra: fecha/hora, usuario, acción realizada (CREATE, UPDATE, DELETE), módulo afectado y detalle del objeto modificado.
- Podés exportar los logs en formato CSV para reportes de auditoría interna.
4. Supervisar los CRON jobs automáticos
- Ingresá a Administración → Tareas Automáticas.
- Verás el estado de cada job: último tiempo de ejecución, próxima ejecución, cantidad de registros procesados y si hubo errores.
- Si un job falló, podés relanzarlo manualmente con el botón Ejecutar ahora.
- Los jobs críticos incluyen: generación de cuotas mensuales, recordatorios de vencimiento por e-mail y conciliación bancaria nocturna.
Lo que NO podés hacer con este rol
- Operar módulos de negocio directamente como si fueras un operador (aunque técnicamente tenés acceso, el rol Admin está pensado para configuración, no para carga operativa diaria).
- Eliminar registros históricos de pagos, matrículas o trámites (el sistema no lo permite por integridad contable; solo podés anular con trazabilidad).
- Modificar el código fuente desde el panel (la configuración es a nivel de parámetros, no de código).
Flujos de trabajo típicos
Escenario 1: Alta de un nuevo operador de finanzas
- El jefe administrativo solicita dar de alta a un nuevo empleado para el área de finanzas.
- Ingresás a Administración → Usuarios → + Nuevo usuario.
- Asignás el rol
OPERADOR_FINANZASy los permisosFINANZAS/CREATE/PAYMENT,FINANZAS/READ/RECEIPT,FINANZAS/UPDATE/CUOTA. - El operador recibe el correo de activación y puede ingresar al sistema.
Escenario 2: Actualización de claves de Mercado Pago tras renovación anual
- Mercado Pago notifica el vencimiento de las credenciales de integración.
- Ingresás a Administración → Configuración → Integraciones → Mercado Pago.
- Reemplazás
ACCESS_TOKENyPUBLIC_KEYcon los nuevos valores obtenidos del panel de Mercado Pago. - Guardás y reiniciás el servicio de pagos online desde Administración → Servicios.
- Realizás un pago de prueba desde una cuenta colegiado de test para confirmar que la integración funciona.
Recursos relacionados
- Módulo de Administración de Usuarios
- Configuración Global del Sistema
- Tareas Automáticas (CRON)
- Auditoría y Logs
- Integración Mercado Pago


Guía de Inicio Rápido — Operador de Matrículas
¿Qué es este rol?
El Operador de Matrículas es el responsable de gestionar el ciclo de vida de las matrículas profesionales en el Colegio. Revisa las solicitudes de nuevos aspirantes, valida la documentación presentada, aprueba o rechaza inscripciones, emite credenciales y mantiene actualizado el padrón de colegiados. Es el nexo entre los aspirantes que solicitan matricularse y la habilitación formal para ejercer la profesión.
Acceso al sistema
- URL de login:
https://psicole.app/login - Dashboard: al ingresar verás un resumen de solicitudes pendientes de revisión, matrículas vencidas por renovar y alertas de documentación incompleta. El panel principal muestra una cola de trabajo priorizada por antigüedad de solicitud.
Tus tareas principales
1. Revisar y procesar solicitudes de matrícula
Esta es la tarea central del rol. Las solicitudes llegan desde el portal del Aspirante.
- Ingresá a Matrículas → Solicitudes Pendientes.
- La lista muestra cada solicitud con: nombre del aspirante, fecha de solicitud, estado de la documentación y días en cola.
- Hacé clic en una solicitud para abrir el expediente digital.
- Revisá cada documento adjunto (título universitario, DNI, foto, constancia de CUIL, comprobante de pago del arancel de inscripción):
- Tildá cada documento como Verificado si es legible y válido.
- Si un documento está incompleto o ilegible, usá Solicitar corrección para enviar un mensaje automático al aspirante indicando qué debe reenviar.
- Una vez que todos los documentos estén verificados, habilitá el botón Aprobar solicitud.
- Al aprobar, el sistema genera automáticamente:
- Número de matrícula (correlativo).
- Credencial digital con código QR.
- Notificación por e-mail al nuevo colegiado.
- Primera cuota de matrícula anual (en coordinación con el módulo de Finanzas).
2. Gestionar el padrón de colegiados activos
- Ingresá a Matrículas → Padrón de Colegiados.
- Podés buscar por nombre, apellido, número de matrícula o DNI.
- Desde la ficha de cada colegiado podés:
- Actualizar datos personales (domicilio, teléfono, e-mail) a pedido del profesional.
- Registrar un cambio de categoría (por ejemplo, de matrícula provisoria a definitiva).
- Suspender o dar de baja una matrícula por resolución del Colegio (requiere ingresar el número de expediente resolutivo).
- Emitir una nueva credencial si la anterior fue extraviada o venció.
3. Controlar vencimientos y renovaciones
- Ingresá a Matrículas → Vencimientos.
- El sistema muestra un calendario con las matrículas que vencen en los próximos 30, 60 y 90 días.
- Podés lanzar un envío masivo de notificaciones a todos los colegiados con vencimiento próximo desde el botón Notificar seleccionados.
- Para procesar una renovación: buscá al colegiado, verificá que esté al día con sus cuotas (el indicador de deuda aparece en la ficha) y hacé clic en Renovar matrícula. El sistema actualizará la fecha de vigencia automáticamente.
Lo que NO podés hacer con este rol
- Registrar o modificar pagos — eso es exclusivo del Operador de Finanzas.
- Acceder a los expedientes de trámites (habilitaciones, certificados) — eso lo gestiona el Operador de Trámites.
- Crear usuarios del sistema — es función del Administrador.
- Aprobar o rechazar devoluciones de cuotas — requiere permisos de Finanzas.
- Ver información financiera consolidada del Colegio (reportes de recaudación global).
Flujos de trabajo típicos
Escenario 1: Aspirante que completó su solicitud online
- Recibís una notificación en el dashboard: "Nueva solicitud de matrícula — García, María José".
- Abrís el expediente en Matrículas → Solicitudes Pendientes.
- Revisás los 5 documentos requeridos. El título universitario está escaneado con baja resolución.
- Hacés clic en Solicitar corrección → seleccionás "Título universitario" → escribís: "Por favor, reenvíe el título con mejor resolución (mínimo 300 DPI)".
- El aspirante recibe el correo, reenvía el documento actualizado y la solicitud vuelve a tu cola.
- Verificás el nuevo documento, tildás todos como válidos y hacés clic en Aprobar solicitud.
- El sistema genera la matrícula N° 4821 y envía la credencial digital a la aspirante.
Escenario 2: Colegiado solicita duplicado de credencial
- El colegiado llama indicando que perdió su credencial.
- Buscás la matrícula en Matrículas → Padrón de Colegiados.
- Verificás que la matrícula esté vigente y sin deudas.
- Hacés clic en Emitir duplicado de credencial.
- El sistema genera un PDF con código QR actualizado que podés descargar e imprimir o enviar por e-mail.
Recursos relacionados
- Módulo de Solicitud de Matrícula
- Gestión de Matrículas
- Credenciales y Códigos QR
- Flujo del Aspirante


Guía de Inicio Rápido — Operador de Finanzas
¿Qué es este rol?
El Operador de Finanzas gestiona todo el ciclo económico del Colegio: emisión y seguimiento de cuotas, registro de pagos manuales, emisión de recibos, conciliación bancaria y control de deudas. Trabaja en estrecha coordinación con el módulo de Pagos Online (Mercado Pago) para registrar cobros automáticos y con el módulo de Liquidaciones para distribuir fondos de prestadores.
Es el rol responsable de mantener la salud financiera del padrón: que cada colegiado tenga sus cuotas generadas, que los pagos estén correctamente imputados y que los recibos sean emitidos con datos válidos.
Acceso al sistema
- URL de login:
https://psicole.app/login - Dashboard: al ingresar verás indicadores clave: recaudación del mes en curso, cantidad de cuotas vencidas sin pagar, pagos online pendientes de conciliación y alertas de discrepancias bancarias. El resumen financiero se actualiza en tiempo real.
Tus tareas principales
1. Registrar un pago manual
Cuando un colegiado paga en la sede del Colegio (efectivo, transferencia bancaria u otro medio fuera de Mercado Pago):
- Ingresá a Finanzas → Pagos → Registrar pago manual.
- Buscá al colegiado por nombre, DNI o número de matrícula.
- El sistema mostrará automáticamente las cuotas adeudadas ordenadas por vencimiento.
- Seleccioná la/s cuota/s que el colegiado está pagando.
- Completá:
- Monto recibido (puede incluir intereses por mora si corresponde).
- Medio de pago (efectivo, transferencia, cheque).
- Número de comprobante (si aplica, ej: número de transferencia bancaria).
- Fecha de pago (por defecto es hoy, pero podés retroceder si el pago fue procesado con demora).
- Hacé clic en Confirmar pago. El sistema imputará el pago a las cuotas seleccionadas y generará automáticamente el recibo.
- Podés descargar el recibo en PDF para entregar al colegiado o enviarlo por e-mail con el botón Enviar recibo.
2. Gestionar cuotas del padrón
- Ingresá a Finanzas → Cuotas.
- Podés filtrar por: colegiado, período, estado (pagada/vencida/pendiente/en mora).
- Para generar cuotas manualmente (si el CRON automático no se ejecutó o para un caso particular): buscá al colegiado → Acciones → Generar cuota → seleccioná período y monto.
- Para aplicar un descuento o bonificación: ingresá a la cuota, hacé clic en Modificar monto e ingresá el justificativo (este cambio queda registrado en la auditoría).
- Para dar de baja una cuota por error (por ejemplo, se generó duplicada): seleccioná la cuota y usá Anular cuota. Solo podés anular cuotas que no tengan pagos imputados.
3. Conciliación bancaria
La conciliación bancaria permite cruzar los movimientos del extracto bancario con los pagos registrados en el sistema.
- Ingresá a Finanzas → Conciliación Bancaria.
- Importá el extracto bancario en formato CSV o TXT (según el formato del banco).
- El sistema intentará matchear automáticamente cada movimiento bancario con un pago registrado, usando el monto, la fecha y el número de referencia.
- Los movimientos no identificados aparecen en la sección Pendientes de conciliación.
- Para cada pendiente: buscá manualmente el pago correspondiente usando el buscador lateral o marcalo como Ingreso no identificado para revisión posterior.
- Al finalizar, generá el Informe de conciliación en PDF.
4. Emitir y gestionar recibos
- Ingresá a Finanzas → Recibos.
- Podés buscar recibos por colegiado, número de recibo, período o fecha.
- Para reemitir un recibo (si el colegiado lo perdió): buscá el pago, hacé clic en Reemitir recibo. El sistema genera un PDF idéntico con marca de agua "DUPLICADO".
- Para anular un recibo: ingresá el número de recibo, clic en Anular e ingresá el motivo. La anulación queda registrada y el pago vuelve al estado "pendiente de imputación".
Lo que NO podés hacer con este rol
- Aprobar o rechazar solicitudes de matrícula — es función del Operador de Matrículas.
- Acceder al panel de administración de usuarios del sistema.
- Modificar los parámetros de integración de Mercado Pago — eso lo hace el Administrador.
- Gestionar cursos o inscripciones — es función del Operador de Cursos.
- Aprobar trámites — es función del Operador o Supervisor de Trámites.
Flujos de trabajo típicos
Escenario 1: Colegiado paga en ventanilla con efectivo
- El colegiado se presenta en la sede y entrega $15.000 en efectivo por 2 cuotas adeudadas.
- Ingresás a Finanzas → Pagos → Registrar pago manual.
- Buscás al colegiado por DNI: "28.741.963".
- El sistema muestra 3 cuotas vencidas. Seleccionás las primeras 2 (las más antiguas, por orden de vencimiento).
- Ingresás monto $15.000, medio "Efectivo", fecha de hoy.
- El sistema calcula que las 2 cuotas suman $14.200 y el excedente de $800 se registra como adelanto para la próxima cuota.
- Se genera el recibo N° 000847. Lo imprimís y se lo entregás al colegiado.
Escenario 2: Detectar y resolver una discrepancia en conciliación
- Al importar el extracto bancario del viernes, el sistema deja 3 movimientos sin identificar.
- Ingresás a Finanzas → Conciliación Bancaria → Pendientes.
- Uno de los movimientos de $7.500 no matchea. Revisás la descripción: "TRANSFERENCIA GONZALEZ PEDRO".
- Buscás en pagos online y encontrás un pago de Mercado Pago de ese colegiado por el mismo monto registrado el mismo día pero con un ID diferente.
- Asociás manualmente el movimiento bancario al pago MP y lo marcás como conciliado.
- Los otros 2 movimientos son depósitos propios del Colegio; los marcás como "Operación interna".
Recursos relacionados
- Módulo de Finanzas — Cuotas y Pagos
- Pagos Online con Mercado Pago
- Conciliación Bancaria
- Módulo de Liquidaciones
- Emisión de Recibos y PDFs


Guía de Inicio Rápido — Operador de Cursos
¿Qué es este rol?
El Operador de Cursos administra la oferta de capacitación y formación continua del Colegio. Es responsable de crear y publicar cursos, gestionar las inscripciones de los colegiados, controlar la asistencia, emitir certificados de aprobación y manejar los aranceles asociados a cada capacitación.
Este rol trabaja de forma coordinada con el módulo de Finanzas cuando los cursos son arancelados, ya que el pago de la inscripción se procesa a través del sistema de cuotas o de Mercado Pago.
Acceso al sistema
- URL de login:
https://psicole.app/login - Dashboard: al ingresar verás un resumen de cursos activos, inscripciones de la semana, próximas fechas de inicio y alertas de cursos con cupo casi completo. También aparece una bandeja de solicitudes de inscripción pendientes de confirmación.
Tus tareas principales
1. Crear y publicar un nuevo curso
- Ingresá a Cursos → Gestión de Cursos → + Nuevo curso.
- Completá el formulario:
- Nombre del curso y descripción detallada.
- Modalidad: presencial, virtual o híbrida.
- Fechas: fecha de inicio, fecha de fin y fechas de cada clase si es un curso con múltiples encuentros.
- Cupo máximo: cantidad de inscriptos permitidos.
- Arancel: si es gratuito o arancelado (en ese caso, ingresá el monto y el método de cobro: débito automático, Mercado Pago o pago en sede).
- Instructor/Disertante: nombre y datos del responsable del curso.
- Puntaje de actualización: si el curso otorga créditos de formación continua, ingresá la cantidad de horas o puntos.
- Subí el material de difusión (imagen de portada, programa del curso en PDF).
- Hacé clic en Guardar como borrador para revisarlo antes de publicar.
- Una vez conforme, hacé clic en Publicar. El curso aparecerá disponible en el portal de autogestión de los colegiados.
2. Gestionar inscripciones
- Ingresá a Cursos → Inscripciones.
- Seleccioná el curso para ver su lista de inscriptos.
- Las inscripciones pueden venir de dos fuentes:
- Online: el colegiado se inscribió desde su portal de autogestión. Aparece con estado "Pendiente de confirmación".
- Manual: un colegiado solicitó inscripción por teléfono o presencialmente. Usá + Inscribir manualmente, buscá al colegiado por matrícula o DNI y confirmá.
- Para confirmar una inscripción online: revisá si el curso es arancelado y si el pago fue registrado. Si todo está en orden, hacé clic en Confirmar inscripción. El colegiado recibe un e-mail de confirmación con los datos del curso.
- Para cancelar una inscripción: seleccioná al inscripto y hacé clic en Cancelar. Si corresponde devolución de arancel, coordiná con el Operador de Finanzas.
- Si el cupo se completó, el sistema cierra automáticamente las inscripciones. Podés habilitar una lista de espera desde la configuración del curso.
3. Registrar asistencia y emitir certificados
Registro de asistencia:
- Ingresá a Cursos → Asistencia.
- Seleccioná el curso y la fecha del encuentro.
- Para cada participante de la lista, marcá Presente, Ausente o Tardanza.
- Guardá la asistencia. El sistema acumula el porcentaje de asistencia por participante.
Emisión de certificados:
- Una vez finalizado el curso, ingresá a Cursos → Certificados.
- El sistema lista a todos los inscriptos con su porcentaje de asistencia.
- Marcá como Aprobados a quienes cumplieron el mínimo de asistencia requerido (configurable por curso, generalmente 75%).
- Hacé clic en Generar certificados masivos. El sistema crea un PDF personalizado para cada aprobado, firmado digitalmente con el logo y datos del Colegio.
- Los certificados quedan disponibles para descarga en el portal de autogestión de cada colegiado y podés enviarlos masivamente por e-mail desde el mismo módulo.
Lo que NO podés hacer con este rol
- Registrar pagos de aranceles — los pagos los gestiona el Operador de Finanzas.
- Aprobar matrículas o trámites del Colegio.
- Acceder a información financiera global del Colegio (recaudación, deudas del padrón).
- Crear o modificar usuarios del sistema.
- Gestionar prestadores ni órdenes de obras sociales.
Flujos de trabajo típicos
Escenario 1: Puesta en marcha de un curso de posgrado arancelado
- El área académica confirma que se dictará "Terapia Cognitivo Conductual — Módulo Avanzado", 4 sábados, arancel $8.000, cupo 20 personas.
- Creás el curso en Cursos → + Nuevo curso con todos los datos, configurás el pago por Mercado Pago y publicás.
- En los siguientes días, llegán 18 inscripciones online. Revisás que cada una tenga el pago confirmado desde Cursos → Inscripciones.
- Dos inscripciones están sin pago; enviás un recordatorio automático con el botón Notificar pago pendiente.
- Al completarse el primer encuentro, registrás asistencia: 17 presentes, 1 ausente justificado.
- Al finalizar el cuarto módulo, generás los 16 certificados de aprobación (17 asistentes menos 1 que no alcanzó el 75% de asistencia).
Escenario 2: Gestión de un curso gratuito con lista de espera
- Publicás un webinar gratuito con cupo de 50 personas.
- En 2 horas se completa el cupo. Activás la lista de espera desde Cursos → Configuración del curso.
- Una semana antes del curso, 5 inscriptos cancelan. El sistema automáticamente notifica a los primeros 5 de la lista de espera para que confirmen.
- Confirmás los nuevos inscriptos y el cupo queda completo nuevamente.
Recursos relacionados
- Módulo de Cursos
- Emisión de Certificados
- Integración de Pagos de Aranceles
- Autogestión del Profesional — Inscripción a Cursos


Guía de Inicio Rápido — Operador de Trámites
¿Qué es este rol?
El Operador de Trámites gestiona los tickets y solicitudes formales que los colegiados presentan al Colegio. Recibe tickets asignados automáticamente por el sistema, los atiende dentro del plazo (SLA) establecido, y puede pedir documentación adicional, pausar, resolver o derivar al supervisor.
Al ingresar al sistema, el operador llega directamente a su Dashboard Personal — una vista de bienvenida con todas sus tareas organizadas por urgencia.
Acceso al sistema
- URL:
https://psicole.app/login - Redirección automática: al ingresar, el sistema te lleva directo a
/operator/dashboard— sin pasos extra.
Mi Dashboard Personal
Ruta: /operator/dashboard
Al entrar verás un panel con encabezado en degradado que muestra tu nombre, fecha y rol, seguido de los indicadores clave de tu trabajo.

KPIs en tiempo real
Los indicadores en el encabezado muestran de un vistazo:
- Pendientes — tickets que todavía no tomaste
- En progreso — tickets que ya estás atendiendo
- Resueltos hoy — completados en el día
- Vencidos — tickets cuyo SLA ya expiró

Alerta de tickets vencidos
Si tenés tickets con SLA vencido, aparece un banner rojo al tope del dashboard para que no se te escapen.
Tickets agrupados por urgencia
Los tickets están organizados en grupos con color en el borde izquierdo:
| Grupo | Color | Descripción |
|---|---|---|
| SLA Vencido | Rojo | Requieren atención inmediata |
| En Progreso | Azul | Estás trabajando activamente |
| En Advertencia | Naranja | Menos del 25% del tiempo restante |
| Resto | Gris | Dentro del plazo normal |

Vista en mobile:

Kanban de Tickets
Ruta: /operator/tickets
Vista estilo tablero con columnas por estado. Cada columna muestra los tickets que corresponden a ese estado y el semáforo SLA (verde / naranja / rojo).

Vista mobile:

Detalle de un Ticket
Hacé clic en cualquier ticket (en el dashboard o en el kanban) para abrir el detalle completo.

Desde el detalle podés:
- Ver todos los datos del solicitante y la categoría
- Leer el historial de comentarios y acciones
- Cambiar el estado del ticket (tomar, avanzar, pausar, resolver)
- Agregar comentarios internos o públicos
- Si la categoría tiene un trámite vinculado, aparece el botón "Ver servicio relacionado" para ir directamente al módulo
Vista mobile:

Ciclo de vida de un ticket
PENDIENTE → ASIGNADO → EN PROGRESO → [PAUSADO] → RESUELTO → CERRADO
| Acción | Cuándo usarla |
|---|---|
| Tomar ticket | Para asumir un ticket pendiente |
| Iniciar progreso | Cuando comenzás a trabajar activamente |
| Pausar | Si necesitás esperar algo (con motivo registrado) |
| Esperando solicitante | Si el colegiado debe responder o aportar algo |
| Resolver | Cuando el trabajo está completado |
El semáforo SLA en cada ticket indica: - 🟢 Verde — dentro del plazo - 🟠 Naranja — menos del 25% del tiempo restante - 🔴 Rojo — SLA vencido
Alertas y notificaciones
Cuando se te asigna un ticket nuevo, recibís una notificación en la campana del header. Haciendo clic en la notificación llegás directamente al ticket.

Vista mobile:

Flujo diario típico
- Entrás al sistema → aterrizás en Mi Dashboard
- Revisás el banner rojo (si hay tickets vencidos, atendelós primero)
- Revisás el grupo En Advertencia (naranja) — son los que están por vencerse
- Trabajás los tickets En Progreso
- Tomás tickets Pendientes según disponibilidad
- Al resolver, cambiás el estado a Resuelto — el sistema notifica al solicitante automáticamente
Recursos relacionados
- Sistema completo de Tickets y Soporte
- Gestión del Supervisor de Trámites


Guía de Inicio Rápido — Supervisor de Trámites
¿Qué es este rol?
El Supervisor de Trámites tiene visibilidad completa sobre la operación: ve los tickets de todos los operadores, puede reasignar, cerrar y monitorear el cumplimiento de SLA. Además accede al dashboard de métricas con KPIs globales y a la vista kanban por operador.
Acceso al sistema
- URL:
https://psicole.app/login - Menú: Tickets → Métricas / Tickets → Gestión de Tickets
Dashboard de Métricas
Ruta: /supervisor/metrics
Vista ejecutiva con KPIs del estado completo de la operación: tickets por estado, tiempos de resolución promedio y carga por operador.

Vista mobile:

Los indicadores clave incluyen: - Total de tickets activos en el sistema - Tickets por estado (pendiente, en progreso, resueltos, vencidos) - Distribución por operador y área de trabajo - Semáforo SLA global
Kanban por Operador
Ruta: /supervisor/tickets → Tab "Por operador"
Vista kanban que agrupa todos los tickets por operador para visualizar la carga de trabajo de cada uno. Desde acá podés detectar desbalances y reasignar tickets.

Reasignar un ticket
- Abrís el detalle del ticket
- Clic en Reasignar
- Seleccionás el nuevo operador disponible
- El operador anterior y el nuevo reciben notificación automática
Semáforo SLA
El semáforo es visible en todas las vistas:
| Color | Estado | Acción recomendada |
|---|---|---|
| 🟢 Verde | OK — dentro del plazo | Ninguna |
| 🟠 Naranja | WARNING — menos del 25% restante | Verificar avance |
| 🔴 Rojo | BREACHED — SLA vencido | Reasignar o intervenir |
El sistema puede generar alertas automáticas al supervisor cuando se supera el SLA (configurado en Tareas Programadas).
Cerrar un ticket
Como supervisor podés cerrar definitivamente un ticket resuelto: 1. Abrís el detalle del ticket (estado RESOLVED) 2. Clic en Cerrar ticket 3. El ticket pasa a estado CLOSED — acción irreversible
El cierre automático ocurre a los 7 días de resolución (configurable en Parámetros del Sistema).
Configuración del módulo
La configuración de categorías, áreas de trabajo y parámetros es responsabilidad del Administrador. Ver:
- Categorías de Tickets
- Áreas de Trabajo
- Parámetros del Sistema — Sección TICKETS
Recursos relacionados
- Sistema completo de Tickets y Soporte
- Guía del Operador de Trámites


Guía de Inicio Rápido — Colegiado
¿Qué es este rol?
El Colegiado es el profesional psicólogo matriculado en el Colegio que accede al portal de autogestión para gestionar sus asuntos de manera autónoma: consultar y pagar sus cuotas, descargar recibos y certificados, solicitar trámites, inscribirse a cursos y actualizar sus datos. Este rol tiene acceso exclusivamente a su propia información — nunca puede ver ni modificar datos de otros colegiados.
Es el rol de mayor cantidad de usuarios en el sistema, ya que representa a todos los profesionales matriculados activos.
Acceso al sistema
- URL de login:
https://psicole.app/login(o el subdominio personalizado del Colegio, por ejemplomatriculas.cpacf.org.ar) - Credenciales: número de matrícula como usuario y la contraseña establecida durante la activación de la cuenta. Si es el primer ingreso, usá el link de activación enviado por e-mail cuando fue aprobada tu matrícula.
- Dashboard: al ingresar verás un resumen de tu situación: estado de la matrícula (vigente/vencida), cuotas adeudadas, próximos cursos a los que estás inscripto y trámites en curso.
Tus tareas principales
1. Consultar y pagar tus cuotas online
- Ingresá a Mi cuenta → Cuotas y pagos.
- Verás el historial completo de cuotas: las pagas con fecha de pago y número de recibo, y las pendientes con su fecha de vencimiento y monto.
- Para pagar online, seleccioná la/s cuota/s que querés abonar (podés seleccionar varias a la vez).
- Hacé clic en Pagar con Mercado Pago. Serás redirigido al checkout de Mercado Pago.
- Elegí tu medio de pago: tarjeta de crédito/débito, transferencia bancaria o dinero en cuenta de Mercado Pago.
- Completá el pago. Al volver al portal, el sistema actualizará automáticamente el estado de las cuotas (puede demorar hasta 2 minutos en reflejarse si el banco tarda en confirmar).
- El recibo digital quedará disponible inmediatamente en Mi cuenta → Mis recibos.
2. Descargar recibos y comprobantes
- Ingresá a Mi cuenta → Mis recibos.
- Los recibos se muestran ordenados por fecha. Podés filtrar por año o período.
- Hacé clic en Descargar PDF sobre cualquier recibo para obtener el comprobante oficial del Colegio con número de recibo, datos del pago y código QR de verificación.
- El código QR del recibo permite que terceros (obras sociales, empleadores, juzgados) verifiquen la autenticidad del documento accediendo a
https://psicole.app/verificar.
3. Solicitar un trámite
- Ingresá a Trámites → Nueva solicitud.
- Seleccioná el tipo de trámite que necesitás del menú desplegable (por ejemplo: "Constancia de matrícula vigente", "Certificado de buena conducta", "Habilitación de consultorio").
- Completá el formulario con los datos requeridos y adjuntá la documentación solicitada (el sistema indica qué documentos son obligatorios para cada tipo de trámite).
- Si el trámite tiene arancel, el sistema te solicitará el pago antes de confirmar la solicitud.
- Hacé clic en Enviar solicitud. Recibirás un número de expediente y un correo de confirmación.
- Podés seguir el estado del trámite en tiempo real desde Trámites → Mis trámites. Si el operador te solicita documentación adicional, recibirás una notificación y podrás adjuntarla desde el mismo expediente.
4. Inscribirte a un curso
- Ingresá a Cursos → Oferta de cursos.
- Explorá los cursos disponibles. Podés filtrar por modalidad, fecha o temática.
- Hacé clic en un curso para ver el detalle: descripción, programa, disertante, fechas, cupo disponible y arancel.
- Si querés inscribirte, hacé clic en Inscribirme.
- Si el curso es gratuito, la inscripción se confirma de inmediato.
- Si el curso es arancelado, el sistema te redirigirá al pago mediante Mercado Pago. Una vez confirmado el pago, tu inscripción queda registrada.
- Recibirás un e-mail de confirmación con todos los detalles del curso (links de acceso si es virtual, dirección si es presencial).
5. Actualizar tus datos personales y profesionales
- Ingresá a Mi cuenta → Mis datos.
- Podés actualizar: domicilio particular, domicilio profesional, teléfono de contacto y e-mail.
- Importante: algunos cambios (como el cambio de nombre por razones legales) requieren documentación respaldatoria y se procesan como un trámite formal.
- Guardá los cambios. Los datos actualizados se reflejan en los próximos certificados y constancias que solicites.
Lo que NO podés hacer con este rol
- Ver información de otros colegiados — el sistema te muestra exclusivamente tu propia información.
- Modificar el monto de tus cuotas ni solicitar exenciones de pago directamente (debés solicitarlo como un trámite formal).
- Acceder a los módulos administrativos (matrículas, finanzas, cursos, trámites) en su versión operativa.
- Descargar recibos de pagos que no te correspondan.
- Aprobar o rechazar ningún tipo de solicitud.
Flujos de trabajo típicos
Escenario 1: Pagar las cuotas atrasadas y descargar un certificado para una obra social
- Tu obra social requiere una constancia de matrícula vigente y de estar al día con las cuotas del Colegio.
- Ingresás a Mi cuenta → Cuotas y pagos: tenés 2 cuotas vencidas.
- Seleccionás ambas cuotas y pagás online con tu tarjeta de crédito a través de Mercado Pago.
- Una vez confirmado el pago, ingresás a Trámites → Nueva solicitud → "Constancia de matrícula vigente".
- Enviás la solicitud. En minutos recibís el PDF por e-mail y también está disponible en Trámites → Mis trámites.
- Descargás el PDF y lo adjuntás en el formulario de la obra social.
Escenario 2: Inscripción a un curso con cupo limitado
- Ves publicado el curso "Neuropsicología Clínica" con solo 5 lugares disponibles.
- Ingresás a Cursos → Oferta de cursos, buscás el curso y hacés clic en Inscribirme.
- El curso tiene arancel de $5.000. Pagás con tu tarjeta a través de Mercado Pago.
- Recibís la confirmación: "Tu inscripción al curso Neuropsicología Clínica fue confirmada. Fecha de inicio: 15 de abril."
- El certificado de aprobación estará disponible automáticamente en tu portal al finalizar el curso.
Recursos relacionados
- Autogestión del Profesional — Guía completa
- Pagos Online con Mercado Pago
- Tipos de Trámites disponibles
- Oferta de Cursos
- Verificación de Documentos con QR


Guía de Inicio Rápido — Prestador
¿Qué es este rol?
El Prestador es el profesional psicólogo matriculado que, además de su membresía como colegiado, está registrado como prestador de servicios de salud mental para una o más obras sociales y/o prepagas. A través de este rol, gestiona las órdenes de atención que recibe de sus pacientes afiliados, las presenta al Colegio para su procesamiento y cobra sus honorarios mediante el sistema de liquidaciones.
El módulo de Prestadores es el nexo entre la atención clínica individual del profesional y la facturación a las obras sociales. El Colegio actúa como intermediario, acumula las órdenes, factura a las obras sociales y liquida los honorarios a los prestadores.
Acceso al sistema
- URL de login:
https://psicole.app/login - Dashboard: al ingresar verás un resumen de tu actividad como prestador: órdenes cargadas en el período actual, estado de la última liquidación, importe pendiente de cobro y alertas de órdenes rechazadas que requieren tu atención.
Tus tareas principales
1. Cargar órdenes de atención
Esta es la tarea más frecuente del prestador, realizada habitualmente al cierre de cada mes o período de presentación.
- Ingresá a Prestaciones → Cargar órdenes.
- Hacé clic en + Nueva orden.
- Completá los datos de la orden:
- Obra social / prepaga: seleccioná de la lista la obra social del paciente.
- Número de afiliado del paciente.
- Fecha de atención.
- Código de prestación (código de nomenclador correspondiente al tipo de consulta, por ejemplo:
25-01para psicoterapia individual). - Cantidad de sesiones del período (si la orden cubre múltiples sesiones).
- Adjunto: escaneá la orden física o subí la orden digital enviada por el paciente (JPG, PNG o PDF).
- Hacé clic en Guardar orden.
- Podés cargar múltiples órdenes en la misma sesión repitiendo el proceso.
Carga masiva: si tenés muchas órdenes del mismo período, usá la opción Importar desde planilla (Excel o CSV con el formato estándar descargable desde el sistema).
2. Revisar el estado de tus órdenes
- Ingresá a Prestaciones → Mis órdenes.
- Filtrá por período, obra social o estado.
- Los estados posibles son:
- Cargada: recibida por el sistema, pendiente de revisión por el área de prestaciones del Colegio.
- En proceso: el Colegio está verificando y preparando la facturación a la obra social.
- Presentada: la obra social recibió la facturación.
- Liquidada: la obra social pagó y el importe será incluido en tu próxima liquidación.
- Rechazada: la obra social rechazó la orden (verás el motivo del rechazo).
- Las órdenes rechazadas requieren tu atención: leé el motivo (puede ser un dato incorrecto, número de afiliado erróneo, código de prestación inválido) y usá Rectificar orden para corregir y volver a presentar.
3. Consultar y descargar liquidaciones
El Colegio emite liquidaciones periódicas (generalmente mensuales) con el detalle de los honorarios a acreditar.
- Ingresá a Prestaciones → Mis liquidaciones.
- Cada liquidación muestra: período, cantidad de órdenes incluidas, importe bruto, deducciones (si aplican, por ejemplo retenciones impositivas) e importe neto a acreditar.
- Hacé clic en Ver detalle para ver el desglose obra social por obra social.
- Hacé clic en Descargar liquidación para obtener el PDF oficial con firma digital del Colegio (válido como comprobante contable y para presentar a tu contador).
- La fecha de acreditación estimada se indica en cada liquidación.
4. Gestionar tu perfil de prestador
- Ingresá a Prestaciones → Mi perfil de prestador.
- Desde aquí podés:
- Ver las obras sociales habilitadas para presentar órdenes (si necesitás agregar una nueva, debés solicitarlo como un trámite formal).
- Actualizar tu CBU bancario para la acreditación de liquidaciones (requiere verificación del área de finanzas).
- Consultar tu código de prestador ante cada obra social.
Lo que NO podés hacer con este rol
- Ver las órdenes de otros prestadores ni los importes de sus liquidaciones.
- Aprobar tus propias órdenes — la verificación y aprobación la realiza el área de prestaciones del Colegio.
- Modificar una orden ya liquidada — si hay un error en una orden ya cobrada, debés iniciar un trámite de rectificación formal.
- Acceder a los módulos operativos del Colegio (matrículas, finanzas, cursos, trámites).
- Cargar órdenes de obras sociales para las cuales no estás habilitado en el sistema.
Flujos de trabajo típicos
Escenario 1: Cierre mensual de presentación de órdenes
- Al fin del mes de marzo, tenés 28 sesiones realizadas distribuidas entre OSDE (12), Swiss Medical (10) y IOMA (6).
- Ingresás a Prestaciones → Cargar órdenes y cargás las 28 órdenes una a una (o importás la planilla Excel con todas).
- Confirmás la presentación del período marzo haciendo clic en Cerrar presentación del período. Las órdenes quedan en estado "Cargada" y el Colegio recibe la notificación.
- En los días siguientes, el área de prestaciones revisa las órdenes. Una orden de IOMA aparece como "Rechazada" con motivo: "Número de afiliado inválido".
- Contactás al paciente, obtenés el número correcto y usás Rectificar orden para corregirlo y volver a presentar.
Escenario 2: Recepción y descarga de liquidación mensual
- Recibís una notificación por e-mail: "Tu liquidación del período marzo 2026 está disponible."
- Ingresás a Prestaciones → Mis liquidaciones y abrís la liquidación de marzo.
- Ves el detalle: 27 órdenes liquidadas (1 aún en proceso), importe bruto $185.400, retención 3% = $5.562, importe neto a acreditar: $179.838. Fecha de acreditación: 5 de abril.
- Descargás el PDF para entregárselo a tu contador.
- El 5 de abril verificás en tu cuenta bancaria que el importe fue acreditado.
Recursos relacionados
- Módulo de Prestadores
- Guía de Carga de Órdenes
- Sistema de Liquidaciones
- Obras Sociales habilitadas
- Autogestión del Profesional


Guía de Inicio Rápido — Aspirante
¿Qué es este rol?
El Aspirante es el profesional que completó su formación universitaria y desea matricularse en el Colegio de Psicólogos para ejercer legalmente la profesión. Es un rol temporal: existe únicamente durante el proceso de solicitud de matrícula. Una vez que la solicitud es aprobada, el usuario pasa a ser Colegiado automáticamente.
El Aspirante tiene acceso muy acotado al sistema: puede crear su cuenta, completar el formulario de solicitud de matrícula, adjuntar la documentación requerida, pagar el arancel de inscripción y hacer seguimiento del estado de su solicitud.
Acceso al sistema
- URL de registro:
https://psicole.app/registro(no es el mismo link que el login de colegiados) - Credenciales: las creás vos mismo al registrarte con tu dirección de e-mail y una contraseña.
- Dashboard: al ingresar verás exclusivamente el estado de tu solicitud de matrícula: documentos entregados, documentos pendientes, estado general del expediente y mensajes del área de matrículas.
Tus tareas principales
1. Registrarse y crear la solicitud de matrícula
Si todavía no tenés cuenta en el sistema:
- Ingresá a
https://psicole.app/registro. - Completá el formulario de registro inicial:
- Nombre completo (tal como figura en tu DNI).
- Número de DNI.
- Número de CUIL.
- Correo electrónico (será tu medio de comunicación con el Colegio durante todo el proceso).
- Contraseña (mínimo 8 caracteres, al menos una mayúscula y un número).
- Recibirás un correo de verificación. Hacé clic en el link para activar tu cuenta.
- Una vez activada, ingresás con tu e-mail y contraseña.
- El sistema te llevará directamente al formulario de Solicitud de Matrícula.
2. Completar el formulario de solicitud
El formulario de solicitud tiene varias secciones. Podés guardarlo como borrador y completarlo en varias sesiones.
Sección 1: Datos personales - Nombre completo, fecha de nacimiento, domicilio particular, teléfono de contacto. - Foto de perfil (formato JPG o PNG, fondo blanco, mínimo 400x400 px).
Sección 2: Datos profesionales - Universidad de egreso. - Título obtenido (Licenciado/a en Psicología, Doctor/a, etc.). - Año de egreso. - Domicilio profesional (dirección donde ejercerás, puede ser el mismo que el particular).
Sección 3: Adjuntar documentación
Esta sección es crítica. Los documentos requeridos son:
| Documento | Formato aceptado | Observaciones |
|---|---|---|
| DNI (frente y dorso) | JPG, PNG, PDF | Escaneado o foto clara, legible |
| Título universitario | PDF o JPG | Anverso y reverso; mínimo 300 DPI |
| Constancia de CUIL (AFIP) | Impresión del sitio de AFIP | |
| Certificado analítico de materias | Emitido por la universidad, con sello y firma | |
| Foto carnet | JPG, PNG | Fondo blanco, cara visible, sin accesorios |
- Hacé clic en + Adjuntar al lado de cada documento y seleccioná el archivo desde tu computadora o celular.
- El sistema indica con un tilde verde cada documento correctamente cargado.
Sección 4: Pago del arancel de inscripción
- Una vez completadas las secciones anteriores, el sistema mostrará el monto del arancel de inscripción.
- Hacé clic en Pagar arancel de inscripción para ser redirigido al checkout de Mercado Pago.
- Podés pagar con tarjeta de crédito, débito, transferencia o dinero en cuenta de Mercado Pago.
- Una vez confirmado el pago, quedará registrado automáticamente en tu solicitud.
Envío final:
- Revisá que todas las secciones estén completas (el sistema señalará en rojo las incompletas).
- Hacé clic en Enviar solicitud. Recibirás un número de expediente y un correo de confirmación.
3. Hacer seguimiento de tu solicitud
- Ingresá al portal con tu e-mail y contraseña.
- En el dashboard verás el estado actual de tu expediente:
- Recibida: el Colegio recibió tu solicitud, está en cola de revisión.
- En revisión: un operador está verificando tu documentación.
- Documentación incompleta: el operador te solicita que corrijas o reenvíes algún documento. Recibirás un correo con el detalle.
- Aprobada: tu matrícula fue aprobada. Recibirás un correo con tu número de matrícula y las instrucciones para acceder al portal como Colegiado.
- Rechazada: la solicitud fue rechazada con el motivo indicado (podés subsanar el problema y presentar una nueva solicitud si corresponde).
4. Responder a una solicitud de corrección de documentación
Si el operador de matrículas detecta un problema con tu documentación:
- Recibirás un e-mail con el asunto: "Solicitud de corrección — Expediente N° XXXX".
- Ingresá al portal y en tu dashboard aparecerá un aviso naranja con el detalle de lo que debés corregir.
- Hacé clic en Ver solicitud de corrección para leer el mensaje del operador.
- Reemplazá el documento observado: hacé clic en Reenviar documento al lado del documento indicado y adjuntá el nuevo archivo.
- Una vez que hayas corregido todo lo indicado, hacé clic en Confirmar corrección. El expediente volverá a la cola de revisión del operador.
Lo que NO podés hacer con este rol
- Acceder a ningún módulo del Colegio más allá de tu propia solicitud de matrícula.
- Ver el estado de las solicitudes de otros aspirantes.
- Solicitar trámites, inscribirte a cursos ni pagar cuotas — esas funciones estarán disponibles una vez que seas Colegiado.
- Modificar el arancel de inscripción ni solicitar exenciones (debés contactar al Colegio por los canales institucionales antes de iniciar la solicitud).
- Reutilizar el mismo e-mail para crear múltiples solicitudes simultáneas.
Flujos de trabajo típicos
Escenario 1: Primera solicitud de matrícula desde cero
- Te graduaste en marzo 2026 y querés matricularte.
- Ingresás a
https://psicole.app/registro, creás tu cuenta y activás el e-mail. - Completás el formulario: datos personales, datos de la UBA (tu universidad), subís los 5 documentos requeridos.
- Pagás el arancel de $12.000 con tu tarjeta de crédito.
- Enviás la solicitud. Recibís el correo: "Solicitud recibida — Expediente N° 2026-0847".
- A los 3 días hábiles, el operador detecta que el título subido está en baja resolución.
- Recibís el correo de corrección. Reescaneás el título a 300 DPI y lo reenvíás desde el portal.
- A los 2 días hábiles siguientes recibís: "Tu matrícula N° 5312 fue aprobada. Bienvenido/a al Colegio de Psicólogos."
- Tu acceso cambia automáticamente al rol Colegiado y podés usar todas las funciones del portal.
Escenario 2: Consultar el estado de una solicitud demorada
- Enviaste la solicitud hace 10 días hábiles y no recibiste novedades.
- Ingresás al portal: el estado dice "En revisión". No hay alertas de corrección pendiente.
- Revisás si llegó algún correo a la carpeta de spam — no hay ninguno.
- Usás el botón Contactar área de Matrículas (disponible en tu dashboard) para enviar un mensaje interno al Colegio preguntando el estado.
- Al día siguiente el operador responde: "Su expediente fue asignado a revisión, en 2 días hábiles tendrá respuesta."
Recursos relacionados
- Módulo de Solicitud de Matrícula
- Documentación requerida para matricularse
- Preguntas frecuentes del Aspirante
- Qué pasa después de ser aprobado — Guía del Colegiado


Autenticación y Permisos
Descripción
El módulo de Autenticación y Permisos gestiona el acceso seguro a PSICOLE mediante un esquema de doble token JWT y un modelo de control de acceso basado en roles (RBAC). Cada sesión emite un access token de 15 minutos (firmado con JWT_SECRET) y un refresh token de 7 días (firmado con JWT_REFRESH_SECRET) que se persiste en la base de datos, lo que permite invalidarlo en forma explícita en el logout o al detectar uso indebido.
El sistema implementa 9 roles fijos: ADMIN, OPERADOR_MATRICULAS, OPERADOR_FINANZAS, OPERADOR_CURSOS, OPERADOR_TRAMITES, SUPERVISOR_TRAMITES, COLEGIADO, PRESTADOR y ASPIRANTE. Cada rol lleva asociado un conjunto de permisos expresados como tripletas módulo / acción / recurso (por ejemplo, FINANZAS / CREATE / PAYMENT). El middleware authenticate verifica y decodifica el access token en cada request; requireRole y requirePermission aplican la regla de autorización antes de que el controlador procese la solicitud.
La impersonación de administrador permite al rol ADMIN iniciar sesión visual como cualquier otro usuario (excepto otros ADMIN) para diagnóstico y soporte. La sesión de impersonación es estrictamente de solo lectura: el middleware blockIfImpersonating() bloquea todas las operaciones de escritura. Cada inicio y fin de impersonación queda registrado en el AuditLog con IP, User-Agent, usuario origen y usuario destino.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| ADMIN | Administración completa — gestión de usuarios, impersonación, audit log |
| OPERADOR_MATRICULAS | Acceso a su módulo asignado (EPIC-01) |
| OPERADOR_FINANZAS | Acceso a su módulo asignado (EPIC-02) |
| OPERADOR_CURSOS | Acceso a su módulo asignado (EPIC-03) |
| OPERADOR_TRAMITES | Acceso a su módulo asignado (EPIC-09) |
| SUPERVISOR_TRAMITES | Acceso supervisado al módulo de trámites |
| COLEGIADO | Acceso a autogestión propia |
| PRESTADOR | Acceso al portal de prestadores |
| ASPIRANTE | Acceso al formulario de solicitud de matrícula |
Flujo principal
Login
- El usuario ingresa su email (normalizado a minúsculas) y contraseña en el formulario de login (
POST /api/v1/auth/login). - El sistema busca el usuario en la base de datos e incluye el rol con todos sus permisos y los módulos operador asignados.
- Si el usuario no existe o la contraseña no coincide (verificada con
bcrypt.compare), devuelve401 Credenciales inválidassin revelar cuál campo es incorrecto. - Si el usuario existe pero está inactivo (
isActive = false), devuelve403 Usuario inactivo. - Ante login exitoso, se generan el access token (15 min) y el refresh token (7 días). El refresh token se persiste en la tabla
refresh_tokenscon fecha de expiración. - Se actualiza
lastLogindel usuario y se incrementan las métricas de Prometheus correspondientes. - La respuesta incluye
accessToken,refreshTokeny el objetousercompleto (id, nombre, rol, permisos, datos del profesional si corresponde, módulos operador activos).

Renovación de token (Refresh)
- El cliente (frontend con Axios) detecta una respuesta
401con el access token expirado. - El interceptor de Axios llama automáticamente a
POST /api/v1/auth/refreshenviando el refresh token almacenado en memoria. - El backend verifica la firma del refresh token, lo busca en la base de datos y comprueba que no haya expirado y que el usuario siga activo.
- Si todo es válido, devuelve un nuevo access token. El refresh token existente no se rota (solo se genera uno nuevo al hacer login o al detener impersonación).
- El interceptor reintenta automáticamente el request original con el nuevo token. Si el refresh falla, redirige al login.
Logout
- El usuario hace clic en Cerrar Sesión en el menú de usuario.
- El frontend envía
POST /api/v1/auth/logoutcon el refresh token. - El backend elimina el registro del refresh token de la tabla
refresh_tokens, invalidándolo para futuros intentos de renovación. - El frontend borra el estado de autenticación en Zustand (
authStore) y redirige al login.

Impersonación de usuario (solo ADMIN)
- El administrador navega a Usuarios → [usuario objetivo] → Iniciar Vista Como.
- El frontend llama a
POST /api/v1/auth/impersonate/:userId. - El sistema verifica que el solicitante sea
ADMINy que el objetivo no sea otroADMIN. - Se genera un access token especial con los campos
isImpersonating: trueeimpersonatedBy: <adminId>. No se emite refresh token para las sesiones de impersonación. - El audit log registra la acción
IMPERSONATE_USERcon IP y User-Agent. - El frontend muestra un banner visual de advertencia ("Estás viendo como [nombre del usuario]") durante toda la sesión.
- Todas las peticiones de escritura (
POST,PUT,DELETE) son bloqueadas porblockIfImpersonating()con403 read-only. - Para terminar, el administrador hace clic en Volver a mi cuenta (
POST /api/v1/auth/stop-impersonation). El sistema genera tokens normales para el admin y registraSTOP_IMPERSONATIONen el audit log.

Cambio de contraseña
- El usuario autenticado navega a Mi Perfil → Cambiar Contraseña.
- Ingresa la contraseña actual y la nueva contraseña (mínimo 8 caracteres).
- El sistema verifica la contraseña actual con
bcrypt.compareantes de actualizar. - El hash de la nueva contraseña se genera con
bcrypt(rondas configurables, por defecto 10).

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| string (email) | Sí | Normalizado a minúsculas; unicidad validada en DB | |
| password | string | Sí | Mínimo 8 caracteres; almacenado con bcrypt |
| firstName | string | Sí (registro) | Nombre del usuario |
| lastName | string | Sí (registro) | Apellido del usuario |
| dni | string | No (registro interno) | Unicidad validada si se provee |
| refreshToken | string JWT | Sí (refresh/logout) | Token emitido en login; firmado con JWT_REFRESH_SECRET |
Reglas de negocio
Tokens de impersonación sin refresh
Las sesiones de impersonación no emiten refresh token. Al expirar el access token (15 min), la sesión termina automáticamente y el administrador debe volver a hacer login con sus propias credenciales.
Impersonación bloqueada entre administradores
Un ADMIN no puede impersonar a otro usuario con rol ADMIN. El sistema devuelve 403 en esos intentos.
Escritura bloqueada en modo impersonación
El middleware blockIfImpersonating() se aplica a todas las rutas de escritura. Cualquier intento de crear, modificar o eliminar datos durante una sesión de impersonación es rechazado con 403 read-only.
Contraseñas y seguridad
Los mensajes de error de login son deliberadamente ambiguos ("Credenciales inválidas") tanto para usuario no encontrado como para contraseña incorrecta, para evitar enumeración de usuarios.
Estados y transiciones
stateDiagram-v2
[*] --> Anónimo
Anónimo --> Autenticado : login exitoso
Autenticado --> Anónimo : logout / token expirado sin refresh válido
Autenticado --> Renovando : access token expirado
Renovando --> Autenticado : refresh válido → nuevo access token
Renovando --> Anónimo : refresh inválido o expirado
Autenticado --> Impersonando : ADMIN inicia impersonación
Impersonando --> Autenticado : stop-impersonation (vuelve al admin)
Impersonando --> Anónimo : access token expirado (sin refresh)
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
401 Credenciales inválidas |
Email no existe o contraseña incorrecta | Verificar email y contraseña; resetear desde administración si es necesario |
403 Usuario inactivo |
El usuario tiene isActive = false |
El administrador debe reactivar el usuario desde Usuarios → Editar |
401 Refresh token inválido o expirado |
El refresh token venció (7 días) o fue eliminado al hacer logout en otro dispositivo | Iniciar sesión nuevamente |
403 Solo los administradores pueden impersonar usuarios |
Se llama a /impersonate con un rol distinto a ADMIN |
Verificar que el usuario sea ADMIN antes de usar esta función |
403 No puedes realizar esta acción en modo vista |
Se intenta una operación de escritura durante impersonación | Detener la impersonación antes de realizar cambios |
500 Error de configuración del sistema |
El rol ASPIRANTE no existe en la base de datos |
Ejecutar el seed de roles: npm run db:seed |
Preguntas frecuentes
¿Qué pasa si el access token expira mientras el usuario está usando el sistema?
El interceptor de Axios detecta la respuesta 401 y llama automáticamente al endpoint de refresh con el refresh token almacenado. Si el refresh es válido, el usuario no nota la interrupción. Si el refresh también venció (pasaron más de 7 días sin actividad), el usuario es redirigido al login.
¿Los refresh tokens se invalidan al cambiar la contraseña?
No de forma automática en la implementación actual. Si se sospecha una sesión comprometida, el administrador puede desactivar el usuario (isActive = false) para forzar el cierre de todas las sesiones activas.
¿Qué información queda registrada en el audit log?
Cada impersonación registra: ID del admin, email del admin, ID del usuario objetivo, email del objetivo, IP de origen y User-Agent del navegador. Las acciones IMPERSONATE_USER y STOP_IMPERSONATION son rastreables en Administración → Audit Log.
¿Puede un operador tener acceso a varios módulos?
Sí. Un operador con rol genérico puede recibir asignaciones de módulos (OperatorModuleAssignment) que le otorgan acceso a EPICs específicos. El middleware requireModuleAccess verifica estas asignaciones en tiempo real contra la base de datos.
¿Cómo se crean los usuarios iniciales?
El seed de base de datos (npm run db:seed) crea los roles del sistema y un usuario ADMIN inicial. Los demás usuarios se crean desde Administración → Usuarios o, en el caso de aspirantes, mediante el registro público en el formulario de solicitud de matrícula.


Solicitud de Matrícula
Descripción
El módulo de Solicitud de Matrícula implementa el proceso de onboarding de nuevos profesionales (UC-1.1). Un aspirante que desea colegiarse puede completar todo el trámite de forma digital, sin necesidad de concurrir físicamente al Colegio en la etapa inicial. El proceso está estructurado en un formulario multi-paso de 5 pasos con guardado automático de progreso: el aspirante puede cerrar la sesión y retomar desde el punto en que quedó.
El flujo comienza con la creación de una cuenta de usuario con rol ASPIRANTE y la verificación del email mediante un token de 24 horas. A continuación, el aspirante completa sus datos personales, académicos, carga los documentos requeridos (DNI frente/dorso, título universitario, analítico), firma la declaración jurada y abona el arancel de inscripción para enviar la solicitud. El sistema asigna un número de solicitud único con formato SOL-YYYY-XXXXXXXX.
Una vez enviada la solicitud, su estado pasa a PENDING_REVIEW y queda disponible en la bandeja de trabajo de los operadores de matrículas para su revisión. El aspirante puede consultar el estado de su solicitud en cualquier momento desde su portal de autogestión y recibe notificaciones por email ante cada cambio de estado.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| ASPIRANTE | Creación y edición de su propia solicitud; consulta de estado |
| OPERADOR_MATRICULAS | Lectura de todas las solicitudes para revisión; solicitud de correcciones |
| ADMINISTRADOR | Administración completa; acceso a todas las solicitudes |
Flujo principal
Paso 0 — Registro de cuenta y verificación de email
- El aspirante accede a la URL pública de registro (
/registro) e ingresa email, contraseña (mínimo 8 caracteres), nombre y apellido. - El sistema crea el usuario con rol
ASPIRANTEy la solicitud en estadoDRAFTen paso 1. - Se envía un email con un enlace de verificación válido por 24 horas.
- El aspirante hace clic en el enlace (
GET /api/v1/enrollment-application/verify-email/:token). - El sistema marca
emailVerified = truey emite tokens de acceso (access + refresh) para que el aspirante continúe directamente al formulario. - Si el enlace venció, el aspirante puede solicitar uno nuevo desde la pantalla de login con "Reenviar verificación".

Paso 1 — Datos personales
- El aspirante completa los datos personales obligatorios: nombre, apellido, DNI (tipo: DNI/LC/LE/Pasaporte), CUIT/CUIL, teléfono, fecha de nacimiento, género, nacionalidad y domicilio completo (calle, número, piso, departamento, código postal, ciudad, provincia).
- El sistema valida el dígito verificador del CUIT/CUIL con el algoritmo oficial argentino.
- Se verifica la unicidad de DNI y CUIT/CUIL contra todos los usuarios existentes.
- El aspirante puede declarar el tipo de solicitud:
PROVISORIA(título en trámite de legalización) oDEFINITIVA(título ya legalizado). - Al guardar, el paso avanza a 2 y los datos quedan persistidos aunque el aspirante cierre la sesión.

Paso 2 — Datos académicos
- El aspirante ingresa: nombre de la universidad, fecha de egreso, título obtenido (ej: Licenciado en Psicología) y especialidades (selección múltiple).
- Todos los campos son obligatorios excepto especialidades.
- El sistema actualiza el paso a 3 al guardar exitosamente.

Paso 3 — Carga de documentos
- El aspirante sube los archivos requeridos. Formatos aceptados: PDF, JPEG, PNG. Tamaño máximo: 5 MB por archivo.
- Documentos obligatorios (sin estos no se puede enviar la solicitud):
DNI_FRONT— Frente del DNIDNI_BACK— Dorso del DNIUNIVERSITY_DEGREE— Título universitario o constancia de tramitaciónACADEMIC_TRANSCRIPT— Analítico de materias aprobadas
- Documentos opcionales:
CRIMINAL_RECORD— Certificado de antecedentes penalesGOOD_CONDUCT— Certificado de buena conductaPHOTO— Foto tipo carnetOTHER— Documentación adicional
- Cada documento subido queda asociado a la solicitud con su tipo, nombre original, tamaño y fecha de carga.
- La pantalla muestra el estado de cada documento requerido (subido / pendiente) y resalta los faltantes.

Paso 4 — Declaración jurada y consentimiento
- El sistema muestra el texto completo de la declaración jurada de veracidad de datos y la política de privacidad.
- El aspirante debe tildar explícitamente los checkboxes de aceptación antes de continuar.
- Se registra la fecha y hora de aceptación.

Paso 5 — Pago del arancel y envío
- El sistema calcula el arancel de inscripción según el tipo de solicitud y muestra una boleta con número único (
BOL-YYYYMM-XXXXXX). - El aspirante puede abonar online (mediante Mercado Pago integrado) o presencialmente (en cuyo caso un operador confirmará el pago manualmente).
- Una vez confirmado el pago, el estado de la solicitud cambia a
PENDING_REVIEWy el aspirante recibe un email de confirmación con el número de solicitud. - La solicitud queda disponible en la bandeja de trabajo de los operadores de matrículas.

Consulta de estado (vista del aspirante)
- El aspirante autenticado accede a Mi Solicitud desde su panel.
- Ve el estado actual, el número de solicitud, la fecha de envío y el historial de cambios de estado con comentarios del operador.
- Si el estado es
REQUIRES_CHANGES, puede ver las observaciones del operador y subir los documentos corregidos.

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| string (email) | Sí | Único en el sistema; usado como credencial de acceso | |
| password | string | Sí | Mínimo 8 caracteres |
| firstName | string | Sí | Nombre del aspirante |
| lastName | string | Sí | Apellido del aspirante |
| dni | string | Sí (paso 1) | Único; tipos: DNI, LC, LE, Pasaporte |
| dniType | enum | Sí (paso 1) | DNI / LC / LE / PASAPORTE |
| cuitCuil | string (11 dígitos) | Sí (paso 1) | Validado con algoritmo dígito verificador |
| phone | string | Sí (paso 1) | Teléfono de contacto |
| birthDate | date | Sí (paso 1) | Fecha de nacimiento |
| gender | string | No | Género declarado |
| nationality | string | No | Nacionalidad |
| street / streetNumber | string | No | Domicilio particular |
| postalCode / city / province | string | No | Localización del domicilio |
| universityName | string | Sí (paso 2) | Institución donde obtuvo el título |
| graduationDate | date | Sí (paso 2) | Fecha de egreso |
| degreeTitle | string | Sí (paso 2) | Título obtenido |
| specialties | string[] | No | Especialidades declaradas |
| applicationType | enum | No | PROVISORIA o DEFINITIVA |
| documents | file[] | Sí (paso 3) | PDF/JPEG/PNG, máx. 5 MB cada uno |
Reglas de negocio
Email no verificado bloquea el avance
Mientras el email no esté verificado, el aspirante no puede guardar datos del formulario. El token de verificación tiene validez de 24 horas; vencido ese plazo, debe solicitar uno nuevo.
Documentos obligatorios para enviar
La solicitud no puede enviarse al colegio si faltan alguno de los 4 documentos obligatorios: DNI (frente y dorso), título universitario y analítico. El sistema muestra qué documentos faltan y bloquea el botón de envío.
Unicidad de DNI y CUIT/CUIL
Si el DNI o CUIT/CUIL ya existe en el sistema (incluso en usuarios dados de baja), el sistema rechaza el guardado con un error descriptivo. El caso debe ser analizado manualmente por un operador.
Progreso guardado automáticamente
El formulario multi-paso guarda el progreso paso a paso. El aspirante puede cerrar el navegador y retomar desde donde lo dejó. La solicitud permanece en estado DRAFT hasta que se envía con el pago confirmado.
Estados y transiciones
stateDiagram-v2
[*] --> DRAFT : registro exitoso
DRAFT --> DRAFT : completando pasos 1-4
DRAFT --> PENDING_PAYMENT : formulario completo, esperando pago
PENDING_PAYMENT --> PENDING_REVIEW : pago confirmado (online o manual)
PENDING_REVIEW --> UNDER_REVIEW : operador toma la solicitud
UNDER_REVIEW --> REQUIRES_CHANGES : operador solicita correcciones
REQUIRES_CHANGES --> UNDER_REVIEW : aspirante sube documentos corregidos
UNDER_REVIEW --> INTERNALLY_APPROVED : aprobación interna → matrícula provisoria
UNDER_REVIEW --> REJECTED : rechazo definitivo
INTERNALLY_APPROVED --> PENDING_MINISTRY : se eleva al Ministerio de Salud
PENDING_MINISTRY --> APPROVED : aprobación ministerial → colegiado definitivo
PENDING_MINISTRY --> REJECTED : rechazo ministerial
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
409 El email ya está registrado |
El email ya tiene una cuenta (activa o inactiva) | Usar "Recuperar contraseña" o contactar al Colegio para unificar registros |
409 El DNI ya está registrado en el sistema |
Otro usuario tiene ese DNI | El operador debe revisar si se trata de un duplicado o un error de carga |
400 El CUIT/CUIL ingresado no es válido |
El dígito verificador no coincide | Verificar que el número sea correcto; los guiones no son necesarios |
400 Token de verificación ha expirado |
Pasaron más de 24 horas desde el envío del email | Usar "Reenviar verificación" en la pantalla de login |
400 Faltan campos requeridos |
Se intentó guardar un paso sin completar todos los campos obligatorios | Completar los campos marcados en rojo antes de guardar |
| Archivo rechazado al subir | Tipo de archivo no permitido o supera 5 MB | Convertir a PDF/JPEG/PNG y reducir tamaño si supera el límite |
Preguntas frecuentes
¿Puedo modificar los datos después de enviar la solicitud?
Una vez enviada (estado PENDING_REVIEW), los datos ya no se pueden modificar directamente. Si el operador detecta un error, puede cambiar el estado a REQUIRES_CHANGES para que el aspirante corrija los documentos. Los datos personales solo se modifican mediante una solicitud formal al operador.
¿Qué significa solicitud de tipo PROVISORIA vs DEFINITIVA?
PROVISORIA es para quienes tienen el título pero aún no han completado el trámite de legalización ante el Ministerio de Salud. DEFINITIVA es para quienes ya tienen el título debidamente apostillado o legalizado. Ambas pueden presentarse; la diferencia afecta el flujo de aprobación ministerial posterior.
¿Cuánto tiempo tengo para completar el formulario?
No hay límite de tiempo para completar los pasos del formulario (la solicitud permanece en DRAFT indefinidamente). El único vencimiento es el token de verificación de email (24 horas) y la preferencia de pago online si se genera (24 horas).
¿Cómo sé si mi solicitud fue recibida correctamente?
Recibirás un email de confirmación con el número de solicitud (SOL-YYYY-XXXXXXXX) cuando el pago sea confirmado y la solicitud pase a PENDING_REVIEW. También podés consultar el estado en cualquier momento desde tu portal.
¿Puedo subir más de un archivo por tipo de documento? No. Cada tipo de documento admite un solo archivo. Si necesitás reemplazar un documento ya subido, deberás subir el nuevo archivo para el mismo tipo, que sobreescribirá el anterior.


Gestión de Matrículas
Descripción
El módulo de Gestión de Matrículas (UC-1.2) es el espacio de trabajo de los operadores y administradores para revisar, aprobar, rechazar y administrar las matrículas de los psicólogos colegiados. Centraliza el ciclo de vida completo de la matrícula: desde la solicitud inicial enviada por el aspirante hasta la emisión del certificado ministerial y la credencial digital con QR.
El proceso de aprobación tiene dos fases diferenciadas: una interna del Colegio (revisión documental y aprobación con asignación de número de matrícula provisoria) y una externa (presentación ante el Ministerio de Salud y aprobación de la matrícula definitiva). La fase interna habilita al profesional a ejercer con matrícula provisoria; la fase externa le otorga la matrícula definitiva con número correlativo definitivo. Ambas fases generan documentación oficial en PDF.
Adicionalmente, el módulo gestiona modificaciones de datos solicitadas por colegiados, suspensiones y reactivaciones de matrícula, y el historial completo de cambios de estado con auditoría. La credencial digital del profesional (generada con QRCode y verificable en una URL pública) se emite automáticamente al completar la matrícula definitiva.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| OPERADOR_MATRICULAS | Escritura — revisión, aprobación/rechazo, gestión de estado, modificaciones |
| ADMINISTRADOR | Administración completa — incluyendo baja definitiva, configuración de parámetros |
Flujo principal
Revisión de solicitudes (bandeja de trabajo)
- El operador accede a Matrículas → Solicitudes Pendientes. La bandeja muestra todas las solicitudes en estado
PENDING_REVIEWyUNDER_REVIEW, ordenadas por fecha de envío. - Cada fila muestra: número de solicitud, nombre del aspirante, tipo de solicitud (PROVISORIA / DEFINITIVA), fecha de envío y días transcurridos.
- El operador abre la solicitud haciendo clic en su número para ver el detalle completo: datos personales, datos académicos, documentos adjuntos y estado del pago del arancel.
- Si toma la solicitud para revisión, el estado cambia a
UNDER_REVIEWy queda asociada a ese operador. - El operador visualiza cada documento en el visor integrado (PDF inline o previsualización de imagen).

Aprobación interna — Matrícula Provisoria (Fase 1)
- Luego de revisar la documentación, el operador hace clic en Aprobar Internamente.
- El sistema genera automáticamente un número de matrícula provisoria (
provisionalNumber) con formato correlativo. - El estado de la solicitud pasa a
INTERNALLY_APPROVEDy el estado del profesional aPROVISIONAL. - Se genera el certificado para el Ministerio de Salud en PDF (usando PDFKit) con los datos del profesional y el número de matrícula provisoria.
- El operador descarga el PDF ministerial para presentarlo ante el organismo correspondiente.
- Se envía un email al aspirante notificando que su solicitud fue aprobada internamente y que se encuentra en trámite ante el Ministerio.

Solicitud de correcciones
- Si la documentación es incompleta o incorrecta, el operador hace clic en Solicitar Correcciones.
- Ingresa un comentario detallando qué documentos o datos deben corregirse.
- El estado cambia a
REQUIRES_CHANGESy se envía un email al aspirante con las observaciones. - El aspirante puede subir los documentos corregidos desde su portal. Al hacerlo, el estado vuelve a
UNDER_REVIEW.

Rechazo de solicitud
- Si la solicitud no cumple los requisitos y no es subsanable, el operador hace clic en Rechazar.
- Ingresa el motivo del rechazo (obligatorio).
- El estado cambia a
REJECTEDy se envía un email al aspirante con el motivo. - El arancel abonado queda registrado para gestión de devolución manual (no se devuelve automáticamente).

Aprobación definitiva — Matrícula Definitiva (Fase 2 — respuesta del Ministerio)
- Una vez recibida la resolución ministerial de aprobación, el operador registra la respuesta en el sistema.
- Ingresa el número de matrícula definitivo asignado por el Ministerio de Salud.
- El sistema actualiza el estado de la solicitud a
APPROVEDy el estado del profesional aAPPROVED. - Se genera la credencial digital del profesional:
- Se crea un código QR único (
PSICOLE-XXXXXXXXXXXXXXXX) asociado al profesional. - El QR apunta a la URL pública de verificación:
{FRONTEND_URL}/verificar/{qrCode}. - El PDF de credencial digital se genera con PDFKit incluyendo foto, datos, número de matrícula y QR.
- Se crea un código QR único (
- El profesional recibe un email con el enlace para descargar su credencial y con acceso a su portal de colegiado.
- El rol del usuario cambia de
ASPIRANTEaCOLEGIADOy se habilita su acceso completo al sistema.

Verificación pública de credencial (QR)
- Cualquier persona puede escanear el QR de la credencial del profesional con su teléfono.
- Es redirigido a la URL pública
{FRONTEND_URL}/verificar/{qrCode}(no requiere autenticación). - El sistema verifica el código QR y muestra los datos públicos del profesional: nombre, número de matrícula, estado (activo / suspendido), especialidades declaradas y fecha de vencimiento si aplica.

Gestión de profesionales matriculados
- El operador accede a Matrículas → Profesionales para ver el padrón completo.
- Puede filtrar por estado de matrícula, tipo (colegiado / prestador / aspirante), estado de pago y búsqueda por nombre, DNI o número de matrícula.
- Desde el detalle de cada profesional puede:
- Ver su ficha completa (datos personales, académicos, financieros).
- Suspender la matrícula (estado
SUSPENDED) por sanción o deuda. - Reactivar una matrícula suspendida.
- Registrar el fallecimiento (estado
DECEASED) para casos migrados del sistema legacy. - Iniciar el proceso de baja voluntaria (
DISCHARGED).

Aprobación de solicitudes de modificación de datos
- Cuando un colegiado solicita un cambio de datos desde su portal (dirección, teléfono, especialidades, etc.), el operador recibe una notificación en Matrículas → Modificaciones Pendientes.
- El operador revisa los datos actuales vs. los datos propuestos.
- Puede aprobar (los datos se actualizan en el sistema) o rechazar con un comentario.
- El colegiado recibe un email con la resolución.

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| enrollmentNumber | string | Sí (aprobación definitiva) | Número de matrícula definitiva asignado por el Ministerio |
| provisionalNumber | string | Auto | Generado por el sistema al aprobar internamente |
| enrollmentStatus | enum | Auto | Estado actual de la matrícula del profesional |
| enrollmentDate | date | Auto | Fecha de aprobación definitiva |
| enrollmentExpiryDate | date | No | Fecha de vencimiento de matrícula (si aplica) |
| qrCode | string | Auto | Código único PSICOLE-XXXXXXXXXXXXXXXX generado al aprobar definitivamente |
| rejectionReason | string (texto) | Sí al rechazar | Motivo del rechazo; enviado al aspirante por email |
| correctionNotes | string (texto) | Sí al pedir correcciones | Observaciones detalladas para el aspirante |
Reglas de negocio
Aprobación interna no es aprobación definitiva
Un profesional con matrícula PROVISIONAL puede ejercer pero no tiene número de matrícula definitivo. El proceso ministerial puede tardar semanas. El sistema mantiene ambos estados claramente diferenciados.
El QR es permanente e irrevocable
El código QR se genera una sola vez al aprobar definitivamente. Si la matrícula es suspendida, la URL de verificación seguirá siendo accesible pero mostrará el estado SUSPENDIDA. El QR no se regenera.
La suspensión no cancela deudas existentes
Suspender una matrícula cambia el estado del profesional pero no afecta las deudas pendientes. Las cuotas continúan generándose según la configuración de tipos de cuota hasta que el operador interrumpa la generación manualmente o se registre la baja.
Credencial digital habilitada solo para matriculados definitivos
La credencial con QR solo se genera para profesionales con estado APPROVED. Los que tienen matrícula PROVISIONAL no tienen credencial digital, aunque sí tienen acceso al portal de colegiado con funcionalidades limitadas.
Estados y transiciones
stateDiagram-v2
[*] --> PENDING : solicitud enviada y pagada
PENDING --> PROVISIONAL : aprobación interna del Colegio
PENDING --> REJECTED : rechazo definitivo
PROVISIONAL --> APPROVED : aprobación ministerial + número definitivo
PROVISIONAL --> REJECTED : rechazo ministerial
APPROVED --> SUSPENDED : suspensión por sanción o deuda
SUSPENDED --> APPROVED : reactivación por operador
APPROVED --> DISCHARGED : baja voluntaria o definitiva
SUSPENDED --> DISCHARGED : baja estando suspendido
APPROVED --> DECEASED : fallecimiento (legacy)
Leyenda de estados del profesional:
| Estado | Nombre visible | Descripción |
|---|---|---|
PENDING |
Pendiente de revisión | Solicitud recibida, en cola de revisión |
PROVISIONAL |
Matrícula Provisoria | Aprobado internamente; en trámite ministerial |
APPROVED |
Matriculado | Matrícula definitiva otorgada por el Ministerio |
REJECTED |
Rechazado | Solicitud rechazada definitivamente |
SUSPENDED |
Suspendido | Matrícula suspendida temporalmente |
DISCHARGED |
Dado de baja | Baja del padrón |
DECEASED |
Fallecido | Registrado post-mortem (migración legacy) |
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
| No aparece la solicitud en la bandeja | El aspirante no completó el pago del arancel | Verificar en la ficha de la solicitud el estado de pago; registrar pago manual si corresponde |
| El PDF ministerial no se genera | Faltan datos académicos en la solicitud | Verificar que los campos universityName, graduationDate y degreeTitle estén completos |
| El QR no se visualiza en la credencial | El profesional no tiene qrCode asignado |
Ir al detalle del profesional y usar Regenerar Credencial |
| Error al cambiar estado a SUSPENDED | El sistema intenta notificar por email pero el SMTP no está configurado | Verificar variables SMTP_* en .env del backend; el cambio de estado se puede forzar sin email desde el panel de administración |
| El profesional no puede iniciar sesión como COLEGIADO | El cambio de rol no se aplicó al aprobar | Verificar en Administración → Usuarios que el rol del usuario sea COLEGIADO y no ASPIRANTE |
Preguntas frecuentes
¿Cuánto tiempo queda en estado PROVISORIA una matrícula?
No hay un límite de tiempo automático. El estado PROVISIONAL persiste hasta que el operador registre la respuesta del Ministerio de Salud (positiva o negativa). El tiempo real depende del trámite ministerial, que puede extenderse varias semanas o meses.
¿Un profesional con matrícula PROVISORIA puede pagar cuotas?
Sí. Las cuotas se generan automáticamente para todos los profesionales con estado PROVISIONAL o APPROVED según la configuración del tipo de cuota. El tipo de cuota a aplicar (mensual novel, mensual plena) depende de los atributos del profesional configurados en el FeeType.
¿Qué datos son públicos en la verificación por QR? La URL de verificación pública muestra únicamente: nombre completo, número de matrícula, estado de la matrícula, especialidades declaradas y, si aplica, fecha de vencimiento. No muestra DNI, CUIT, dirección ni datos financieros.
¿Puede el aspirante subir más documentos después de que el operador solicite correcciones?
Sí. Cuando el estado es REQUIRES_CHANGES, el aspirante puede subir nuevos archivos para los tipos de documentos observados. Al guardar, el estado vuelve automáticamente a UNDER_REVIEW y el operador recibe una notificación.
¿Cómo se maneja una baja voluntaria?
El operador inicia el proceso desde Profesionales → [profesional] → Registrar Baja. Se registra la fecha de baja, el motivo y el estado pasa a DISCHARGED. Las deudas pendientes al momento de la baja quedan registradas para gestión de cobro posterior. El usuario conserva acceso al sistema solo para consultar su historial.
Renovación de Matrícula
Descripción
La Renovación de Matrícula es un trámite anual obligatorio para todos los colegiados. Consiste en la presentación de una Declaración Jurada en la que el profesional declara que continúa cumpliendo con los requisitos para el ejercicio de la profesión y que no tiene incompatibilidades sobrevinientes.
El proceso es gestionado por los operadores de matrículas, quienes revisan cada declaración jurada y la aprueban o rechazan. La aprobación extiende la vigencia de la matrícula por un año.
Roles con acceso
| Rol | Acceso |
|---|---|
COLEGIADO | Presenta su Declaración Jurada anual desde el portal de autogestión |
OPERADOR_MATRICULAS | Revisa, aprueba o rechaza las declaraciones juradas |
ADMIN | Acceso completo: revisa, aprueba, rechaza y configura parámetros de renovación |
Flujo de trabajo
- Convocatoria: El sistema notifica a los colegiados cuyo vencimiento de matrícula se aproxima (30 días antes) mediante email y notificación en la campanita.
- Presentación: El colegiado completa el formulario de Declaración Jurada desde
/mi-matricula/renovacion. Declara que no tiene incompatibilidades, adjunta documentación si corresponde y confirma sus datos de contacto. - Revisión: El operador de matrículas revisa la DJ en el panel
/admin/matricula/renovacion. Puede: aprobarla (si todo está correcto), solicitar correcciones (si falta documentación o hay errores) o rechazarla (si el colegiado no cumple los requisitos). - Aprobación: Al aprobarse, la fecha de expiración de la matrícula se extiende automáticamente por un año. El colegiado recibe una notificación de confirmación.
- Rechazo: Si se rechaza, el colegiado recibe el motivo y puede subsanar y volver a presentar.
Panel de administración
Ruta: /admin/matricula/renovacion — Componente: AdminMatriculaRenewal
- Bandeja de renovaciones pendientes con filtros por estado y fecha de vencimiento
- Visor de la Declaración Jurada presentada
- Historial de renovaciones anteriores por colegiado
- Estadísticas: renovaciones aprobadas, pendientes y rechazadas por período
- Configuración de plazo de anticipación de notificaciones desde Parámetros del Sistema
Preguntas frecuentes
¿Qué pasa si un colegiado no renueva a tiempo?
La matrícula pasa a estado SUSPENDED al día siguiente del vencimiento si no se presentó la DJ. El colegiado puede presentar la renovación fuera de término, pero deberá abonar la deuda acumulada más los recargos por mora para reactivar su matrícula.
¿Se requiere documentación adicional para la renovación? En general solo se requiere la Declaración Jurada. Sin embargo, si el colegiado cambió sus datos (domicilio, especialidad, etc.) debe actualizarlos antes o durante la renovación.
¿La renovación tiene costo? La renovación en sí no tiene un arancel específico, pero el colegiado debe tener sus cuotas al día para que la matrícula permanezca activa.


Finanzas
Descripción
NUEVO: La interfaz administrativa completa está ahora en el Módulo DINERO con 13 secciones: dashboard, cobranza, caja, conciliación, transferencias, planes de pago, débito automático, tarjetas sin asociar, salud de pagos, contabilidad, facturación, reportes y configuración. Esta sección documenta el modelo financiero y las reglas de negocio; la operación diaria se realiza desde el Módulo DINERO.
El módulo de Finanzas (UC-2.1) gestiona la economía de los colegiados: generación automática de cuotas, registro de pagos en todos los medios disponibles, emisión de recibos con numeración correlativa única, aplicación de descuentos y recargos por mora, y consulta de cuenta corriente por profesional.
La generación de cuotas es completamente automática mediante CRON jobs. El día 1 de cada mes a las 00:05 hs, el scheduler ejecuta el proceso de generación para todos los profesionales con estado APPROVED o PROVISIONAL. Cada profesional recibe una deuda del tipo de cuota que le corresponde (configurado en FeeTypes), con los descuentos aplicables ya calculados. Diariamente a las 00:01 hs, un segundo job actualiza el estado de las deudas vencidas de PENDING a OVERDUE.
Los recibos tienen numeración correlativa anual única con formato REC-YYYY-NNNNNN (por ejemplo, REC-2026-000042). Cada pago genera exactamente un recibo que puede ser descargado por el colegiado desde su portal o por el operador desde el backoffice. Los recibos anulados cambian a estado VOIDED pero se conservan en la base de datos para auditoría.
La cuenta corriente del profesional es un registro cronológico de todos los movimientos: débitos (cuotas generadas), créditos (pagos realizados) y el saldo resultante en cada operación. Es el libro mayor del vínculo financiero entre el profesional y el Colegio.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| OPERADOR_FINANZAS | Escritura — registro de pagos, emisión de recibos, gestión de deudas |
| ADMINISTRADOR | Administración completa — anulación de recibos, ajustes manuales, configuración |
| COLEGIADO | Lectura — vista de su propia cuenta corriente, deudas y recibos |
Flujo principal
Generación automática de cuotas (CRON mensual)
- El scheduler ejecuta
generateQuotasForPeriod()el día 1 de cada mes a las 00:05 hs (configurable con variableQUOTA_GENERATION_CRON, por defecto5 0 1 * *). - El job obtiene todos los profesionales activos con estado
APPROVEDoPROVISIONAL. - Para cada profesional, obtiene el FeeType (tipo de cuota) configurado y vigente para el período.
- Calcula los descuentos aplicables en orden de prioridad:
- Débito automático (
hasDirectDebit = true): descuento configurable, por defecto 30% aplicado sobre el monto base. - Jubilado (
isRetired = true): descuento configurable, por defecto 50% aplicado sobre el remanente luego del descuento por débito. - Beneficio parental (paternidad/maternidad activo): porcentaje configurado en el beneficio, aplicado sobre el remanente.
- Débito automático (
- Verifica que no exista ya una deuda para ese profesional, tipo de cuota y período (idempotencia).
- Crea el registro de
Debtcon: monto base, descuento total, monto final, período (YYYY-MM), fecha de vencimiento (día 10 del mes generado) y estadoPENDING. - Crea la transacción correspondiente en la cuenta corriente del profesional (débito).
- Envía un email de notificación al profesional (si tiene
emailNotifications = true). - Al finalizar, envía un email de resumen al administrador con el resultado del proceso (total generado, errores si los hubo).

Actualización de deudas vencidas (CRON diario)
- El scheduler ejecuta
updateOverdueDebts()todos los días a las 00:01 hs (1 0 * * *, configurable conOVERDUE_UPDATE_CRON). - Busca todas las deudas en estado
PENDINGcuyadueDatesea menor a la fecha actual. - Actualiza el estado a
OVERDUE. - Las deudas vencidas empiezan a acumular recargos por mora calculados en tiempo real al momento de cada consulta o pago.

Recordatorios de pago y avisos de mora (CRONs de email)
- Recordatorios previos al vencimiento: diariamente a las 09:00 hs, el sistema envía emails a profesionales con deudas que vencen en los próximos 5 días (configurable con
PAYMENT_REMINDER_DAYS). - Avisos de mora: todos los lunes a las 10:00 hs, el sistema envía avisos a profesionales con deudas en estado
OVERDUE.

Registro manual de pago (operador en ventanilla o teléfono)
- El operador de finanzas accede a Finanzas → Registrar Pago o desde el perfil del profesional.
- Selecciona al profesional (búsqueda por nombre, DNI o número de matrícula).
- El sistema muestra todas las deudas pendientes y vencidas del profesional con sus montos y recargos calculados.
- El operador selecciona las deudas a pagar y el método de pago:
CASH— EfectivoTRANSFER— Transferencia bancariaDEBIT_CARD— Tarjeta de débitoCREDIT_CARD— Tarjeta de créditoNAVE— Pago online NAVE (Banco Galicia)
- Si el método incluye una referencia externa (número de transferencia, número de operación), la ingresa en el campo de referencia.
- Puede aplicar un descuento por pago anticipado adicional si el FeeType lo permite.
- El sistema calcula el total final incluyendo todos los descuentos y recargos por mora vigentes.
- Al confirmar, el sistema:
- Crea los registros de
Payment(uno por cada deuda incluida en el pago). - Actualiza el estado de cada deuda a
PAIDcon la fecha del pago. - Genera el recibo con número correlativo
REC-YYYY-NNNNNN. - Registra la transacción de crédito en la cuenta corriente del profesional.
- Envía el recibo por email al profesional si tiene notificaciones habilitadas.
- Crea los registros de
- El operador puede descargar e imprimir el recibo inmediatamente.

Consulta de deudas de un profesional
- El operador accede al perfil del profesional y navega a la pestaña Finanzas.
- Ve el resumen de cuenta: total adeudado, cantidad de cuotas pendientes, cantidad de cuotas vencidas y saldo de cuenta corriente.
- Puede filtrar las deudas por estado (PENDIENTE, VENCIDA, PAGADA, ANULADA) y por período.
- Al expandir cada deuda, ve el detalle: concepto, período, monto base, descuentos aplicados, monto final y recargo por mora calculado al momento de la consulta.

Cuenta corriente del profesional
- El operador (o el propio colegiado desde su portal) accede a Estado de Cuenta.
- Se muestra un registro cronológico de todos los movimientos: débitos (cuotas generadas, ajustes), créditos (pagos, descuentos) y el saldo corrido en cada operación.
- Cada línea indica: fecha, tipo de movimiento, descripción, monto (débito o crédito) y saldo acumulado.
- Se puede exportar a PDF o CSV para el período seleccionado.

Anulación de recibo
- Solo el administrador puede anular recibos (
ADMIN). - Accede a Finanzas → Recibos → [recibo] → Anular.
- Ingresa el motivo de anulación (obligatorio).
- El estado del recibo pasa a
VOIDED. - Las deudas asociadas al recibo vuelven a estado
PENDINGpara ser cobradas nuevamente. - Se crea una transacción de reversa en la cuenta corriente del profesional.

Generación manual de cuotas
- Si por algún motivo el CRON no ejecutó correctamente, el administrador puede generar cuotas en forma manual desde Administración → Tareas Programadas → Ejecutar Ahora.
- También puede crear una deuda individual para un profesional desde Finanzas → Nueva Deuda, especificando el tipo de cuota, período, monto y fecha de vencimiento.

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| professionalId | UUID | Sí | Profesional al que se asigna la deuda o el pago |
| feeTypeId | UUID | Sí (generación) | Tipo de cuota aplicado (ver módulo FeeTypes) |
| period | string YYYY-MM |
Sí (cuotas) | Período al que corresponde la cuota |
| amount | decimal | Sí | Monto base sin descuentos |
| discount | decimal | Auto | Suma de todos los descuentos aplicados |
| finalAmount | decimal | Auto | amount - discount; monto que debe pagar el profesional |
| dueDate | date | Sí | Fecha de vencimiento; por defecto día 10 del mes |
| status | enum | Auto | PENDING / PAID / OVERDUE / CANCELLED |
| method | enum | Sí (pago) | CASH / TRANSFER / DEBIT_CARD / CREDIT_CARD / NAVE / MERCADO_PAGO / PAYWAY / MODO |
| externalId | string | No (pago) | Número de operación / referencia de transferencia |
| receiptNumber | string REC-YYYY-NNNNNN |
Auto | Generado correlativamente al confirmar el pago |
Reglas de negocio
Idempotencia de generación de cuotas
Si el CRON se ejecuta más de una vez en el mismo mes (por error o ejecución manual), el sistema verifica la existencia de una deuda para el mismo profesional, tipo de cuota y período antes de crear una nueva. Si ya existe, la omite sin error. Esto garantiza que no se generen cuotas duplicadas.
Recargos por mora calculados en tiempo real
El recargo por mora no se almacena como campo fijo en la deuda sino que se calcula en cada consulta según la configuración vigente de LateFeeConfig (porcentaje, período de gracia en días, si es acumulativo por períodos de N días y monto máximo). Esto permite modificar la regla de mora sin afectar el monto base de las deudas existentes.
Descuentos aplicados en cascada
Los descuentos se aplican en orden: primero el de débito automático sobre el monto base, luego el de jubilado sobre el remanente, luego el de beneficio parental sobre el remanente resultante. No son porcentajes sumados sino aplicados en cascada.
Numeración correlativa de recibos
La numeración REC-YYYY-NNNNNN se genera con una consulta al último recibo del año en curso. En entornos de alta concurrencia, es posible que dos recibos generados simultáneamente reciban el mismo número. Se recomienda ejecutar las confirmaciones de pago de forma secuencial o agregar un control de unicidad a nivel de base de datos.
Descuento por débito automático
El campo hasDirectDebit en el profesional activa el descuento automáticamente al generar la cuota. Si el profesional se adhiere al débito después de que la cuota fue generada, el descuento no se aplica retroactivamente; se aplicará desde la próxima generación.
Estados y transiciones
stateDiagram-v2
[*] --> PENDING : CRON genera cuota
PENDING --> OVERDUE : CRON diario detecta vencimiento
PENDING --> PAID : pago registrado (manual u online)
OVERDUE --> PAID : pago registrado con recargo por mora
PENDING --> CANCELLED : anulación administrativa
OVERDUE --> CANCELLED : anulación administrativa
PAID --> PENDING : anulación del recibo (reversión)
Estados de deuda:
| Estado | Descripción |
|---|---|
PENDING |
Generada y vigente, dentro del plazo |
OVERDUE |
Venció la fecha de vencimiento; acumula recargo por mora |
PAID |
Pagada; tiene recibo asociado |
CANCELLED |
Anulada administrativamente; no requiere pago |
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
| CRON de generación no ejecutó | Variable ENABLE_SCHEDULER=false en .env |
Verificar la variable de entorno y reiniciar el backend; ejecutar manualmente desde el panel si es urgente |
| Recibo sin número (receiptNumber vacío) | Concurrencia al generar dos pagos simultáneos | El recibo queda sin número; el administrador debe asignar uno manual desde la edición del recibo |
| Descuento no aplicado al profesional jubilado | El campo isRetired no está marcado en el perfil |
El operador debe actualizar el perfil del profesional y regenerar la cuota del mes afectado |
| Deuda aparece en OVERDUE el mismo día de vencimiento | El CRON corre a las 00:01 hs y la dueDate ya venció |
Comportamiento esperado; la deuda vence a las 00:00 hs del día indicado |
403 No tiene permisos para anular recibos |
El usuario no tiene rol ADMIN |
Solo el ADMIN puede anular recibos; el operador debe elevar el pedido al administrador |
| Email de notificación no enviado | SMTP no configurado o emailNotifications = false en el profesional |
Verificar configuración SMTP y preferencias de notificación del profesional |
Preguntas frecuentes
¿Cuándo se genera la cuota del mes siguiente?
El día 1 de cada mes a las 00:05 hs en forma automática. El período de la cuota corresponde al mes en curso (ej: el 1 de marzo se genera la cuota de marzo 2026-03).
¿Qué pasa si un profesional tiene el débito automático pero la cuota ya fue generada sin descuento? El descuento por débito se aplica en el momento de la generación. Si el profesional adhirió al débito después del 1 del mes, la cuota ya generada no tiene el descuento; solo las cuotas generadas en meses siguientes lo incluirán. El operador puede anular la cuota y crear una nueva manualmente con el descuento aplicado.
¿Se puede pagar una parte de una deuda? No. Los pagos son por el total de cada deuda seleccionada. No se admiten pagos parciales de una deuda individual.
¿Los recargos por mora se cobran al colegiado online también? Sí. El portal de pagos online calcula los recargos en tiempo real y los incluye en el monto total cobrado por Mercado Pago. El recibo generado detalla el monto base, el recargo y el total.
¿Cómo sé si el CRON se ejecutó correctamente? El panel Administración → Tareas Programadas muestra la fecha y hora de la última ejecución de cada job, el resultado (éxito / error) y los detalles de la ejecución. También se puede revisar el log de la aplicación en busca de mensajes del scheduler.
¿Puede el operador de finanzas modificar el monto de una deuda existente?
No directamente. El flujo correcto es anular la deuda existente (cambiar a CANCELLED) y crear una nueva con el monto correcto. Solo el administrador puede realizar ajustes manuales directos sobre deudas existentes.


Pagos Online
Descripción
El módulo de Pagos Online (UC-2.2) permite a los colegiados abonar sus cuotas y deudas desde cualquier dispositivo con conexión a internet, sin necesidad de concurrir al Colegio. PSICOLE integra múltiples pasarelas de pago a través de una capa de abstracción (paymentGatewayService): Mercado Pago como proveedor principal, y soporte para NAVE (Banco Galicia), Payway y MODO. El proveedor por defecto es configurable desde los Parámetros del Sistema → PAYMENTS. Las credenciales de los gateways (MercadoPago, NAVE, Payway) se gestionan en esa misma sección y se cifran con AES-256-CBC antes de guardarse.
El flujo de pago sigue el patrón checkout externo con webhook de confirmación: el sistema genera una preferencia de pago en la pasarela seleccionada, redirige al colegiado al checkout del proveedor (donde no se almacenan datos de tarjeta en PSICOLE), y espera la notificación de confirmación a través de un webhook. Una vez confirmado el pago por la pasarela, el sistema procesa todo en una transacción de base de datos atómica: marca las deudas como pagadas, genera el recibo con número correlativo, registra el movimiento en cuenta corriente y envía la notificación al colegiado.
Las preferencias de pago tienen una vigencia de 24 horas. Si el colegiado no completa el pago en ese plazo, la preferencia expira y debe generarse una nueva. El sistema es idempotente ante webhooks duplicados: si el pago ya fue procesado (estado APPROVED), un segundo webhook con el mismo external_reference es ignorado sin error.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| COLEGIADO | Acceso completo — ver deudas, iniciar pago, consultar historial, descargar recibos |
| OPERADOR_FINANZAS | Lectura — consultar preferencias de pago y estado de transacciones online |
| ADMINISTRADOR | Administración completa — configuración de proveedores, consulta de webhooks |
Flujo principal
Ver deudas pendientes (Mi Cuenta)
- El colegiado inicia sesión y navega a Mi Cuenta → Mis Pagos o hace clic en el banner de deuda del panel principal.
- El sistema llama a
GET /api/v1/online-payment/my-accounty obtiene todas las deudas con estadoPENDINGuOVERDUE. - Cada deuda muestra: tipo de cuota, período (
YYYY-MM), monto original, descuentos aplicados, monto final, fecha de vencimiento, estado y recargo por mora calculado al momento de la consulta. - El resumen superior muestra el total adeudado (incluyendo moras), cantidad de cuotas pendientes y cantidad vencidas.
- Si no hay proveedores de pago configurados, el botón Pagar Online está deshabilitado y se muestra un mensaje indicando que el pago debe realizarse presencialmente.

Selección de deudas y generación de preferencia
- El colegiado marca con el checkbox las deudas que desea pagar (puede seleccionar una o varias).
- El sistema actualiza en tiempo real el total seleccionado incluyendo los recargos por mora de cada deuda marcada.
- Hace clic en Pagar Seleccionados.
- Si hay más de un proveedor disponible, se muestra un selector de medio de pago (Mercado Pago, NAVE, etc.). Si solo hay uno configurado, se omite este paso.
- El frontend llama a
POST /api/v1/online-payment/preferencecondebtIds(array de IDs) yprovider(código del proveedor, opcional). - El backend valida:
- Que el colegiado tenga al menos una deuda seleccionada.
- Que todas las deudas pertenezcan al profesional autenticado.
- Que todas estén en estado
PENDINGuOVERDUE(no pagadas). - Que el proveedor seleccionado esté disponible y configurado.
- Calcula el monto total:
subtotal + totalRecargosPosMora. - Crea la preferencia en la API del proveedor de pago con:
- Items (una línea por deuda con descripción y monto).
- Datos del pagador (nombre, apellido, email, DNI).
- URLs de retorno (
back_urls): éxito, fallo, pendiente. external_referenceúnico:PSICOLE-{timestamp36}-{random8hex}.notification_url: URL del webhook del sistema.- Expiración: 24 horas desde la generación.
- Guarda la preferencia en la tabla
online_payment_preferencescon estadoPENDING. - Devuelve al frontend el
initPoint(URL del checkout del proveedor) y el resumen.

Checkout en Mercado Pago (o proveedor seleccionado)
- El frontend redirige al colegiado al
initPointdel proveedor (o abre el checkout en un iframe/modal según el proveedor). - El colegiado completa el pago en la interfaz del proveedor: selecciona el medio (tarjeta de crédito, débito, transferencia CBU, billetera digital, etc.) e ingresa los datos requeridos.
- PSICOLE no almacena en ningún momento datos de tarjeta ni credenciales bancarias.
- Al completar el pago, el proveedor redirige al colegiado a la URL de éxito/fallo/pendiente configurada.
Webhook de confirmación de pago
- El proveedor de pago envía una notificación POST al endpoint
POST /api/v1/online-payment/webhookcon eltypey eldata.iddel pago. - El backend responde inmediatamente con HTTP 200 (independientemente del resultado del procesamiento) para evitar reintentos innecesarios del proveedor.
- Si el
typeno espayment, la notificación se ignora. - El backend consulta la API del proveedor para obtener los datos completos del pago (estado, monto,
external_reference). - Busca la preferencia local por
external_reference. Si no existe, ignora el webhook. - Según el estado devuelto por el proveedor:
approved: se ejecutaprocessApprovedPayment()(ver siguiente flujo).pending/in_process: la preferencia pasa a estadoPROCESSING; el pago está en revisión por el proveedor.rejected/cancelled: la preferencia pasa a estadoREJECTEDoCANCELLED.refunded: se ejecuta el proceso de reembolso (processRefund()).

Procesamiento de pago aprobado
Cuando el webhook indica approved, el sistema ejecuta una transacción atómica en la base de datos:
- Verifica que la preferencia no tenga ya estado
APPROVED(idempotencia). - Obtiene todas las deudas incluidas en la preferencia (
debtIds). - Genera el número de recibo correlativo
REC-YYYY-NNNNNN(consulta el último del año y suma 1). - Crea el recibo (
Receipt) con: número, profesionalId, monto total, métodoMERCADO_PAGO(u otro), referencia externa (ID del pago en la pasarela), detalle de conceptos en JSON, monto base, descuentos, recargos, estadoACTIVEyissuedBy: 'SYSTEM'. - Para cada deuda incluida: crea el registro de
Paymenty actualiza la deuda a estadoPAIDcon la fecha del pago. - Crea la transacción de crédito en la cuenta corriente del profesional (decrementa el saldo deudor).
- Crea una notificación interna al colegiado: "Se ha confirmado su pago por $X. Recibo N° REC-YYYY-NNNNNN".
- Actualiza la preferencia a estado
APPROVEDcon el ID del pago del proveedor. - Envía el email de confirmación al colegiado con el PDF del recibo adjunto.

Descarga de recibos
- El colegiado accede a Mi Cuenta → Mis Recibos (
GET /api/v1/online-payment/my-receipts). - Se lista el historial paginado de recibos activos ordenados por fecha descendente.
- Al hacer clic en Descargar, el sistema genera el PDF del recibo en tiempo real con PDFKit (membrete del Colegio, datos del profesional, conceptos, monto, método de pago, número de recibo y código de verificación).
- Los recibos están disponibles indefinidamente.

Verificar configuración de proveedores (Admin)
- El administrador puede consultar
GET /api/v1/online-payment/configpara ver los proveedores disponibles, el proveedor por defecto y si alguno está configurado. - La configuración de cada proveedor se gestiona mediante variables de entorno y parámetros del sistema (Access Token de Mercado Pago, credenciales NAVE, etc.).

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| debtIds | UUID[] | Sí | Array de IDs de deudas a pagar; mínimo 1 |
| provider | string | No | Código del proveedor: MERCADO_PAGO, NAVE, PAYWAY, MODO. Si se omite, se usa el proveedor por defecto |
| externalReference | string | Auto | PSICOLE-{timestamp36}-{random8hex}; único por preferencia |
| preferenceId | string | Auto | ID de la preferencia en el sistema del proveedor |
| initPoint | URL | Auto | URL del checkout del proveedor; válida por 24 horas |
| totalAmount | decimal | Auto | subtotal + lateFeeAmount |
| subtotal | decimal | Auto | Suma de finalAmount de cada deuda seleccionada |
| lateFeeAmount | decimal | Auto | Suma de recargos por mora calculados en el momento |
| receiptNumber | string REC-YYYY-NNNNNN |
Auto | Generado al confirmar el pago aprobado |
Reglas de negocio
Preferencias expiran en 24 horas
Una preferencia de pago generada es válida por 24 horas. Si el colegiado no completa el pago en ese tiempo (por ejemplo, abre el checkout y no finaliza), deberá iniciar el proceso nuevamente. La preferencia vencida queda en estado PENDING en la base de datos; no se cancela automáticamente.
El recargo por mora se cobra sin excepción
Si alguna de las deudas seleccionadas tiene estado OVERDUE, el recargo por mora se calcula e incluye en el total cobrado. No es posible pagar la deuda vencida sin el recargo. La regla de mora vigente al momento del pago es la que aplica.
Solo deudas propias
Un colegiado solo puede pagar sus propias deudas. El backend valida que todos los debtIds enviados pertenezcan al profesional asociado al usuario autenticado. Cualquier intento de pagar deudas ajenas resulta en 400 o 404.
Webhook siempre responde 200
El endpoint de webhook devuelve HTTP 200 incluso si ocurre un error interno al procesar el pago. Esto es intencional para evitar que el proveedor de pago reintente la notificación indefinidamente. Los errores quedan registrados en los logs del servidor para revisión manual.
Idempotencia de pagos aprobados
Si el proveedor envía el mismo webhook más de una vez (comportamiento normal ante timeouts de red), el sistema detecta que la preferencia ya tiene estado APPROVED y no vuelve a procesar el pago. Ninguna deuda se marca como pagada dos veces ni se genera un segundo recibo.
Ambiente sandbox para pruebas
En entornos de desarrollo/staging, el campo sandboxInitPoint contiene la URL del checkout de pruebas de Mercado Pago. Usar este URL en lugar de initPoint para realizar pruebas sin procesar pagos reales.
Estados y transiciones de la preferencia de pago
stateDiagram-v2
[*] --> PENDING : POST /preference exitoso
PENDING --> PROCESSING : webhook pending / in_process
PENDING --> APPROVED : webhook approved
PENDING --> REJECTED : webhook rejected
PENDING --> CANCELLED : webhook cancelled
PROCESSING --> APPROVED : webhook approved (resolución tardía)
PROCESSING --> REJECTED : webhook rejected (resolución tardía)
APPROVED --> [*] : pago procesado; recibo emitido
REJECTED --> [*] : el colegiado puede iniciar una nueva preferencia
CANCELLED --> [*] : el colegiado puede iniciar una nueva preferencia
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
503 No hay proveedores de pago configurados |
No hay ninguna pasarela configurada con credenciales válidas | El administrador debe configurar MERCADOPAGO_ACCESS_TOKEN (u otras credenciales) en .env y reiniciar el backend |
400 Debe seleccionar al menos una deuda para pagar |
El array debtIds llegó vacío al backend |
Verificar que el frontend envíe correctamente el array; si el problema persiste, limpiar cache del navegador |
400 Algunas deudas ya fueron pagadas o no existen |
Una deuda del array fue pagada entre que el colegiado la vio y confirmó el pago | Refrescar la lista de deudas y seleccionar nuevamente |
| El colegiado pagó pero la deuda sigue como PENDING | El webhook aún no llegó o llegó con error | Esperar unos minutos (MP puede tardar en notificar); revisar el log de webhooks; si el pago fue confirmado por el proveedor, procesarlo manualmente |
| El recibo no se recibió por email | SMTP no configurado o dirección de email incorrecta | Verificar configuración SMTP en .env; el colegiado puede descargar el recibo desde Mis Recibos aunque el email haya fallado |
initPoint expiró antes de que el colegiado pagara |
Pasaron más de 24 horas desde que se generó la preferencia | El colegiado debe iniciar el proceso de pago nuevamente desde Mis Pagos |
| Error interno en webhook — pago procesado pero sin recibo | Falla en la generación del número correlativo por concurrencia | El administrador debe identificar el pago en Finanzas → Pagos Online y generar el recibo manualmente |
Preguntas frecuentes
¿PSICOLE guarda mis datos de tarjeta de crédito? No. PSICOLE nunca accede ni almacena datos de tarjeta ni credenciales bancarias. El pago se procesa íntegramente en la plataforma del proveedor (Mercado Pago, NAVE, etc.). PSICOLE solo recibe la confirmación de pago aprobado a través del webhook.
¿Cuánto tarda en procesarse un pago online?
En la mayoría de los casos, el webhook de confirmación llega en segundos. En algunos medios de pago (como transferencias bancarias), puede tardar hasta 48 horas hábiles. Mientras tanto, la preferencia permanece en estado PROCESSING y la deuda en PENDING u OVERDUE.
¿Qué pasa si el pago fue aprobado por Mercado Pago pero PSICOLE no lo registró?
Esto puede ocurrir si el webhook falló. El administrador puede consultar el external_reference en el panel de Mercado Pago, compararlo con la preferencia en PSICOLE y ejecutar el procesamiento manual del pago desde el backoffice.
¿Puedo pagar con tarjeta de crédito en cuotas? Depende de la configuración de la cuenta de Mercado Pago del Colegio. PSICOLE no controla esta configuración; es el proveedor quien habilita o no las cuotas. El colegiado verá las opciones disponibles directamente en el checkout del proveedor.
¿Por qué el monto que me cobra Mercado Pago es mayor al que aparece en PSICOLE? Mercado Pago puede aplicar su propio interés financiero según el medio de pago elegido (tarjeta de crédito con cuotas, por ejemplo). El monto mostrado en PSICOLE es el monto de la deuda más el recargo por mora del Colegio; cualquier interés adicional del medio de pago es cargo del proveedor, no del Colegio.
¿Puedo ver el historial de pagos online en el backoffice? Sí. El administrador y el operador de finanzas pueden acceder a Finanzas → Pagos Online para ver todas las preferencias generadas, su estado, el proveedor utilizado, los montos y los IDs de pago del proveedor.


Conciliación Bancaria
Descripción
La conciliación bancaria es el proceso mediante el cual el sistema compara los movimientos registrados en el extracto bancario con los pagos registrados en PSICOLE, identificando correspondencias y detectando diferencias. Este módulo permite importar extractos en formato CSV o Excel directamente desde el banco, reduciendo la carga manual y el riesgo de errores.
El motor de matching automático analiza cada transacción del extracto y busca pagos pendientes de conciliar utilizando criterios configurables: monto exacto, referencia de comprobante, fecha y datos del titular. Las transacciones que no puedan asociarse automáticamente quedan en estado "pendiente" para resolución manual por parte del operador de finanzas.
Cada proceso de conciliación se organiza en sesiones de conciliación, que agrupan un extracto importado junto con todos los emparejamientos (automáticos y manuales) realizados sobre él. Las sesiones quedan auditadas con fecha, usuario y justificación de cada decisión.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| ADMIN | Acceso completo: importar, conciliar, revertir, ver auditoría |
| OPERADOR_FINANZAS | Importar extracto, conciliar automática y manualmente, cerrar sesión |
Flujo principal
1. Importar extracto bancario
- Ir a Finanzas → Conciliación Bancaria → Nueva Sesión.
- Seleccionar el banco de origen en el desplegable (ej. Banco Nación, Santander, Galicia).
- Hacer clic en Subir Archivo y seleccionar el archivo
.csvo.xlsxexportado desde el homebanking. - El sistema valida el formato del archivo; si hay errores de estructura, se muestra el detalle de las filas con problemas.
- Confirmar el período del extracto (fecha desde / fecha hasta) y hacer clic en Importar.
- El sistema crea la sesión de conciliación con estado
ABIERTAy lista todas las transacciones importadas.

2. Matching automático
- Desde la sesión abierta, hacer clic en Ejecutar Matching Automático.
- El sistema procesa cada transacción del extracto y aplica las reglas de matching configuradas (ver sección de Reglas de Negocio).
- Al finalizar, se muestra un resumen: cantidad de transacciones emparejadas, monto total conciliado y cantidad de transacciones sin match.
- Las transacciones emparejadas automáticamente quedan en estado
CONCILIADO_AUTOy el pago asociado en PSICOLE se marca como confirmado. - Revisar el resumen y avanzar al matching manual para las restantes.

3. Matching manual
- En la sesión, filtrar por estado
PENDIENTEpara ver las transacciones sin match automático. - Seleccionar una transacción del extracto; el panel derecho mostrará los pagos candidatos sugeridos por similitud.
- Revisar los candidatos y hacer clic en Emparejar junto al pago correcto.
- Si no existe un pago en el sistema para esa transacción, seleccionar una de las acciones alternativas:
- Marcar como No Identificado: la transacción queda registrada pero sin pago asociado.
- Crear Pago Manual: genera un nuevo pago en el sistema vinculado a la transacción.
- Ignorar / Excluir: excluye la transacción de la conciliación (ej. comisiones bancarias).
- En todos los casos se requiere ingresar una justificación en el campo de texto obligatorio.
- Repetir hasta resolver todas las transacciones pendientes.

4. Cerrar sesión de conciliación
- Una vez resueltas todas las transacciones (o decidido ignorar las irresolubles), hacer clic en Cerrar Sesión.
- El sistema muestra el resumen final: total importado, total conciliado, total no identificado, diferencia.
- Si la diferencia es cero o está dentro del umbral configurado, confirmar el cierre.
- La sesión pasa a estado
CERRADAy queda disponible en el historial con todos sus datos de auditoría. - Se genera automáticamente el informe de cierre descargable en PDF.

5. Consultar auditoría
- Ir a Finanzas → Conciliación Bancaria → Historial de Sesiones.
- Seleccionar la sesión a auditar y hacer clic en Ver Detalle.
- La vista de auditoría muestra: usuario que realizó cada acción, timestamp, estado anterior y nuevo, y justificación ingresada.
- Usar los filtros por usuario, fecha o tipo de acción para acotar resultados.
- Exportar el log de auditoría en CSV si se requiere para revisión externa.

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| Banco | Selección | Sí | Entidad bancaria del extracto importado |
| Archivo | Archivo (.csv/.xlsx) | Sí | Extracto exportado desde homebanking |
| Fecha desde | Fecha | Sí | Inicio del período del extracto |
| Fecha hasta | Fecha | Sí | Fin del período del extracto |
| Justificación (match manual) | Texto libre | Sí | Motivo del emparejamiento o exclusión |
| Referencia de transacción | Texto | No | Número de referencia del banco (facilita matching) |
Reglas de negocio
Criterios de matching automático
El motor aplica coincidencia por: (1) monto exacto ± tolerancia configurable, (2) referencia bancaria que contenga el número de comprobante PSICOLE, (3) fecha de transacción dentro de la ventana de ±3 días hábiles del pago registrado. Los tres criterios deben cumplirse simultáneamente para que el match sea automático.
Sesiones solapadas
El sistema no permite importar un extracto cuyo período se solape con una sesión ya cerrada del mismo banco. Si existe solapamiento, se notifica al operador y se debe verificar si el extracto es un duplicado o cubre un subperíodo diferente.
Reversión de match
Solo el rol ADMIN puede revertir un emparejamiento ya realizado. La reversión requiere justificación y queda registrada en el log de auditoría. No se pueden revertir matches de sesiones ya cerradas sin reabrirlas.
Sesión sin cerrar
Si una sesión queda abierta por más de 30 días, el sistema envía una alerta automática al ADMIN y bloquea la creación de nuevas sesiones para ese banco hasta que la existente sea cerrada o descartada.
Tolerancia de monto
La tolerancia de diferencia de monto para matching automático es configurable en Administración → Parámetros del Sistema (valor por defecto: $0,00, es decir, coincidencia exacta).
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
FORMATO_EXTRACTO_INVALIDO |
El archivo CSV/Excel no corresponde al formato esperado para el banco seleccionado | Verificar que el banco seleccionado coincida con el formato del archivo. Consultar el listado de formatos soportados en Administración |
PERIODO_SOLAPADO |
El extracto importado cubre fechas ya conciliadas en una sesión anterior | Revisar las sesiones existentes y ajustar el período del nuevo extracto |
TRANSACCION_DUPLICADA |
Una transacción del extracto ya existe en una sesión anterior (mismo banco, monto, fecha y referencia) | El sistema bloquea la importación del duplicado; verificar si el extracto fue importado previamente |
SESION_BLOQUEADA |
Hay una sesión abierta para ese banco hace más de 30 días | Resolver o descartar la sesión antigua antes de crear una nueva |
MATCH_SIN_JUSTIFICACION |
Se intentó guardar un match manual sin ingresar justificación | Completar el campo de justificación antes de confirmar el emparejamiento |
ARCHIVO_VACIO |
El archivo importado no contiene transacciones | Verificar que el extracto del homebanking corresponda al período con movimientos |
Preguntas frecuentes
¿Qué formatos de archivo se soportan?
Se soportan archivos .csv (separado por coma o punto y coma) y .xlsx. El sistema reconoce automáticamente el formato según el banco seleccionado. Si el banco no está en la lista, contactar al administrador para configurar un nuevo perfil de importación.
¿Qué pasa si el mismo pago aparece en dos extractos? El sistema detecta la transacción como duplicada durante la importación y la bloquea. Solo puede existir un emparejamiento por pago en PSICOLE. Si se requiere corregir un emparejamiento previo, el ADMIN debe revertirlo desde la sesión original.
¿Puedo conciliar pagos de Mercado Pago? Los pagos procesados por Mercado Pago se concilian automáticamente mediante el webhook de notificaciones. El módulo de conciliación bancaria está diseñado para extractos de cuentas bancarias tradicionales. Ver módulo Pagos Online para el flujo de MP.
¿Se puede reabrir una sesión cerrada? Solo el ADMIN puede reabrir una sesión cerrada, siempre que no existan sesiones posteriores para el mismo banco que dependan de ella. La reapertura queda auditada.
¿Qué significa "No Identificado"? Una transacción marcada como "No Identificado" es un ingreso o egreso en el extracto que no tiene correspondencia con ningún pago en PSICOLE. Debe ser investigada manualmente con el banco para determinar su origen.
Cursos y Capacitación
Descripción
El módulo de Cursos y Capacitación gestiona la oferta formativa del Colegio: talleres, jornadas, seminarios y cursos de actualización profesional. Soporta tres modalidades —presencial, virtual e híbrida— con configuración independiente de cupos, aula/link de videoconferencia y cronograma de encuentros.
Las inscripciones incluyen un sistema de lista de espera automática: cuando se completan los cupos, los nuevos interesados quedan en lista y son promovidos en orden cuando se libera un lugar o se amplía el cupo. El módulo también gestiona prerequisitos (cursos anteriores o condición de matrícula activa), materiales descargables y la emisión de certificados digitales con código QR verificable públicamente.
El pago puede ser en un solo desembolso o en cuotas, con vencimientos y recargos configurables por curso. Los certificados se emiten automáticamente cuando el colegiado completa la asistencia mínima requerida y tiene el pago al día.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| ADMIN | Acceso completo a todos los cursos y configuraciones |
| OPERADOR_CURSOS | Crear, editar y dar de baja cursos; gestionar inscripciones; emitir certificados; cargar materiales |
| COLEGIADO | Consultar catálogo, inscribirse, pagar, descargar materiales y certificados propios |
Flujo principal
1. Crear un nuevo curso
- Ir a Cursos → Nuevo Curso.
- Completar los datos generales: nombre, descripción, modalidad (presencial / virtual / híbrido), fechas de inicio y fin, cupo máximo y cupo mínimo (por debajo del cual el curso puede cancelarse).
- En la sección Encuentros, agregar cada sesión con fecha, hora, duración y aula o link de videoconferencia.
- En Prerequisitos, seleccionar los cursos previos requeridos y/o marcar si se requiere matrícula activa.
- En Aranceles, configurar si el pago es único o en cuotas, ingresando monto, cantidad de cuotas y fecha de cada vencimiento.
- En Materiales, subir los archivos que serán accesibles a los inscriptos (PDF, video, enlace externo).
- Hacer clic en Guardar como Borrador o Publicar para que quede visible en el catálogo del colegiado.

2. Gestionar inscripciones
- Ir a Cursos → [Nombre del Curso] → Inscripciones.
- La lista muestra todos los inscriptos con estado (Confirmado, Pendiente de Pago, Lista de Espera, Baja).
- Para inscribir manualmente a un colegiado: clic en Agregar Inscripto, buscar por apellido o número de matrícula, seleccionar y confirmar.
- El sistema verifica automáticamente los prerequisitos y rechaza la inscripción si no se cumplen, indicando el motivo.
- Si el cupo está completo, el sistema ofrece agregar al interesado a la lista de espera.
- Para dar de baja a un inscripto: seleccionarlo, clic en Dar de Baja, indicar el motivo y si aplica reembolso.

3. Administrar lista de espera
- En la pestaña Lista de Espera del curso, se visualizan los interesados en orden de anotación (posición 1, 2, 3…).
- Cuando se libera un cupo (baja de inscripto o ampliación de cupo), el sistema notifica automáticamente por email al primero en la lista.
- El interesado tiene un plazo configurable (por defecto 48 horas) para confirmar su inscripción y abonar.
- Si no confirma en el plazo, pasa al final de la lista y se notifica al siguiente.
- El operador puede mover manualmente a un interesado dentro de la lista ingresando justificación.

4. Registrar asistencia
- En Cursos → [Nombre del Curso] → Asistencia, seleccionar el encuentro del día.
- La lista muestra todos los inscriptos confirmados con checkbox de presente/ausente.
- Marcar la asistencia y hacer clic en Guardar Asistencia.
- El sistema calcula automáticamente el porcentaje de asistencia acumulado de cada participante.
- Al alcanzar la asistencia mínima configurada (ej. 75%), el participante queda habilitado para recibir su certificado.

5. Emitir certificados digitales con QR
- Ir a Cursos → [Nombre del Curso] → Certificados.
- El sistema lista los participantes que cumplen los requisitos de asistencia y pago.
- Hacer clic en Emitir Certificados para procesarlos en lote, o en Emitir en la fila de un participante específico.
- El certificado se genera en PDF con los datos del colegiado, nombre del curso, fecha, horas de capacitación y un código QR único.
- El QR apunta a una URL pública de verificación donde cualquier persona puede confirmar la autenticidad del certificado.
- El certificado queda disponible en el portal de autogestión del colegiado para su descarga.

6. Cargar y gestionar materiales
- En Cursos → [Nombre del Curso] → Materiales, hacer clic en Agregar Material.
- Elegir el tipo: archivo subido (PDF, DOCX, PPTX, video) o enlace externo.
- Ingresar el nombre del material y, opcionalmente, el número de encuentro al que corresponde.
- Configurar la visibilidad: Libre (visible antes de inscribirse) o Solo Inscriptos.
- Los inscriptos confirmados con pago al día pueden descargar los materiales desde su portal de autogestión.

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| Nombre del curso | Texto (máx. 200 car.) | Sí | Nombre público que aparece en el catálogo |
| Modalidad | Selección | Sí | Presencial, Virtual o Híbrido |
| Cupo máximo | Entero positivo | Sí | Máximo de inscriptos simultáneos |
| Cupo mínimo | Entero positivo | No | Umbral para confirmar o cancelar el curso |
| Asistencia mínima (%) | Decimal 0-100 | Sí | Porcentaje requerido para certificar (por defecto 75) |
| Prerequisitos | Múltiple selección | No | Cursos previos requeridos |
| Fecha de inicio | Fecha | Sí | No puede ser anterior a la fecha de publicación |
| Fecha de fin | Fecha | Sí | Debe ser posterior a la fecha de inicio |
| Arancel único | Decimal ≥ 0 | Condicional | Requerido si modalidad de pago es "único" |
| Cantidad de cuotas | Entero 1-12 | Condicional | Requerido si modalidad de pago es "cuotas" |
| Fecha de vencimiento (cuota) | Fecha | Sí por cuota | Una fecha por cada cuota configurada |
Reglas de negocio
Prerequisitos estrictos
Si un colegiado no cumple todos los prerequisitos, el sistema bloquea la inscripción con un mensaje que indica cuál prerequisito falta. No se puede omitir esta validación salvo que un ADMIN desactive manualmente el prerequisito del curso.
Cupo y lista de espera
Cuando el cupo máximo se alcanza, la inscripción directa queda inhabilitada y se activa automáticamente la lista de espera. El orden de la lista no puede modificarse manualmente sin justificación auditable.
Cancelación del curso
Si al cierre de inscripciones (fecha configurable, por defecto 48 hs antes del inicio) el número de inscriptos confirmados con pago es inferior al cupo mínimo, el sistema genera un alerta para que el operador decida cancelar o continuar. La cancelación genera reembolsos automáticos de los pagos acreditados.
Certificados y pagos
No se emite certificado a participantes con cuotas pendientes de pago, aunque hayan cumplido la asistencia mínima. El certificado se libera automáticamente al registrarse el pago de la última cuota adeudada.
Modificación de cursos publicados
Cambiar el arancel o la cantidad de cuotas en un curso con inscriptos confirmados no afecta retroactivamente las inscripciones ya realizadas. Los cambios aplican solo a nuevas inscripciones.
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
PREREQUISITO_NO_CUMPLIDO |
El colegiado no completó el curso prerequisito | Verificar el historial de cursos del colegiado; si existe error, un ADMIN puede aprobar la inscripción manualmente |
CUPO_AGOTADO |
El cupo máximo ya fue alcanzado | Inscribir al interesado en lista de espera o ampliar el cupo desde la configuración del curso |
INSCRIPCION_DUPLICADA |
El colegiado ya está inscripto en ese curso | Verificar en la lista de inscriptos; si fue dado de baja puede reinscribirse si quedan cupos |
MATRICULA_INACTIVA |
El colegiado tiene matrícula suspendida o vencida | Regularizar la matrícula antes de inscribirse en cursos que requieren matrícula activa |
CERTIFICADO_NO_HABILITADO |
El participante no cumple asistencia mínima o tiene cuotas pendientes | Revisar asistencia y estado de pagos; emitir el certificado cuando ambos requisitos estén cumplidos |
MATERIAL_FORMATO_INVALIDO |
El archivo subido supera el tamaño máximo (50 MB) o el formato no está permitido | Comprimir el archivo o usar un enlace externo para materiales de gran tamaño |
Preguntas frecuentes
¿Puede un colegiado inscribirse en varios cursos simultáneamente? Sí, no hay límite de inscripciones simultáneas. Sin embargo, si dos cursos tienen encuentros en el mismo horario, el sistema muestra una advertencia (no bloquea la inscripción).
¿Cómo se manejan las cuotas vencidas? Las cuotas vencidas generan una deuda en la cuenta corriente del colegiado. Después de X días de mora (configurable), se suspende el acceso a los materiales del curso. El certificado no se emite mientras haya cuotas impagas.
¿Se puede inscribir a alguien en lista de espera directamente?
Sí, el operador puede agregar manualmente a una persona en lista de espera incluso cuando hay cupos disponibles (ej. si el interesado quiere esperar por razones económicas). En ese caso queda al final de la lista con estado EN_ESPERA_VOLUNTARIA.
¿El QR del certificado funciona sin conexión a internet? No. El QR apunta a una URL del sistema PSICOLE. Para verificar la autenticidad del certificado se requiere conexión. El PDF del certificado puede descargarse y compartirse offline, pero la verificación del QR es siempre online.
¿Cómo se comunica a los inscriptos cuando se cancela un curso? Al confirmar la cancelación, el sistema envía automáticamente un correo a todos los inscriptos (incluyendo lista de espera) y procesa los reembolsos configurados. No requiere acción manual adicional del operador.


Prestadores y Órdenes de Servicio
Descripción
El módulo de Prestadores gestiona la relación entre el Colegio y las obras sociales que derivan pacientes a los psicólogos matriculados. Las obras sociales (OSDE, Swiss Medical, IOMA, PAMI, y otras) envían mensualmente un listado de órdenes de servicio: cada orden corresponde a una prestación realizada por un colegiado a un afiliado de la obra social.
El flujo comienza con la recepción y carga de las órdenes, sigue con la validación por parte del operador (verificación de que el prestador está habilitado, que los montos corresponden al nomenclador vigente y que no existan duplicados), y culmina con la aprobación del lote mensual que dispara el proceso de liquidación. El Colegio retiene una comisión configurable antes de transferir el saldo al psicólogo.
El portal del prestador permite a los colegiados que operan como prestadores ver el estado de sus órdenes, el detalle de las liquidaciones recibidas y descargar los comprobantes correspondientes.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| ADMIN | Acceso completo: alta de obras sociales, configuración de comisiones, aprobación de lotes, auditoría |
| OPERADOR_FINANZAS | Cargar órdenes, validar, aprobar lotes mensuales, generar liquidaciones |
| PRESTADOR | Ver estado de sus propias órdenes, descargar liquidaciones y comprobantes |
Flujo principal
1. Alta de obra social (prestador)
- Ir a Prestadores → Obras Sociales → Nueva Obra Social.
- Completar los datos de la entidad: razón social, CUIT, nombre fantasia, código interno, dirección y datos de contacto del responsable de facturación.
- En la sección Configuración de Comisiones, definir el porcentaje o monto fijo de comisión que el Colegio retiene. Se puede configurar por tipo de orden (consulta, psicoterapia, evaluación, etc.).
- En Nomenclador, cargar o importar la tabla de valores por código de prestación vigente para esa obra social.
- Hacer clic en Guardar. La obra social queda activa y disponible para recibir órdenes.

2. Carga de órdenes de servicio
- Ir a Prestadores → Órdenes → Cargar Lote.
- Seleccionar la obra social y el mes/año de las órdenes.
- Subir el archivo de órdenes en el formato acordado con la obra social (CSV, Excel o XML según integración).
- El sistema realiza una validación previa: detecta filas con datos faltantes, prestadores no matriculados o sin habilitación activa, y códigos de prestación no registrados en el nomenclador.
- El resultado de la validación muestra las filas aceptadas y las rechazadas con el motivo de rechazo.
- Confirmar la importación de las filas aceptadas. Las rechazadas deben corregirse y reimportarse.

3. Validación de órdenes
- En Prestadores → Órdenes → Pendientes de Validación, se listan todas las órdenes importadas con estado
PENDIENTE. - Seleccionar un lote o validar orden por orden según el flujo de trabajo del operador.
- Para cada orden revisar: prestador activo, código de prestación en nomenclador, monto consistente con el valor del nomenclador (±tolerancia configurable), y que no exista duplicado en el período.
- Si todo es correcto, cambiar el estado a
VALIDADA. Si hay inconsistencias, cambiar aOBSERVADAcon comentario. - Las órdenes observadas se devuelven a la obra social para corrección. El sistema puede enviar el listado de observaciones por email al contacto configurado.
- Una vez validadas todas las órdenes del mes, avanzar al cierre del lote mensual.

4. Cierre del lote mensual
- En Prestadores → Lotes Mensuales, seleccionar el lote del mes a cerrar.
- Verificar el resumen: total de órdenes validadas, monto bruto, comisión del Colegio, monto neto a liquidar.
- Si el resumen es correcto, hacer clic en Cerrar y Aprobar Lote.
- El sistema cambia el estado del lote a
APROBADOy genera automáticamente las liquidaciones individuales por prestador (ver módulo Liquidaciones). - Se notifica por email a cada prestador con el detalle de su liquidación.
- El lote aprobado queda bloqueado para modificaciones; solo el ADMIN puede reabrirlo.

5. Consulta del portal del prestador
- El colegiado con rol PRESTADOR accede a Mi Portal → Mis Órdenes.
- Puede filtrar por obra social, período y estado de la orden.
- Ver el detalle de cada orden: código de prestación, paciente (nombre o número de afiliado), fecha, monto bruto, comisión aplicada, monto neto.
- En Mis Liquidaciones, descargar el comprobante de liquidación en PDF con detalle del lote.
- En caso de discrepancia, el prestador puede generar un Ticket de Reclamo directamente desde la vista de la orden (ver módulo Tickets).

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| Obra social (razón social) | Texto | Sí | Nombre legal de la obra social |
| CUIT obra social | CUIT válido (XX-XXXXXXXX-X) | Sí | Identificación fiscal de la entidad |
| Código interno | Texto alfanumérico | Sí | Código PSICOLE para identificar la obra social |
| Comisión (%) | Decimal 0-100 | Sí | Porcentaje de retención del Colegio |
| Tipo de orden | Selección | Sí | Consulta, psicoterapia, evaluación, informe, etc. |
| Período del lote | Mes/Año | Sí | Mes y año al que corresponden las órdenes |
| Número de orden | Texto | Sí | Identificador único de la obra social para la orden |
| Matrícula del prestador | Entero | Sí | Número de matrícula del psicólogo en PSICOLE |
| Código de prestación | Texto | Sí | Código del nomenclador de la obra social |
| Monto de la orden | Decimal ≥ 0 | Sí | Valor informado por la obra social |
Reglas de negocio
Prestador habilitado
Solo se aceptan órdenes de colegiados con matrícula activa y sin inhabilitaciones vigentes. Las órdenes de prestadores con matrícula suspendida son automáticamente rechazadas durante la validación.
Sin duplicados por período
El sistema detecta órdenes con el mismo número de orden y obra social dentro del mismo período. Las duplicadas se marcan como RECHAZADA_DUPLICADO y no se incorporan al lote.
Comisión configurable por tipo
La comisión puede diferenciarse por tipo de prestación. Si no existe una comisión específica para el tipo de orden, se aplica la comisión general configurada para la obra social. Si la comisión general tampoco está definida, el sistema alerta al operador antes de aprobar el lote.
Período de lote bloqueado
Una vez aprobado el lote, no se pueden agregar ni modificar órdenes del mismo período y obra social. Para correcciones post-cierre se utiliza el mecanismo de órdenes de ajuste (crédito/débito) en el lote del mes siguiente.
Órdenes observadas
Las órdenes con estado OBSERVADA no se incluyen en el lote hasta que la obra social las corrija y se reimporte. El operador puede decidir excluirlas permanentemente del período si la obra social no corrige en tiempo.
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
PRESTADOR_NO_MATRICULADO |
El número de matrícula en la orden no existe en PSICOLE | Verificar el número con la obra social; si el profesional está matriculado, buscar posibles errores tipográficos |
PRESTADOR_INHABILITADO |
La matrícula existe pero está suspendida o cancelada | Regularizar la situación de la matrícula antes de validar la orden |
CODIGO_PRESTACION_DESCONOCIDO |
El código de prestación no está en el nomenclador cargado | Actualizar el nomenclador de la obra social con el código faltante |
MONTO_FUERA_DE_RANGO |
El monto informado difiere en más del umbral configurado respecto al nomenclador | Verificar con la obra social si el valor del nomenclador fue actualizado; ajustar el nomenclador si corresponde |
LOTE_YA_APROBADO |
Se intenta importar órdenes en un período y obra social ya cerrados | Usar órdenes de ajuste en el próximo lote; no se puede modificar un lote aprobado |
FORMATO_ARCHIVO_INCOMPATIBLE |
El archivo enviado por la obra social no coincide con el perfil de importación configurado | Verificar el formato acordado con la obra social; solicitar el archivo en el formato correcto o actualizar el perfil de importación |
Preguntas frecuentes
¿Puede un colegiado ser prestador de varias obras sociales? Sí. Un colegiado puede estar habilitado como prestador para múltiples obras sociales simultáneamente. Cada obra social tendrá su propio historial de órdenes y liquidaciones para ese prestador.
¿Cómo se actualiza el nomenclador cuando la obra social cambia los valores? El operador debe ir a Prestadores → Obras Sociales → [Nombre] → Nomenclador y actualizar los valores. El cambio aplica a los lotes cuyo período sea posterior a la fecha de actualización; los lotes históricos no se modifican.
¿Qué pasa si la obra social envía el archivo fuera de término? El sistema no tiene una restricción automática por fecha de envío, pero el operador puede configurar una fecha límite de carga por período. Si se supera esa fecha, el sistema requiere aprobación del ADMIN para cargar el lote fuera de término.
¿El prestador puede ver órdenes observadas? Sí. En el portal del prestador, las órdenes observadas aparecen con el motivo de observación visible, para que el profesional pueda informar a su obra social la corrección necesaria.
¿Cómo se maneja la facturación del Colegio a la obra social? La factura del Colegio a la obra social se genera en el módulo de Liquidaciones cuando se aprueba el lote. El módulo de Prestadores solo gestiona la validación y aprobación de las órdenes; la parte de facturación y cobro es responsabilidad del módulo Liquidaciones.


Liquidaciones y Comisiones
Descripción
El módulo de Liquidaciones y Comisiones cubre el ciclo completo de distribución de fondos entre el Colegio y los psicólogos que operan como prestadores de obras sociales. Una vez que el operador aprueba un lote mensual de órdenes de servicio, el sistema calcula automáticamente la comisión del Colegio para cada tipo de prestación y genera los documentos de liquidación individuales.
Las comisiones son totalmente configurables: pueden definirse como porcentaje o monto fijo, diferenciadas por obra social, por tipo de prestación y con vigencias temporales (ej. una tarifa que rige solo desde el 1 de enero). Esto permite reflejar los acuerdos comerciales vigentes sin necesidad de desarrollo adicional.
La etapa final es la generación de lotes de pago: el sistema agrupa las liquidaciones aprobadas, genera la orden de transferencia bancaria consolidada y registra cada pago efectuado para su posterior conciliación. El historial de liquidaciones y los comprobantes están disponibles tanto para el operador como para el prestador desde su portal de autogestión.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| ADMIN | Acceso completo: configurar comisiones, aprobar liquidaciones, ejecutar lotes, auditoría |
| OPERADOR_FINANZAS | Revisar y aprobar liquidaciones, generar lotes de pago, descargar comprobantes |
| PRESTADOR | Ver liquidaciones propias, descargar comprobantes, consultar historial |
Flujo principal
1. Configurar comisiones
- Ir a Administración → Liquidaciones → Configuración de Comisiones.
- Seleccionar la obra social para la cual se define la comisión.
- Hacer clic en Nueva Regla de Comisión.
- Configurar los parámetros:
- Tipo de aplicación: porcentaje sobre el monto de la orden o monto fijo por orden.
- Tipo de prestación: aplicar a todas las prestaciones o a un tipo específico (consulta, evaluación, informe, etc.).
- Vigencia desde: fecha a partir de la cual aplica esta regla.
- Vigencia hasta: opcional; si no se especifica, la regla rige indefinidamente.
- Guardar. El sistema muestra el historial de reglas con sus vigencias para auditoría.
- Para una obra social con múltiples reglas, el sistema aplica siempre la regla más específica vigente al momento del cierre del lote.

2. Revisión automática de liquidaciones generadas
- Al aprobar un lote mensual desde el módulo de Prestadores, el sistema genera automáticamente una liquidación por cada prestador del lote.
- Ir a Liquidaciones → Pendientes de Revisión.
- Cada liquidación muestra: prestador, obra social, período, total de órdenes, monto bruto, comisión aplicada, monto neto a transferir.
- El operador puede expandir el detalle para ver el cálculo orden por orden y verificar que la comisión se aplicó correctamente.
- Si el cálculo es correcto, cambiar el estado a
APROBADA. Si hay discrepancias, cambiar aEN_REVISIONy agregar un comentario.

3. Generar lote de pago
- Ir a Liquidaciones → Lotes de Pago → Nuevo Lote.
- Seleccionar el período y las liquidaciones aprobadas que se incluirán en el lote (se puede filtrar por obra social, período o prestador).
- El sistema muestra el resumen del lote: cantidad de liquidaciones, monto total a transferir, detalle por prestador con CBU/CVU destino.
- Revisar y hacer clic en Generar Lote.
- El lote queda en estado
GENERADO. Descargar el archivo de transferencias bancarias en el formato requerido por el banco (SEPA, TXT Bancario, etc.). - Procesar la transferencia desde el homebanking. Una vez acreditada, regresar al lote y hacer clic en Marcar como Pagado, adjuntando el comprobante bancario.
- El lote pasa a estado
PAGADOy cada liquidación incluida queda en estadoLIQUIDADA.

4. Conciliación mensual de liquidaciones
- Ir a Liquidaciones → Conciliación Mensual.
- Seleccionar el mes a conciliar.
- El sistema cruza las liquidaciones pagadas contra los débitos registrados en la cuenta bancaria del Colegio (importados desde el módulo de Conciliación Bancaria).
- Las transferencias que coincidan quedan marcadas como
CONCILIADA. Las que no coincidan quedan comoPENDIENTE_CONCILIACION. - Resolver manualmente las pendientes, adjuntando evidencia del pago si es necesario.
- Al cerrar la conciliación mensual, se genera el informe de cierre con los totales por obra social.

5. Consulta del historial de liquidaciones
- En Liquidaciones → Historial, filtrar por período, prestador, obra social o estado.
- Seleccionar una liquidación para ver su detalle completo: cada orden incluida con código de prestación, monto, comisión aplicada y monto neto.
- Descargar el comprobante de liquidación en PDF (disponible también para el prestador en su portal).
- El historial es permanente e inmutable: las liquidaciones cerradas no pueden editarse, solo anularse con nota de crédito si corresponde.

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| Tipo de comisión | Selección (% / monto fijo) | Sí | Define si la comisión es proporcional o un valor fijo |
| Valor de comisión | Decimal ≥ 0 | Sí | Porcentaje (0-100) o monto en pesos |
| Tipo de prestación | Selección o "Todas" | Sí | A qué tipo de órdenes aplica la regla |
| Vigencia desde | Fecha | Sí | Inicio de vigencia de la regla de comisión |
| Vigencia hasta | Fecha | No | Fin de vigencia; si vacío la regla no vence |
| CBU/CVU del prestador | 22 dígitos | Sí | Cuenta bancaria destino de la transferencia |
| Comprobante de pago | Archivo (PDF/imagen) | Sí al marcar pagado | Evidencia de la transferencia bancaria realizada |
Reglas de negocio
Regla más específica tiene prioridad
Si existen dos reglas de comisión aplicables (una para "Todas las prestaciones" y otra para "Consulta"), el sistema aplica la regla más específica. En caso de empate de especificidad, aplica la de vigencia más reciente.
Liquidaciones solo desde lotes aprobados
No es posible crear una liquidación manualmente sin un lote de órdenes aprobado como origen. Esto garantiza la trazabilidad completa desde la orden hasta el pago.
Monto neto negativo bloqueado
Si la comisión resultara mayor al monto bruto de la orden (situación anómala), el sistema bloquea la aprobación de esa liquidación y alerta al operador para revisión manual.
Prestador sin CBU
Si el prestador no tiene CBU/CVU registrado en su perfil, la liquidación se genera pero no puede incluirse en un lote de pago hasta que el dato sea cargado. El sistema notifica al prestador para que actualice su información bancaria desde el portal de autogestión.
Cierre de período
Una vez generado y marcado como pagado un lote, las liquidaciones incluidas quedan bloqueadas. Para correcciones se emite una nota de crédito/débito en el período siguiente, manteniendo la integridad del período cerrado.
Cambio de comisión retroactivo
Los cambios en las reglas de comisión no afectan lotes ya aprobados. La fecha de vigencia siempre se respeta: si se cierra un lote del mes de enero, se usa la comisión vigente en enero, aunque en febrero se haya modificado la configuración.
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
SIN_REGLA_COMISION |
No existe ninguna regla de comisión configurada para la obra social o el tipo de prestación del lote | Configurar la regla de comisión correspondiente antes de aprobar el lote |
PRESTADOR_SIN_CBU |
El prestador no tiene CBU/CVU registrado | Solicitar al prestador que complete su CBU en el portal de autogestión o cargarlo manualmente desde la ficha del colegiado |
MONTO_NETO_NEGATIVO |
La comisión supera el monto bruto de la orden | Revisar la configuración de la comisión; probablemente el tipo o valor sea incorrecto |
LIQUIDACION_DUPLICADA |
Se intentó generar una liquidación para un prestador y período que ya tiene una liquidación aprobada | Verificar en el historial; si la existente tiene error, anularla antes de generar la nueva |
LOTE_SIN_LIQUIDACIONES |
Se intentó generar un lote de pago sin seleccionar liquidaciones aprobadas | Asegurarse de que haya liquidaciones en estado APROBADA antes de crear el lote |
COMPROBANTE_REQUERIDO |
Se intentó marcar un lote como pagado sin adjuntar el comprobante de transferencia | Subir el comprobante bancario antes de confirmar el pago |
Preguntas frecuentes
¿Se puede tener comisiones diferentes para la misma obra social según el tipo de prestación? Sí. Se pueden configurar tantas reglas como tipos de prestación existan. Por ejemplo: 10% para consultas, 8% para evaluaciones y $500 fijo por informes periciales. El sistema aplica la regla más específica vigente.
¿Cómo se maneja un error en el monto de una liquidación ya aprobada? No se puede editar una liquidación aprobada. El procedimiento correcto es anular la liquidación (genera un registro de anulación en el historial) y generar una nueva liquidación corregida. Si el lote ya fue pagado, la corrección se realiza mediante nota de crédito/débito en el próximo período.
¿El prestador recibe algún aviso cuando se genera su liquidación? Sí. Al aprobarse el lote mensual que incluye sus órdenes, el sistema envía automáticamente un email al prestador con el resumen de su liquidación y un link para descargar el comprobante desde su portal.
¿Cómo afecta el cambio de CUIT de una obra social a las liquidaciones históricas? El cambio de CUIT no modifica liquidaciones pasadas. Las liquidaciones históricas conservan el CUIT que tenía la obra social al momento del cierre del lote. El nuevo CUIT aplica solo para liquidaciones futuras.
¿Se puede liquidar a un prestador en cuotas? No. Cada liquidación mensual se paga en una única transferencia. Las cuotas no aplican al mecanismo de liquidación a prestadores, que está diseñado para pagos únicos mensuales.
Certificados de Ética
Descripción
El Certificado de Ética es un documento oficial que acredita que un colegiado no registra sanciones éticas en el Tribunal de Ética del Colegio. Es requerido frecuentemente por empleadores, obras sociales, instituciones de salud y para presentaciones judiciales como perito.
El certificado se emite como PDF con firma digital y código QR de verificación. Tiene una validez limitada (típicamente 30 días desde su emisión) porque el estado de sanciones puede cambiar.
Roles con acceso
| Rol | Acceso |
|---|---|
COLEGIADO | Solicita el certificado desde su portal de autogestión |
ADMIN | Acceso completo: revisa solicitudes, emite certificados, configura arancel |
OPERADOR | Procesa solicitudes y emite certificados |
Flujo de trabajo
- Solicitud: El colegiado solicita el certificado desde
/mis-tramiteso desde el portal de autogestión. El sistema verifica que no tenga sanciones éticas activas en el registro del Tribunal. - Pago del arancel: El sistema genera una deuda por el arancel configurado. El colegiado debe abonarla mediante pago online (MercadoPago, NAVE, Payway) o en caja.
- Revisión: Un operador revisa la solicitud, confirma que el pago está acreditado y que no hay sanciones éticas pendientes de registro.
- Emisión: El sistema genera un PDF con los datos del colegiado, número de matrícula, fecha de emisión, fecha de vencimiento (30 días), firma digital del Colegio y un código QR único.
- Verificación pública: Cualquier tercero puede escanear el QR para verificar la autenticidad y vigencia del certificado en una página pública sin necesidad de login.
Panel de administración
Ruta: /admin/etica — Componente: AdminEthicsCertificates
- Bandeja de solicitudes pendientes con filtros por estado y fecha
- Verificación automática contra el registro de sanciones del Tribunal
- Emisión del PDF con un clic
- Historial de certificados emitidos con código QR y fecha de vencimiento
- Configuración del arancel desde Parámetros del Sistema
Preguntas frecuentes
¿Cuánto tarda la emisión del certificado? Si el colegiado no tiene sanciones y el pago está acreditado, el operador puede emitirlo en el acto. El tiempo depende de la disponibilidad del operador para revisar la solicitud.
¿Qué pasa si el colegiado tiene una sanción ética? El sistema muestra la sanción al operador. El certificado no puede emitirse mientras la sanción esté vigente. El colegiado puede consultar el estado de su sanción en el portal de autogestión.
¿El certificado se puede renovar automáticamente? No. Cada emisión requiere una nueva solicitud y el pago del arancel correspondiente.


Autogestión del Profesional
Descripción
El portal de Autogestión es la interfaz propia del psicólogo matriculado (colegiado) para interactuar con el Colegio sin necesidad de intermediación del personal administrativo. Disponible las 24 horas desde cualquier dispositivo, permite consultar el estado de cuenta, pagar deudas online con tarjeta o transferencia (mediante Mercado Pago), descargar documentos oficiales y mantener los datos personales actualizados.
El módulo está diseñado para reducir la carga operativa de las ventanillas físicas y agilizar trámites que históricamente requerían turno presencial. Los documentos generados (recibos, certificados, credencial digital) tienen validez oficial y están firmados digitalmente por el sistema.
Las solicitudes de modificación de datos (cambio de domicilio, teléfono, CUIT, especialidad declarada, etc.) no se aplican de forma inmediata sino que generan un flujo de aprobación interno: un operador de matrículas revisa los cambios y los aprueba o rechaza con un comentario. Esto garantiza la integridad del padrón de matriculados.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| COLEGIADO | Acceso completo a su propia autogestión |
Flujo principal
1. Ver estado de cuenta y deudas
- Al iniciar sesión, el panel principal muestra un resumen de la cuenta corriente: saldo deudor, próximo vencimiento y últimos movimientos.
- Ir a Mi Cuenta → Estado de Cuenta para ver el detalle completo.
- La vista lista todas las cuotas y conceptos adeudados con fecha de vencimiento, monto original, recargos por mora acumulados y total a pagar.
- Usar los filtros por período, tipo de cuota o estado (vigente, vencida, pagada) para acotar la consulta.
- Las cuotas próximas a vencer (dentro de los 7 días configurables) se destacan con una alerta visual.

2. Pagar online con Mercado Pago
- Desde el estado de cuenta, marcar las cuotas o conceptos a pagar con el checkbox correspondiente.
- Hacer clic en Pagar Seleccionados. El sistema muestra el resumen del pago con el total que se procesará.
- Confirmar y seleccionar el medio de pago en la pantalla de Mercado Pago: tarjeta de crédito, débito, transferencia bancaria o billetera digital.
- Completar los datos de pago en la interfaz de Mercado Pago (el sistema no almacena datos de tarjeta).
- Al recibir la confirmación de Mercado Pago (webhook), el sistema registra el pago automáticamente y genera el recibo.
- El colegiado es redirigido al portal de PSICOLE con la confirmación del pago y el enlace para descargar el recibo.

Pagos parciales
Es posible seleccionar solo algunas cuotas para pagar. Sin embargo, si existen cuotas con mora, el sistema obliga a incluir el recargo de mora en el monto total. No se puede pagar la cuota sin el recargo correspondiente.
3. Descargar recibos
- Ir a Mi Cuenta → Mis Recibos.
- Se lista el historial de todos los pagos realizados, con fecha, concepto, monto y número de recibo.
- Hacer clic en Descargar en el recibo deseado para obtener el PDF oficial con membrete del Colegio y firma digital del sistema.
- El recibo incluye un código de verificación que permite confirmar su autenticidad en el portal público del Colegio.
- Los recibos están disponibles para descarga indefinidamente desde el historial.

4. Descargar certificados
- Ir a Mi Cuenta → Mis Certificados.
- El sistema lista los certificados disponibles por tipo:
- Certificado de Matrícula Vigente: acredita que la matrícula está activa al día de la fecha.
- Certificado de Libre Deuda: acredita que no existen deudas pendientes con el Colegio.
- Certificados de Cursos: emitidos al completar los cursos de capacitación (con QR verificable).
- Para certificados con validez temporal (matrícula, libre deuda), hacer clic en Generar Nuevo para obtener uno con la fecha actual. Los certificados anteriores quedan archivados.
- Descargar el PDF. El certificado tiene validez de 30 días (configurable) y muestra la fecha de emisión.

5. Ver y usar la credencial digital QR
- Ir a Mi Cuenta → Mi Credencial.
- La credencial digital muestra la foto del profesional, nombre completo, número de matrícula, especialidad y estado de la matrícula.
- El código QR embebido puede escanearse para verificar en tiempo real la validez de la matrícula en la web pública del Colegio.
- Hacer clic en Descargar Credencial para obtener la imagen en alta resolución (PNG o PDF).
- La credencial se actualiza automáticamente al cambiar el estado de la matrícula; si se suspende, la credencial muestra el estado
SUSPENDIDAy el QR redirige a la novedad correspondiente.

6. Solicitar modificación de datos personales
- Ir a Mi Perfil → Editar Datos.
- Visualizar los datos actuales registrados en el sistema: domicilio, teléfono, email, CUIT, especialidades declaradas, banco y CBU para liquidaciones.
- Modificar los campos que se deseen actualizar. Los campos editables están marcados; algunos datos (como el número de matrícula) no son modificables por el usuario.
- Subir la documentación de respaldo requerida según el tipo de dato a cambiar (ej. servicio de luz para cambio de domicilio, constancia AFIP para cambio de CUIT).
- Hacer clic en Enviar Solicitud de Modificación. La solicitud queda en estado
PENDIENTE. - Un operador de matrículas revisará la solicitud y la aprobará o rechazará con un comentario.
- El colegiado recibirá un email con el resultado. Si se aprueba, los datos se actualizan automáticamente en el padrón. Si se rechaza, se indica el motivo y el colegiado puede reenviar la solicitud con la corrección.

7. Consultar el historial de solicitudes
- Ir a Mi Perfil → Mis Solicitudes.
- Se listan todas las solicitudes de modificación enviadas con su estado (Pendiente, Aprobada, Rechazada) y la fecha de resolución.
- Hacer clic en una solicitud para ver el detalle: datos solicitados, documentación adjuntada, comentario del operador.
- Si una solicitud fue rechazada, desde esta vista se puede clonar y reenviar con correcciones.

Campos y validaciones
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| Domicilio | Texto + localidad/provincia | Sí | Domicilio profesional o particular según tipo |
| Teléfono | Texto (formato +54 …) | Sí | Número de contacto con código de área |
| Email válido | Sí | Dirección de correo para notificaciones | |
| CUIT | CUIT válido (XX-XXXXXXXX-X) | Sí | Identificación fiscal |
| CBU/CVU | 22 dígitos numéricos | No | Cuenta para recibir liquidaciones como prestador |
| Especialidad declarada | Selección múltiple | No | Especialidades habilitadas en el Colegio |
| Documentación adjunta | PDF/JPG/PNG (máx. 5 MB c/u) | Condicional | Requerida según el tipo de dato a modificar |
Reglas de negocio
Solicitudes simultáneas
Solo puede existir una solicitud de modificación activa por campo. Si el colegiado envía una solicitud de cambio de domicilio y ya hay una pendiente de aprobación, el sistema bloquea la segunda hasta que la primera sea resuelta.
Certificado de Libre Deuda
El certificado de libre deuda solo puede generarse si el colegiado no tiene deudas vencidas en el sistema. Si existe deuda, el botón de generación está deshabilitado y se muestra el detalle de los conceptos adeudados.
Mercado Pago y cuotas
El procesamiento del pago es asíncrono: el webhook de Mercado Pago puede tardar hasta 5 minutos en llegar al sistema. Durante ese período, el pago aparecerá como PROCESANDO. No intentar pagar nuevamente hasta que el estado se actualice.
Datos bancarios para prestadores
El CBU/CVU cargado en el perfil es el que se usa para las liquidaciones de órdenes de servicio. Si se modifica, el cambio aplica al próximo lote de liquidaciones; los lotes ya generados no se ven afectados.
Credencial QR y matrícula suspendida
Si la matrícula es suspendida, la credencial sigue siendo descargable pero muestra el estado SUSPENDIDA. El QR verifica el estado en tiempo real, por lo que cualquier persona que escanee el código verá el estado actual, no el histórico.
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
PAGO_PROCESANDO |
El webhook de Mercado Pago aún no llegó al sistema | Esperar hasta 5 minutos y recargar la página; si persiste después de 15 minutos, contactar al operador |
DEUDA_IMPIDE_CERTIFICADO |
Se intenta generar un certificado de libre deuda con deudas pendientes | Pagar las deudas vencidas primero; el botón se habilita automáticamente al regularizar la situación |
SOLICITUD_PENDIENTE_EXISTENTE |
Ya existe una solicitud de modificación activa para el mismo campo | Esperar la resolución de la solicitud existente o cancelarla antes de enviar una nueva |
DOCUMENTACION_FALTANTE |
Se envió la solicitud sin adjuntar el documento de respaldo requerido | Adjuntar el documento indicado antes de enviar la solicitud |
CBU_INVALIDO |
El CBU/CVU ingresado no tiene el formato correcto o no pasa la validación de dígito verificador | Verificar el número con el banco; debe tener exactamente 22 dígitos |
SESION_EXPIRADA |
La sesión de usuario expiró durante el proceso de pago | Iniciar sesión nuevamente; el pago en Mercado Pago se habrá registrado de todas formas si se completó el checkout |
Preguntas frecuentes
¿Puedo pagar con tarjeta de crédito en cuotas? Depende del plan vigente en Mercado Pago configurado por el Colegio. Algunas cuotas de la matrícula pueden abonarse en cuotas con tarjeta según los acuerdos comerciales activos. La pantalla de checkout de Mercado Pago mostrará las opciones disponibles.
¿Mis recibos son válidos para presentar ante AFIP u otros organismos? Sí. Los recibos generados por PSICOLE tienen validez oficial como comprobante de pago interno del Colegio. Sin embargo, para fines impositivos consultar con el área de Finanzas del Colegio si se requiere una factura o comprobante adicional.
¿Cuánto tiempo tarda en aprobarse una solicitud de modificación de datos? El SLA interno es de 3 días hábiles. Si la solicitud supera ese plazo sin resolución, se genera automáticamente un ticket de escalamiento al supervisor. El colegiado puede consultar el estado desde Mis Solicitudes.
¿Puedo ver las cuotas de mis cursos en el portal de autogestión? Sí. Las cuotas de cursos aparecen en el estado de cuenta junto con las cuotas de matrícula y otros conceptos. Se identifican por el tipo de cuota ("Curso: [nombre del curso]") y pueden pagarse online de la misma manera.
¿El certificado de matrícula vigente tiene algún costo? No. La generación de certificados de matrícula vigente y libre deuda es gratuita para el colegiado. Solo los certificados de cursos específicos pueden tener un costo asociado al procesamiento, según la configuración del Colegio.
¿Qué pasa si pagué de más por error? El sistema no procesa reembolsos automáticos. Contactar al operador de finanzas para que registre el crédito en la cuenta corriente o procese la devolución según el medio de pago utilizado.
Módulo de Tickets y Trámites (EPIC-09)
El módulo de Tickets y Trámites permite gestionar solicitudes formales de colegiados y prestadores con flujo de trabajo completo, SLA configurable, semáforo de tiempos y asignación automática de operadores.
Para la documentación de administración (categorías, áreas, parámetros, dashboards), ver la sección de Administración:
Ver documentación completa → Tickets y Soporte{ .md-button .md-button--primary }
Vistas por Rol
Operador de Trámites
El operador accede a su dashboard personal al ingresar al sistema, con tickets agrupados por urgencia y semáforo SLA en cada tarjeta.

Rutas:
- Dashboard personal: /operator/dashboard
- Kanban propio: /operator/tickets
- Detalle de ticket: /tickets/:id
Guía completa del Operador de Trámites{ .md-button }
Supervisor de Trámites
El supervisor accede a métricas globales y al kanban por operador para monitorear la operación completa.


Rutas:
- Métricas: /supervisor/metrics
- Gestión: /supervisor/tickets
Guía completa del Supervisor de Trámites{ .md-button }
Colegiado / Prestador
Los colegiados y prestadores pueden crear tickets, ver el estado de los suyos y agregar comentarios.


Vista mobile:

Ruta: /my-tickets
Seguimiento público
Cualquier persona puede consultar el estado de un ticket con su número de seguimiento, sin necesidad de iniciar sesión.

Ruta: /track
Ciclo de vida
PENDIENTE → ASIGNADO → EN PROGRESO → [PAUSADO] → RESUELTO → CERRADO
| Estado | Descripción |
|---|---|
PENDING |
Ticket recibido, sin operador |
ASSIGNED |
Operador asignado automáticamente |
IN_PROGRESS |
Operador trabajando |
PAUSED |
Pausado con motivo registrado |
WAITING_REQUESTER |
Esperando respuesta del solicitante |
RESOLVED |
Resuelto por el operador |
CLOSED |
Cerrado (supervisor o automático a los 7 días) |
REOPENED |
Reabierto por el colegiado |
Semáforo SLA
| Color | Estado |
|---|---|
| 🟢 Verde | OK — dentro del plazo |
| 🟠 Naranja | WARNING — menos del 25% restante |
| 🔴 Rojo | BREACHED — SLA vencido |
Integración con trámites
Cuando una categoría de ticket tiene un módulo relacionado configurado (ej: Renovación de Matrícula, Débito Automático), en el detalle del ticket aparece el botón "Ver servicio relacionado" que lleva directamente al módulo correspondiente del sistema.
Documentación de administración
- Configuración de Categorías, Áreas de Trabajo y Parámetros
- Dashboard Global Admin
Directorio Público de Psicólogos
El directorio público es el módulo que expone el listado de profesionales habilitados a cualquier persona y a cualquier sitio web externo, sin necesidad de autenticación. Está disponible como página web en el portal y como API REST pública consumible desde cualquier servicio externo.
Quién aparece en el directorio
Para que un profesional aparezca en el directorio deben cumplirse dos condiciones simultáneas:
| Condición | Campo en base de datos | Quién lo controla |
|---|---|---|
| Perfil público activado | is_public_profile_active = true |
El propio profesional (autogestión) o el Administrador |
| Matrícula vigente | enrollment_status IN ('APPROVED', 'PROVISIONAL') |
El sistema — se actualiza al aprobar o suspender la matrícula |
Si cualquiera de las dos condiciones deja de cumplirse — por ejemplo, si se suspende la matrícula o el profesional desactiva su perfil — el registro deja de aparecer en todos los endpoints públicos de forma inmediata (respetando el TTL de caché).
Arquitectura del módulo
El módulo tiene tres capas independientes:
┌─────────────────────────────────────────────────────────────┐
│ BASE DE DATOS (MySQL) │
│ Tabla `professionals` — campos públicos separados │
│ de los datos de matrícula y expediente │
└───────────────────┬─────────────────────────────────────────┘
│ Prisma ORM
┌───────────────────▼─────────────────────────────────────────┐
│ BACKEND API (Node/Express) │
│ publicDirectoryController.js │
│ Montado en /api/v1/public — CORS *, sin auth, rate limit │
└───────────────────┬─────────────────────────────────────────┘
│ HTTP (fetch / axios)
┌───────────────────▼─────────────────────────────────────────┐
│ FRONTEND SPA (React) │
│ PublicDirectory.jsx → /directorio-psicologos │
│ Filtros inicializados desde URL query params │
└─────────────────────────────────────────────────────────────┘
Acceso
| Vía | URL |
|---|---|
| Portal web | https://sandbox.umdev.com.ar/directorio-psicologos |
| Portal web (pre-filtrado) | https://sandbox.umdev.com.ar/directorio-psicologos?city=GODOY+CRUZ&insurance=OSEP |
| Perfil individual | https://sandbox.umdev.com.ar/directorio-psicologos/garcia-maria-jose |
| API REST | https://sandbox.umdev.com.ar/api/v1/public/directory |
Modelo de datos — campos públicos vs. datos de matrícula
El modelo Professional en la base de datos mantiene dos grupos de campos claramente separados.
Campos exclusivos del perfil público
Estos campos son editados directamente por el profesional (o el admin) para controlar cómo aparece en el directorio. No afectan al expediente de matrícula.
| Campo DB | Clave JSON | Descripción |
|---|---|---|
is_public_profile_active |
(no expuesto) | Toggle de visibilidad en el directorio |
public_display_name |
displayName |
Nombre visible; si es null, usa firstName + lastName del usuario |
public_bio |
bio |
Presentación profesional en texto libre |
public_photo |
photo |
URL de foto de perfil |
public_email |
email |
Email de contacto público |
public_phone |
phone |
Teléfono público; si es null, usa office_phone |
public_website |
website |
URL de sitio o red profesional |
public_slug |
slug |
Identificador URL único, auto-generado |
Campos del expediente usados en el directorio
Estos campos forman parte del expediente de matrícula. Aparecen en el directorio pero solo pueden modificarse desde la ficha profesional, no desde la autogestión de perfil público.
| Campo DB | Clave JSON | Descripción |
|---|---|---|
attention_modality |
modality |
PRESENCIAL, VIRTUAL o BOTH |
attention_area |
attentionArea |
Población atendida (texto libre: "Niños, Adolescentes") |
attention_schedule |
schedule |
Horarios de atención (texto libre) |
accepted_insurances |
insurances |
Obras sociales aceptadas (texto libre) |
languages |
languages |
Idiomas separados por coma |
specialties |
specialty |
Especialidades clínicas |
theoretical_orientation |
orientation |
Línea teórica (ej. "Cognitivo-Conductual") |
office_city |
city |
Ciudad del consultorio |
office_address |
officeAddress |
Dirección del consultorio |
university_name |
university |
Universidad de graduación (solo en detalle) |
degree_title |
degree |
Título obtenido (solo en detalle) |
enrollment_date |
enrollmentDate |
Fecha de matriculación (solo en detalle) |
Cadenas de fallback
Cuando un campo público no está cargado, la API aplica las siguientes cadenas de fallback en orden:
displayName = public_display_name ?? user.firstName + " " + user.lastName
city = office_city ?? professional.city ?? user.city
phone = public_phone ?? office_phone
Esto significa que un profesional sin public_display_name configurado aparecerá con su nombre y apellido del sistema. Si no cargó teléfono público, se usará el del consultorio si existe.
Sistema de slugs
Cada profesional con perfil activo tiene un slug único que forma su URL pública.
Generación automática
El slug se genera a partir de apellido + nombre, siguiendo estas transformaciones en orden:
- Convertir a minúsculas
- Normalizar caracteres Unicode (NFD) y eliminar diacríticos:
á→a,ñ→n,ü→u - Eliminar todo lo que no sea letra, número, espacio o guión
- Recortar espacios extremos
- Reemplazar espacios por guiones
- Colapsar guiones múltiples en uno solo
Ejemplo:
Apellido: "De Stefano Surballe"
Nombre: "Candela"
Slug: "de-stefano-surballe-candela"
Resolución de colisiones
Si el slug generado ya existe (dos profesionales con el mismo nombre), el sistema agrega un sufijo numérico incremental hasta encontrar uno libre:
garcia-maria-jose → ocupado
garcia-maria-jose-2 → ocupado
garcia-maria-jose-3 → libre ✓
El slug es un campo UNIQUE en la base de datos — nunca puede haber dos profesionales con el mismo slug.
URL directa a un perfil
https://sandbox.umdev.com.ar/directorio-psicologos/de-stefano-surballe-candela
Al acceder a esta URL, el portal carga el directorio y abre automáticamente el modal de detalle del profesional correspondiente.
API REST Pública
Características generales
| Característica | Detalle |
|---|---|
| Base URL | https://sandbox.umdev.com.ar/api/v1/public |
| CORS | Access-Control-Allow-Origin: * — cualquier origen |
| Métodos permitidos | GET, POST, OPTIONS |
| Autenticación | Ninguna |
| Rate limiting | 200 requests por IP cada 15 minutos |
| Formato | JSON (Content-Type: application/json) |
| Versión | v1 |
CORS solo en rutas públicas
El Origin: * aplica únicamente a /api/v1/public/*. El resto de la API (rutas autenticadas) usa CORS restrictivo configurado por CORS_ORIGIN en el entorno.
GET /directory/info
Metadatos de la API: total de profesionales activos, desglose por modalidad, lista de endpoints y parámetros disponibles.
Cache: public, max-age=300 (5 minutos)
Request:
curl https://sandbox.umdev.com.ar/api/v1/public/directory/info
Response:
{
"success": true,
"data": {
"version": "v1",
"totalProfessionals": 631,
"baseUrl": "https://sandbox.umdev.com.ar/api/v1/public",
"endpoints": {
"list": "GET /directory",
"bySlug": "GET /directory/by-slug/:slug",
"byMatricula": "GET /directory/:enrollmentNumber",
"info": "GET /directory/info"
},
"filters": {
"search": "string — búsqueda libre en nombre, bio, especialidad",
"city": "string — ciudad de atención",
"specialty": "string — especialidad o área clínica",
"modality": "PRESENCIAL | VIRTUAL | BOTH",
"insurance": "string — obra social aceptada",
"page": "integer — página (default: 1)",
"limit": "integer — resultados por página (default: 20, max: 50)"
},
"modalityBreakdown": {
"PRESENCIAL": 210,
"VIRTUAL": 152,
"BOTH": 269
}
}
}
Útil para construir selectores dinámicos: consumir /info primero para obtener el total y el desglose antes de renderizar la UI de búsqueda.
GET /directory
Lista paginada de profesionales con perfil público activo.
Cache: public, max-age=120 (2 minutos)
Parámetros:
| Parámetro | Tipo | Default | Validación | Descripción |
|---|---|---|---|---|
search |
string | — | — | Búsqueda libre |
city |
string | — | — | Ciudad de atención |
specialty |
string | — | — | Especialidad clínica |
modality |
string | — | Exacto: PRESENCIAL, VIRTUAL o BOTH |
Modalidad |
insurance |
string | — | — | Obra social |
page |
integer | 1 |
Mínimo: 1 | Número de página |
limit |
integer | 20 |
Mínimo: 1, Máximo: 50 | Resultados por página |
Ejemplos:
# Listado básico
curl "https://sandbox.umdev.com.ar/api/v1/public/directory"
# Zona Mendoza + OSEP + especialista en niños
curl "https://sandbox.umdev.com.ar/api/v1/public/directory?city=GODOY+CRUZ&insurance=OSEP&search=ni%C3%B1os"
# Solo atención virtual, página 2
curl "https://sandbox.umdev.com.ar/api/v1/public/directory?modality=VIRTUAL&page=2&limit=10"
Response:
{
"success": true,
"data": [
{
"id": "clx1234...",
"enrollmentNumber": "M-3847",
"slug": "garcia-maria-jose",
"displayName": "María José García",
"photo": null,
"specialty": "Psicología Clínica",
"city": "GODOY CRUZ",
"province": "Mendoza",
"modality": "VIRTUAL",
"attentionArea": "Adultos, Parejas",
"schedule": "Lunes a Viernes 14:00 a 20:00",
"phone": "+54 261 4XXXXXX",
"email": "mgarcia@example.com",
"website": null,
"bio": "Especialista en terapia cognitivo-conductual.",
"insurances": "OSEP, Swiss Medical, OSDE",
"languages": "Español",
"orientation": "Cognitivo-Conductual",
"officeAddress": "Av. San Martín 1234, Mendoza"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 631,
"totalPages": 32,
"hasNextPage": true,
"hasPrevPage": false
}
}
GET /directory/by-slug/:slug
Perfil completo de un profesional por su slug único.
Cache: public, max-age=300 (5 minutos)
Request:
curl "https://sandbox.umdev.com.ar/api/v1/public/directory/by-slug/garcia-maria-jose"
Devuelve los mismos campos que el listado más los campos de detalle: university, degree, enrollmentDate.
GET /directory/:enrollmentNumber
Perfil completo por número de matrícula. Retorna los mismos campos que by-slug.
Request:
curl "https://sandbox.umdev.com.ar/api/v1/public/directory/M-3847"
Lógica interna de búsqueda y filtros
Comprender cómo se construye la consulta a la base de datos es clave para predecir los resultados.
Filtros individuales
Cada filtro agrega una condición AND al WHERE:
| Filtro | Operación SQL equivalente |
|---|---|
modality=VIRTUAL |
attention_modality = 'VIRTUAL' (exacto) |
specialty=ansiedad |
specialties LIKE '%ansiedad%' |
insurance=OSEP |
accepted_insurances LIKE '%OSEP%' |
Filtro de ciudad
city busca en dos campos simultáneamente (ciudad de consultorio y ciudad del profesional):
(office_city LIKE '%GODOY CRUZ%' OR city LIKE '%GODOY CRUZ%')
Búsqueda libre (search)
Busca en 6 campos con OR:
(
public_display_name LIKE '%ansiedad%' OR
public_bio LIKE '%ansiedad%' OR
specialties LIKE '%ansiedad%' OR
attention_area LIKE '%ansiedad%' OR
user.first_name LIKE '%ansiedad%' OR
user.last_name LIKE '%ansiedad%'
)
Combinación city + search
Cuando se usan ambos filtros juntos, la lógica cambia para garantizar que ambas condiciones se cumplan:
WHERE is_public_profile_active = 1
AND enrollment_status IN ('APPROVED', 'PROVISIONAL')
AND (office_city LIKE '%GODOY CRUZ%' OR city LIKE '%GODOY CRUZ%') -- ciudad
AND ( -- search
public_display_name LIKE '%niños%' OR
public_bio LIKE '%niños%' OR
specialties LIKE '%niños%' OR
attention_area LIKE '%niños%' OR
user.first_name LIKE '%niños%' OR
user.last_name LIKE '%niños%'
)
Añadir más filtros (insurance, modality) agrega condiciones AND adicionales al mismo WHERE.
Sensibilidad a mayúsculas
MySQL con utf8mb4_unicode_ci (collation por defecto) hace los LIKE case-insensitive. osep, OSEP y Osep devuelven el mismo resultado. Sin embargo, los datos del campo city en el sandbox están cargados en MAYÚSCULAS (GODOY CRUZ), por lo que en producción los valores dependerán de cómo se ingresen los datos.
Cache y rendimiento
| Endpoint | Cache-Control |
TTL efectivo |
|---|---|---|
GET /directory/info |
public, max-age=300 |
5 min |
GET /directory |
public, max-age=120 |
2 min |
GET /directory/by-slug/:slug |
public, max-age=300 |
5 min |
GET /directory/:enrollmentNumber |
public, max-age=300 |
5 min |
El header public permite que CDNs y proxies inversos (nginx, Cloudflare, etc.) cacheen las respuestas. Consecuencias prácticas:
- Un perfil recién activado puede tardar hasta 2 minutos en aparecer en el listado y hasta 5 minutos en responder desde
by-slug. - Un perfil recién desactivado puede seguir siendo accesible durante el TTL restante desde nodos de caché intermedios.
- El endpoint
/inforefleja el total actualizado con hasta 5 minutos de retraso.
CORS y rate limiting
CORS
Configurado en app.js exclusivamente para el prefijo /api/v1/public:
cors({
origin: '*',
methods: ['GET', 'POST', 'OPTIONS'],
allowedHeaders: ['Content-Type']
})
Headers enviados en cada respuesta:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type
Rate limiting
- Límite: 200 requests por IP cada 15 minutos
- Headers de respuesta:
RateLimit-Limit,RateLimit-Remaining,RateLimit-Reset(draft-7) - Requests
OPTIONS: no cuentan hacia el límite (para no penalizar preflight CORS) - Respuesta al exceder el límite (HTTP 429):
{
"success": false,
"message": "Demasiadas solicitudes. Intente nuevamente en 15 minutos."
}
Portal web — comportamiento del frontend
La página /directorio-psicologos es una SPA React (PublicDirectory.jsx) con las siguientes características:
Inicialización desde URL query params
Los filtros se inicializan a partir de los query params de la URL al cargar la página. Esto permite compartir búsquedas pre-filtradas:
/directorio-psicologos?city=GODOY+CRUZ&insurance=OSEP&search=niños&modality=VIRTUAL&page=2
Parámetros soportados: search, city, modality, attentionArea, insurance, page.
Comportamiento de los filtros
- Búsqueda libre: debounce de 350ms — no dispara la API en cada tecla
- Cambio de filtro dropdown: dispara la API inmediatamente y resetea a página 1
- Paginación: 20 resultados por página
Apertura de perfiles
Al hacer clic en una tarjeta:
1. Abre el modal de detalle
2. Hace un fetch a GET /directory/:enrollmentNumber para obtener los campos de detalle adicionales (university, degree, enrollmentDate)
3. Si el fetch falla (ej. caché expirado y perfil ya inactivo), muestra los datos de la tarjeta como fallback
URL compartible de perfil individual
Si la URL tiene el formato /directorio-psicologos/:slug, el modal se abre automáticamente al cargar la página haciendo un fetch a GET /directory/by-slug/:slug.
Gestión del perfil — Psicólogo (autogestión)
Ruta en el portal: /mi-perfil-publico
Endpoint backend: PUT /api/v1/professionals/my-public-profile
Flujo completo
Carga de página
→ GET /users/{userId}/full-profile
→ Mapea campos al formulario
Toggle "Publicar perfil"
→ PUT /professionals/my-public-profile
→ Payload: { isPublicProfileActive: boolean }
→ Efecto inmediato (sin guardar el resto del formulario)
Guardar cambios
→ PUT /professionals/my-public-profile
→ Payload: { todos los campos del formulario }
Campos editables desde autogestión
| Campo | Tipo | Descripción |
|---|---|---|
| Publicar perfil | toggle | Activa/desactiva la aparición en el directorio |
| Nombre a mostrar | texto | Nombre visible (por defecto: nombre y apellido del sistema) |
| Foto | URL | URL de la imagen de perfil |
| Biografía | textarea | Presentación profesional |
| Email público | Email de contacto en el directorio | |
| Teléfono público | texto | Teléfono de contacto |
| Sitio web | URL | Sitio web o red profesional |
| Modalidad | select | Presencial / Virtual / Ambas |
| Área de atención | texto | Poblaciones que atiende |
| Horarios | textarea | Horarios de atención |
| Obras sociales | textarea | Obras sociales aceptadas |
| Idiomas | texto | Idiomas en que atiende |
Campos NO editables desde aquí
Los siguientes campos provienen del expediente de matrícula y solo pueden modificarse desde la ficha profesional en el panel de Administración:
specialty(especialidades clínicas)orientation(orientación teórica)university/degree(formación académica)slug(auto-generado, no modificable manualmente)
Vista previa en tiempo real
La página incluye una tarjeta de previsualización que muestra en tiempo real cómo aparecerá el profesional en el directorio público, con foto, nombre, especialidad, ciudad, modalidad, teléfono y obras sociales.
Gestión del perfil — Administrador
Endpoint: PUT /api/v1/professionals/:id/public-profile
Requiere: rol ADMIN
Permite activar, desactivar y editar cualquier campo del perfil público de cualquier profesional desde la ficha individual en el módulo de Matrículas.
# Activar perfil
curl -X PUT "https://sandbox.umdev.com.ar/api/v1/professionals/[id]/public-profile" \
-H "Authorization: Bearer [token-admin]" \
-H "Content-Type: application/json" \
-d '{ "isPublicProfileActive": true }'
# Actualizar campos
curl -X PUT "https://sandbox.umdev.com.ar/api/v1/professionals/[id]/public-profile" \
-H "Authorization: Bearer [token-admin]" \
-H "Content-Type: application/json" \
-d '{
"isPublicProfileActive": true,
"attentionModality": "VIRTUAL",
"acceptedInsurances": "OSEP, OSDE, Swiss Medical",
"languages": "Español, Inglés"
}'
El endpoint acepta los mismos campos que la autogestión. Solo los campos presentes en el body se actualizan — el resto permanece sin cambios.
Endpoints de utilidad
Estos endpoints son de uso excepcional, no forman parte del flujo normal de la API.
POST /directory/seed-profiles
Activa perfiles públicos en lote para entornos nuevos. Genera datos demo (modalidad, área, horarios, obras sociales) y asigna slugs automáticamente.
Protección: requiere secret: "psicole-seed-2026" en el body.
curl -X POST "https://sandbox.umdev.com.ar/api/v1/public/directory/seed-profiles" \
-H "Content-Type: application/json" \
-d '{ "secret": "psicole-seed-2026", "count": 300 }'
| Parámetro | Default | Máximo | Descripción |
|---|---|---|---|
count |
300 | 500 | Cantidad de perfiles a activar |
Solo para entornos sin datos previos
Ejecutar solo una vez en entornos nuevos. Si se ejecuta en un entorno con perfiles ya activados, solo procesa los que tienen is_public_profile_active = false.
POST /directory/generate-slugs
Genera slugs para todos los perfiles activos que no tienen uno asignado. Operación idempotente — no modifica los slugs existentes.
curl -X POST "https://sandbox.umdev.com.ar/api/v1/public/directory/generate-slugs" \
-H "Content-Type: application/json" \
-d '{ "secret": "psicole-seed-2026" }'
Response:
{ "success": true, "generated": 45, "total": 45 }
Integración en sitios externos
fetch (JavaScript)
// Metadatos primero — obtener total y filtros disponibles
const info = await fetch('https://sandbox.umdev.com.ar/api/v1/public/directory/info')
.then(r => r.json());
console.log(`Hay ${info.data.totalProfessionals} profesionales en el directorio`);
// Buscar psicólogos en zona Mendoza que acepten OSEP y atiendan niños
const res = await fetch(
'https://sandbox.umdev.com.ar/api/v1/public/directory' +
'?city=GODOY+CRUZ&insurance=OSEP&search=ni%C3%B1os&limit=10'
);
const { data, pagination } = await res.json();
console.log(`${pagination.total} resultados — mostrando ${data.length}`);
data.forEach(psi => {
console.log(`${psi.displayName} | ${psi.modality} | ${psi.phone}`);
});
PHP
$url = 'https://sandbox.umdev.com.ar/api/v1/public/directory'
. '?city=GODOY+CRUZ&insurance=OSEP&search=ni%C3%B1os&limit=10';
$json = json_decode(file_get_contents($url), true);
foreach ($json['data'] as $psi) {
echo $psi['displayName'] . ' — ' . $psi['phone'] . PHP_EOL;
}
Python
import requests
resp = requests.get(
'https://sandbox.umdev.com.ar/api/v1/public/directory',
params={
'city': 'GODOY CRUZ',
'insurance': 'OSEP',
'search': 'niños',
'limit': 10
}
)
data = resp.json()
for psi in data['data']:
print(f"{psi['displayName']} | {psi['city']} | {psi['attentionArea']}")
URL compartible pre-filtrada
Para enlazar desde otro sitio web hacia el directorio con filtros pre-aplicados:
https://sandbox.umdev.com.ar/directorio-psicologos?city=GODOY+CRUZ&insurance=OSEP&search=ni%C3%B1os
Al abrir ese link, el portal carga con los filtros ya activos y muestra los resultados correspondientes.
Referencia completa de campos en la respuesta
Campos del listado (GET /directory)
| Campo | Tipo | Descripción |
|---|---|---|
id |
string | ID interno del registro |
enrollmentNumber |
string | Número de matrícula (ej: M-3847) |
slug |
string|null | Slug URL único (apellido-nombre) |
displayName |
string | Nombre visible (con fallback) |
photo |
string|null | URL de foto de perfil |
specialty |
string|null | Especialidades clínicas |
city |
string|null | Ciudad de atención (con fallback en tres niveles) |
province |
string|null | Provincia |
modality |
PRESENCIAL|VIRTUAL|BOTH|null |
Modalidad de atención |
attentionArea |
string|null | Población que atiende |
schedule |
string|null | Horarios (texto libre) |
phone |
string|null | Teléfono (con fallback a teléfono de consultorio) |
email |
string|null | Email de contacto público |
website |
string|null | Sitio web |
bio |
string|null | Biografía profesional |
insurances |
string|null | Obras sociales aceptadas |
languages |
string|null | Idiomas |
orientation |
string|null | Orientación teórica |
officeAddress |
string|null | Dirección de consultorio |
Campos adicionales en detalle (by-slug y /:enrollmentNumber)
| Campo | Tipo | Descripción |
|---|---|---|
university |
string|null | Universidad de graduación |
degree |
string|null | Título obtenido |
enrollmentDate |
ISO 8601|null | Fecha de matriculación |
Manejo de errores
| Código HTTP | Situación |
|---|---|
200 |
OK — respuesta exitosa |
403 |
Secret incorrecto en endpoints de utilidad (seed, generate-slugs) |
404 |
Profesional no encontrado, perfil inactivo, o matrícula no vigente |
429 |
Rate limit excedido (200 req / 15 min por IP) |
500 |
Error interno del servidor |
Estructura de error:
{
"success": false,
"message": "Perfil profesional no encontrado o no es público"
}


Módulo DINERO
Descripción
El módulo DINERO centraliza todas las operaciones financieras del Colegio. Accesible desde la barra lateral por usuarios con roles ADMIN y OPERADOR_FINANZAS, agrupa 13 secciones que cubren el ciclo completo: desde la generación de cuotas y la cobranza hasta la conciliación bancaria, reportes financieros y configuración del módulo.
Todas las operaciones del módulo DINERO se ejecutan en tiempo real contra la base de datos. Los indicadores del dashboard se calculan con consultas en paralelo para ofrecer una visión instantánea del estado financiero.
Ayuda contextual: Cada pantalla del módulo DINERO muestra un ícono (?) a la derecha del título. Al hacer clic, despliega una ayuda contextual específica para esa sección con un enlace directo a este manual.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
ADMIN | Acceso completo a las 13 secciones, incluyendo configuración |
OPERADOR_FINANZAS | Acceso completo a las 13 secciones |
CONTADOR | Acceso de lectura a dashboard, reportes y conciliación |
1. Dashboard de Dinero
Ruta: /admin/dinero/dashboard
El Dashboard es el punto de entrada al módulo. Ejecuta 14 consultas en paralelo para mostrar en tiempo real:
- Deuda total pendiente y desglose por estado (PENDING, OVERDUE)
- Pagos recibidos (hoy, este mes, este año)
- Top deudores con mayor deuda acumulada
- Estado de conciliación bancaria (transacciones sin matchear)
- Recargos por mora aplicados en el período
- Retenciones AFIP/IIBB reportadas
- Descuentos aplicados (débito automático, jubilados, pago anticipado)
- Alertas activas (SLA vencido, cuotas impagas críticas)
- Recupero de deuda en gestión
- Pagos pendientes de aprobación (transferencias)
- Estado del débito directo (adheridos, rechazos, pendientes)

2. Cobranza
Ruta: /admin/dinero/cobranza
Interfaz principal de cobro para operadores de caja. Permite:
- Buscar profesionales por nombre, apellido, DNI o n° de matrícula
- Visualizar todas las deudas pendientes y vencidas del profesional
- Seleccionar deudas para pago (individual o múltiple)
- Registrar pagos en efectivo, transferencia o débito automático
- Emitir recibos con numeración correlativa automática
- Anular recibos (solo ADMIN) con registro de auditoría
- Ver historial completo de pagos del profesional

3. Caja
Ruta: /admin/dinero/caja
Gestión de la caja diaria con:
- Apertura y cierre de caja con saldo inicial y final
- Registro de todos los movimientos (ingresos y egresos)
- Arqueo de caja con desglose por medio de pago
- Historial de cierres anteriores con auditoría
- Reporte de caja del día exportable

4. Conciliación Bancaria
Ruta: /admin/dinero/conciliacion
Ver sección completa: Conciliación Bancaria. Esta sección del módulo DINERO integra la carga de extractos bancarios (CSV/XLS), el matching automático y manual con pagos registrados, y la auditoría de diferencias.

5. Transferencias Pendientes
Ruta: /admin/dinero/transferencias
Bandeja de pagos por transferencia bancaria que requieren aprobación manual:
- Listado de transferencias pendientes con datos del ordenante
- Comprobante de transferencia subido por el colegiado
- Aprobación o rechazo con motivo
- Matcheo automático por CBU/CUIT del ordenante
- Notificación automática al colegiado al aprobar/rechazar

6. Planes de Pago
Ruta: /admin/dinero/planes
Administración de planes de pago en cuotas para deudas acumuladas:
- Crear plan de pago personalizado (cantidad de cuotas, monto, vencimientos)
- Visualizar plan con cronograma de pagos
- Registrar pagos de cuotas del plan
- Seguimiento del estado del plan (al día, moroso, cancelado)
- Cancelación anticipada con recálculo automático

7. Débito Automático
Ruta: /admin/dinero/debito-automatico
Gestión del sistema de débito automático (débito bancario y tarjeta de crédito). Este panel es la interfaz administrativa; los colegiados gestionan su adhesión desde Autogestión → Débito Automático donde pueden registrar su CBU, consultar el estado de su adhesión y ver el historial de débitos procesados.
El sistema aplica un descuento del 30% sobre la cuota para los colegiados adheridos al débito automático. El descuento se configura en Parámetros del Sistema → Descuentos → Débito Directo.
Gestión del sistema de débito automático (débito bancario y tarjeta de crédito):
- Listado de profesionales adheridos con estado de cada adhesión
- Alta de nueva adhesión (CBU o tarjeta)
- Gestión de rechazos: revisión y resolución
- Generación de archivos COELSA para procesamiento bancario
- Suspensión/reactivación de débitos por mora
- Historial de débitos procesados con resultado
Ver documentación completa: Débito Automático Feature.

8. Tarjetas sin Asociar
Ruta: /admin/dinero/tarjetas-sin-asociar
Bandeja de matching para pagos con tarjeta donde no se pudo identificar automáticamente al profesional:
- Listado de transacciones de tarjeta sin matchear
- Búsqueda del profesional por nombre, DNI o últimos dígitos de tarjeta
- Asociación manual (matcheo) con un profesional existente
- Crear nueva tarjeta para el profesional al asociar
- Historial de matcheos resueltos

9. Salud de Pagos
Ruta: /admin/dinero/salud-pagos
Indicadores de morosidad y salud de la cartera de colegiados:
- Ranking de morosidad por profesional (días de atraso, monto acumulado)
- Distribución de deuda por antigüedad (30/60/90+ días)
- Tasa de pago puntual vs. pago con mora
- Alertas de profesionales en riesgo de suspensión
- Evolución histórica de la morosidad (gráficos)

10. Contabilidad
Ruta: /admin/dinero/contabilidad
Registro contable de todas las operaciones financieras:
- Libro diario con asientos contables automáticos
- Plan de cuentas configurable
- Asientos generados automáticamente por cobros, pagos a prestadores, retenciones
- Consultas por cuenta, fecha, tipo de operación
- Exportación a formato compatible con sistemas contables externos

11. Facturación
Ruta: /admin/dinero/facturacion
Emisión de facturas electrónicas:
- Facturación de cuotas mensuales a colegiados
- Facturación a obras sociales por órdenes de prestadores
- Facturación de cursos y certificados
- Numeración fiscal correlativa (CAI/CAE)
- Visualización y descarga de facturas en PDF

12. Reportes Financieros
Ruta: /admin/dinero/reportes
Generación de reportes financieros exportables:
- Ingresos por período, por tipo de cuota, por medio de pago
- Egresos: pagos a prestadores, liquidaciones, gastos
- Balance mensual/anual comparativo
- Reporte de retenciones AFIP/IIBB
- Deuda por rango de antigüedad y por profesional
- Exportación a Excel, PDF y CSV

13. Configuración de Dinero
Ruta: /admin/dinero/configuracion
Configuración operativa del módulo DINERO. A diferencia de Parámetros del Sistema (que contiene variables fundacionales), MoneyConfig expone parámetros que se ajustan en vivo sin reinicio:
| Dominio | Keys | Descripción |
|---|---|---|
recovery | 3 | Gestión de recupero de deuda (plazos, estrategias) |
reconciliation | 2 | Tolerancia y reglas de matching bancario |
direct_debit | 3 | Configuración de débito automático |
payment_plan | 2 | Planes de pago (cuotas máximas, interés) |
discounts | 2 | Descuentos globales (% débito, % jubilados) |
alerts | 2 | Umbrales de alerta de morosidad |
late_fees | 0 (vacío) | Reservado para configuración de recargos (gestionado vía DebtCollection API) |

Notas importantes
- Todas las operaciones del módulo DINERO quedan registradas en el log de auditoría con usuario, fecha, IP y detalle de la operación.
- El módulo DINERO en el entorno sandbox es completamente inerte: los pagos online usan entornos de prueba (sandbox de MercadoPago, developer de Payway, sandbox de NAVE) y los emails se redirigen a una dirección segura.
- Las credenciales de los gateways de pago (MercadoPago, NAVE, Payway) se configuran en Parámetros del Sistema → PAGOS y se cifran antes de guardarse en la base de datos.


Comunicaciones
Descripción
El módulo de Comunicaciones abarca tres subsistemas integrados que gestionan todas las comunicaciones del sistema: Mensajería Interna (avisos de operadores a usuarios), Notificaciones del Sistema (alertas automáticas por eventos), e Infraestructura de Email (envío transaccional con 4 capas de seguridad).
Ayuda contextual: La pantalla de Auditoría de Comunicaciones muestra un ícono (?) a la derecha del título. Al hacer clic, despliega una ayuda contextual con un enlace directo a esta sección del manual.
Incluye además un Panel de Auditoría para Super Admins que permite monitorear en tiempo real todos los mensajes enviados, con estadísticas, agrupación por template y exportación CSV.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
ADMIN | Acceso completo: enviar avisos, ver auditoría, monitorear infraestructura |
| Todos los operadores | Enviar avisos internos a usuarios por rol o individualmente |
| Todos los roles | Bandeja de entrada (/mis-mensajes), campanita de notificaciones |
COLEGIADO, PRESTADOR | Adicional: /mi-agenda con eventos pendientes |
Arquitectura general
El módulo se organiza en 3 subsistemas más un panel de monitoreo:
| Subsistema | Modelo | Canales | Disparador |
|---|---|---|---|
| Mensajería Interna | InternalMessage + InternalMessageRecipient | Campana (in-app), email | Manual (operador) |
| Notificaciones del Sistema | Notification (32 tipos) | Campana (in-app), SSE, email, WhatsApp, Telegram | Automático (eventos del sistema) |
| Infraestructura de Email | EmailLog (28 templates) | Email (SMTP) | Automático y manual |
1. Mis Avisos y Notificaciones (Usuario)
Ruta: /mis-mensajes
Bandeja de entrada unificada para todos los roles. Organizada en dos pestañas:
- Avisos (
InternalMessage): mensajes enviados por operadores del Colegio. Cada mensaje tiene prioridad (LOW, NORMAL, HIGH, URGENT) y puede estar dirigido a TODOS, a un ROL específico, o a un usuario INDIVIDUAL. Incluye tracking de lectura (el operador puede ver quiénes leyeron). - Notificaciones (
Notification): alertas automáticas del sistema con 32 tipos distintos que cubren: pagos recibidos, cuotas generadas, vencimientos, recordatorios, cursos (inscripción, certificado, lista de espera), débito directo (adhesión, rechazo, suspensión), trámites (creación, asignación, resolución), beneficios (jubilación, retiro), prestadores (registro, validación, liquidación), y más.
Ambas pestañas tienen filtro Todos / No leídos, paginación, panel de detalle al hacer clic, y botón "Marcar todo como leído".

Campanita de Notificaciones (Header)
Presente en todas las páginas para todos los roles. Componente NotificationBell en el header:
- Badge numérico con conteo de no leídos
- Dropdown con dos pestañas: Avisos (mensajes internos) y Sistema (notificaciones automáticas)
- Polling cada 60 segundos para actualizar el conteo
- Actualización en tiempo real vía SSE (Server-Sent Events) para notificaciones críticas
- Botón "Marcar todo como leído" en cada pestaña
- Click en un ítem: navega al recurso relacionado (ej: el pago, el curso, el ticket)
2. Mi Agenda (Colegiado / Prestador)
Ruta: /mi-agenda
Vista consolidada de eventos pendientes para el profesional:
- Anuncios con snooze activo
- Vencimientos de matrícula
- Inicio de cursos inscriptos
- Deudas próximas a vencer
- Tickets pendientes de respuesta
- Tarjetas con estilo visual por prioridad (URGENT: rojo, HIGH: naranja, NORMAL: azul, LOW: gris)

3. Avisos Internos (Admin / Operadores)
Ruta: /admin/internal-messages
Panel para que los operadores envíen comunicaciones a los usuarios:
Componer y enviar
- Destinatarios: tres modos — Todos los usuarios (
ALL), por Rol (ROLE, con selector de rol), o Individual (INDIVIDUAL, con búsqueda por nombre/email) - Prioridad: LOW, NORMAL, HIGH, URGENT (afecta el estilo visual en la bandeja del destinatario)
- Título y cuerpo del mensaje
- Validación Zod de todos los campos antes del envío
- Rate limit: máximo 30 mensajes por hora por operador
- Permiso requerido:
COMUNICACIONES/CREATE/INTERNAL_MESSAGE

Historial de enviados
- Listado de todos los mensajes enviados por el operador
- Estadísticas de lectura: total de destinatarios, leídos, no leídos
- Detalle por mensaje: lista de destinatarios con estado de lectura individual
- Fecha y hora de lectura de cada destinatario
4. Auditoría de Comunicaciones (Super Admin)
Ruta: /admin/communications-audit
Panel exclusivo para ADMIN que permite auditar todas las comunicaciones del sistema. Organizado en 3 tabs:
Tab 1: Emails
- Listado paginado de todos los emails enviados con filtros: por fecha, template, estado, destinatario
- Agrupación por template + fecha: útil para ver rápidamente cuántos emails de cada tipo se enviaron en un día
- Desglose por dominio de destinatario dentro de cada grupo (gmail.com, hotmail.com, etc.)
- Estados: SENT (enviado), DEFERRED (diferido por rate limit), BOUNCED (rebotado), ERROR (falló), BLOCKED (bloqueado por kill switch / circuit breaker)
- Exportación CSV de todo el listado o de un grupo específico
- Estadísticas agregadas: conteo 24h, tasa de error 7 días

Tab 2: Mensajes Internos
- Listado combinado de InternalMessage + Notification
- Filtros por tipo, fecha, usuario destinatario
- Estadísticas de lectura globales
Tab 3: Notificaciones
- Notificaciones del sistema agrupadas por tipo + fecha
- Desglose individual dentro de cada grupo
- Conteo por tipo de notificación
Monitoreo de Infraestructura
El panel incluye indicadores en tiempo real de:
- Rate Limiter: tokens disponibles, tasa de consumo, límites (10/min, 200/hora)
- Circuit Breaker: estado (CLOSED / OPEN / HALF_OPEN), tasa de error en ventana de 5 minutos, muestras
Infraestructura de Email
El envío de emails transaccionales está protegido por 4 capas de seguridad:
| Capa | Mecanismo | Descripción |
|---|---|---|
| 1. Kill Switch | DISABLE_ALL_EMAILS + PSICOLE_DEPLOYMENT_ENV | Si el deployment env no es "production" o el flag está activo, bloquea todos los envíos. En sandbox, todos los emails se redirigen a una dirección segura configurada en EMAIL_REDIRECT_TO. |
| 2. Circuit Breaker | Sliding window 5 min, umbral 30% error | Si más del 30% de los envíos fallan en 5 minutos, abre el circuito y detiene todos los envíos. Se recupera automáticamente (HALF_OPEN) tras 2 minutos sin errores. |
| 3. Rate Limiter | Token bucket: 10/min, 200/hora | Limita la tasa de envío para no saturar el servidor SMTP ni ser marcados como spam. Los emails que exceden el límite se encolan (estado DEFERRED) y se reintentan. |
| 4. Audit Log | EmailLog en base de datos | Todos los intentos de envío se registran con: destinatario, template, estado, mensaje de error, fecha. Esto permite auditoría completa y debugging. |
Templates de Email (28 tipos)
El sistema incluye templates HTML para cada tipo de comunicación:
- Pagos y Cuotas: PAYMENT_REMINDER, OVERDUE_NOTICE, PAYMENT_RECEIVED, QUOTA_GENERATED
- Matrículas: ENROLLMENT_APPROVED, ENROLLMENT_REJECTED, ENROLLMENT_ONBOARDING, RENOVACION_MATRICULA
- Cursos: COURSE_REGISTRATION, COURSE_CERTIFICATE
- Tickets: TICKET_CREATED, TICKET_UPDATED, TICKET_ASSIGNED, TICKET_RESOLVED
- Prestadores: PROVIDER_ORDER, PROVIDER_VALIDATION, RENDITION_RESULT, ORDER_OBSERVED
- Débito Directo: DIRECT_DEBIT_MANDATE, DIRECT_DEBIT_REJECTION
- Beneficios: BENEFIT_APPROVED, BENEFIT_REJECTED, PARENTAL_BENEFIT, RETIREMENT_BENEFIT
- Otros: PASSWORD_RESET, ETHICS_CERTIFICATE, BULK_ANNOUNCEMENT, MANUAL
Seguridad en Sandbox
En el entorno de sandbox (PSICOLE_DEPLOYMENT_ENV=sandbox), la capa de kill switch garantiza que ningún email salga a destinatarios reales:
- Todos los emails se redirigen a
EMAIL_REDIRECT_TO(configurado en docker-compose) - Si
EMAIL_REDIRECT_TOno está configurado o se elimina accidentalmente, el kill switch detiene el arranque del servidor - El circuit breaker y rate limiter también aplican en sandbox, permitiendo probar su comportamiento


Usuarios y Roles
Descripción
Este módulo permite al administrador gestionar todos los usuarios del sistema: crear cuentas, asignar roles, revocar accesos, visualizar la actividad de cualquier usuario mediante impersonación y consultar el historial de auditoría de accesos.
Acceso
Menú: Administración → Usuarios y Roles
Roles con acceso: ADMIN
Crear un usuario
- Ir a Administración → Usuarios y Roles → Nuevo usuario.
- Completar el formulario:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| Nombre completo | Texto | Sí | Nombre visible en el sistema |
| Sí | Se usa como credencial de login y para notificaciones | ||
| DNI | Numérico | Sí | Documento Nacional de Identidad |
| Rol | Select | Sí | Ver tabla de roles disponibles |
| Contraseña temporal | Texto | Sí | El usuario deberá cambiarla en el primer login |
| Activo | Toggle | Sí | Habilitado por defecto |
- Hacer clic en Guardar. El sistema envía un email de bienvenida al usuario con sus credenciales.

Roles disponibles
| Rol | Descripción |
|---|---|
ADMIN |
Acceso total al sistema, incluyendo configuración y auditoría |
OPERADOR_MATRICULAS |
Gestión de solicitudes y matrículas activas |
OPERADOR_FINANZAS |
Gestión de cuotas, pagos y recibos |
OPERADOR_CURSOS |
Alta y administración de cursos de capacitación |
OPERADOR_TRAMITES |
Procesamiento de trámites administrativos |
SUPERVISOR_TRAMITES |
Supervisión y aprobación de trámites del equipo |
COLEGIADO |
Portal de autogestión del profesional matriculado |
PRESTADOR |
Envío de órdenes de obras sociales |
ASPIRANTE |
Solicitante de matrícula (acceso limitado al formulario) |
Importante
Un usuario solo puede tener un rol asignado en simultáneo. Si necesitás ampliar permisos de forma excepcional, utilizá la función de permisos adicionales (ver sección Permisos avanzados).
Editar y revocar acceso
- Para editar un usuario: hacer clic en el ícono de lápiz en la fila correspondiente.
- Para desactivar (sin eliminar): usar el toggle Activo en el formulario de edición. El usuario no podrá iniciar sesión pero sus datos e historial se conservan.
- Para eliminar permanentemente: hacer clic en el ícono de papelera. Esta acción requiere confirmación y es irreversible.
Eliminar vs. Desactivar
Se recomienda desactivar en lugar de eliminar, ya que la eliminación borra el historial de actividad del usuario y puede romper referencias en auditorías y registros financieros.

Impersonación de administrador
La impersonación permite a un ADMIN visualizar el sistema exactamente como lo ve otro usuario, sin poder realizar cambios. Es útil para soporte y diagnóstico.
Cómo impersonar:
- En la lista de usuarios, hacer clic en el ícono "Ver como este usuario" (ícono de ojo).
- Se abre una nueva pestaña con la sesión del usuario en modo solo-lectura.
- Un banner naranja en la parte superior indica: "Estás viendo el sistema como [Nombre del usuario] — Modo solo-lectura".
- Para salir de la impersonación, hacer clic en "Volver a mi sesión" en el banner.
Modo solo-lectura
Durante la impersonación no es posible guardar, aprobar, rechazar ni modificar ningún dato. Cualquier intento de acción mostrará un mensaje de bloqueo. Todas las sesiones de impersonación quedan registradas en el log de auditoría.

Auditoría de accesos
El log de auditoría registra automáticamente todos los eventos de seguridad relevantes.
Cómo acceder: Administración → Usuarios y Roles → Auditoría
Eventos registrados:
| Evento | Descripción |
|---|---|
LOGIN_SUCCESS |
Inicio de sesión exitoso |
LOGIN_FAILED |
Intento de login fallido (contraseña incorrecta) |
LOGOUT |
Cierre de sesión |
PASSWORD_CHANGED |
Cambio de contraseña |
ROLE_ASSIGNED |
Asignación o cambio de rol |
USER_DEACTIVATED |
Desactivación de cuenta |
IMPERSONATION_START |
Inicio de sesión de impersonación |
IMPERSONATION_END |
Fin de sesión de impersonación |
PERMISSION_DENIED |
Intento de acceso a recurso no autorizado |
Filtros disponibles: por usuario, por tipo de evento, por rango de fechas.



Parámetros del Sistema
Descripción
Los Parámetros del Sistema son la configuración global que define el comportamiento de la plataforma. Se accede desde Administración → Parámetros del Sistema y está disponible solo para el rol ADMIN.
Los parámetros están organizados en 6 categorías con un total de 37 parámetros. Cada parámetro tiene tipo (STRING, NUMBER, BOOLEAN, JSON), validación de tipo automática, y registro de auditoría (quién lo modificó, cuándo, valor anterior y nuevo).
Los cambios se aplican inmediatamente al guardar. Para credenciales de gateways de pago, el sistema sincroniza automáticamente las variables de entorno y reinicializa los clientes sin necesidad de reiniciar el servidor.
Acceso
Menú: Administración → Parámetros del Sistema
Roles con acceso: ADMIN
Inicialización: Si es la primera vez, hacer clic en "Inicializar Parámetros por Defecto" para crear los 37 parámetros con sus valores default.
Vista general
La página muestra los parámetros agrupados por categoría en secciones colapsables. Cada categoría se puede filtrar individualmente con el selector superior o ver todas juntas. Cada parámetro muestra: etiqueta, valor actual, tipo, descripción, y fecha de última modificación con el usuario que la realizó.

Modos de edición
El sistema ofrece dos modos de edición:
- Edición individual: clic en el ícono de lápiz junto a cada parámetro. Abre un modal con el campo de valor, validación de tipo en tiempo real, y botón Guardar. Útil para cambios puntuales.
- Edición masiva (Bulk): clic en "Editar Todo" en una categoría. Convierte todos los campos en inputs editables simultáneamente. Un solo botón "Guardar Cambios" persiste todos a la vez. Ideal para configuraciones iniciales o ajustes globales.
Categorías de Parámetros
1. INSTITUTION — Datos Institucionales (5 parámetros)
Definen la identidad del Colegio. Estos datos aparecen en reportes, credenciales digitales, encabezados de emails, recibos y facturas.
| Key | Tipo | Default | Descripción |
|---|---|---|---|
INSTITUTION_NAME | STRING | Colegio de Psicólogos | Nombre oficial del colegio profesional |
INSTITUTION_CUIT | STRING | (vacío) | CUIT/número de identificación fiscal |
INSTITUTION_ADDRESS | STRING | (vacío) | Dirección física de la sede |
INSTITUTION_PHONE | STRING | (vacío) | Teléfono de contacto principal |
INSTITUTION_EMAIL | STRING | (vacío) | Email institucional de contacto |

2. SECURITY — Seguridad (4 parámetros)
Controlan el acceso al sistema y la protección de cuentas.
| Key | Tipo | Default | Descripción |
|---|---|---|---|
MAX_LOGIN_ATTEMPTS | NUMBER | 5 | Intentos fallidos antes de bloquear la cuenta. Se lee dinámicamente en cada intento de login (con cache de 60s). |
MAX_INTENTOS_LOGIN | NUMBER | 5 | Alias alternativo para maximum login attempts |
SESSION_TIMEOUT_MINUTES | NUMBER | 30 | Minutos de inactividad antes del cierre de sesión automático |
REQUIRE_EMAIL_VERIFICATION | BOOLEAN | true | Si está activo, los nuevos usuarios deben verificar su email |

3. EMAIL — Correo Electrónico (5 parámetros)
Configuración de envío de emails del sistema.
| Key | Tipo | Default | Descripción |
|---|---|---|---|
EMAIL_FROM_NAME | STRING | Colegio de Psicólogos | Nombre del remitente en los emails enviados |
EMAIL_SUBJECT_PREFIX | STRING | [PSIcole] | Prefijo antepuesto al asunto de todos los emails |
EMAIL_REMITENTE | STRING | (vacío) | Dirección de email del remitente |
EMAIL_FIRMA | STRING | (vacío) | Firma incluida al pie de los emails |
DIAS_RECORDATORIO_CUOTA | NUMBER | 5 | Días antes del vencimiento para enviar recordatorio de pago |

4. PAYMENTS — Pagos y Finanzas (19 parámetros)
La categoría más grande. Agrupa la configuración general de pagos, los parámetros de cuotas y mora, y las credenciales de los gateways de pago.
Parámetros generales de pago
| Key | Tipo | Default | Descripción |
|---|---|---|---|
DEFAULT_PAYMENT_METHODS | STRING | CASH,TRANSFER,ONLINE | Métodos de pago habilitados (separados por coma) |
ONLINE_PAYMENTS_ENABLED | BOOLEAN | true | Habilita/deshabilita globalmente los pagos en línea |
DEFAULT_PAYMENT_PROVIDER | STRING | MERCADO_PAGO | Gateway de pago predeterminado: MERCADO_PAGO, NAVE, o PAYWAY |
DIRECT_DEBIT_ENABLED | BOOLEAN | true | Habilita/deshabilita globalmente el sistema de débito automático |
RECEIPT_NUMBER_PREFIX | STRING | REC- | Prefijo para los números de recibo generados |
Cuotas, descuentos y recargos
| Key | Tipo | Default | Descripción |
|---|---|---|---|
CUOTA_MENSUAL_IMPORTE | NUMBER | (vacío) | Importe base de la cuota mensual (en ARS) |
CUOTA_DIA_VENCIMIENTO | NUMBER | 10 | Día del mes en que vence la cuota |
DESCUENTO_DEBITO_AUTO | NUMBER | 30 | Porcentaje de descuento por adherir al débito automático |
LATE_FEE_GRACE_DAYS | NUMBER | 5 | Días de gracia después del vencimiento antes de aplicar recargo |
RECARGO_MORA_PORCENTAJE | NUMBER | (vacío) | Porcentaje mensual de recargo por mora |
Credenciales de Gateways de Pago
Estos parámetros contienen las claves y tokens de acceso para los proveedores de pago. Los valores sensibles se cifran con AES-256-CBC antes de guardarse en la base de datos (prefijo enc:). Al leerlos desde la API, se descifran automáticamente para mostrarse en la UI.
Al guardar un cambio en cualquiera de estos parámetros, el sistema sincroniza la variable de entorno correspondiente y reinicializa el cliente del gateway en caliente, sin necesidad de reiniciar el servidor.
| Key | Tipo | ¿Se cifra? | Descripción |
|---|---|---|---|
MERCADO_PAGO_ACCESS_TOKEN | STRING | SÍ | Token de acceso de MercadoPago |
MERCADO_PAGO_PUBLIC_KEY | STRING | No (pública) | Clave pública de MercadoPago usada en el frontend |
NAVE_CLIENT_ID | STRING | No (público) | Client ID de NAVE (Banco Galicia) |
NAVE_CLIENT_SECRET | STRING | SÍ | Client Secret de NAVE |
NAVE_PLATFORM | STRING | No | Identificador de plataforma de NAVE |
NAVE_STORE_ID | STRING | No | ID de comercio de NAVE |
PAYWAY_PUBLIC_KEY | STRING | No (pública) | Clave pública de Payway/Decidir |
PAYWAY_PRIVATE_KEY | STRING | SÍ | Clave privada de Payway |
PAYWAY_SITE_ID | STRING | No | Site ID de Payway/Decidir |


Hot-reload de gateways: Al guardar credenciales de MercadoPago, NAVE o Payway desde esta pantalla, el sistema sincroniza automáticamente process.env y llama a reinitializeClient() en el gateway correspondiente. Los nuevos pagos usan las credenciales actualizadas al instante. No se requiere reiniciar el contenedor.
5. TICKETS — Trámites y Tickets (3 parámetros)
Controlan el comportamiento automático del sistema de tickets.
| Key | Tipo | Default | Descripción |
|---|---|---|---|
TICKET_GRACE_PERIOD_MINUTES | NUMBER | 30 | Minutos de gracia antes de escalar un ticket con SLA vencido |
TICKET_INACTIVITY_HOURS | NUMBER | 24 | Horas sin respuesta antes de reasignar automáticamente |
TICKET_AUTO_CLOSE_DAYS | NUMBER | 7 | Días sin actividad para cerrar tickets en estado RESUELTO |

6. GENERAL — General (1 parámetro)
| Key | Tipo | Default | Descripción |
|---|---|---|---|
MAX_INSCRIPCIONES_CURSO | NUMBER | (vacío) | Cantidad máxima de inscripciones por curso |
Encriptación de credenciales
Los parámetros marcados como sensibles en la tabla de gateways de pago usan encriptación AES-256-CBC:
- La clave de encriptación se configura en la variable de entorno
CBU_ENCRYPTION_KEY(64 caracteres hexadecimales = 32 bytes). - Los valores cifrados en la base de datos llevan el prefijo
enc:seguido del texto cifrado en hexadecimal. - Al leer un parámetro vía API, el sistema detecta el prefijo
enc:y descifra automáticamente antes de enviar la respuesta. - Al guardar, el sistema detecta si el parámetro es sensible (
isSensitiveParam()) y cifra antes del INSERT/UPDATE. - Importante: Si
CBU_ENCRYPTION_KEYno está configurada o tiene un formato incorrecto, los valores se guardan en texto plano sin advertencia. Verificar que esté presente en todos los entornos (sandbox, producción).
API
| Método | Endpoint | Descripción |
|---|---|---|
GET | /api/v1/system-parameters | Obtener todos los parámetros agrupados por categoría. Query param opcional: ?category=PAYMENTS para filtrar. |
GET | /api/v1/system-parameters/:key | Obtener un parámetro por clave |
PUT | /api/v1/system-parameters/:key | Actualizar un parámetro individual. Body: { "value": "nuevo valor" } |
PUT | /api/v1/system-parameters | Actualizar múltiples parámetros. Body: [{ "key": "...", "value": "..." }, ...]. Rate limit: 60 req/min. |
POST | /api/v1/system-parameters/init | Inicializar parámetros por defecto (solo crea los que no existen) |
Notas importantes
- Los parámetros no tienen cache HTTP. Cada GET trae el valor más reciente de la base de datos. Los cambios se reflejan inmediatamente en la UI tras guardar.
- Toda modificación queda registrada en la tabla con el
updatedBy(usuario) yupdatedAt(timestamp). - Los parámetros de tipo
JSONdeben ser un objeto JSON válido. La validación se ejecuta tanto en el frontend como en el backend. - Para obtener credenciales de los gateways de pago (NAVE, MercadoPago, Payway), consultar la Guía de Credenciales de Pagos.


Tipos de Cuota (FeeTypes)
Descripción
Los Tipos de Cuota definen las distintas categorías de cobro que el Colegio aplica a sus matriculados. Cada tipo especifica el importe base, la periodicidad de generación, a qué roles aplica y si admite descuentos. El CRON de generación mensual usa esta configuración para crear automáticamente las cuotas de cada período.
Acceso
Menú: Administración → Tipos de Cuota
Roles con acceso: ADMIN, OPERADOR_FINANZAS
Listado de tipos de cuota
La pantalla principal muestra una tabla con todos los tipos de cuota configurados:
| Columna | Descripción |
|---|---|
| Nombre | Identificador descriptivo del tipo |
| Importe base | Monto sin descuentos ni recargos |
| Periodicidad | Con qué frecuencia se genera |
| Aplica a | Roles que reciben este tipo de cuota |
| Activo | Si el tipo se incluye en la próxima generación automática |
| Acciones | Editar / Desactivar |

Crear un tipo de cuota
- Hacer clic en Nuevo tipo de cuota.
- Completar el formulario:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| Nombre | Texto | Sí | Nombre descriptivo que aparecerá en el recibo. Ej.: "Cuota Mensual Plena" |
| Código interno | Texto | Sí | Identificador único sin espacios. Ej.: MENSUAL_PLENA |
| Descripción | Textarea | No | Detalle adicional para uso interno |
| Importe base | Decimal | Sí | Monto en pesos sin descuentos. Ej.: 8500.00 |
| Periodicidad | Select | Sí | MENSUAL, BIMESTRAL, TRIMESTRAL, SEMESTRAL, ANUAL, ÚNICA |
| Aplica a roles | Multi-select | Sí | Roles que recibirán este tipo de cuota automáticamente |
| Admite descuento por débito directo | Toggle | Sí | Si aplica el descuento configurado globalmente |
| Admite descuento por jubilación | Toggle | Sí | Si aplica el descuento para jubilados |
| Admite descuento por pago anticipado | Toggle | Sí | Si aplica el descuento por pago antes de la fecha límite |
| Admite recargo por mora | Toggle | Sí | Si aplica recargos por pago tardío |
| Activo | Toggle | Sí | Habilitado por defecto. Solo los tipos activos se incluyen en el CRON |
- Hacer clic en Guardar.
Código interno
El código interno es permanente y no puede modificarse una vez creado el tipo de cuota. Asegurarse de que sea claro y consistente con la nomenclatura del Colegio.

Editar un tipo de cuota
Se pueden modificar todos los campos excepto el Código interno. Los cambios de importe aplican únicamente a las cuotas que se generen a partir del siguiente período. Las cuotas ya generadas no se recalculan.
Cambios de importe retroactivos
Si necesitás ajustar el importe de cuotas ya generadas, debés editarlas individualmente desde el módulo de Finanzas → Cuotas.
Desactivar un tipo de cuota
Desactivar un tipo lo excluye de futuras generaciones automáticas. Las cuotas ya existentes de ese tipo no se eliminan ni modifican.
Para desactivar: en la tabla, hacer clic en el toggle Activo de la fila correspondiente, o entrar a editar y desmarcar el toggle Activo.
Ejemplos de tipos de cuota comunes
Cuota Mensual Plena
| Campo | Valor |
|---|---|
| Nombre | Cuota Mensual Plena |
| Código interno | MENSUAL_PLENA |
| Importe base | $8.500,00 |
| Periodicidad | MENSUAL |
| Aplica a roles | COLEGIADO |
| Débito directo | Sí (30% de descuento) |
| Jubilación | Sí (50% de descuento) |
| Pago anticipado | Sí (X% configurable) |
| Mora | Sí |
Cuota Mensual Novel
Aplica a profesionales matriculados hace menos de 2 años (clasificados manualmente en este rol).
| Campo | Valor |
|---|---|
| Nombre | Cuota Mensual Novel |
| Código interno | MENSUAL_NOVEL |
| Importe base | $4.250,00 |
| Periodicidad | MENSUAL |
| Aplica a roles | COLEGIADO (con atributo "novel") |
| Débito directo | Sí |
| Jubilación | No |
| Pago anticipado | Sí |
| Mora | Sí |
Matrícula Anual
Cargo único por año calendario.
| Campo | Valor |
|---|---|
| Nombre | Matrícula Anual |
| Código interno | MATRICULA_ANUAL |
| Importe base | $12.000,00 |
| Periodicidad | ANUAL |
| Aplica a roles | COLEGIADO |
| Débito directo | No |
| Jubilación | Sí |
| Pago anticipado | No |
| Mora | Sí |
Cuota de Inscripción (única)
Cargo de ingreso al Colegio, generado una sola vez al aprobar la matrícula.
| Campo | Valor |
|---|---|
| Nombre | Cuota de Inscripción |
| Código interno | INSCRIPCION_UNICA |
| Importe base | $5.000,00 |
| Periodicidad | ÚNICA |
| Aplica a roles | ASPIRANTE (al convertirse en COLEGIADO) |
| Débito directo | No |
| Jubilación | No |
| Pago anticipado | No |
| Mora | No |
Descuentos y Recargos
Descripción
PSICOLE aplica automáticamente descuentos e intereses por mora sobre las cuotas generadas. Los descuentos se otorgan según condiciones del colegiado (débito directo, jubilación) o comportamiento de pago (pago anticipado). Los recargos se acumulan de forma escalonada según los días transcurridos desde el vencimiento.
Acceso
Menú: Administración → Descuentos y Recargos
Roles con acceso: ADMIN, OPERADOR_FINANZAS
Descuentos automáticos
Los descuentos se configuran como porcentajes globales y se aplican a todos los tipos de cuota que tengan habilitado el descuento correspondiente (ver Tipos de Cuota).
Débito directo
Descuento para colegiados que tengan registrado un CBU para débito automático y su cuenta esté activa.
| Parámetro | Descripción | Valor por defecto |
|---|---|---|
| Porcentaje de descuento | % que se resta del importe base | 30% |
| Condición | CBU registrado y activo en el perfil del colegiado | — |
| Aplicación | Automática al generar la cuota si el CBU está activo | — |
Ejemplo: Cuota Mensual Plena $8.500 → con débito directo: $5.950 (30% de descuento).

Descuento por jubilación
Descuento para colegiados marcados como jubilados en su perfil.
| Parámetro | Descripción | Valor por defecto |
|---|---|---|
| Porcentaje de descuento | % que se resta del importe base | 50% |
| Condición | Atributo jubilado = true en el perfil del colegiado |
— |
| Aplicación | Automática al generar la cuota | — |
Ejemplo: Cuota Mensual Plena $8.500 → jubilado: $4.250 (50% de descuento).
Acumulación de descuentos
Los descuentos por débito directo y jubilación son excluyentes entre sí: se aplica el mayor. No se acumulan. El sistema evalúa ambas condiciones y aplica automáticamente el porcentaje más beneficioso para el colegiado.
Descuento por pago anticipado
Descuento para colegiados que abonan su cuota antes de la fecha límite de descuento configurada.
| Parámetro | Descripción | Valor por defecto |
|---|---|---|
| Porcentaje de descuento | % configurable por tipo de cuota | Variable |
| Fecha límite de descuento | Días del mes hasta los cuales aplica | Configurable por tipo |
| Condición | Pago registrado antes de la fecha límite | — |
Para configurarlo por tipo de cuota: ir a Tipos de Cuota → Editar → campo "% pago anticipado" y "Fecha límite de pago anticipado".

Recargos por mora
Los recargos por mora se calculan automáticamente mediante el CRON de mora (ver Tareas Programadas) y se acumulan de forma escalonada según los días transcurridos desde el vencimiento.
Tabla de recargos (configuración por defecto)
| Tramo | Días de mora | Recargo adicional | Recargo acumulado |
|---|---|---|---|
| Tramo 1 | 1 – 30 días | 5% | 5% |
| Tramo 2 | 31 – 60 días | 5% adicional | 10% |
| Tramo 3 | 61 – 90 días | 5% adicional | 15% |
| Tramo 4 | 91 – 120 días | 5% adicional | 20% |
| Tramo 5 | Más de 120 días | 5% adicional | 25% |
Los porcentajes de cada tramo son completamente configurables.
Cómo configurar los tramos de mora
- Ir a Administración → Descuentos y Recargos → Recargos por mora.
- La tabla muestra los tramos actuales. Hacer clic en Editar tramos.
- Para cada tramo:
| Campo | Descripción |
|---|---|
| Desde (días) | Primer día del tramo |
| Hasta (días) | Último día del tramo (0 para "sin límite") |
| Porcentaje adicional | % que se suma al recargo del tramo anterior |
- Usar + Agregar tramo para incluir nuevos rangos.
- Hacer clic en Guardar configuración.
Cambios en tramos de mora
Modificar los tramos afecta únicamente los cálculos de mora que se ejecuten a partir del siguiente CRON. Las cuotas que ya tienen recargo calculado no se recalculan automáticamente. Para recalcular cuotas específicas, hacerlo manualmente desde Finanzas → Cuotas.

Ejemplo de cálculo de mora
Cuota Mensual Plena $8.500, vencida hace 45 días, sin descuentos activos:
| Concepto | Cálculo | Monto |
|---|---|---|
| Importe base | — | $8.500,00 |
| Recargo tramo 1 (1–30 días) | 5% sobre $8.500 | +$425,00 |
| Recargo tramo 2 (31–60 días) | 5% adicional sobre $8.500 | +$425,00 |
| Total a pagar | $9.350,00 |
Orden de aplicación
Cuando coexisten descuentos y recargos, el sistema aplica el siguiente orden:
- Se toma el importe base del tipo de cuota.
- Se aplica el descuento (si corresponde): débito directo, jubilación o pago anticipado.
- Se calcula el recargo por mora sobre el importe ya descontado.
Ejemplo: Cuota $8.500, jubilado (50% descuento), 45 días de mora:
| Paso | Operación | Monto |
|---|---|---|
| 1 | Importe base | $8.500,00 |
| 2 | Descuento jubilado (50%) | −$4.250,00 → $4.250,00 |
| 3 | Mora 10% sobre $4.250 | +$425,00 |
| Total | $4.675,00 |
Tareas Programadas
Descripción
PSICOLE incluye un conjunto de tareas automáticas (CRON jobs) que ejecutan procesos periódicos sin intervención manual: generación de cuotas, cálculo de mora, envío de notificaciones y otras automatizaciones del ciclo operativo. Estas tareas se activan o desactivan mediante la variable de entorno ENABLE_SCHEDULER.
Acceso
Menú: Administración → Tareas Programadas
Roles con acceso: ADMIN
Activar y desactivar el scheduler
El scheduler global se controla con la variable de entorno en el archivo .env del servidor:
# Habilitar todas las tareas programadas
ENABLE_SCHEDULER=true
# Deshabilitar todas las tareas (ej.: mantenimiento)
ENABLE_SCHEDULER=false
Importante
Deshabilitar el scheduler detiene todas las tareas automáticas simultáneamente. Si solo necesitás pausar una tarea específica, usá el toggle individual desde el panel de Tareas Programadas en la interfaz de administración. Los cambios en .env requieren reiniciar el servidor de Node.js para tener efecto.
Desde la interfaz, cada tarea también tiene un toggle individual de habilitación que persiste en base de datos y no requiere reiniciar el servidor.

Lista de tareas programadas
1. Generación mensual de cuotas
| Propiedad | Valor |
|---|---|
| Nombre | generate-monthly-fees |
| Descripción | Genera automáticamente las cuotas del mes siguiente para todos los colegiados activos, según los Tipos de Cuota activos y sus roles |
| Cron expression | 0 6 1 * * — a las 6:00 AM del día 1 de cada mes |
| Roles afectados | Todos los roles con tipos de cuota activos asignados |
| Resultado | Cuotas con estado PENDIENTE en el módulo de Finanzas |
| Log | Registra cantidad de cuotas generadas, errores por colegiado y resumen total |
Ejecución manual
Si el día 1 del mes el scheduler estaba deshabilitado, es posible ejecutar la generación manualmente desde el panel haciendo clic en Ejecutar ahora junto a esta tarea. Se recomienda hacerlo antes del día 5 para no afectar los vencimientos configurados.
2. Cálculo de recargos por mora
| Propiedad | Valor |
|---|---|
| Nombre | calculate-late-fees |
| Descripción | Recorre todas las cuotas con estado VENCIDA o PENDIENTE pasada la fecha de vencimiento y aplica el recargo de mora según la tabla de tramos configurada |
| Cron expression | 0 7 * * * — a las 7:00 AM todos los días |
| Resultado | Actualiza el campo surchargeAmount de cada cuota afectada |
| Log | Lista de cuotas actualizadas, monto de recargo aplicado y tramo asignado |
3. Marcado de cuotas vencidas
| Propiedad | Valor |
|---|---|
| Nombre | mark-overdue-fees |
| Descripción | Cambia el estado de cuotas PENDIENTE a VENCIDA cuando su fecha de vencimiento ha pasado y no registran pago |
| Cron expression | 0 0 * * * — a medianoche todos los días |
| Resultado | Cuotas actualizadas a estado VENCIDA |
4. Notificación de cuotas próximas a vencer
| Propiedad | Valor |
|---|---|
| Nombre | notify-upcoming-due |
| Descripción | Envía un email de aviso a los colegiados cuyas cuotas vencen en los próximos N días (configurable en Parámetros del Sistema) |
| Cron expression | 0 8 * * * — a las 8:00 AM todos los días |
| Condición | Cuotas con estado PENDIENTE cuyo vencimiento es en ≤ N días |
| Resultado | Email de aviso enviado al colegiado |
5. Notificación de cuotas vencidas sin pago
| Propiedad | Valor |
|---|---|
| Nombre | notify-overdue-fees |
| Descripción | Envía recordatorio de deuda a colegiados con cuotas en estado VENCIDA. Se envía en intervalos configurables para no saturar |
| Cron expression | 0 9 * * 1 — los lunes a las 9:00 AM |
| Resultado | Email de recordatorio de deuda enviado al colegiado |
6. Escalado automático de tickets
| Propiedad | Valor |
|---|---|
| Nombre | escalate-tickets |
| Descripción | Revisa los tickets de soporte abiertos y escala automáticamente aquellos que superaron su SLA sin respuesta o resolución |
| Cron expression | 0 */2 * * * — cada 2 horas |
| Resultado | Tickets con estado actualizado a ESCALADO y notificación al supervisor del área |
7. Limpieza de sesiones expiradas
| Propiedad | Valor |
|---|---|
| Nombre | cleanup-expired-sessions |
| Descripción | Elimina los registros de sesión expirados de la base de datos para mantener el rendimiento |
| Cron expression | 0 3 * * 0 — los domingos a las 3:00 AM |
| Resultado | Sesiones expiradas eliminadas de la tabla sessions |
Log de ejecución
Cada ejecución de tarea queda registrada en la tabla scheduler_logs con:
- Nombre de la tarea
- Fecha y hora de inicio y fin
- Estado:
SUCCESS/ERROR/PARTIAL - Resumen de resultados (registros procesados, errores)
- Mensaje de error detallado si aplica
Para consultar el log: Administración → Tareas Programadas → Ver historial.

Notificaciones
Descripción
PSICOLE envía correos electrónicos automáticos ante eventos clave del sistema (nuevas cuotas, pagos, aprobaciones, vencimientos, etc.). La entrega se realiza mediante SMTP con soporte para Gmail y otros proveedores compatibles. Desde este módulo se configura el servidor de correo y se gestiona la lista de templates activos.
Acceso
Menú: Administración → Notificaciones
Roles con acceso: ADMIN
Configuración SMTP
Variables de entorno
La configuración SMTP se define en el archivo .env del servidor:
# Host del servidor SMTP
SMTP_HOST=smtp.gmail.com
# Puerto SMTP (587 para TLS, 465 para SSL)
SMTP_PORT=587
# Seguridad: true para SSL (puerto 465), false para TLS/STARTTLS (puerto 587)
SMTP_SECURE=false
# Credenciales
SMTP_USER=noreply@colegiopsicologos.org.ar
SMTP_PASS=tu_contraseña_o_app_password
# Dirección y nombre del remitente
SMTP_FROM_EMAIL=noreply@colegiopsicologos.org.ar
SMTP_FROM_NAME=PSICOLE — Colegio de Psicólogos
Configuración para Gmail
Si usás una cuenta de Gmail, debés generar una Contraseña de aplicación (App Password) en lugar de usar tu contraseña habitual:
- Ir a myaccount.google.com → Seguridad → Verificación en dos pasos (debe estar activa).
- En la misma sección: Contraseñas de aplicaciones → Crear nueva → tipo "Correo".
- Copiar la contraseña de 16 caracteres generada.
- Usarla como valor de
SMTP_PASSen el.env.
Gmail con 2FA
Google requiere verificación en dos pasos habilitada para generar contraseñas de aplicación. No es posible usar Gmail SMTP con la contraseña normal de la cuenta.
Probar la configuración
Desde la interfaz: Administración → Notificaciones → Probar conexión SMTP.
El sistema enviará un email de prueba a la dirección que especifiques y mostrará el resultado (éxito o error detallado).

Lista de emails automáticos
Cada evento del sistema dispara un email automático al destinatario correspondiente. Los templates se pueden personalizar en Administración → Notificaciones → Templates.
Finanzas
| Trigger | Destinatario | Asunto (por defecto) | Toggle |
|---|---|---|---|
| Nueva cuota generada | Colegiado | Tu cuota de [mes] ya está disponible | ✅ |
| Cuota próxima a vencer | Colegiado | Recordatorio: tu cuota vence en [N] días | ✅ |
| Cuota vencida sin pago | Colegiado | Cuota vencida — regularizá tu situación | ✅ |
| Pago registrado (manual) | Colegiado | Recibo de pago emitido — [número de recibo] | ✅ |
| Pago confirmado (online) | Colegiado | Pago confirmado — [número de recibo] | ✅ |
| Pago rechazado (online) | Colegiado | Tu pago no pudo procesarse | ✅ |
Matrículas
| Trigger | Destinatario | Asunto (por defecto) | Toggle |
|---|---|---|---|
| Solicitud recibida | Aspirante | Solicitud de matrícula recibida — PSICOLE | ✅ |
| Solicitud en revisión | Aspirante | Tu solicitud está siendo revisada | ✅ |
| Matrícula aprobada | Aspirante / nuevo Colegiado | ¡Tu matrícula fue aprobada! | ✅ |
| Matrícula rechazada | Aspirante | Tu solicitud de matrícula fue rechazada | ✅ |
| Documentación faltante | Aspirante | Documentación incompleta — [lista de docs] | ✅ |
Credenciales y constancias
| Trigger | Destinatario | Asunto (por defecto) | Toggle |
|---|---|---|---|
| Credencial digital emitida | Colegiado | Tu credencial digital está lista | ✅ |
| Credencial regenerada | Colegiado | Tu credencial digital fue actualizada | ✅ |
| Constancia de matrícula disponible | Colegiado | Constancia de matrícula generada | ✅ |
Tickets y trámites
| Trigger | Destinatario | Asunto (por defecto) | Toggle |
|---|---|---|---|
| Ticket abierto | Usuario que abrió el ticket | Ticket #[ID] recibido | ✅ |
| Ticket respondido | Usuario que abrió el ticket | Respuesta a tu ticket #[ID] | ✅ |
| Ticket resuelto | Usuario que abrió el ticket | Tu ticket #[ID] fue resuelto | ✅ |
| Ticket escalado | Supervisor del área | Ticket #[ID] escalado — requiere atención | ✅ |
| Trámite aprobado | Colegiado | Tu trámite fue aprobado | ✅ |
| Trámite rechazado | Colegiado | Tu trámite fue rechazado | ✅ |
Seguridad y cuenta
| Trigger | Destinatario | Asunto (por defecto) | Toggle |
|---|---|---|---|
| Bienvenida / cuenta creada | Nuevo usuario | Bienvenido/a a PSICOLE — tus credenciales | ✅ |
| Recuperación de contraseña | Usuario | Solicitud de cambio de contraseña | ✅ |
| Contraseña cambiada | Usuario | Tu contraseña fue actualizada | ✅ |
Personalizar templates
Cada template de email se puede personalizar con el editor integrado:
- Ir a Administración → Notificaciones → Templates.
- Hacer clic en el template a editar.
- El editor muestra el HTML del email con variables disponibles (ej.:
{{nombre}},{{importe}},{{fechaVencimiento}}). - Previsualizar el resultado con Vista previa.
- Guardar.
Edición de templates
Modificar el HTML de un template requiere conocimientos básicos de HTML. Un error de sintaxis puede hacer que el email se envíe sin formato. Usar siempre la vista previa antes de guardar.

Habilitar / deshabilitar notificaciones individuales
Cada email automático tiene un toggle en la columna Activo de la tabla. Desactivar un email impide que se envíe para ese evento, sin afectar los demás.
Para deshabilitar todas las notificaciones (ej.: modo mantenimiento): usar la variable de entorno DISABLE_EMAIL_NOTIFICATIONS=true en el .env del servidor.
Credenciales Digitales
Descripción
PSICOLE genera credenciales digitales en formato PDF para los profesionales matriculados. Cada credencial incluye los datos del colegiado, el logo y los datos institucionales del Colegio, la firma escaneada del directivo autorizado y un código QR único que permite verificar la validez de la matrícula en línea.
Acceso
Menú: Administración → Credenciales Digitales
Roles con acceso: ADMIN, OPERADOR_MATRICULAS
Los colegiados pueden descargar su propia credencial desde el portal de autogestión: Mi Cuenta → Mi Credencial.
Contenido de la credencial
Cada credencial PDF incluye los siguientes elementos:
| Elemento | Fuente de datos |
|---|---|
| Logo del Colegio | Parámetros del Sistema → Logo para PDF |
| Nombre completo del profesional | Perfil del colegiado |
| DNI | Perfil del colegiado |
| Número de matrícula | Registro de matrícula |
| Fecha de colegiación | Registro de matrícula |
| Estado de la matrícula | Calculado al momento de generación |
| Especialidad / área | Perfil del colegiado (si aplica) |
| Firma escaneada del directivo | Parámetros del Sistema → Firma escaneada |
| Nombre y cargo del firmante | Parámetros del Sistema → Firma escaneada |
| Código QR único | Generado automáticamente por el sistema |
| Fecha de emisión | Generada al momento de creación del PDF |
| Texto de validez | Configurable en Parámetros del Sistema |

Generación automática
Las credenciales se generan automáticamente en los siguientes momentos:
- Al aprobar una matrícula: el sistema genera la credencial del nuevo colegiado y le envía un email con el PDF adjunto.
- Al renovar matrícula anual: si el Colegio tiene ciclo de renovación, se regenera la credencial con la nueva vigencia.
- Al actualizar datos firmantes: si se cambia la firma o el directivo en Parámetros del Sistema, se puede optar por regenerar todas las credenciales activas en bloque (ver más abajo).
Generación manual de una credencial
- Ir a Administración → Credenciales Digitales.
- Buscar al colegiado por nombre, DNI o número de matrícula.
- Hacer clic en Generar / Regenerar credencial.
- El sistema genera el PDF y lo guarda. El colegiado recibe un email de notificación automáticamente (si las notificaciones están activas).
- Para descargar el PDF desde el panel: hacer clic en Descargar PDF.

Regeneración masiva
Permite regenerar las credenciales de todos los colegiados activos en un solo paso. Útil tras un cambio de autoridades, actualización del logo o cambio de diseño.
Tiempo de procesamiento
La regeneración masiva es un proceso en background. Para colegios con muchos matriculados puede tardar varios minutos. El sistema muestra el progreso en tiempo real y envía un email al administrador cuando finaliza. No cerrar el navegador durante el proceso.
Pasos:
- Ir a Administración → Credenciales Digitales → Regeneración masiva.
- Seleccionar el alcance: Todos los activos o Solo los generados antes de [fecha].
- Opcionalmente, marcar Notificar a los colegiados por email.
- Hacer clic en Iniciar regeneración.
- Monitorear el progreso en el panel.

Código QR y verificación
Cada credencial lleva un código QR único que codifica una URL de verificación pública:
https://[URL_BASE]/verificar/matricula/[TOKEN_UNICO]
Al escanear el QR:
- Si la matrícula está activa: muestra nombre, número de matrícula, estado y fecha de vencimiento.
- Si la matrícula está suspendida o inactiva: muestra un aviso de inhabilitación.
- Si el token no existe o fue revocado: muestra un error de verificación.
Esta página es pública (no requiere login) para que terceros puedan verificar la matrícula de un profesional.
Token único
El token del QR cambia cada vez que se regenera la credencial. Las credenciales anteriores quedan invalidadas automáticamente: su QR mostrará el estado actualizado (la verificación siempre consulta la base de datos en tiempo real, no el PDF).
Personalización del diseño
El diseño del PDF se puede personalizar modificando el template HTML/CSS desde:
Administración → Credenciales Digitales → Configurar diseño
Elementos configurables:
- Colores de fondo y tipografía (usar los colores institucionales de Parámetros del Sistema)
- Posición y tamaño del logo
- Disposición de los campos de datos
- Texto de pie de página y leyenda de validez
Edición avanzada
La personalización del diseño requiere conocimientos de HTML y CSS. Se recomienda generar una credencial de prueba antes de aplicar cambios en producción.
Beneficios
Descripción
El módulo de Beneficios permite a los colegiados solicitar dos tipos de beneficios que reducen el monto de la cuota anual: Beneficio Parental (por nacimiento, adopción o guarda) y Beneficio por Jubilación (para colegiados que obtuvieron el beneficio jubilatorio de ANSES).
Los beneficios son gestionados desde el portal de autogestión del colegiado y procesados por el personal administrativo. Cada tipo tiene condiciones, documentación requerida y porcentajes de descuento específicos configurables desde el panel de administración.
Roles con acceso
| Rol | Acceso |
|---|---|
COLEGIADO | Solicita el beneficio desde su portal de autogestión, adjunta documentación |
ADMIN | Acceso completo: revisa, aprueba o rechaza solicitudes, configura parámetros |
OPERADOR | Revisa y procesa solicitudes de beneficios |
1. Beneficio Parental
Ruta colegiado: /mis-beneficios — Ruta admin: /admin/beneficios-parentales
El beneficio parental aplica un descuento sobre la cuota anual del colegiado que haya tenido un hijo por nacimiento, adopción o guarda con fines de adopción. El colegiado debe solicitarlo dentro de los 90 días de ocurrido el evento.
- El colegiado completa el formulario con los datos del evento (fecha, tipo) y adjunta la documentación respaldatoria (partida de nacimiento, sentencia de adopción o guarda).
- El operador revisa la solicitud, valida la documentación y aprueba o rechaza con un comentario.
- Al aprobarse, se aplica automáticamente el descuento configurado sobre la cuota del período correspondiente.
- El descuento es por única vez por cada evento (no renovable).
Panel de administración: AdminParentalBenefits — listado de solicitudes con filtros por estado, fecha y profesional. Incluye visor de documentos adjuntos y acciones de aprobar/rechazar.
2. Beneficio por Jubilación
Ruta colegiado: /mis-beneficios — Ruta admin: /admin/beneficios-jubilacion
El beneficio por jubilación aplica un descuento permanente sobre la cuota del colegiado que acredite haber obtenido el beneficio jubilatorio de ANSES. A diferencia del parental, este beneficio es permanente mientras el colegiado mantenga su matrícula activa.
- El colegiado presenta la resolución de ANSES que otorga el beneficio jubilatorio.
- El operador verifica la resolución contra el sistema de ANSES (manual o por API) y aprueba el beneficio.
- El porcentaje de descuento se configura en Parámetros del Sistema → Descuentos.
- El descuento se aplica automáticamente a todas las cuotas futuras mientras el beneficio esté vigente.
Panel de administración: AdminRetirementBenefits — listado de beneficios de jubilación con estado, fecha de aprobación, porcentaje aplicado e historial de cuotas con descuento.
Preguntas frecuentes
¿Se pueden solicitar ambos beneficios simultáneamente? No. Los beneficios no son acumulables. Si un colegiado tiene ambos, se aplica el de mayor descuento.
¿Qué pasa si venció el plazo de 90 días para el beneficio parental? La solicitud fuera de término queda registrada como "Fuera de plazo" y el operador puede rechazarla automáticamente o elevarla a la Comisión Directiva para evaluación excepcional.
¿El beneficio por jubilación tiene fecha de vencimiento? No. El beneficio es permanente mientras el colegiado mantenga su matrícula. Si el colegiado se da de baja y reingresa, debe solicitar el beneficio nuevamente.


Tickets y Soporte (EPIC-09)
PSICOLE incluye un sistema completo de gestión de tickets para trámites administrativos. Permite a los colegiados y prestadores iniciar solicitudes formales, y a los operadores gestionarlas con SLA, semáforo de tiempos y flujo de trabajo completo.
Acceso por rol
| Rol | Acceso |
|---|---|
ADMIN |
Control total: categorías, áreas, asignaciones, todos los tickets, cierre, reasignación |
SUPERVISOR_TRAMITES |
Dashboard de métricas, kanban por operador, reasignar, cerrar |
OPERADOR_TRAMITES |
Dashboard personal, gestión de tickets asignados |
| Colegiados / Prestadores | Crear tickets, ver propios, comentar, seguimiento público |
Ciclo de vida de un ticket
PENDIENTE → ASIGNADO → EN PROGRESO → [PAUSADO] → RESUELTO → CERRADO
↓
(con justificación)
| Estado | Descripción |
|---|---|
PENDING |
Ticket recibido, sin operador asignado |
ASSIGNED |
Operador tomó el ticket |
IN_PROGRESS |
Operador trabajando activamente |
PAUSED |
Pausado con motivo registrado |
WAITING_REQUESTER |
Esperando respuesta del solicitante |
RESOLVED |
Resuelto por el operador |
CLOSED |
Cerrado definitivamente (supervisor o automático) |
REOPENED |
Reabierto por el colegiado |
Configuración de Categorías
Ruta: Administración → Tickets → Categorías (/admin/ticket-categories)
Las categorías definen el tipo de trámite, el área receptora, la prioridad y el SLA.

Crear / Editar categoría

| Campo | Descripción |
|---|---|
| Nombre | Nombre visible para el usuario |
| Código | Identificador único sin espacios (ej: MAT-RENOVACION) |
| Área de trabajo | Área responsable de atender esta categoría |
| Prioridad | LOW / NORMAL / HIGH / URGENT |
| SLA (días) | Días hábiles máximos para resolver |
| Tipo de Origen | MANUAL / Trámite de Usuario / Tarea Programada |
| Módulo relacionado | Módulo del sistema vinculado (aparece si Origen ≠ MANUAL) |
Tipo de Origen determina cómo se genera el ticket:
- Manual: creado desde el portal por el colegiado u operador
- Trámite de Usuario: generado automáticamente cuando un colegiado inicia un trámite (ej: renovación de matrícula)
- Tarea Programada: creado por el scheduler del sistema (ej: conciliación bancaria)
Cuando se elige "Trámite de Usuario" o "Tarea Programada", aparece el campo Módulo relacionado que vincula la categoría con el módulo del sistema. Esto permite que desde el detalle del ticket aparezca un botón directo al módulo.
Vista en mobile:

Configuración de Áreas de Trabajo
Ruta: Administración → Tickets → Áreas de Trabajo (/admin/ticket-work-areas)
Las áreas agrupan operadores que atienden tickets de determinadas categorías. El sistema asigna automáticamente tickets al operador con menor carga dentro del área.

Panel de operadores (expandible)
Haciendo clic en el contador de operadores de cada área se expande un panel con:
- Lista de operadores asignados al área
- Estado de disponibilidad con toggle (disponible / no disponible)
- Botón para agregar nuevos operadores

Modal de asignación de operador
Al hacer clic en "Agregar Operador" se abre un formulario que muestra únicamente usuarios con roles de staff (Admin, Supervisor, Operadores) — sin colegiados ni prestadores.

Vista mobile:

Parámetros del Sistema — Sección TICKETS
Ruta: ⚡ Super Admin → Parámetros del Sistema (/admin/system-parameters)

| Parámetro | Clave | Valor por defecto | Descripción |
|---|---|---|---|
| Período de gracia | TICKET_GRACE_PERIOD_MINUTES |
30 min | Minutos antes de que el SLA empiece a contar |
| Inactividad | TICKET_INACTIVITY_HOURS |
24 hs | Horas sin actividad antes de alerta al supervisor |
| Auto-cierre | TICKET_AUTO_CLOSE_DAYS |
7 días | Días tras resolución para cierre automático |
Dashboard Global — Admin
Ruta: Administración → Tickets → Dashboard (/admin/ticket-dashboard)
Vista ejecutiva con indicadores globales del sistema de trámites.

Dashboard de Métricas — Supervisor
Ruta: Tickets → Métricas (/supervisor/metrics)
El dashboard del supervisor muestra el estado completo de la operación con KPIs por estado, tiempos de resolución y carga por operador.

Vista mobile:

Kanban por Operador — Supervisor
Ruta: Tickets → Gestión de Tickets → Tab "Por operador" (/supervisor/tickets)
Vista kanban que agrupa los tickets por operador para visualizar la carga de trabajo de cada uno.

Escalado automático y SLA
El semáforo de SLA es visible en todas las vistas de tickets:
| Color | Estado | Descripción |
|---|---|---|
| 🟢 Verde | OK | SLA dentro del plazo |
| 🟠 Naranja | WARNING | Menos del 25% del tiempo restante |
| 🔴 Rojo | BREACHED | SLA vencido — requiere atención inmediata |
El sistema también puede generar alertas automáticas al supervisor cuando se supera el SLA (configurado en Tareas Programadas).
Asignación automática de operadores
Al crear un ticket en un área que tiene operadores asignados, el sistema los distribuye automáticamente eligiendo al operador disponible con menor cantidad de tickets activos. Esto se configura en Áreas de Trabajo → Panel de Operadores.
Parámetros requeridos en entorno nuevo
En un entorno nuevo (develop, staging, producción), los parámetros TICKETS no se crean automáticamente. Ejecutar:
POST /api/v1/system-parameters/init
con un token de admin para inicializarlos.
Glosario
Definición de todos los términos técnicos y operativos utilizados en PSICOLE, ordenados alfabéticamente.
A
Aspirante Persona que ha iniciado el proceso de solicitud de matrícula en el Colegio de Psicólogos pero aún no recibió la aprobación definitiva. Tiene acceso limitado al sistema: puede completar su solicitud, subir documentación y consultar el estado del trámite. No puede operar como colegiado hasta que la matrícula sea aprobada.
Auditoría Registro inmutable de todas las acciones realizadas en el sistema: usuario que ejecutó la acción, fecha y hora, estado anterior y nuevo del registro, y descripción de la operación. La auditoría es de solo lectura y no puede eliminarse ni modificarse.
B
Baja de Matrícula Proceso administrativo mediante el cual se cancela definitivamente la matrícula de un profesional, ya sea a solicitud propia o por resolución del Colegio. La baja impide al profesional ejercer bajo el amparo del Colegio y elimina su acceso al portal de autogestión.
CBU (Clave Bancaria Uniforme) Número de 22 dígitos que identifica de forma unívoca una cuenta bancaria en Argentina. Utilizado en PSICOLE para las transferencias de liquidaciones a prestadores. Ver también: CVU.
CVU (Clave Virtual Uniforme) Equivalente al CBU para cuentas en billeteras virtuales (ej. Mercado Pago, Ualá). Tiene el mismo formato de 22 dígitos y es intercambiable con el CBU a los fines del sistema.
C
Certificado de Libre Deuda Documento oficial emitido por PSICOLE que acredita que un colegiado no tiene deudas vencidas con el Colegio a la fecha de emisión. Tiene validez de 30 días y puede generarse desde el portal de autogestión siempre que no existan cuotas impagas.
Certificado de Matrícula Vigente Documento oficial que acredita que la matrícula de un profesional se encuentra activa y al día. Incluye nombre, número de matrícula, especialidad y fecha de emisión. Tiene validez de 30 días.
Código QR de Credencial Código de respuesta rápida (QR) embebido en la credencial digital de cada colegiado. Al escanearse redirige a una página pública del sistema que muestra el estado actual de la matrícula en tiempo real, permitiendo verificar su autenticidad.
Colegiado Profesional psicólogo con matrícula activa otorgada por el Colegio. Es el rol principal del sistema para los profesionales. Puede acceder al portal de autogestión, inscribirse en cursos, operar como prestador de obras sociales y gestionar sus datos personales.
Comisión Porcentaje o monto fijo que el Colegio retiene de las liquidaciones de órdenes de servicio antes de transferir el saldo neto al prestador. Se configura por obra social y tipo de prestación, con vigencias temporales.
Conciliación Bancaria Proceso de comparación entre los movimientos del extracto bancario del Colegio y los pagos registrados en PSICOLE, con el objetivo de verificar que todos los ingresos y egresos estén correctamente imputados.
Credencial Digital Documento digital en formato PDF o imagen que identifica al colegiado como miembro activo del Colegio. Incluye foto, datos personales, número de matrícula y un código QR verificable. Reemplaza a la credencial física en la mayoría de los trámites.
Cuenta Corriente Registro individual de todos los movimientos financieros de un colegiado con el Colegio: cuotas generadas, pagos acreditados, recargos por mora, créditos y ajustes. El saldo de la cuenta corriente refleja la deuda o el crédito del colegiado en todo momento.
Cuota Concepto de cobro generado por el sistema para un colegiado. Puede corresponder a la matrícula anual, cuota mensual, aranceles de cursos u otros conceptos definidos por el Colegio. Cada cuota tiene un monto, una fecha de vencimiento y un estado (pendiente, vencida, pagada).
D
Débito Directo Modalidad de cobro automático en la que el sistema intenta debitar la cuota de la cuenta bancaria del colegiado en la fecha de vencimiento, sin requerir acción manual del profesional. Requiere autorización previa del titular de la cuenta.
Deuda Suma de todas las cuotas y conceptos vencidos e impagos que tiene un colegiado con el Colegio. Se visualiza en la cuenta corriente y puede incluir recargos por mora acumulados.
E
Especialidad Área de ejercicio profesional declarada por el psicólogo al momento de matricularse o mediante una solicitud de modificación posterior (ej. Psicología Clínica, Neuropsicología, Psicología Laboral). Una matrícula puede estar asociada a múltiples especialidades.
Extracto Bancario Archivo exportado desde el homebanking del Colegio (en formato CSV o Excel) que lista todos los movimientos de la cuenta bancaria en un período determinado. Es el insumo principal del módulo de Conciliación Bancaria.
F
FeeType (Tipo de Cuota)
Configuración que define un tipo de concepto de cobro en el sistema: nombre, descripción, si genera mora automática, el porcentaje o monto de mora, y si es recurrente o de única vez. Ejemplos: MATRICULA_ANUAL, CUOTA_MENSUAL, ARANCEL_CURSO.
H
Habilitación Estado que permite a un colegiado ejercer bajo el amparo del Colegio. La habilitación puede ser plena (matrícula activa y al día) o condicionada (con observaciones). Distinto de la matriculación: un profesional puede estar matriculado pero inhabilitado temporalmente.
I
Inhabilitación
Medida disciplinaria o administrativa que suspende temporalmente la habilitación de un colegiado para ejercer. Puede ser total o parcial. Durante una inhabilitación, la credencial muestra el estado SUSPENDIDA y el QR refleja la situación en tiempo real.
L
Liquidación Documento que detalla el cálculo del monto neto a pagar a un prestador por sus órdenes de servicio en un período determinado. Muestra el total bruto de las órdenes, la comisión retenida por el Colegio, y el monto neto a transferir, desglosado orden por orden.
Lista de Espera Cola ordenada de personas interesadas en inscribirse en un curso cuyo cupo máximo ya fue alcanzado. El sistema promueve automáticamente al primero de la lista cuando se libera un cupo, notificándolo por email.
Lote de Pago Agrupación de liquidaciones aprobadas que se procesan en una única transferencia bancaria consolidada. Permite enviar los pagos a múltiples prestadores en una sola operación bancaria, generando un archivo de transferencias en el formato requerido por el banco.
Lote Mensual (de órdenes) Conjunto de órdenes de servicio de una obra social correspondientes a un mismo período (mes/año). Se importa, valida y aprueba como una unidad. Su aprobación dispara la generación de liquidaciones para los prestadores incluidos.
M
Matching Proceso de emparejamiento entre una transacción del extracto bancario y un pago registrado en PSICOLE. Puede ser automático (realizado por el motor de matching según criterios configurables) o manual (realizado por el operador).
Matrícula Registro oficial que habilita a un psicólogo para ejercer la profesión bajo el amparo del Colegio de Psicólogos. Cada matrícula tiene un número único, un titular, una fecha de alta y un estado (activa, suspendida, cancelada).
Mercado Pago Plataforma de pagos online integrada en PSICOLE para procesar pagos de cuotas y aranceles por parte de los colegiados desde el portal de autogestión. Soporta tarjeta de crédito, débito, transferencia bancaria y billetera digital.
Mora Recargo económico que se aplica automáticamente sobre una cuota cuando no se abona antes de su fecha de vencimiento. El porcentaje de mora y el período de gracia (días antes de aplicar el recargo) son configurables por tipo de cuota (FeeType).
N
Nomenclador Tabla de códigos y valores que define cuánto debe pagar una obra social por cada tipo de prestación. Cada obra social tiene su propio nomenclador, que debe cargarse y mantenerse actualizado en PSICOLE para validar los montos de las órdenes.
O
Operador de Cursos Rol administrativo con acceso al módulo de Cursos y Capacitación. Puede crear y gestionar cursos, inscribir participantes, registrar asistencia y emitir certificados.
Operador de Finanzas Rol administrativo con acceso a los módulos financieros: Finanzas, Conciliación Bancaria, Prestadores, Liquidaciones y Pagos Online. Gestiona el ciclo completo de ingresos y egresos del Colegio.
Operador de Matrículas Rol administrativo que gestiona el ciclo de vida de las matrículas: evalúa solicitudes de aspirantes, aprueba o rechaza matriculaciones, y administra modificaciones de datos de los colegiados.
Operador de Trámites Rol administrativo que gestiona los trámites internos del Colegio: solicitudes de certificados con costo, legalizaciones, cambios de especialidad y otros procesos que requieren intervención administrativa.
Orden de Servicio Registro de una prestación psicológica realizada por un colegiado a un afiliado de una obra social. Contiene: número de orden, código de prestación, fecha, datos del profesional y del paciente (o su número de afiliado), y monto a cobrar.
P
Padrón Base de datos oficial de todos los colegiados matriculados, con sus datos personales y profesionales. Es el registro maestro que alimenta la emisión de credenciales, certificados y la verificación pública de matrículas.
Portal del Profesional Ver Autogestión del Profesional.
Prestador Colegiado que, además de su matrícula, está habilitado para recibir pacientes derivados por obras sociales y facturar sus prestaciones a través del Colegio. Tiene acceso a un subportal específico dentro de la autogestión.
Prerequisito Condición que un colegiado debe cumplir para poder inscribirse en un curso. Puede ser haber completado un curso anterior o tener la matrícula activa.
R
Recibo Comprobante oficial de pago emitido por PSICOLE cuando se acredita un pago de un colegiado. Incluye número de recibo, fecha, concepto, monto y firma digital del sistema. Tiene validez como constancia de pago interno del Colegio.
Rol Conjunto de permisos que determina a qué módulos y acciones puede acceder un usuario en PSICOLE. Los nueve roles del sistema son: ADMIN, OPERADOR_MATRICULAS, OPERADOR_FINANZAS, OPERADOR_CURSOS, OPERADOR_TRAMITES, SUPERVISOR_TRAMITES, COLEGIADO, PRESTADOR y ASPIRANTE.
S
Sesión de Conciliación Unidad de trabajo del módulo de Conciliación Bancaria. Agrupa un extracto bancario importado con todos los emparejamientos (matches) realizados sobre sus transacciones. Una sesión puede estar abierta (en proceso) o cerrada (conciliación finalizada y auditada).
SLA (Service Level Agreement) Tiempo máximo establecido para la resolución de un ticket de soporte interno según su categoría y prioridad. PSICOLE permite configurar SLAs por tipo de ticket y emite alertas cuando un ticket está próximo a vencer o ya superó el plazo.
Supervisor de Trámites Rol administrativo con capacidad de supervisar y escalar los trámites gestionados por los operadores de trámites. Puede aprobar trámites de mayor complejidad y acceder a reportes de gestión.
Suspensión de Matrícula Estado temporal de la matrícula en el que el colegiado no puede ejercer bajo el amparo del Colegio. Puede generarse por deuda acumulada, resolución disciplinaria o a solicitud del propio profesional (baja voluntaria temporal).
T
Ticket Registro de una consulta, solicitud o incidencia generada por un usuario interno o externo del sistema. Los tickets tienen categorías, áreas de trabajo asignadas, prioridad, historial de estados y SLA asociado.
Tipo de Orden Clasificación de las órdenes de servicio según el tipo de prestación psicológica realizada (ej. consulta, psicoterapia, evaluación, informe pericial). Determina qué regla de comisión aplica.
Trámite Procedimiento administrativo formal gestionado por el Colegio que requiere documentación, revisión y resolución por parte del personal (ej. cambio de especialidad, solicitud de legalizaciones, recursos disciplinarios).
V
Vigencia de Comisión Período durante el cual una regla de comisión está activa para una obra social y tipo de prestación. Permite reflejar cambios históricos sin perder el rastro de qué tarifa aplicó en cada período cerrado.
W
Webhook Mecanismo de notificación automática que Mercado Pago utiliza para informar a PSICOLE sobre el resultado de un pago (aprobado, rechazado, pendiente). Es asíncrono: puede tardar hasta 5 minutos desde que el usuario completa el checkout hasta que el sistema registra el pago.
Matriz de Permisos
Descripción
Tabla completa de permisos por rol y módulo. Los permisos siguen el modelo RBAC (Role-Based Access Control) con triplets MODULO/ACCION/RECURSO. Las acciones disponibles son: Leer (READ), Crear (CREATE), Editar (UPDATE), Eliminar (DELETE) y Aprobar (APPROVE).
Convención
| Símbolo | Significado |
|---|---|
| ✅ | Permiso completo |
| 👁 | Solo lectura (propia) |
| 👁+ | Lectura extendida (todos los registros) |
| ➕ | Solo crear |
| ✏️ | Crear y editar (sin eliminar ni aprobar) |
| — | Sin acceso |
Módulo: AUTENTICACION
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Iniciar sesión | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Cerrar sesión | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Cambiar contraseña propia | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Recuperar contraseña | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Gestionar usuarios (CRUD) | ✅ | — | — | — | — | — | — | — | — |
| Asignar roles | ✅ | — | — | — | — | — | — | — | — |
| Ver log de auditoría | ✅ | — | — | — | — | — | — | — | — |
| Impersonar usuario | ✅ | — | — | — | — | — | — | — | — |
Módulo: MATRICULAS
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Ver solicitudes de matrícula | ✅ | ✅ | — | — | 👁+ | 👁+ | — | — | 👁 |
| Crear solicitud de matrícula | ✅ | ✅ | — | — | — | — | — | — | ✅ |
| Editar solicitud propia | ✅ | ✅ | — | — | — | — | — | — | ✅ |
| Editar cualquier solicitud | ✅ | ✅ | — | — | — | — | — | — | — |
| Aprobar matrícula | ✅ | ✅ | — | — | — | ✅ | — | — | — |
| Rechazar matrícula | ✅ | ✅ | — | — | — | ✅ | — | — | — |
| Ver matrículas activas | ✅ | ✅ | ✅ | — | 👁+ | 👁+ | 👁 | — | — |
| Editar datos de matrícula activa | ✅ | ✅ | — | — | — | — | — | — | — |
| Suspender / reactivar matrícula | ✅ | ✅ | — | — | — | — | — | — | — |
| Eliminar registro de matrícula | ✅ | — | — | — | — | — | — | — | — |
Módulo: FINANZAS
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Ver cuotas (todas) | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver cuotas propias | ✅ | — | ✅ | — | — | — | ✅ | — | ✅ |
| Crear cuota manual | ✅ | — | ✅ | — | — | — | — | — | — |
| Editar cuota | ✅ | — | ✅ | — | — | — | — | — | — |
| Eliminar cuota | ✅ | — | — | — | — | — | — | — | — |
| Registrar pago manual | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver recibos (todos) | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver recibos propios | ✅ | — | ✅ | — | — | — | ✅ | — | — |
| Anular recibo | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver configuración descuentos | ✅ | — | ✅ | — | — | — | — | — | — |
| Editar configuración descuentos | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver configuración recargos | ✅ | — | ✅ | — | — | — | — | — | — |
| Editar configuración recargos | ✅ | — | ✅ | — | — | — | — | — | — |
| Configurar tipos de cuota | ✅ | — | ✅ | — | — | — | — | — | — |
Módulo: PAGOS
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Iniciar pago online (propio) | ✅ | — | — | — | — | — | ✅ | — | ✅ |
| Ver estado de pago online | ✅ | — | ✅ | — | — | — | ✅ | — | ✅ |
| Confirmar pago (webhook) | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver todos los pagos online | ✅ | — | ✅ | — | — | — | — | — | — |
| Emitir devolución | ✅ | — | ✅ | — | — | — | — | — | — |
Módulo: CONCILIACION
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Ver extractos bancarios | ✅ | — | ✅ | — | — | — | — | — | — |
| Importar extracto bancario | ✅ | — | ✅ | — | — | — | — | — | — |
| Conciliar movimientos | ✅ | — | ✅ | — | — | — | — | — | — |
| Marcar movimiento como irrelevante | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver reportes de conciliación | ✅ | — | ✅ | — | — | — | — | — | — |
Módulo: CURSOS
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Ver catálogo de cursos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — |
| Crear curso | ✅ | — | — | ✅ | — | — | — | — | — |
| Editar curso | ✅ | — | — | ✅ | — | — | — | — | — |
| Eliminar curso | ✅ | — | — | — | — | — | — | — | — |
| Publicar / despublicar curso | ✅ | — | — | ✅ | — | — | — | — | — |
| Inscribir colegiado en curso | ✅ | — | — | ✅ | — | — | ✅ | — | — |
| Ver inscripciones (todas) | ✅ | — | — | ✅ | — | — | — | — | — |
| Ver inscripciones propias | — | — | — | — | — | — | ✅ | — | — |
| Registrar asistencia | ✅ | — | — | ✅ | — | — | — | — | — |
| Emitir certificado de curso | ✅ | — | — | ✅ | — | — | — | — | — |
Módulo: TRAMITES
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Ver todos los trámites | ✅ | 👁+ | — | — | ✅ | ✅ | — | — | — |
| Iniciar trámite propio | ✅ | — | — | — | — | — | ✅ | — | — |
| Ver trámites propios | ✅ | — | — | — | — | — | ✅ | — | — |
| Editar trámite en borrador | ✅ | — | — | — | ✅ | — | ✅ | — | — |
| Aprobar trámite | ✅ | — | — | — | — | ✅ | — | — | — |
| Rechazar trámite | ✅ | — | — | — | — | ✅ | — | — | — |
| Eliminar trámite | ✅ | — | — | — | — | — | — | — | — |
| Ver plantillas de trámites | ✅ | — | — | — | ✅ | ✅ | — | — | — |
| Configurar plantillas | ✅ | — | — | — | — | — | — | — | — |
Módulo: PRESTADORES
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Ver listado de prestadores | ✅ | — | ✅ | — | — | — | — | — | — |
| Registrar prestador | ✅ | — | ✅ | — | — | — | — | — | — |
| Editar prestador | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver órdenes propias | — | — | — | — | — | — | — | ✅ | — |
| Cargar orden de obra social | — | — | — | — | — | — | — | ✅ | — |
| Ver todas las órdenes | ✅ | — | ✅ | — | — | — | — | — | — |
| Procesar liquidación | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver liquidación propia | — | — | — | — | — | — | — | ✅ | — |
Módulo: CREDENCIALES
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Generar credencial (propia) | ✅ | — | — | — | — | — | ✅ | — | — |
| Descargar credencial propia | ✅ | — | — | — | — | — | ✅ | — | — |
| Regenerar credencial de cualquier usuario | ✅ | ✅ | — | — | — | — | — | — | — |
| Regeneración masiva | ✅ | — | — | — | — | — | — | — | — |
| Verificar QR (público) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Configurar diseño de credencial | ✅ | — | — | — | — | — | — | — | — |
Módulo: ADMINISTRACION
| Acción / Recurso | ADMIN | OP_MATRICULAS | OP_FINANZAS | OP_CURSOS | OP_TRAMITES | SUP_TRAMITES | COLEGIADO | PRESTADOR | ASPIRANTE |
|---|---|---|---|---|---|---|---|---|---|
| Ver parámetros del sistema | ✅ | — | — | — | — | — | — | — | — |
| Editar parámetros del sistema | ✅ | — | — | — | — | — | — | — | — |
| Gestionar tareas programadas | ✅ | — | — | — | — | — | — | — | — |
| Ver log de tareas programadas | ✅ | — | — | — | — | — | — | — | — |
| Configurar SMTP | ✅ | — | — | — | — | — | — | — | — |
| Gestionar templates de email | ✅ | — | — | — | — | — | — | — | — |
| Gestionar tickets (bandeja) | ✅ | — | — | — | ✅ | ✅ | — | — | — |
| Configurar categorías de tickets | ✅ | — | — | — | — | — | — | — | — |
| Ver reportes de tickets | ✅ | — | — | — | — | ✅ | — | — | — |
| Abrir ticket | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Resumen ejecutivo por rol
| Rol | Alcance general |
|---|---|
ADMIN |
Acceso total a todos los módulos, configuración, auditoría e impersonación |
OPERADOR_MATRICULAS |
CRUD de solicitudes y matrículas, regeneración de credenciales, lectura de trámites |
OPERADOR_FINANZAS |
CRUD de cuotas, pagos, recibos, conciliación bancaria, descuentos y recargos |
OPERADOR_CURSOS |
CRUD de cursos, inscripciones, asistencia y certificados |
OPERADOR_TRAMITES |
Gestión de trámites, edición de borradores, bandeja de tickets |
SUPERVISOR_TRAMITES |
Todo lo de OPERADOR_TRAMITES + aprobación/rechazo de trámites, escalado de tickets |
COLEGIADO |
Autogestión propia: ver cuotas, pagar, ver matrícula, descargar credencial, inscribirse en cursos |
PRESTADOR |
Cargar órdenes de obras sociales y ver sus liquidaciones |
ASPIRANTE |
Crear y editar solicitud de matrícula, ver estado de su solicitud, pagar cuota de inscripción |
Preguntas Frecuentes
Respuestas a las dudas más comunes sobre el uso de PSICOLE, organizadas por tema.
Acceso y cuentas de usuario
¿Cómo recupero mi contraseña? En la pantalla de inicio de sesión, hacer clic en ¿Olvidaste tu contraseña? e ingresar el email registrado. El sistema envía un enlace de recuperación válido por 24 horas. Si no llega el correo, revisar la carpeta de spam o contactar al administrador del sistema.
¿Puedo tener más de un rol simultáneamente? Un usuario puede tener asignados múltiples roles. Sin embargo, los roles de colegiado/prestador/aspirante son exclusivos del portal del profesional y no pueden combinarse con roles administrativos (ADMIN, OPERADOR_*) en la misma cuenta.
¿Qué hago si mi sesión se cierra inesperadamente durante un pago? La sesión de PSICOLE expira por inactividad, pero el proceso de pago en Mercado Pago es independiente. Si el pago fue completado en MP, el sistema lo registrará automáticamente cuando llegue el webhook (hasta 5 minutos). Iniciar sesión nuevamente y verificar el estado de cuenta.
¿Puedo acceder al sistema desde el celular? Sí. PSICOLE está diseñado con interfaz responsive y funciona correctamente en navegadores móviles (Chrome, Safari). No existe una app nativa, pero puede agregarse a la pantalla de inicio del dispositivo como acceso directo.
Matrículas y aspirantes
¿Cuánto tiempo tarda la aprobación de una solicitud de matrícula? El SLA interno para resolución de solicitudes de matrícula es de 10 días hábiles desde la recepción de la documentación completa. Si la documentación está incompleta, el plazo se detiene hasta que el aspirante envíe los documentos faltantes.
¿Puede un aspirante trabajar mientras espera la aprobación de su matrícula? No. El aspirante no puede ejercer bajo el amparo del Colegio ni acceder a los servicios de prestador hasta que la matrícula sea aprobada formalmente.
¿Cómo sé si mi documentación fue recibida y está completa? El portal del aspirante muestra el estado de cada documento requerido: pendiente, recibido, aprobado u observado. Si un documento tiene observaciones, el sistema indica qué corrección se necesita.
¿Qué pasa si me rechazan la solicitud de matrícula? El aspirante recibe una notificación con el motivo del rechazo y puede subsanar las observaciones y reiniciar el proceso. El sistema mantiene el historial de la solicitud original.
Finanzas y pagos
¿Cuáles son los medios de pago aceptados en el portal online? El portal de autogestión acepta: tarjeta de crédito (Visa, Mastercard, American Express), tarjeta de débito, transferencia bancaria y saldo en billetera de Mercado Pago. Las opciones disponibles pueden variar según los acuerdos comerciales vigentes del Colegio.
¿Puedo pagar en cuotas con tarjeta de crédito? Depende de las promociones activas configuradas por el Colegio en Mercado Pago. La pantalla de checkout mostrará las opciones de cuotas disponibles. Si no aparece la opción de cuotas, el pago debe realizarse al contado.
¿Cuánto tarda en reflejarse un pago realizado online? Los pagos con tarjeta o billetera MP se acreditan en tiempo real una vez que llega el webhook de confirmación (generalmente en menos de 5 minutos). Las transferencias bancarias pueden tardar hasta 24 horas hábiles.
¿Cómo obtengo una factura por mis pagos al Colegio? Los recibos generados por PSICOLE son comprobantes de pago internos. Para obtener factura con valor fiscal (Factura B o C), contactar directamente al área de Finanzas del Colegio. Los recibos del portal son válidos para acreditar el pago ante otros organismos.
¿Qué pasa si pagué de más por error? PSICOLE no procesa reembolsos automáticos. Contactar al operador de finanzas para que registre el crédito en la cuenta corriente o gestione la devolución. El crédito quedará disponible para aplicar en el próximo vencimiento.
¿Cómo se calculan los recargos por mora? El recargo se calcula automáticamente según la configuración del FeeType (tipo de cuota). Generalmente es un porcentaje mensual que se aplica a partir del día siguiente al vencimiento (o después del período de gracia configurado). El monto de mora se muestra en el detalle de cada cuota vencida.
Cursos y capacitación
¿Cómo sé si estoy en lista de espera o inscripto directamente?
En Mi Portal → Mis Inscripciones, cada curso muestra el estado: Inscripto Confirmado, Pendiente de Pago o En Lista de Espera. El estado En Lista de Espera incluye la posición actual en la cola.
¿Qué pasa si no pago el curso en el plazo establecido? Si la inscripción estaba condicionada al pago (dentro de un plazo post-inscripción), el sistema puede liberar automáticamente el lugar si el pago no se acredita en el plazo configurado por el operador. El colegiado recibirá un email de advertencia antes de que se ejecute la baja.
¿Se puede cancelar una inscripción y recibir un reembolso? La política de cancelación y reembolso es definida por el Colegio para cada curso. Contactar al operador de cursos para gestionar una baja. El sistema permite registrar reembolsos totales o parciales según la política aplicable.
¿Cuándo se emite el certificado del curso? El certificado se emite automáticamente cuando el participante cumple el porcentaje mínimo de asistencia (configurable por curso, por defecto 75%) y tiene todos los pagos al día. Si queda una cuota pendiente, el certificado se libera automáticamente al registrarse el pago.
¿Puedo descargar los materiales del curso antes de asistir? Depende de la configuración de cada material. Los materiales marcados como "Libre" están disponibles antes de inscribirse. Los marcados como "Solo Inscriptos" requieren inscripción confirmada con pago para poder descargarse.
Prestadores y obras sociales
¿Cómo me habilito como prestador de una obra social? La habilitación como prestador para una obra social específica se tramita mediante un trámite administrativo ante el Colegio. Contactar al Operador de Trámites para iniciar el proceso, que puede requerir documentación específica según la obra social.
¿Por qué algunas de mis órdenes aparecen como "Observadas"? Una orden observada es aquella que presentó alguna inconsistencia durante la validación (monto fuera del nomenclador, código de prestación desconocido, etc.). Ver el detalle de la observación en el portal del prestador y comunicárselo a la obra social para corrección.
¿Cuándo recibo el pago de mis liquidaciones? Los lotes de pago se generan después del cierre del lote mensual de órdenes, que habitualmente ocurre dentro de los primeros 10 días hábiles del mes siguiente. La fecha exacta depende de la obra social y el flujo operativo del Colegio.
¿Puedo tener liquidaciones de varias obras sociales en el mismo mes? Sí. Si sos prestador de múltiples obras sociales, recibirás una liquidación separada por cada obra social, aunque todas pueden incluirse en el mismo lote de pago bancario.
Datos personales y solicitudes
¿Cuáles son los datos que puedo modificar por mi cuenta desde el portal? Desde el portal de autogestión podés solicitar cambios de: domicilio, teléfono, email, CUIT, especialidades declaradas y CBU/CVU para liquidaciones. Algunos cambios requieren documentación de respaldo. El número de matrícula y la foto de perfil no se modifican por autogestión.
¿Cuánto tiempo tarda la aprobación de una solicitud de cambio de datos? El SLA interno es de 3 días hábiles. Si la solicitud supera ese plazo, se genera un escalamiento automático al supervisor. Podés consultar el estado en cualquier momento desde Mi Perfil → Mis Solicitudes.
¿Puedo cancelar una solicitud de modificación que envié?
Sí, mientras la solicitud esté en estado PENDIENTE (no haya sido procesada por el operador), podés cancelarla desde Mis Solicitudes → [Solicitud] → Cancelar.
Credenciales y certificados
¿Con qué frecuencia debo renovar mi credencial digital? La credencial digital no tiene vencimiento propio, pero los certificados de matrícula vigente y libre deuda generados desde ella tienen una validez de 30 días. La credencial en sí refleja el estado actual de la matrícula en tiempo real mediante el QR.
¿El QR de mi credencial funciona sin internet? No. El código QR apunta a una URL online del sistema PSICOLE. Para verificar la autenticidad se requiere conexión a internet. La imagen de la credencial puede guardarse y compartirse offline, pero la verificación siempre es online.
¿Cómo verifico un certificado de otro profesional? Escaneando el QR del certificado con cualquier lector de QR. El enlace resultante mostrará una página pública con los datos del certificado (nombre, matrícula, fecha de emisión, vigencia y autenticidad). No se requiere login.
Errores Comunes
Referencia de los errores más frecuentes en PSICOLE, con descripción de la causa y los pasos para resolverlos. Los errores están agrupados por módulo.
Autenticación y acceso
| Código / Mensaje | Causa | Solución |
|---|---|---|
CREDENCIALES_INVALIDAS |
El email o la contraseña ingresados no coinciden con ningún usuario activo | Verificar que no haya errores tipográficos. Usar la opción Olvidé mi contraseña si se desconoce la clave actual |
USUARIO_INACTIVO |
La cuenta del usuario fue desactivada por el administrador | Contactar al ADMIN para que reactive la cuenta o informe el motivo de la desactivación |
SESION_EXPIRADA |
La sesión cerró por inactividad (timeout configurado) | Iniciar sesión nuevamente. Si ocurrió durante un proceso crítico (ej. pago), verificar el estado de cuenta antes de reintentar |
PERMISOS_INSUFICIENTES |
El rol del usuario no tiene acceso a la funcionalidad solicitada | Verificar con el ADMIN que el rol asignado sea el correcto para la operación que se intenta realizar |
Matrículas y aspirantes
| Código / Mensaje | Causa | Solución |
|---|---|---|
DOCUMENTACION_INCOMPLETA |
La solicitud de matrícula no tiene todos los documentos requeridos adjuntos | Revisar el checklist de documentación en el portal del aspirante y subir los documentos faltantes |
MATRICULA_DUPLICADA |
Existe una solicitud activa o una matrícula vigente para el mismo DNI/CUIL | Verificar en el padrón si el profesional ya tiene matrícula. Si es un error del sistema, contactar al ADMIN |
DNI_INVALIDO |
El número de DNI ingresado no tiene el formato correcto o no pasó la validación | Verificar el número sin puntos ni espacios. El formato esperado es un número de 7 u 8 dígitos |
Finanzas y pagos
| Código / Mensaje | Causa | Solución |
|---|---|---|
PAGO_RECHAZADO_MP |
Mercado Pago rechazó la transacción (fondos insuficientes, tarjeta bloqueada, etc.) | Intentar con otro medio de pago. El detalle del rechazo lo provee Mercado Pago en la pantalla de checkout |
PAGO_PROCESANDO |
El webhook de confirmación de Mercado Pago aún no llegó al sistema | Esperar hasta 5 minutos y recargar la página. Si persiste después de 15 minutos, contactar al Operador de Finanzas |
CUOTA_YA_PAGADA |
Se intentó pagar una cuota que ya fue acreditada en una transacción anterior | Verificar el historial de recibos. Si el sistema no refleja el pago anterior, reportarlo al Operador de Finanzas |
MORA_REQUERIDA |
Se intentó pagar una cuota vencida sin incluir el recargo de mora | El sistema requiere pagar el monto original más el recargo de mora en la misma transacción. El recargo se calcula automáticamente y se agrega al total |
Conciliación bancaria
| Código / Mensaje | Causa | Solución |
|---|---|---|
FORMATO_EXTRACTO_INVALIDO |
El archivo CSV/Excel no corresponde al formato configurado para el banco seleccionado | Verificar que el banco seleccionado en el sistema coincida con el del archivo. Consultar al ADMIN los formatos soportados |
PERIODO_SOLAPADO |
El período del extracto importado se superpone con el de una sesión ya existente para ese banco | Revisar las sesiones existentes y ajustar el rango de fechas del nuevo extracto. Si hay sesiones abiertas, cerrarlas primero |
TRANSACCION_DUPLICADA |
Una transacción del extracto ya existe en una sesión anterior (mismo banco, monto, fecha y referencia) | El archivo puede ser un duplicado de una importación anterior. Verificar el historial de sesiones antes de reimportar |
SESION_BLOQUEADA |
Hay una sesión de conciliación abierta hace más de 30 días para ese banco | Resolver o descartar la sesión antigua. Solo el ADMIN puede descartar sesiones vencidas sin completar |
MATCH_SIN_JUSTIFICACION |
Se intentó guardar un emparejamiento manual sin ingresar el campo de justificación | Completar el campo de justificación con una descripción del motivo del match antes de confirmar |
REVERSION_NO_PERMITIDA |
Se intentó revertir un match en una sesión ya cerrada sin permisos de ADMIN | Solicitar al ADMIN que reabra la sesión si se requiere corregir el emparejamiento |
Cursos y capacitación
| Código / Mensaje | Causa | Solución |
|---|---|---|
PREREQUISITO_NO_CUMPLIDO |
El colegiado no completó el curso prerequisito requerido | Verificar el historial de cursos del colegiado. Si existe un error en el registro, el ADMIN puede aprobar la inscripción manualmente desactivando el prerequisito |
CUPO_AGOTADO |
El cupo máximo del curso fue alcanzado | Inscribir al interesado en la lista de espera. El operador también puede ampliar el cupo desde la configuración del curso si hay capacidad disponible |
INSCRIPCION_DUPLICADA |
El colegiado ya tiene una inscripción activa en ese curso | Verificar el estado de la inscripción existente. Si fue dada de baja por error, el operador puede reincorporarlo si hay cupos |
CERTIFICADO_NO_HABILITADO |
El participante no cumple el mínimo de asistencia y/o tiene cuotas del curso pendientes | Verificar la planilla de asistencia y el estado de pagos. El certificado se libera automáticamente al regularizar ambas condiciones |
Prestadores y órdenes
| Código / Mensaje | Causa | Solución |
|---|---|---|
PRESTADOR_NO_MATRICULADO |
El número de matrícula en la orden no existe en PSICOLE | Verificar el número con la obra social. Buscar el profesional por nombre ante posibles errores tipográficos en el número de matrícula |
PRESTADOR_INHABILITADO |
El profesional tiene matrícula suspendida o cancelada | Regularizar la situación de la matrícula antes de procesar las órdenes del prestador |
CODIGO_PRESTACION_DESCONOCIDO |
El código de prestación de la orden no está en el nomenclador de esa obra social | Actualizar el nomenclador en Prestadores → Obras Sociales → [Nombre] → Nomenclador con el código faltante |
MONTO_FUERA_DE_RANGO |
El monto informado por la obra social difiere en más del umbral configurado respecto al nomenclador | Verificar si el nomenclador está desactualizado. Actualizar los valores si la obra social modificó sus aranceles |
LOTE_YA_APROBADO |
Se intenta importar órdenes en un período y obra social que ya tiene lote cerrado | Usar el mecanismo de órdenes de ajuste (crédito/débito) en el lote del mes siguiente. Los lotes aprobados no se modifican |
Liquidaciones
| Código / Mensaje | Causa | Solución |
|---|---|---|
SIN_REGLA_COMISION |
No existe ninguna regla de comisión configurada para la obra social o el tipo de prestación del lote a liquidar | Ir a Administración → Liquidaciones → Configuración de Comisiones y crear la regla faltante antes de aprobar el lote |
PRESTADOR_SIN_CBU |
El prestador no tiene CBU/CVU registrado en su perfil | Solicitar al prestador que ingrese su CBU desde el portal de autogestión, o cargarlo manualmente desde la ficha del colegiado |
MONTO_NETO_NEGATIVO |
La comisión configurada supera el monto bruto de la orden, generando un neto negativo | Revisar la configuración de la regla de comisión. Probablemente el valor sea un porcentaje ingresado como entero (ej. 110 en lugar de 1.10) |
Autogestión del profesional
| Código / Mensaje | Causa | Solución |
|---|---|---|
DEUDA_IMPIDE_CERTIFICADO |
Se intenta generar un certificado de libre deuda con cuotas vencidas pendientes | Pagar las cuotas vencidas desde el portal online. El botón de generación del certificado se habilita automáticamente |
SOLICITUD_PENDIENTE_EXISTENTE |
Ya hay una solicitud de modificación activa para el mismo campo de datos | Esperar la resolución de la solicitud existente. Si necesitás urgencia, contactar al Operador de Matrículas para que la procese con prioridad |
CBU_INVALIDO |
El CBU/CVU ingresado no supera la validación de dígito verificador | Verificar el número con el banco o la billetera virtual. Debe tener exactamente 22 dígitos y pasar la validación algorítmica |
DOCUMENTACION_FALTANTE |
Se envió una solicitud de modificación sin adjuntar el documento de respaldo requerido | Adjuntar el documento indicado (ej. servicio de luz para cambio de domicilio) antes de enviar la solicitud |
Changelog
Historial de cambios del sistema PSICOLE. Las versiones siguen el esquema Versionado Semántico: MAJOR.MINOR.PATCH.
v2.1.0 — 2026-04-27
Nuevas funcionalidades
- Módulo DINERO: nuevo módulo financiero completo con 13 secciones: Dashboard con 14 indicadores en paralelo, Cobranza, Caja, Conciliación Bancaria, Transferencias Pendientes, Planes de Pago, Débito Automático, Tarjetas sin Asociar, Salud de Pagos, Contabilidad, Facturación, Reportes Financieros y Configuración de Dinero. Roles:
ADMIN,OPERADOR_FINANZAS,CONTADOR(lectura). - Módulo COMUNICACIONES: 3 subsistemas integrados — Mensajería Interna (avisos de operadores a usuarios con tracking de lectura), Notificaciones del Sistema (32 tipos automáticos), e Infraestructura de Email con 4 capas de seguridad (kill switch, circuit breaker, rate limiter, audit log). Incluye Panel de Auditoría para Super Admins con estadísticas y exportación CSV.
- Campanita de Notificaciones (NotificationBell): presente en todas las páginas, badge numérico con conteo de no leídos, polling 60s y actualización en tiempo real vía SSE.
- Agenda del Profesional: nueva página
/mi-agendacon eventos pendientes (vencimientos, cursos, tickets, deudas) priorizados por colores. - Expansión de Parámetros del Sistema: de ~10 a 37 parámetros en 6 categorías (INSTITUTION, SECURITY, EMAIL, PAYMENTS, TICKETS, GENERAL). Incluye credenciales de gateways de pago con encriptación AES-256-CBC.
- Hot-reload de gateways de pago: al guardar credenciales de MercadoPago, NAVE o Payway, el sistema sincroniza
process.envy reinicializa el cliente sin reiniciar el servidor. - Rate limits dinámicos:
MAX_LOGIN_ATTEMPTSahora se lee de la base de datos con cache de 60s, permitiendo ajustar la seguridad sin deploy.
Mejoras
- Los parámetros del sistema ya no tienen cache HTTP — los cambios se reflejan inmediatamente en la UI al guardar.
- 28 templates de email para todas las comunicaciones transaccionales del sistema.
- Seguridad en sandbox: todos los emails se redirigen a
EMAIL_REDIRECT_TO, cero riesgo de envío a destinatarios reales. - Circuit breaker en envío de emails: si más del 30% fallan en 5 minutos, detiene todos los envíos automáticamente.
- Rate limiter de emails: token bucket 10/min, 200/hora para no saturar el servidor SMTP.
- Configuración de Dinero (MoneyConfig) con 7 dominios ajustables en vivo sin reinicio.
v2.1.1 — 2026-04-28
Nuevas funcionalidades
- Sistema de Ayuda Contextual (HelpTooltip): implementado en 15 pantallas del sistema. Cada pantalla muestra un ícono (?) a la derecha del título que despliega una ayuda contextual específica con descripción, tips y enlace directo a la sección correspondiente del manual.
- HelpTooltips en DINERO (14 pantallas): Dashboard, Cobranza, Caja, Conciliación Bancaria, Transferencias Pendientes, Planes de Pago, Débito Automático, Tarjetas sin Asociar, Salud de Pagos, Contabilidad, Facturación, Reportes Financieros, Configuración de Dinero y Cuenta Corriente.
- HelpTooltip en COMUNICACIONES (1 pantalla): Auditoría de Comunicaciones.
- Registro centralizado en
helpContent.js: todas las ayudas contextuales se definen en un único archivo de configuración con título, cuerpo, tip opcional y URL del manual. Formato de claves:modulo.pantalla.elemento. - Nuevas secciones del manual: Beneficios, Certificados de Ética, Renovación de Matrícula y ancla de Débito Automático agregadas para cubrir todas las referencias de ayuda contextual.
Mejoras
- Corrección de 4 enlaces rotos en ayudas contextuales que apuntaban a secciones inexistentes del manual.
- Tooltips responsivos: en desktop se muestran como popover, en móvil como hoja inferior (bottom sheet).
- El tooltip se cierra al presionar Escape o al hacer clic fuera.
v1.3.0 — 2026-04-04
Nuevas funcionalidades
- Tickets y Trámites (EPIC-09) — Sistema completo: nuevo módulo de gestión de tickets con SLA configurable, semáforo de tiempos (verde/naranja/rojo), asignación automática de operadores por área de trabajo y flujo completo de estados.
- Dashboard personal del Operador de Trámites: vista de bienvenida con encabezado en degradado, KPIs embebidos, alerta roja para tickets vencidos y tickets agrupados por urgencia. Al ingresar al sistema, el operador llega directamente a este dashboard.
- Kanban de tickets: vista estilo tablero por estado para operadores; vista por operador para supervisores.
- Dashboard de métricas del Supervisor: KPIs globales, tiempos de resolución y carga por operador en tiempo real.
- Categorías de tickets con Tipo de Origen: las categorías pueden ser MANUAL, Trámite de Usuario o Tarea Programada, con campo de Módulo Relacionado que vincula el ticket al módulo del sistema.
- Áreas de trabajo: panel expandible con operadores por área, toggle de disponibilidad y asignación automática al operador con menor carga.
- Parámetros configurables TICKETS: período de gracia, horas de inactividad y días para auto-cierre configurables desde Parámetros del Sistema.
- Integración alertas → tickets: las notificaciones de asignación en la campana llevan directamente al ticket asignado.
- Link "Ver servicio relacionado": en el detalle del ticket aparece un botón de acceso directo al módulo vinculado (Renovación de Matrícula, Débito Automático, Conciliación Bancaria, etc.).
- Seguimiento público: página
/trackpara consultar el estado de un ticket sin login.
Mejoras
- Filas de tickets en kanban y dashboard son completamente clicables (no solo el ícono).
- Redirección automática al dashboard del operador al ingresar con rol OPERADOR_TRAMITES.
- El modal de asignación de operadores en Áreas de Trabajo filtra y muestra únicamente usuarios con roles de staff (excluye colegiados y prestadores).
v1.2.0 — 2026-03-01
Nuevas funcionalidades
- Conciliación bancaria: nuevo módulo para importar extractos bancarios en formato
.txt(Banco Nación, Banco Provincia, BBVA) y realizar matching automático con los pagos registrados en el sistema. Los movimientos sin match quedan en cola para resolución manual. - Pagos online con Mercado Pago: integración con la API de Mercado Pago para que los colegiados puedan abonar sus cuotas directamente desde el portal de autogestión. Incluye webhook de confirmación y generación automática del recibo.
- Regeneración masiva de credenciales: nueva acción en el panel de Credenciales Digitales que permite regenerar en background las credenciales de todos los colegiados activos con un solo clic. Envía email de resumen al administrador al completar.
- Tickets — áreas de trabajo: los tickets ahora se enrutan automáticamente al área correspondiente según su categoría. Los operadores ven solo los tickets de sus áreas asignadas.
- Descuento por pago anticipado configurable por tipo de cuota: el porcentaje y la fecha límite de pago anticipado ahora se configuran individualmente en cada Tipo de Cuota, en lugar de aplicarse globalmente.
Mejoras
- El panel de Tareas Programadas ahora muestra el historial de las últimas 50 ejecuciones con estado, duración y resumen de resultados.
- El log de auditoría incorpora filtros por tipo de evento y exportación en formato CSV.
- Los emails de notificación de cuotas vencidas ahora incluyen un link directo al portal de pago online.
- Mejoras de rendimiento en la generación masiva de cuotas: reducción del 40% en tiempo de ejecución para colegios con más de 500 matriculados.
Correcciones
- Corregido error que causaba que el descuento por débito directo se aplicara duplicado en ciertos casos donde el colegiado tenía CBU registrado pero inactivo.
- Corregido error de zona horaria que hacía que el CRON de generación de cuotas se ejecutara a las 21:00 del día anterior en servidores con timezone UTC.
- Corregida visualización de importes en la credencial digital cuando el nombre del colegiado superaba los 50 caracteres.
v1.1.0 — 2025-11-15
Nuevas funcionalidades
- Credenciales digitales con QR: los colegiados ahora reciben su credencial en PDF al ser aprobados. El PDF incluye logo institucional, datos del matriculado, firma escaneada del directivo y un código QR único para verificación pública en línea.
- Impersonación de administrador: los usuarios
ADMINpueden visualizar el sistema como cualquier otro usuario en modo solo-lectura. Todas las sesiones de impersonación quedan registradas en el log de auditoría. - Recargos por mora escalonados: nueva configuración de tramos de mora en Administración → Descuentos y Recargos. Los porcentajes se aplican de forma acumulada según los días transcurridos desde el vencimiento.
- CRON de escalado de tickets: el sistema evalúa cada 2 horas los tickets con SLA vencido y los escala automáticamente, notificando al supervisor del área por email.
- Módulo de Prestadores: alta de prestadores (profesionales que trabajan con obras sociales), carga de órdenes y gestión de liquidaciones y comisiones.
- Portal de autogestión para Colegiados: nueva sección Mi Cuenta que permite al colegiado ver su estado de matrícula, descargar su credencial, consultar y pagar cuotas, y ver su historial de pagos.
Mejoras
- La plantilla de emails automáticos ahora es editable desde el panel de Administración → Notificaciones → Templates, con soporte de variables dinámicas.
- El formulario de solicitud de matrícula ahora admite adjuntos múltiples (hasta 5 archivos, 10 MB cada uno).
- Los tipos de cuota ahora tienen campo de descripción interna para documentar su propósito sin que sea visible al colegiado.
- Nuevo reporte de Tickets: cumplimiento de SLA por área y por operador.
Correcciones
- Corregido error que impedía generar el PDF de credencial cuando la firma escaneada tenía fondo no transparente.
- Corregida notificación de matrícula aprobada que en algunos casos se enviaba con el nombre del operador en lugar del nombre del colegiado.
- Corregido el toggle de Activo en Tipos de Cuota que no persistía correctamente en base de datos al desactivar un tipo con cuotas pendientes asociadas.
v1.0.0 — 2025-08-01
Lanzamiento inicial
Primera versión productiva de PSICOLE. Incluye el núcleo funcional del sistema:
- Autenticación y RBAC: sistema de login con JWT, 9 roles predefinidos y modelo de permisos RBAC con triplets
MODULO/ACCION/RECURSO. - Gestión de usuarios: CRUD de usuarios, asignación de roles, activación/desactivación de cuentas.
- Solicitud y gestión de matrículas: flujo completo desde la solicitud del aspirante hasta la aprobación/rechazo por el operador. Estados: BORRADOR → EN_REVISION → APROBADA / RECHAZADA.
- Módulo de Finanzas base: Tipos de Cuota (FeeTypes) con CRUD, generación mensual de cuotas mediante CRON el 1ro de cada mes, registro manual de pagos y emisión de recibos.
- Descuentos automáticos: configuración de descuento por débito directo (30%) y descuento para jubilados (50%), aplicados automáticamente al generar las cuotas.
- Notificaciones por email: integración SMTP (compatible con Gmail), con emails automáticos para los eventos principales: bienvenida, cuota generada, pago registrado, matrícula aprobada/rechazada, recuperación de contraseña.
- Sistema de tickets: apertura de tickets por cualquier usuario autenticado, categorías con SLA, gestión por operadores y supervisores, historial inmutable de mensajes.
- Módulo de Cursos: alta y publicación de cursos, inscripción de colegiados, registro de asistencia.
- Módulo de Trámites: plantillas de trámites configurables, flujo de aprobación con rol SUPERVISOR_TRAMITES.
- Panel de administración: parámetros del sistema, logo, firma escaneada, configuración SMTP y panel de tareas programadas.
Próximas versiones (roadmap)
| Versión | Feature planificada |
|---|---|
| v1.3.0 | App móvil para colegiados (React Native) |
| v1.3.0 | Exportación de reportes en Excel y PDF |
| v1.4.0 | Integración con AFIP para validación de CUIT |
| v1.4.0 | Firma digital de documentos (token FNMT) |
| v2.0.0 | Multi-colegio: soporte para gestionar múltiples colegios desde una sola instancia |