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 |
| Módulo DINERO | Operaciones, pagos, recibos, caja, conciliación, pasarelas y reintegros |
| Finanzas | Cobranza, recibos, caja y control financiero diario |
| Pagos Online | Pagos digitales por pasarela habilitada |
| Conciliación Bancaria | Importación, matching y conciliación de extractos bancarios |
| Consultorio | Agenda, pacientes, turnos, cobros particulares y órdenes |
| 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 |
| Comunicaciones | Avisos, emails, outbox transaccional y auditoría de mensajes |
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). Desde las tarjetas de KPIs podés saltar en un clic a los módulos clave (solicitudes de matrícula, tickets sin asignar, beneficios, mensajes internos) y desde el bloque de Acciones rápidas al Kanban de tickets, Padrón, Finanzas y Auditoría.

Capturas auditadas del inicio administrativo
El dashboard administrativo fue recapturado en escritorio y celular para validar que KPIs, accesos rápidos, buscador y barra lateral mantengan jerarquía sin solapamientos en monitores chicos y teléfonos.


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, correo electrónico institucional y rol. No se ingresa ni se muestra una contraseña en el alta.
- Asigná los permisos específicos si el rol lo requiere (los permisos se expresan como triplets
modulo/accion/recurso, por ejemploFINANZAS/CREATE/PAYMENT). - Guardá y luego usá Resetear y enviar acceso. El usuario recibe la clave temporal directamente por correo y debe cambiarla al ingresar. Si el correo no es aceptado realmente por SMTP, el acceso no cambia.
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.
Super Admins y promoción segura
La vista de Super Admins también fue recapturada para documentar el comportamiento responsive del listado y del flujo de promoción. En celular, el botón principal ocupa el ancho disponible y el modal de confirmación queda contenido en la pantalla.


2. Configurar parámetros globales del sistema
- Ingresá a Administración → Configuración.
- Desde allí podés ajustar:
- Tarifario mensual de cuotas, manteniendo
CUOTA_MENSUALcomo concepto oficial y cargando importes por periodo en Dinero -> Configuración -> Tarifario mensual. - Pasarelas de pago: actualizá credenciales, modo sandbox/producción y URLs de retorno o 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.
- Antes de ejecutar o habilitar la generación mensual, verificá que
CUOTA_MENSUALsea el único concepto mensual activo y que el período esté cargado en el Tarifario mensual. - Si está habilitado el CRON de lote CBU, verificá que use la misma regla que la generación manual: solo adhesiones
BANK_DEBITcon CBU verificado yDebt.finalAmountcomo importe a debitar. - Guardá cada sección por separado. Los cambios críticos de pasarelas pueden requerir reinicio o redeploy según el entorno.
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.
- El job de lote CBU no debe ejecutarse si las cuotas del período no fueron generadas o si hay diferencias entre el lote y
Debt.finalAmount.
Responsabilidad del administrador
El administrador configura y audita. La decisión operativa de enviar un archivo COELSA al banco debe quedar bajo control de Finanzas/Tesorería, con revisión del total del lote antes del envío.
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. - Guardás el usuario y ejecutás Resetear y enviar acceso.
- El operador recibe el correo directo, ingresa con la clave temporal y debe definir una propia antes de acceder al resto del sistema.
Escenario 2: Actualización de claves de pasarela tras renovación anual
- El proveedor notifica el vencimiento de credenciales.
- Ingresás a Dinero → Configuración o Parámetros del Sistema, según el parámetro.
- Reemplazás las credenciales con los nuevos valores obtenidos del panel del proveedor.
- 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
- Pagos Online y Pasarelas


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
Si una solicitud todavía no emitió matrícula y tiene un dato personal mal cargado, abrí Solicitudes de Matrícula → Ver → Editar datos. Podés corregir nombre, apellido, email, DNI, tipo de documento, CUIT/CUIL, teléfono y fecha de nacimiento. Confirmá con Guardar corrección: el cambio queda auditado y no modifica documentos, pagos ni el estado del trámite. Si la matrícula ya fue emitida, hacé la corrección desde la ficha del profesional para preservar los documentos oficiales.
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 coordinación con DINERO, pasarelas de pago y 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.colegiopsimza.org.ar/login(el hostpsicole.umdev.com.arqueda disponible como continuidad temporal). - 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 o por un medio externo:
- 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 Dinero → Operaciones → Cuotas.
- Podés filtrar por: colegiado, período, estado (pagada/vencida/pendiente/en mora).
- Antes del RUN mensual, verificá que el tipo mensual oficial
CUOTA_MENSUALesté activo y que el período tenga el importe aprobado en el Tarifario mensual. - Usá Previsualizar para revisar cantidad de profesionales, cuotas a generar, importe base, descuentos por método de pago y monto total.
- Ejecutá Generar solo cuando el total sea consistente. La generación crea deudas y cargos de cuenta corriente; no significa que el dinero ya fue cobrado.
- Si vas a operar debito automatico, revisá que las deudas del período tengan
finalAmountcorrecto antes de generar o enviar el lote CBU. - 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.
Para agosto de 2026, el tarifario versionado es: general $16.670, CBU
$13.336, tarjeta $11.669 y jubilado $8.335. Julio conserva sus importes
canónicos anteriores; no lo revalorices con agosto mientras su conciliación
tenga bloqueos o saldo sin resolver.
2.1 Consultar la cuenta y los planes de un profesional
- Ingresá a Matrículas -> Profesionales y buscá por nombre, DNI o matrícula.
- Abrí la ficha y entrá en Cuenta Corriente para revisar cuotas, estado, recibos, pagos y saldos a favor.
- Las cuotas mensuales deben verse como Cuota Mensual - Mes Año. Diferencias de texto históricas se normalizan al consultar y no implican deudas distintas.
- Entrá en Planes para revisar acuerdos activos e históricos, avance de cuotas, próximo vencimiento y mora.
- Usá Abrir ficha en una deuda, recibo o pago para consultar su trazabilidad. Al volver, el sistema debe reabrir el mismo profesional y la misma pestaña.
- Si un plan histórico está cancelado o completado, se conserva como antecedente y no debe interpretarse como plan operativo.
- Registrá una cuota sólo si el plan está
ACTIVE. Si la respuesta se corta, reintentá desde la misma acción: el sistema conserva la identidad técnica del intento. Antes de iniciar uno nuevo, comprobá que PAY, recibo y cuenta corriente estén completos. - Un descuento especial se calcula sobre el saldo pendiente del servidor y requiere aprobación de otra persona; quien lo solicita no puede aprobarlo.
- Si existen más de 12 cuotas mensuales vencidas, usá Solicitar descuento por
pago único. La solicitud incluye todas las
MONTHLY_FEEvencidas; otra persona de Tesorería la aprueba y luego se cobra el grupo completo por el importe exacto en una sola operación. No uses pago parcial, saldo a favor, efectivo ni ingreses el descuento dentro del formulario de pago.
La lectura de Cuenta Corriente y Planes no genera cobros, no modifica estados y no envía mensajes. Si una ficha no encuentra el registro, no crees un pago nuevo: volvé al perfil y verificá primero el identificador de deuda, PAY o REC.
2.2 Preparar lote CBU
- Ingresá a Dinero → Operaciones → Débito automático.
- Revisá adhesiones
BANK_DEBITactivas, CBU verificado y cuenta activa. - Generá el lote del período o abrí el lote creado por CRON.
- Controlá que el total del lote sea la suma de
Debt.finalAmountde las cuotas incluidas. - Si el total no cuadra, no descargues ni envíes el COELSA: revisá descuentos, beneficios, método de cobro y deudas del período.
- Descargá el archivo y envialo al banco por el canal operativo acordado.
- Al recibir la devolución, cargá aprobados y rechazados.
En un rechazo CBU, el sistema revierte solo el descuento por débito directo. Si el profesional tenía jubilación, beneficio parental u otro beneficio aprobado, ese beneficio queda vigente en el saldo pendiente.
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.
- Para cuotas mensuales, revisá que el movimiento coincida con la deuda final generada o con un ajuste contable aprobado por aumento mensual.
- 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.
3.1 Certificar un RUN mensual contra banco
Para cerrar un periodo de cuotas, trabajá con el denominador estricto: tarjeta aceptada + CBU cobrado. Usá recibos, padrones, caja y listados de prestadores como evidencia de contraste, no como movimientos nuevos si representan el mismo cobro.
- Separá rechazos bancarios de cobros reales.
- Validá que cada cobro tenga deuda del periodo, operación PAY, recibo y cuenta corriente.
- Para CBU, aplicá solo si hay una transacción bancaria exacta y no vinculada a otra operación.
- Si el match depende solo de nombre, monto parecido o padrón histórico, dejalo en cola manual.
- Documentá el cierre con cantidad, monto, tasa de conciliación y lista de bloqueos.
En la certificación SANDBOX de mayo/junio 2026 se conciliaron 5.697 de 5.986 eventos aceptados/cobrados. Los 360 eventos sueltos originales quedaron tratados al 100%, pero 289 permanecieron sin destino estricto por falta de desempate seguro.
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".
5. Controlar órdenes y lotes de prestadores
- Ingresá a Prestadores → Órdenes y filtrá por Obra Social, período, estado o etapa. El número de orden, la práctica, la cantidad, el precio y la fecha deben verse en la lista, el detalle y la exportación.
- Si una orden guardada tiene un error, abrí Corregir, elegí la práctica del nomenclador y ajustá los campos necesarios. Indicá siempre el motivo.
- Si la orden ya forma parte de una rendición y está
PENDINGuOBSERVED, corregila desde el detalle de esa rendición; la grilla general la bloquea para evitar totales divergentes. - Una orden validada o presentada sin rendición puede volver a observación al
corregirse. Dentro de una rendición, la UI aún no ofrece Corregir para
VALIDATED/SUBMITTED; no fuerces el cambio y registrá ese caso como brecha. Las órdenes terminales no se editan. - Para el cierre mensual, seleccioná campo de fecha, rango y Obra Social y ejecutá Vista previa. Generá sólo si cantidad y total coinciden con ese preview.
- Usá la exportación de control para revisar el detalle antes de facturar. El CSV es una lectura auditada y no crea lote, factura, liquidación ni pago.
Ver Corrección operativa y control de lotes.
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 credenciales de pasarelas de 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 operaciones y encontrás un pago por pasarela de ese colegiado por el mismo monto registrado el mismo día.
- Asociás el movimiento bancario a la operación
PAYy 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 y Pasarelas
- Conciliación Bancaria
- Módulo de Liquidaciones
- Prestadores y Órdenes
- 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 DINERO cuando los cursos son arancelados, ya que el pago de la inscripción se procesa a través del sistema de cuotas o una pasarela habilitada.
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á monto y método de cobro: pasarela, débito automático 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 cobro por pasarela o deuda 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 vigente:
https://psicole.colegiopsimza.org.ar/login.https://psicole.umdev.com.ar/loginpermanece como alias de continuidad y rollback; no se retira durante la estabilización. - 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, próximos cursos y trámites en curso. El aviso rojo de deuda suma sólo cuotas realmente vencidas; una cuota abierta cuyo vencimiento todavía no llegó puede verse en Estado de Cuenta, pero no como mora. En el panel superior se muestra además una miniatura de tu credencial digital — al hacer clic se abre un modal con el QR ampliado y atajos para descargar, compartir o ver la credencial completa.
Dashboard certificado
El 12/08/2026 se verificaron Producción en escritorio y 390×844 con una identidad sintética sin deudas: mostró Al día, cero aviso rojo y ningún desborde horizontal. La identidad quedó desactivada, sin sesiones, tickets, documentos, pagos ni deuda. No se publica la captura efímera de Producción.
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 deuda. Serás redirigido al checkout de la pasarela habilitada.
- Elegí el medio disponible en el proveedor: tarjeta, QR, billetera u otro instrumento configurado.
- 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 desde la URL incluida en el propio QR.
La ruta oficial vigente es
https://psicole.colegiopsimza.org.ar/verify/<código>. Los QR físicos conpsicole.umdev.com.arsiguen funcionando, y el alias histórico/verificar/<código>redirige a/verify/<código>sin cambiar el código.
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á a la pasarela habilitada. 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.
6. Pedir ayuda al Colegio
- Hacé clic en el signo ? visible dentro de PSICOLE.
- Para un colegiado o prestador se abre Soporte a Colegiados: describí la consulta y, si hace falta, adjuntá hasta cinco archivos.
- Al enviar se muestra un número de ticket. Podés seguirlo desde Mis reportes, agregar documentación y consultar la respuesta.
- Soporte Técnico es el canal de reporte interno del personal del Colegio. Ambos canales llegan a la misma mesa operativa, pero conservan categoría, permisos y trazabilidad diferentes.
En teléfono, el panel se adapta al área visible y al teclado. Mientras está abierto, el signo flotante deja de superponerse con el botón de envío.
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 a través de la pasarela habilitada.
- 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 la pasarela habilitada.
- 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 y Pasarelas
- 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 sus órdenes de atención, las presenta al Colegio para su procesamiento, administra su agenda de consultorio y cobra sus honorarios mediante el sistema de liquidaciones.
Acceso al sistema
- URL de login:
https://psicole.app/login - Dashboard: resumen de actividad — órdenes del período, monto acumulado, órdenes pendientes, alertas de órdenes rechazadas y turnos del día.
Tus tareas principales
1. Consultorio — Agenda de turnos
El Consultorio es tu agenda de sesiones. Podés programar turnos vinculados a pacientes de tu libreta y, al marcarlos como realizados, crear la orden de prestación en un clic.
- Ir a Mis Órdenes → Consultorio.
- Hacé clic en + Nuevo turno.
- Completá los datos:
- Paciente (autocomplete desde tu libreta — o ingresá el nombre libremente).
- Obra social (se autocompleta si el paciente tiene OOSS en la libreta).
- Fecha y hora, duración (default: 50 min), modalidad (Presencial / Virtual) y notas.
- Al finalizar la sesión, hacé clic en ✓ Completar en la card del turno. Si el turno tenía obra social, el sistema te propone crear la orden de prestación con los datos pre-llenados.
- Exportá tu agenda a Google Calendar con el botón Exportar .ics (cabecera de la página).
2. Cargar órdenes de atención
- Ir a Mis Órdenes → Mis Órdenes → + Nueva Orden.
- El campo Paciente tiene autocomplete desde tu libreta: al seleccionar un paciente se auto-completan DNI, obra social y número de afiliado.
- Completá fecha de atención, sesiones, diagnóstico y tratamiento (los campos de diagnóstico y tratamiento sugieren valores usados anteriormente para agilizar la carga).
- Adjuntá la orden física (JPG, PNG o PDF).
- Guardá.
Después de guardar, revisá que el detalle muestre el número de orden, la fecha de prestación, la práctica y la cantidad correctas. Si el error se detecta cuando la orden ya fue enviada al circuito del Colegio, informalo en el mismo registro: un operador puede corregirla con motivo y auditoría. Una orden validada o presentada que todavía no integra una rendición vuelve a observación al corregirse y debe validarse otra vez. Dentro de una rendición, la corrección visible alcanza por ahora órdenes pendientes u observadas; una orden ya aceptada, pagada, rechazada o cancelada no se modifica.
3. Libreta de pacientes
La libreta centraliza los datos de tus pacientes para agilizar la carga de órdenes.
- Ir a Configuración → Pacientes.
- Buscar por nombre, apellido o DNI (campo de búsqueda con resultados en tiempo real).
- Nuevo paciente → formulario con:
- Nombre, apellido, DNI.
- Obras sociales (podés agregar múltiples): obra social + Nº afiliado + plan (opcional).
- Datos de contacto: teléfono, email, fecha de nacimiento, dirección, notas.
- Importar desde órdenes: si ya tenés órdenes cargadas, el sistema puede crear automáticamente los pacientes de tu historial. Aparece un banner de importación cuando tenés pocos pacientes registrados — hacé clic en Ver preview para ver qué se importaría antes de confirmar.
4. Generar rendición mensual
Al cerrar el mes, presentá tus órdenes validadas al Colegio:
- En Mis Órdenes, aparece un banner verde cuando tenés órdenes validadas listas para rendir: "Tenés X órdenes validadas listas para rendir este período."
- Hacé clic en Generar rendición.
- Revisá el resumen por obra social (cantidad de órdenes y subtotal por cada una).
- Hacé clic en Enviar rendición al Colegio.
- Seguí el estado desde Liquidaciones. Cuando aparezca la liquidación con el neto definitivo, cargá allí número, fecha, importe y archivo de la factura.
5. Consultar liquidaciones
- Ir a Liquidaciones.
- Cada liquidación muestra: período, estado, cantidad de órdenes, monto neto, factura y comprobante.
- En una liquidación con Factura pendiente, seleccioná el archivo y completá número, fecha e importe. El importe debe coincidir con el neto liquidado.
- Cuando el Colegio aprueba la factura y registra el pago, podés descargar el comprobante desde Ver detalle → Descargar comprobante.
6. Gestionar tu perfil de prestador
- Ir a Configuración → Obras Sociales para ver y gestionar las obras sociales habilitadas.
- Ir a Configuración → Datos Bancarios para actualizar tu CBU de acreditación.
- Ir a Mi Perfil Público para actualizar lo que ven los pacientes en el directorio (bio, foto, especialidades, OOSS, modalidad de atención).
Flujos de trabajo típicos
Escenario 1: Cierre mensual con agenda de consultorio
- Durante el mes cargaste los turnos en Consultorio.
- Al marcar cada turno como "Completado", el sistema te propone crear la orden de prestación con los datos pre-llenados.
- Al fin del mes ves el banner verde en Mis Órdenes: "Tenés 28 órdenes validadas listas para rendir."
- Generás la rendición y la enviás al Colegio. La factura se presenta después, sobre la liquidación calculada.
Escenario 2: Importación inicial de pacientes
- Ingresás al sistema por primera vez con historial de órdenes.
- En Configuración → Pacientes aparece un banner: "Importar pacientes desde tus órdenes históricas".
- Hacés clic en Ver preview — el sistema te muestra 35 pacientes únicos detectados en tus órdenes.
- Confirmás la importación. Los pacientes quedan en tu libreta con sus obras sociales y números de afiliado.
Escenario 3: Rendición de factura y descarga de comprobante
- El Colegio procesó tu liquidación de marzo 2026 por $99.750 neto.
- En Liquidaciones ves el aviso: "Factura pendiente de subir".
- Informás el número, fecha e importe y subís el PDF de la factura.
- El operador la revisa desde Facturas recibidas. La aprobación no ejecuta el pago ni envía mensajes.
- Una vez registrado el pago, descargás el PDF del comprobante y lo enviás a tu contador.
Lo que NO podés hacer con este rol
- Ver las órdenes ni liquidaciones de otros prestadores.
- Aprobar tus propias órdenes.
- Modificar una orden ya liquidada (requiere trámite de rectificación formal).
- Acceder a los módulos operativos del Colegio.
Recursos relacionados
- Módulo de Prestadores
- Sistema de Liquidaciones
- Directorio Público
- 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 la pasarela habilitada.
- Podés pagar con los medios que el proveedor tenga configurados para el Colegio.
- 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 y un refresh token de 7 días. En el navegador ambos viajan en cookies httpOnly; el refresh también se persiste en la base de datos para poder rotarlo y revocarlo. El frontend conserva en localStorage sólo la información de usuario necesaria para la interfaz, no los tokens de sesión.
El sistema combina roles base (ADMIN, operadores de Matrículas, Finanzas,
Cursos y Trámites, COLEGIADO, PRESTADOR y ASPIRANTE) con roles operativos
especializados, entre ellos OPERADOR_PRESTADORES. Cada ruta usa grupos de roles
y capacidades explícitas; no se debe deducir acceso a un módulo sólo por el
nombre visible del rol. El middleware authenticate verifica y decodifica el
access token en cada request; requireRole, requirePermission y las políticas
por capacidad aplican la autorización antes de que el controlador procese la
solicitud.
La prueba asistida permite a roles de soporte expresamente autorizados abrir la
sesión visual de un usuario final para diagnóstico y acompañamiento. El token
identifica al operador real y al usuario asistido, revalida la capacidad del
operador en cada request y registra inicio y fin en AuditLog. El modo vigente
puede habilitar escrituras necesarias para completar el trámite asistido; cada
ruta conserva su autorización propia y las operaciones que usan
blockIfImpersonating() permanecen bloqueadas.
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_PRESTADORES | Control de órdenes, rendiciones, lotes, OOSS y reportes según la capacidad de cada ruta |
| 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 y ambos tokens se entregan al navegador en cookieshttpOnly. - Se actualiza
lastLogindel usuario y se incrementan las métricas de Prometheus correspondientes. - La respuesta conserva tokens en el cuerpo sólo por compatibilidad con clientes legados. El frontend vigente los ignora, usa
withCredentialsy guarda únicamente el objetouserpara presentar la sesión.

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/refresh; la cookiehttpOnlyviaja conwithCredentials, sin leer el token desde JavaScript. - El backend verifica firma, persistencia, vencimiento, revocación y estado del usuario.
- Si todo es válido, rota en forma atómica access y refresh, revoca el refresh anterior y renueva las cookies. Un reuso de un refresh ya rotado revoca las sesiones activas del usuario y exige volver a iniciar sesión.
- El interceptor reintenta el request original con las cookies nuevas. Una carrera simultánea de refresh devuelve un conflicto recuperable; un token inválido, vencido o comprometido termina la sesión.
Evidencia visual: No aplica. El refresh es transparente y no tiene pantalla propia; se valida con pruebas de rotación, reuso y carrera concurrente.
Logout
- El usuario hace clic en Cerrar Sesión en el menú de usuario.
- El frontend envía
POST /api/v1/auth/logoutcon las cookies de sesión. - El backend marca el refresh token como revocado y conserva su trazabilidad; repetir el logout no falla.
- El frontend borra el estado de autenticación en Zustand (
authStore) y redirige al login.

Prueba asistida de usuario
- El operador autorizado navega a Usuarios → [usuario objetivo] → Iniciar Vista Como.
- El frontend llama a
POST /api/v1/auth/impersonate/:userId. - El sistema verifica que el rol del solicitante esté incluido en la política de prueba asistida y que conserve la capacidad de escritura asistida.
- Se genera un access token especial con
isImpersonating,impersonatedBy,canWriteWhileImpersonatingeimpersonationMode. No se emite refresh token para esta sesió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.
- Las escrituras sólo se admiten donde la ruta y las capacidades del operador
las autorizan. Las rutas protegidas con
blockIfImpersonating()responden403 read-onlyincluso durante una prueba asistida. - Para terminar, el operador hace clic en Volver a mi cuenta
(
POST /api/v1/auth/stop-impersonation). El sistema genera tokens normales para el operador original y registraSTOP_IMPERSONATION.

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).
Cuando el acceso fue emitido por Resetear y enviar acceso, la sesión queda
marcada como temporal. Hasta completar este formulario, el frontend redirige a
esta pantalla y el backend rechaza las demás operaciones con
PASSWORD_CHANGE_REQUIRED. La contraseña temporal nunca se expone al operador
ni se imprime en logs; al cambiarla se limpia la marca y se revocan las demás
sesiones activas.

Recuperación de contraseña
- En el login, el usuario abre Olvidé mi contraseña e informa su email.
- PSICOLE responde siempre con el mismo mensaje, exista o no una cuenta activa, para evitar la enumeración de usuarios.
- Si la compuerta dedicada de correo y el destinatario están habilitados en
producción, se envía un enlace a
/reset-passwordválido por una hora. - El enlace usa el dominio configurado específicamente para recuperación o, en su defecto, el frontend del mismo entorno.
En Sandbox no se entrega el enlace: el intento queda auditado como bloqueado. La interfaz no debe afirmar que hubo entrega real. Ver la matriz operativa de correo.
Evidencia visual pendiente. No hay un par sanitizado de las vistas de
solicitud y restablecimiento; la compuerta y la expiración son controles de
backend y se documentan como NO_UI hasta completar ese par.
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) | Token emitido y rotado en cookie httpOnly; el body se admite sólo por compatibilidad legada |
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.
Autoridad revalidada
Iniciar una prueba asistida no delega permisos del usuario objetivo al operador. Si el operador pierde la capacidad requerida o queda inactivo, los requests posteriores se rechazan.
Escritura limitada por ruta
La prueba asistida no es una autorización global. Cada endpoint aplica su RBAC/capacidad y algunas operaciones sensibles conservan blockIfImpersonating(). No uses este modo para pagos, mensajes u otras mutaciones que la ruta bloquee.
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.
Orígenes confiables y aislamiento por entorno
Las solicitudes de navegador con credenciales se aceptan únicamente si su
Origin coincide exactamente con la lista de CORS_ORIGINS, separada por
comas. CORS_ORIGIN se conserva como respaldo para configuraciones legadas. No
se usa * junto con cookies.
- Sandbox declara sólo su propio origen. No se deben agregar dominios productivos a esa lista.
- El entorno PSICOLE declara su aplicación y el origen web autorizado para el puente puntual con el sitio institucional.
- Los clientes servidor a servidor que no envían
Originpueden continuar; su autenticación y autorización se validan por el contrato de cada endpoint.
El acceso desde WordPress es un redirect al login de PSICOLE. No es SSO: no comparte usuarios, tokens ni sesión con WordPress. La inclusión del origen institucional en producción habilita únicamente el puente previsto, por ejemplo el cierre de sesión desde el menú, y no debe copiarse a Sandbox.
Evidencia visual: No aplica. Es configuración de borde y middleware; se valida por origen permitido/rechazado y por composición separada de cada entorno.
Protección CSRF de doble envío
En login y refresh el backend rota una cookie csrfToken legible por el
frontend. Para cada mutación autenticada mediante cookies, Axios refleja ese
valor en X-CSRF-Token; el servidor exige que cookie y header coincidan.
Los métodos seguros y los endpoints preautenticación definidos de forma exacta
tienen excepción. El bypass de /api/v1/auth/logout no cubre variantes como
/api/v1/auth/logout-all-devices, que siguen protegidas. Las rutas públicas y
webhooks tienen sus controles específicos; una petición Bearer pura o sin cookie
de acceso no es susceptible a CSRF, aunque continúa sujeta a autenticación,
autorización y validación de entrada.
Evidencia visual: No aplica. El control no tiene pantalla propia; se prueba con combinaciones de cookie/header válidas, ausentes y distintas.
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 → access y refresh rotados
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 |
403 PASSWORD_CHANGE_REQUIRED |
La sesión ingresó con una clave temporal entregada por PSICOLE | Completar Cambiar contraseña; sólo cerrar sesión permanece disponible antes del cambio |
401 Refresh token inválido o expirado |
El refresh token venció (7 días) o fue revocado al cerrar otra sesión | Iniciar sesión nuevamente |
403 No tienes permisos suficientes |
El rol no integra la política de prueba asistida o perdió su capacidad | Volver a la cuenta propia y revisar el rol/capacidad del operador |
403 No puedes realizar esta acción en modo vista |
La ruta bloquea esa operación durante la prueba asistida | Volver a la cuenta propia y realizarla sólo con el rol autorizado |
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 la cookie httpOnly. Si el refresh es válido, rota ambas credenciales y el usuario no nota la interrupción. Si el refresh venció o fue revocado, el usuario vuelve al login.
¿Los refresh tokens se invalidan al cambiar la contraseña? Sí. El cambio de contraseña revoca los refresh activos de los demás dispositivos y conserva la sesión actual cuando puede identificar su token. Para una sospecha de compromiso, Cerrar sesión en todos los dispositivos revoca todos los refresh activos.
¿Qué información queda registrada en el audit log?
Cada prueba asistida registra al operador real, al usuario objetivo, el modo y la
capacidad de escritura, además de IP y User-Agent. 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 operativo compartido: 13 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 vigente 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.
El mismo texto se comparte con Renovación de Matrícula y puede ser actualizado desde la operación administrativa sin tocar código.

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 la pasarela habilitada o presencialmente; en ese 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.

Altas registradas en el padrón
El panel administrativo existente de Solicitudes de Matrícula
(/admin/enrollment-applications) permite alternar entre:
| Origen | Contenido | Regla de estado |
|---|---|---|
| Solicitudes del sistema | Formularios operativos creados en PSICOLE | Conservan el workflow completo y sus acciones. |
| Altas registradas en padrón | Profesionales que ya poseen matrícula en el padrón sistémico | Muestran el estado formal actual de matrícula (APPROVED, PROVISIONAL o baja) y sólo permiten abrir el perfil. |
Esto permite consultar altas anteriores sin inventar una solicitud retroactiva.
Si la matrícula formal está APPROVED, se muestra como aprobada porque ese es
el estado vigente del profesional, no una inferencia a partir de un PDF o de
un formulario histórico.
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. 13 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 13 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.
- Antes de emitir matrícula, el operador autorizado puede usar Editar datos en la ficha para corregir identidad o contacto. PSICOLE valida email, DNI y CUIT/CUIL únicos, evita pisar cambios concurrentes y registra la corrección en Auditoría. Esta acción no altera pagos, documentos ni estados.
- 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).

Vista auditada desktop y mobile
La bandeja de Solicitudes de Matrícula fue recapturada luego de ajustar cabecera, acciones y modal de documentos. En móvil, las acciones superiores se organizan en grilla, el modal usa el ancho disponible y la carga de documentos evita desbordes laterales.


Carga manual administrativa de solicitud
Cuando una solicitud debe iniciarse desde administración, el operador puede usar Cargar solicitud manual dentro de Matrículas → Solicitudes.
El sistema crea:
- usuario aspirante verificado;
- solicitud en estado
PENDING_REVIEW; - historial de acción administrativa;
- registro de auditoría
MANUAL_ADMIN_CREATED.
La solicitud manual no saltea el circuito de revisión. Luego continúa por aprobación interna, correcciones, rechazo o aprobación definitiva según corresponda.
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.

Renovación completada con originales presenciales
En una renovación, si parte de la documentación obligatoria fue presentada físicamente y no existe archivo digital, el operador puede elegir Constatar originales presenciales.
- Primero debe validar todos los archivos digitales que sí existan; una constancia nunca oculta un archivo pendiente o rechazado.
- Debe dejar una declaración de al menos 20 caracteres y, si corresponde, la referencia de expediente, libro o ticket.
- El sistema registra operador, fecha, documentos digitales aprobados y tipos faltantes cubiertos por los originales.
- No se crean adjuntos ficticios. La boleta y la aprobación vuelven a validar esta evidencia bajo bloqueo transaccional.
- La constancia no acredita el arancel ni aprueba por sí sola la renovación.
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, beneficio activo, plan 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).
Filtros financieros disponibles desde el padrón:
| Filtro | Uso |
|---|---|
| Beneficio activo | Aislar jubilacion, maternidad/paternidad, primera matricula, debito o profesionales con plan. |
| Estado de plan | Ver planes activos, pendientes de revision, completados, cancelados, cuotas pendientes o cuotas marcadas pagadas por planilla sin operacion. |
| Estado de pago | Revisar deuda vencida, pendiente o al dia sin salir del padron. |

Padrón profesional auditado
La lista de profesionales se validó como parte del barrido visual para asegurar que búsqueda, filtros y acciones no queden fuera del viewport en pantallas chicas.


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 refleja matrículas APPROVED y PROVISIONAL mientras
su vencimiento oficial esté vigente. En una provisoria muestra esa
condición y la fecha Matrícula hasta; no la presenta como definitiva.
Archivo histórico de trámites
Los adjuntos históricos se incorporan en etapas para que un PDF no termine en el perfil equivocado ni cambie por sí solo un estado de matrícula o de cobro.
El inventario de respaldo es una fuente documental, no una orden de cambio. El
primer corte operativo abarca 2025 y 2026 y se controla antes de extraer
archivos: el inventario del 24/07/2026 registró 3.696 adjuntos privados
(2.608 renovaciones, 832 débitos automáticos y el resto de otros trámites).
- Se inventaría cada ZIP por archivo, fecha interna, tamaño, tipo de trámite y huella de archivo fuente. Esta etapa no toca la base ni copia documentos.
- El vínculo exige matrícula, DNI/CUIT o referencia de solicitud verificable. El nombre de archivo, una carpeta o un importe aislado nunca bastan.
- Si existe la solicitud correspondiente, el archivo se asocia a ese trámite;
si no existe, puede quedar como documento privado
OTHERdel profesional con el origen histórico claramente indicado. - Los casos sin identidad única, fechas incompatibles o documentos duplicados pasan a revisión. No se crean solicitudes, renovaciones, pagos, beneficios ni cambios de vigencia por el solo hecho de importar un adjunto.
- La repetición usa huella de origen y hash del contenido: un replay conserva el mismo registro sin duplicar archivos ni auditorías.
Desde el corte 2025-2026, cada respuesta que coincide de forma exacta por matrícula y DNI se expone en el perfil administrativo del profesional, en la pestaña Trámites → Antecedentes Históricos de Trámites. La fila indica fecha, tipo de trámite, planilla origen y cantidad de adjuntos declarada. No cambia el estado de una matrícula, beneficio, deuda o ticket.
La persona titular consulta los mismos antecedentes desde el flujo existente Mis Trámites → Historial. Allí puede contrastar el trámite informado y, cuando el vínculo físico fue verificado, abrir su adjunto privado. Esta consulta no habilita cambios de estado ni confirma una renovación por sí sola.
Un adjunto declarado puede quedar como pendiente de enlace exacto: significa
que existe en la respuesta de formulario, pero todavía no reunió evidencia
suficiente para asociarlo al perfil. El nombre aislado nunca basta. Un PDF o
imagen física se incorpora sólo cuando coinciden: identidad exacta declarada
en Forms, campo de adjunto, carpeta del trámite, nombre completo como evidencia
auxiliar, archivo físico único, fecha compatible y DNI encontrado en el
contenido mediante extracción de texto u OCR. Antes de copiarlo se verifica
su hash SHA-256 y la repetición conserva el mismo vínculo sin duplicar el
archivo. Los adjuntos verificados quedan privados y se consultan desde
Trámites → Antecedentes Históricos de Trámites. Los casos que no superan
todos esos controles permanecen pendientes de verificación; no se fuerzan por
parecido de nombre ni se usan para aprobar renovaciones. La ampliación a años
anteriores se habilita únicamente cuando el lote 2025-2026 haya pasado el mismo
control de identidad, integridad de archivo e idempotencia.
La vigencia de la credencial tiene una fuente distinta y explícita: una renovación aprobada dentro del sistema o el padrón oficial certificado.
Reciprocidad visible en la ficha profesional
La pestaña existente Profesionales → perfil → Trámites reúne tres clases de evidencia sin cambiar sus estados: antecedentes históricos verificados, solicitudes de matrícula y tickets administrativos o de soporte. Cuando el registro tiene un archivo físico, la misma fila ofrece Adjuntos y lo abre mediante una descarga autenticada. La ficha no expone rutas privadas del servidor.
La ausencia de un botón de archivo significa que ese registro no tiene un documento físico vinculado; no debe reemplazarse con otro PDF por semejanza de nombre. Del mismo modo, visualizar un adjunto demuestra recepción o preservación documental, pero no convierte una solicitud en aprobada, no renueva la matrícula y no activa un beneficio.
El control repetible npm run audit:profile-document-reciprocity contrasta
archivo físico, propietario, registro canónico y superficie de perfil. Es de
sólo lectura y falla si encuentra archivos faltantes, identidades huérfanas o
una ruptura económica en la cadena de prestadores.
Una respuesta histórica, aun cuando declara un comprobante, acredita una
presentación y no aprueba ni modifica una matrícula por sí misma. La auditoría
audit-historical-procedure-reciprocity.mjs clasifica cada renovación contra
esa vigencia sin escribir datos: sólo un ciclo sistémico verificable puede
considerarse vínculo exacto; el padrón vigente se expone como certificación de
vigencia actual y el resto permanece como antecedente o revisión de evidencia.
La vigencia de la credencial tiene una fuente distinta y explícita: una
renovación aprobada dentro del sistema o el padrón oficial certificado.
Una respuesta histórica, aun cuando declara un comprobante, acredita una
presentación y no aprueba ni modifica una matrícula por sí misma. La auditoría
audit-historical-procedure-reciprocity.mjs clasifica cada renovación contra
esa vigencia sin escribir datos: sólo un ciclo sistémico verificable puede
considerarse vínculo exacto; el padrón vigente se expone como certificación de
vigencia actual y el resto permanece como antecedente o revisión de evidencia.
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?
Una provisoria nueva tiene un vencimiento oficial de 18 meses desde
Matrícula desde, salvo que el padrón indique otra fecha. El estado
PROVISIONAL persiste hasta que el operador registre la respuesta del
Ministerio, pero la credencial deja de estar vigente al superar
Matrícula hasta. Desde 90 días antes la agenda orienta a completar el pase a
definitiva; no ofrece renovación quinquenal.
¿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
Las matrículas definitivas se renuevan en ciclos de 5 años. Las provisorias nuevas tienen una vigencia de 18 meses, pero no ingresan al trámite quinquenal: antes de vencer deben completar el pase a matrícula definitiva. La fecha que figura como Vigente hasta en la credencial es el vencimiento oficial registrado por el Colegio: no se reemplaza ni se extiende automáticamente por un cálculo estimado. El proceso de renovación es digital, con firma de Declaración Jurada y documentación respaldatoria.
Las cuatro fechas profesionales
Estas fechas tienen significados distintos y se exportan en columnas separadas:
| Fecha | Qué representa | Regla |
|---|---|---|
| Fecha de egreso | Finalización de la carrera y disponibilidad del analítico provisorio | Puede respaldar una matrícula provisoria |
| Fecha de expedición | Expedición del título definitivo | No puede ser anterior al egreso |
| Inicio de matrícula | Fecha oficial Matrícula desde del registro de vigencia actual |
No es la fecha de expedición ni Fecha Ingreso; puede actualizarse al pasar a definitiva o al aprobar una renovación |
| Vencimiento de matrícula | Fin del ciclo oficial vigente | Es la fecha que muestra la credencial y no puede ser anterior al inicio de matrícula |
El padrón oficial, una aprobación de alta, una renovación aprobada o una corrección administrativa auditada son fuentes válidas de vigencia. Si el vencimiento no tiene una fuente verificable, el sistema no habilita una nueva renovación hasta que Matrículas corrija el dato.
En el padrón, Matrícula desde y Matrícula hasta describen el registro de
vigencia actualmente informado; no son la antigüedad histórica. La aprobación
definitiva inicia su propio registro de vigencia. Para altas nuevas, la
matrícula provisoria vence a los 18 meses y la definitiva vence en el
cumpleaños del quinto año calendario contado desde su inicio. Una renovación
conserva el día y mes del vencimiento oficial anterior y lo avanza cinco años.
Si el padrón informa una fecha distinta, prevalece la fecha oficial del padrón
y la diferencia queda auditada.
Fecha crítica de la credencial
La aplicación nunca extiende una fecha vencida al consultar una credencial. Durante una sincronización de padrón, una fecha histórica puede avanzar en ciclos de cinco años sólo si el mismo padrón conserva la matrícula activa, la proyección fue habilitada explícitamente y quedó registrada en el reporte de importación. Las bajas y los fallecidos nunca se proyectan. Las cuatro fechas se tratan como fechas civiles, sin conversión horaria. Un cumpleaños del 29 de febrero se representa con el último día de febrero cuando el año de vencimiento no es bisiesto.
Certificación contra el padrón
La sincronización del padrón usa matrícula + DNI exactos para aplicar una vigencia automáticamente. CUIT y correo se usan como guardas contra perfiles duplicados, no como permiso suficiente para actualizar una matrícula.
- Una fila activa y exacta puede corregir la vigencia y avanzar un vencimiento histórico por ciclos quinquenales con confirmación explícita.
- Una baja, cancelación, fallecimiento o suspensión sólo se aplica cuando la fuente oficial lo informa expresamente para la identidad exacta.
- La mora no cambia el estado de matrícula: un profesional moroso puede seguir vigente y conservar su deuda.
- La ausencia en un archivo no implica baja. El registro queda en revisión hasta contar con evidencia oficial.
- El acceso de la cuenta es independiente de la vigencia profesional. La certificación no activa ni desactiva usuarios.
- Coincidencias parciales, cronologías inválidas, matrículas faltantes, semillas de prueba y CUIT/correos ya vinculados se aíslan en una cola de revisión; nunca se completan por inferencia.
El replay debe producir cero cambios. La certificación tampoco genera cuotas, pagos, recibos, operaciones, correos, notificaciones ni mensajes internos.
Antecedentes históricos 2025-2026
Cuando un formulario histórico coincide por matrícula y DNI, se muestra en el perfil administrativo del profesional, en Trámites → Antecedentes Históricos de Trámites. Esta sección permite revisar fecha, tipo de trámite, planilla de origen y cantidad de adjuntos declarados sin crear un ticket ni reescribir el expediente vigente.
En esa misma pestaña se distingue la vigencia formal actual de la
presentación histórica. La fecha de la credencial sólo puede provenir de una
renovación APPROVED o del padrón oficial certificado; un formulario histórico
no equivale a una aprobación. Cuando el archivo ZIP no preserva el ID de Drive
o una huella que permita identificar el PDF, el adjunto se muestra como
pendiente de enlace exacto y no se asocia por nombre, monto o fecha.
Evidencia visual: No aplica. La lista contiene DNI, correo y referencias a documentos privados; no se publican capturas. La comprobación se realiza en SANDBOX con un perfil autorizado y la auditoría de reciprocidad de sólo lectura.
Flujo completo
Colegiado inicia solicitud
↓
Firma Declaración Jurada (obligatorio)
↓
Adjunta documentos (opcional)
↓
Genera boleta de renovación (sin vencimiento)
↓
Transfiere y adjunta comprobante
↓
Envía al Colegio → PENDING_REVIEW
↓
Finanzas acredita el importe exacto y emite recibo
↓
Operador de Matrículas revisa
↙ ↘
APPROVED REQUIRES_CHANGES / REJECTED
↓ ↓
Nueva fecha Colegiado corrige
de vencimiento y reenvía
Vista del Colegiado
Acceso desde Mi Cuenta → Renovación de Matrícula (/my-matricula-renewal).
Verificar elegibilidad
Al ingresar, la pantalla muestra el estado de la matrícula:
| Indicador | Descripción |
|---|---|
| Matrícula vigente | Fecha de vencimiento |
| Días hasta vencimiento | Contador en tiempo real |
| Elegible para renovar | Sí / No |
Cuándo se puede renovar
La solicitud se habilita cuando faltan 90 días o menos para el vencimiento, o cuando la matrícula ya está vencida. Fuera de ese período el botón "Iniciar renovación" no está disponible.
Reglas previas al vencimiento
| Momento | Comportamiento |
|---|---|
| Más de 90 días | La vigencia se muestra, pero todavía no se puede iniciar la renovación |
| De 90 a 31 días | Se habilita la renovación y aparece un recordatorio de prioridad normal en la agenda |
| De 30 a 1 día | El recordatorio pasa a prioridad alta |
| Día del vencimiento | La matrícula continúa vigente durante esa fecha y la agenda indica Vence hoy |
| Día posterior | La credencial pasa a Vencida, el recordatorio es urgente y la renovación sigue habilitada |
Los recordatorios 90/30 son elementos de agenda dentro del sistema. Este flujo no envía por sí solo correos automáticos de vencimiento.
Para una matrícula provisoria se usan los mismos umbrales 90/30/0, pero la acción de agenda es Completar matrícula definitiva y abre la solicitud de matrícula. No se ofrece una renovación quinquenal de una provisoria.
Paso 1 — Declaración Jurada

El colegiado debe:
- Leer el texto vigente de la Declaración Jurada.
- Marcar el checkbox "Leí y acepto la Declaración Jurada".
- Hacer clic en "Firmar y continuar".
El texto de esta Declaración Jurada es compartido con la Solicitud de Matrícula inicial y se administra desde la operación interna del Colegio.
Paso 2 — Documentación

La renovación controla cinco tipos de documentación:
- DNI frente.
- DNI dorso.
- Constancia de CUIT/CUIL.
- Certificado de antecedentes penales.
- Foto digital.
Los archivos digitales admitidos se revisan individualmente. Un archivo pendiente, rechazado, vacío o no recuperable debe validarse o volver a cargarse; no puede ocultarse mediante una nota administrativa.
Renovaciones iniciadas o completadas presencialmente
Si uno o más originales se presentaron en la sede y no existe ningún archivo digital para esos tipos, un operador habilitado puede registrar una constancia de originales presenciales. La constancia identifica al operador, la fecha, los tipos cubiertos y una declaración de al menos 20 caracteres. No crea adjuntos ficticios, no acredita el arancel y no aprueba por sí sola la renovación.
Paso 3 — Boleta, pago y recibo
El botón Generar boleta de pago crea una boleta real para la solicitud. El
importe se toma exclusivamente del arancel activo MATRICULA_RENOVACION. Si
esa configuración no existe, el sistema no supone un monto ni reutiliza el
arancel de reinscripción.
La boleta conserva el importe y la cuenta bancaria informados al emitirla, muestra el concepto Renovación de matrícula y no tiene vencimiento. En este paso todavía no se crean pago, recibo, deuda ni movimientos de cuenta.
Después de transferir, el colegiado adjunta el comprobante e informa fecha y
referencia. Finanzas revisa esa evidencia o el movimiento bancario y confirma
el importe acreditado. Sólo si coincide exactamente con la boleta se registran
en una única operación el pago, los movimientos compensados y el recibo con
concepto RENOVACION. El recibo queda disponible para descarga después de esa
acreditación.
Paso 4 — Confirmación y envío
Muestra un resumen antes de enviar:
| Campo | Valor |
|---|---|
| Número de solicitud | Generado automáticamente |
| Vencimiento anterior | Fecha de la matrícula actual |
| DJ firmada | Sí / No |
| Documentos adjuntos | Listado |
Al hacer clic en "Enviar al Colegio" la solicitud pasa a estado PENDING_REVIEW.
Estados de la solicitud
| Estado | Badge | Descripción |
|---|---|---|
DRAFT |
Gris | Iniciada pero no enviada |
PENDING_REVIEW |
Azul | En revisión por el operador |
REQUIRES_CHANGES |
Ámbar | El operador solicitó correcciones |
APPROVED |
Verde | Renovación aprobada, nueva fecha asignada |
REJECTED |
Rojo | Rechazada con motivo |
CANCELLED |
Gris | Cancelada por el colegiado |
Si el operador solicita correcciones:
El colegiado recibe un email con las observaciones. Al ingresar, la pantalla muestra el mensaje del operador y habilita los campos para corregir y reenviar.
Panel Administrativo
Acceso desde Matrículas → Renovaciones de Matrícula (/admin/matricula-renewal).

Estadísticas
El encabezado muestra:
| Indicador | Descripción |
|---|---|
| Pendientes de revisión | Solicitudes en PENDING_REVIEW |
| Aprobadas este mes | Renovaciones aprobadas en el mes en curso |
| Matrículas vencidas sin renovar | Profesionales con matrícula vencida sin solicitud activa |
Filtros
| Filtro | Opciones |
|---|---|
| Estado | PENDING_REVIEW / REQUIRES_CHANGES / APPROVED / REJECTED |
| Búsqueda | Nombre, número de matrícula, número de solicitud |
Historial en la misma bandeja
La pantalla administrativa de Renovaciones conserva un único listado y permite elegir el origen:
| Origen | Qué muestra | Estado y acciones |
|---|---|---|
| Solicitudes del sistema | Renovaciones creadas y tramitadas dentro de PSICOLE | Conservan su estado operativo. Sólo una solicitud formal APPROVED puede extender la vigencia. |
| Antecedentes históricos | Presentaciones importadas y verificadas por identidad desde los archivos históricos | Se presentan como Histórico verificado, en modo lectura. Muestran fecha, planilla origen, adjuntos físicos verificados y vigencia actual como contexto. |
Los dos orígenes se consultan desde /admin/tramites/renovaciones; no existe
una segunda pantalla ni se mezclan acciones operativas con evidencia. Un
antecedente histórico puede confirmar que hubo presentación, pero no se marca
como APPROVED ni modifica una fecha de vencimiento sin una renovación formal
o padrón oficial certificado.
Acciones del operador
Desde el panel lateral de detalle de cada solicitud:

| Acción | Cuándo | Descripción |
|---|---|---|
| Aprobar | PENDING_REVIEW |
Establece la nueva fecha de vencimiento (+5 años) y notifica al colegiado |
| Solicitar correcciones | PENDING_REVIEW |
Devuelve la solicitud al colegiado con observaciones. El colegiado puede corregir y reenviar |
| Rechazar | PENDING_REVIEW |
Rechaza definitivamente con motivo obligatorio. El colegiado deberá iniciar una nueva solicitud |
| Constatar originales presenciales | DRAFT, REQUIRES_CHANGES o PENDING_REVIEW, cuando falta algún archivo digital |
Registra qué originales se verificaron en sede. Si existen archivos digitales, primero deben aprobarse u observarse individualmente. |
| Agregar nota interna | Cualquier estado | Nota visible solo para operadores, no para el colegiado |
Cómo validar una renovación presencial
- Abrir la renovación desde Matrículas → Renovaciones de Matrícula.
- Revisar cada archivo digital existente y marcarlo como aprobado u observado.
- Si faltan archivos porque los originales se presentaron en sede, elegir Constatar originales presenciales.
- Describir qué originales se comprobaron, dónde y cuándo; agregar una referencia de expediente, libro o ticket cuando exista.
- Confirmar la declaración con el usuario operador.
- Continuar con boleta, acreditación y aprobación. Cada paso vuelve a validar la constancia y los documentos digitales bajo trazabilidad.
La constancia cubre únicamente tipos sin registro digital. Si existe un archivo pero está pendiente, rechazado o ilegible, el sistema mantiene el bloqueo y exige revisarlo o recargarlo.
Aprobación y fecha de vencimiento
Al aprobar, el sistema calcula la nueva fecha de vencimiento como +5 años desde la fecha de vencimiento anterior (no desde la fecha de aprobación). Esto evita que las renovaciones tardías "pierdan" años de vigencia.
Avisos y comunicaciones
- La agenda muestra el vencimiento desde 90 días antes y cambia su prioridad a alta cuando faltan 30 días.
- El badge de agenda cuenta el mismo evento una sola vez.
- Las comunicaciones sobre envío, aprobación, correcciones o rechazo dependen de la configuración general de notificaciones.
- Durante una operación en modo inerte no se envían correos ni avisos externos.
- La ausencia de un correo nunca modifica la vigencia ni el estado del trámite.
Débito Automático
El módulo de Débito Automático permite registrar un método de cobro mensual para las cuotas: CBU / COELSA o tarjeta de crédito. El descuento depende del método activo:
| Método | Descuento certificado |
|---|---|
| CBU / Caja de ahorro | 20% |
| Tarjeta de crédito | 30% |
Las tarjetas de débito pueden existir como dato histórico, pero no se habilitan para nuevas adhesiones.
Adhesion activa y jubilacion
El descuento por metodo de cobro solo se aplica con adhesion ACTIVE. Si el profesional tiene beneficio de jubilacion para la cuota mensual, no se acumula CBU/tarjeta: se aplica jubilacion 50% sobre el importe base y la adhesion de cobro no debe quedar activa como segundo descuento.
Vista del Colegiado
Acceso desde Mi Cuenta → Débito Automático (/my-direct-debit).

Vista en dispositivo móvil:

Adherirse al débito automático
- Ingresar en "Mi Cuenta → Débito Automático".
- Hacer clic en "Solicitar adhesión".
- Completar el formulario:
| Campo | Requerido | Descripción |
|---|---|---|
| CBU | Sí | 22 dígitos. Se valida el dígito verificador automáticamente |
| Titular de la cuenta | Sí | Nombre exacto del titular tal como figura en el banco |
| Banco | Sí | Selección del banco correspondiente al CBU |
- Confirmar los datos y enviar.
- La solicitud queda pendiente de activación por el Colegio.
Activación manual
La adhesión al débito automático no se activa instantáneamente. El Colegio debe procesar la adhesión ante el banco antes de que el débito comience a aplicarse. Este proceso puede tardar hasta 30 días.
Estados de la adhesión
| Estado | Badge | Descripción |
|---|---|---|
| Sin adhesión | — | No tiene CBU registrado |
PENDING |
Amarillo | Solicitud enviada, en proceso de activación |
ACTIVE |
Verde | Método activo; el descuento se aplica según CBU 20% o tarjeta de crédito 30% |
SUSPENDED |
Gris | Adhesion suspendida temporalmente; no aplica descuento ni entra a lote |
CANCELLED |
Rojo | Adhesión cancelada |
Cambiar o cancelar el CBU
Para modificar el CBU: la pantalla permite ingresar uno nuevo. Esto genera una nueva solicitud de adhesión mientras el anterior permanece activo hasta que el nuevo sea procesado.
Para cancelar el débito: hacer clic en "Cancelar débito automático". Al cancelar, el descuento por método de cobro deja de aplicarse en el próximo período.
Panel Administrativo
Acceso principal desde Dinero → Operaciones → Débito Automático (/admin/dinero/operaciones?tool=debito).

Debito automatico en Operaciones de Dinero
La pantalla separa la gestión bancaria por CBU de la gestión de tarjetas:
| Vista | Uso operativo |
|---|---|
| Adhesiones | Revisar profesionales adheridos, método de cobro, estado, descuento y trazabilidad |
| Lotes de Débito | Generar lotes bancarios para CBU / COELSA, descargar archivo y conciliar la devolución |
| CBU / COELSA | Adhesiones bancarias que se envían al banco en archivo COELSA |
| Tarjeta crédito | Adhesiones de tarjeta vinculables a una pasarela de pago |
| Tarjeta débito | Solo revisión histórica; las nuevas adhesiones se rechazan |
Al seleccionar una adhesión, el panel de detalle muestra el profesional, matrícula, método registrado, CBU o tarjeta asociada, estado operativo, descuento aplicado y última vinculación técnica con la pasarela cuando corresponde.
Antecedentes históricos de adhesión
La pestaña Trámites de la ficha profesional también puede mostrar formularios históricos de débito automático y su adjunto privado. Estos antecedentes documentan una presentación y no activan, suspenden ni cancelan la adhesión operativa.
El vínculo físico exige una identidad única. La ruta principal usa matrícula y DNI; si el formulario no contiene DNI, se requieren simultáneamente matrícula y nombre completo en Forms, matrícula y los mismos componentes del nombre en el archivo, un único perfil compatible, carpeta y campo de origen exactos, archivo físico único y hash SHA-256 verificado. Un conflicto deja la pieza en revisión.
El corte SANDBOX del 27/07/2026 conserva 327 antecedentes de débito:
4 con archivo físico exacto y 323 pendientes de enlace exacto. Los cuatro
vínculos exactos pasaron dry-run, aplicación y replay idempotente sin crear
pagos, recibos, tickets, mensajes ni cambios de adhesión.
CBU y archivo COELSA
Para débitos por CBU, el flujo es bancario:
- Revisar adhesiones
CBU / COELSAactivas con cuenta verificada. - Confirmar que las cuotas del periodo ya fueron generadas y estan pendientes o vencidas.
- Crear el lote del período manualmente o revisar el lote creado por la tarea programada.
- Revisar cantidad de transacciones y total del lote antes de descargar.
- Descargar el archivo COELSA desde Lotes de Débito.
- Enviar el archivo al banco por el canal operativo acordado.
- Cargar la devolución del banco.
- Conciliar aprobados y rechazados.
Los lotes COELSA no incluyen tarjetas.
Control de importe del lote
El lote CBU debe cuadrar contra las cuotas finales del periodo. Antes de enviarlo al banco, comparar el total del lote con la suma de Debt.finalAmount de las deudas incluidas. Las deudas de jubilados no deben incluir doble descuento CBU+jubilacion. Si no coincide, no enviar el archivo y revisar el caso en Dinero.
Importe incluido en el lote
La generación manual y la tarea programada usan la misma regla:
| Dato | Uso |
|---|---|
Debt.amount |
Importe original de la cuota antes de descuentos. Se guarda como referencia. |
Debt.finalAmount |
Importe final que se envía al banco como debitAmount. |
amount - finalAmount |
Descuento total ya aplicado en la deuda. Puede incluir debito o jubilacion, pero no ambos a la vez sobre la cuota mensual. |
El lote no recalcula descuentos sobre el importe original. Toma el saldo final de la deuda ya generada para evitar que un beneficio acumulado quede duplicado o perdido.
Ejemplo operativo:
| Concepto | Importe |
|---|---|
| Cuota original | $1.000 |
| Descuento CBU 20% | -$200 |
| Importe final en deuda y lote CBU | $800 |
Si el colegiado es jubilado, el ejemplo cambia: cuota original $1.000, jubilacion 50%, importe final $500. Ese caso no entra como doble descuento CBU+jubilacion.
Tarjetas y pasarela de pago
Las tarjetas de crédito no se mezclan con el lote bancario CBU. La adhesión del profesional conserva el método de cobro elegido, y la vinculación técnica con la pasarela queda separada para poder cambiar de proveedor sin rehacer la adhesión.
Hoy la pasarela puede ser NAVE, pero el diseño permite registrar otra pasarela manteniendo la adhesión del profesional y su trazabilidad.
Datos de tarjeta sin vencimiento informado
Al registrar una tarjeta de crédito, el operador debe identificar al titular con
nombre y DNI válidos. La carga acepta el número completo de 13 a 19 dígitos;
los últimos cuatro dígitos se conservan sólo para registros históricos ya
existentes y no reemplazan la validación de una adhesión nueva.
La fecha de vencimiento es opcional. Cuando la fuente no la informa, el backend
persiste el valor técnico 01/2099 para mantener compatibilidad con el modelo y
la interfaz lo presenta como Sin vencimiento informado. Ese valor no es una
fecha real, no amplía la vigencia de la tarjeta y no autoriza por sí solo un
cobro. Un monto a cobrar debe ser mayor que cero y cumplir las guardas
económicas del flujo de Dinero.
Evidencia visual: No aplica. No se publica una captura del formulario porque puede contener datos de tarjeta y de identidad. El contrato se verifica con validación de esquema, guardas de servidor y pruebas automatizadas.
Cambios administrativos de metodo de cobro
Los perfiles autorizados de Dinero o Administración pueden corregir el método de cobro desde la ficha profesional cuando corresponde. El cambio no queda moderado por el usuario final, pero debe quedar:
- visible para el profesional en su perfil;
- registrado en historial y auditoría;
- asociado al operador que lo realizó;
- notificado cuando corresponda.
¿Qué puede hacer el operador?
| Acción | Descripción |
|---|---|
| Ver todas las adhesiones | Lista con CBU, banco, titular, estado y fecha de solicitud |
| Activar | Marcar una adhesión como ACTIVE (tras confirmar con el banco) |
| Desactivar temporalmente | Pasar a SUSPENDED sin cancelar (ej.: problemas bancarios o incompatibilidad con jubilacion) |
| Cancelar | Dar de baja la adhesión con motivo registrado |
| Exportar | Descargar lista de CBUs activos para envío al banco |
Filtros disponibles
- Por estado (PENDING / ACTIVE / SUSPENDED / CANCELLED)
- Búsqueda por nombre, DNI, matrícula o CBU
Flujo de activación
- Colegiado solicita adhesión → estado
PENDING. - Operador descarga el archivo de adhesiones pendientes para el banco.
- Banco procesa el archivo.
- Operador recibe confirmación del banco.
- Operador activa las adhesiones en PSICOLE → estado
ACTIVE. - En el próximo ciclo de facturación, las cuotas se generan con el descuento correspondiente al método: CBU 20% o tarjeta de crédito 30%.
Descuento por método de cobro automático
El descuento se aplica automáticamente al generar las cuotas de cada mes para todos los colegiados con método de cobro en estado ACTIVE, siempre que el tipo de cuota mensual permita ese descuento.
| Método activo | Regla aplicada en el RUN |
|---|---|
BANK_DEBIT |
20% por CBU / Caja de ahorro |
CREDIT_CARD |
30% por tarjeta de crédito |
Cambio de estado y cuotas ya emitidas
Si un colegiado cancela el débito después de que se generaron las cuotas del mes, las cuotas ya emitidas mantienen el descuento aplicado. El ajuste aplica al siguiente período.
El porcentaje del descuento forma parte de la configuracion del concepto mensual y de la adhesion operativa. Para cambios masivos, validar el impacto en la previsualizacion de cuotas antes de ejecutar el RUN mensual.
Rechazos bancarios
Cuando el banco rechaza un debito, PSICOLE conserva la trazabilidad del intento y la cuota queda pendiente para gestion administrativa. En ese caso se revierte solo el descuento de debito directo. Los beneficios ajenos al CBU, como jubilacion, beneficio parental o ajustes aprobados, se mantienen.
Siguiendo el ejemplo anterior, si el banco rechaza un debito de $800 con CBU 20%, la cuota vuelve a $1.000 salvo que exista otro beneficio no CBU aprobado. Si el colegiado es jubilado, no debio entrar al lote con doble descuento; debe conservar solo la cuota final de jubilacion.
Si el profesional transfiere luego el importe base completo, el operador puede resolverlo desde Dinero -> Operaciones -> Conciliacion con Aplicar cuota completa, siempre que la transferencia y el rechazo correspondan al mismo profesional y período. Esta acción revierte sólo el descuento por método de cobro de esa cuota, vincula la transferencia y la respuesta rechazada a una única operación y no cambia la adhesión maestra. Una transferencia aislada nunca reactiva, suspende ni migra el método de cobro de períodos futuros.
El operador debe revisar:
- motivo informado por el banco;
- estado de la adhesion y cantidad de rechazos consecutivos;
- importe que queda pendiente luego del rechazo;
- si corresponde mantener, revertir o ajustar beneficios distintos del debito;
- si el rechazo debe suspender la adhesion por acumulacion de rechazos consecutivos.
Los rechazos pueden suspender automaticamente la adhesion si superan el umbral configurado.
Preguntas frecuentes
¿Cuándo se hace efectivo el débito? La fecha de débito coincide con la fecha de vencimiento de la cuota, configurada en el tipo de cuota correspondiente.
¿Qué pasa si el débito falla (fondos insuficientes)? El sistema registra el intento fallido. La cuota queda como pendiente y el operador puede gestionarla manualmente. No se aplican recargos por mora automáticos en el primer intento fallido.
¿El descuento aplica a todas las cuotas? Solo a las cuotas de tipo "regular" (cuota mensual). Los aranceles por trámites, cursos u otras cuotas extraordinarias no tienen descuento por débito.


Módulo DINERO
DINERO concentra el ciclo económico completo de PSICOLE: cuotas, pagos online, caja, conciliación bancaria, transferencias, planes de pago, débitos automáticos, liquidaciones, reintegros y auditoría. La regla operativa es simple: todo movimiento económico relevante debe poder abrirse como una operación única trazable.
Acceso
Menú admin: Dinero → Operaciones
Ruta principal: /admin/dinero/operaciones
Roles: ADMIN, operadores con módulo financiero habilitado.
Las rutas históricas de cobranza, caja, conciliación, transferencias, planes y débito redirigen a esta vista para evitar pantallas duplicadas.

Vista auditada desktop y mobile
La vista vigente de Dinero → Operaciones fue auditada en escritorio y celular. Los submódulos mantienen navegación horizontal controlada en móvil, las alertas operativas quedan dentro del viewport y las acciones principales se apilan sin superponerse.


Submódulos
| Submódulo | Uso operativo | Resultado esperado |
|---|---|---|
| Dashboard | Resumen de ingresos, pendientes y alertas | Diagnóstico rápido del estado financiero |
| Operaciones | Ficha única para pagos, recibos, caja, conciliación, OOSS y reversas | Trazabilidad por PAY-YYYY-NNNNNN |
| Cuotas | Deudas de matrícula, cursos, trámites y recargos | Cargos pendientes o pagados |
| Caja | Apertura, movimientos y cierre diario | Arqueo con responsable y sesión |
| Conciliación | Extractos bancarios, depósitos y matching | Ingresos conciliados sin duplicar |
| Transferencias | Depósitos manuales o transferencias directas | Asignación a deuda, curso, trámite o saldo |
| Planes de pago | Acuerdos de deuda en cuotas | Cuotas planificadas y pagos imputados |
| Débito automático | Adhesiones CBU, lotes y rechazos | Cobro periódico controlado |
| Pasarelas | NAVE como checkout online activo; PAYWAY solo como POS físico legacy; otros proveedores solo si se habilitan operativamente | Cobros externos con idempotencia |
| Reintegros y reversas | Devoluciones, anulaciones y pagos por error | Movimiento compensatorio auditado |
Facturar cuotas, servicios AFIP y cola fiscal
La facturación fiscal post-pago se gestiona desde el circuito activo de Dinero. Las pantallas legacy de facturación fueron retiradas o redirigidas hacia Dinero → Configuración y Gobernanza del dinero para evitar duplicar operaciones.
Este apartado cubre EPIC-02UC-2.4 Facturar Cuotas (AFIP) y EPIC-08UC-8.4 Servicios AFIP: generación de comprobantes fiscales posterior al cobro, cola de reintentos, procesamiento manual controlado y alertas cuando AFIP no está disponible o no está configurado.
El flujo vigente separa dos conceptos:
| Concepto | Qué representa |
|---|---|
| Recibo PSICOLE | Comprobante interno del cobro, vinculado a PAY y deuda |
| Job AFIP | Tarea de cola que intenta autorizar el comprobante fiscal cuando AFIP está configurado |
Flujo operativo AFIP
- Un pago queda aprobado y se materializa operación, pago y recibo.
- PSICOLE encola un trabajo
AfipInvoiceJobasociado al recibo o pago correspondiente. - La tarea programada o el botón Procesar AFIP toma trabajos
QUEUED. - Si AFIP está configurado y disponible, el trabajo intenta obtener autorización fiscal.
- Si falta configuración o AFIP no responde, el trabajo queda en reintento o
FAILEDcon error visible. - El operador revisa la alerta y decide reintentar, corregir configuración o gestionar el comprobante por fuera según el procedimiento institucional.
Estados de la cola
| Estado | Uso |
|---|---|
QUEUED |
Pendiente de procesar |
IN_PROGRESS |
En procesamiento |
DONE |
Autorizado y finalizado |
FAILED |
Alcanzó el máximo de intentos o requiere intervención |
AFIP no debe simular un CAE real
Si el entorno no tiene WSAA/WSFE configurado o la integración real está pendiente, PSICOLE no debe emitir CAE ficticio como comprobante fiscal válido. El job deja trazabilidad y alerta, pero el comprobante fiscal existe recién cuando AFIP autoriza.
Evidencia visual
La operación diaria se controla desde Gobernanza del dinero, donde aparecen la tarjeta Cola AFIP, el botón Procesar AFIP y las alertas activas.

Flujo mensual de cuotas, lote y conciliacion
El ciclo mensual de dinero se controla en cuatro momentos: valor vigente, generacion de deuda, cobro o debito, y corroboracion bancaria. El objetivo es que el importe aprobado por el Colegio llegue a una deuda concreta, a una operacion de dinero y finalmente a un movimiento bancario conciliado.
- Definir el valor vigente. El administrador valida que
CUOTA_MENSUALeste activo y que el periodo exista en el Tarifario Mensual de Cuotas. El importe base, los finales por medio de cobro y los beneficios salen deMONTHLY_FEE_TARIFF_POLICY. - Previsualizar la generacion. En Dinero -> Operaciones -> Cuotas, el operador selecciona tipo de cuota y periodo. La previsualizacion permite revisar cantidad de profesionales, cuotas a generar y monto total antes del RUN.
- Ejecutar el RUN mensual. La generacion crea una deuda por profesional, periodo y tipo. Esa deuda queda con
amount,discountyfinalAmount; tambien se registra el cargo en cuenta corriente. Esta accion no representa dinero cobrado todavia. - Cobrar o preparar lote. Los pagos manuales, online, transferencias y debito automatico aplican contra las deudas abiertas. En CBU / COELSA, tanto la generacion manual como la tarea programada toman
Debt.finalAmountcomo importe a debitar. Las tarjetas no entran al archivo COELSA. - Corroborar con extracto. Al cargar la extraccion bancaria, la conciliacion confirma que el dinero efectivamente ingresado o debitado coincide con una operacion PSICOLE.
AUTO_APPLY_STRICTrequiere importe exacto a centavos o un ajuste mensual previamente aprobado; una tolerancia amplia sólo ordena candidatos. Si hay excedente, faltante, pago parcial o descuento no configurado, el movimiento queda para revisión humana y no se marca la deuda como pagada por el total bancario.
Cómo leer la bandeja de cuotas
La píldora y el bloque Backlog operativo suman todas las cuotas mensuales reales abiertas, no sólo el mes seleccionado ni la página visible. El detalle por período explica ese total y el enlace abre la bandeja ya filtrada por pendientes.
La bandeja incorpora el selector Período económico. Elegir un mes limita filas y tarjetas de resumen a las obligaciones emitidas para ese período, aunque su vencimiento o pago hayan ocurrido en otra fecha. Todos los períodos conserva la lectura global. Los meses disponibles se obtienen del libro real y muestran la cantidad de obligaciones de cada uno.
En la bandeja:
- Pendientes abiertas incluye toda obligación impaga, esté o no vencida.
- Pendientes vencidas es un subconjunto de las pendientes abiertas cuya fecha de vencimiento ya pasó, o que conserva un estado histórico
OVERDUE. - Pendientes sin vencer es el resto de las pendientes abiertas.
- Pagadas y En plan son estados separados; una cuota cancelada no aporta saldo.
- Los totales se calculan sobre todo el resultado filtrado y no sobre los primeros
75registros visibles. - Las deudas marcadas como test quedan fuera del libro operativo.
- El importe emitido puede ser mayor que el saldo abierto cuando una obligación recibió un pago parcial. La diferencia debe estar respaldada por una imputación trazable; no implica una deuda duplicada.
Las cantidades del libro cambian con cada generación, pago, plan, bonificación o corrección trazable. La pantalla calcula el corte vigente y no usa totales estáticos. Para certificarlo contra Reportes, Profesionales y Prestadores se utiliza el certificado de verdad financiera, que debe devolver el mismo hash en dos lecturas y cero efectos laterales.
Una deuda conserva su estado histórico, pero la bandeja presenta una posición económica derivada común a todo DINERO: pendiente sin vencer, pendiente vencida, en plan, pagada, bonificada, cancelada o revisión de datos. Las filas con saldo cero inexplicable quedan en revisión y nunca se ofrecen a cobro, matching, débito o plan.
Valores versionados mayo-agosto 2026
| Periodo | Cuota general | CBU / Caja de ahorro | Tarjeta de credito | Jubilado |
|---|---|---|---|---|
| Mayo 2026 | $15.615,00 | $12.492,00 | $10.930,50 | $7.807,50 |
| Junio 2026 | $16.021,00 | $12.817,00 | $11.215,00 | $8.010,50 |
| Julio 2026 | $16.357,44 | $13.085,95 | $11.450,21 | $8.178,72 |
| Agosto 2026 | $16.670,00 | $13.336,00 | $11.669,00 | $8.335,00 |
Reglas certificadas:
- CBU / Caja de ahorro: 20% de descuento.
- Tarjeta de credito: 30% de descuento.
- Jubilados: 50% de descuento.
- Jubilacion excluye CBU/tarjeta: no se permite doble descuento sobre la cuota mensual.
- Cuando el período define un importe final oficial, generación y conciliación lo conservan sin volver a inferirlo a partir del porcentaje.
- El valor junio 2026 se carga como importe oficial fijo de $16.021. No debe inferirse como incremento de 2,1% sobre mayo, porque ese porcentaje no produce ese monto.
- Los valores finales de julio para CBU y tarjeta son importes oficiales. No se recalculan ni se redondean nuevamente durante la generación o la conciliación.
- Agosto se calcula con su propia entrada de tarifario. La entrada canónica de julio permanece intacta y no se reutiliza como valor de agosto.
Cuando un RUN autorizado revaloriza cuotas mensuales abiertas al tarifario
vigente, actualiza la misma deuda y registra el ajuste; no crea otra cuota. Una
deuda con pago, débito aprobado, saldo aplicado, asignación pagada de plan u
operación PAY aprobada/conciliada queda protegida. La cuota del mes
inmediatamente anterior se difiere mientras su conciliación conserve bloqueos o
saldo sin resolver. Ver Revalorización segura de cuotas abiertas.
Control especifico de lote CBU
El lote de debito por CBU no es una nueva liquidacion de descuentos. Es una foto operativa de deudas ya generadas.
| Momento | Dato que debe cuadrar |
|---|---|
| RUN mensual | Debt.amount, Debt.discount y Debt.finalAmount por profesional, periodo y tipo. |
| Generacion de lote CBU | DirectDebitTransaction.debitAmount igual a Debt.finalAmount. |
| Archivo COELSA | Total de archivo igual a suma de debitAmount del lote. |
| Devolucion bancaria aprobada | Pago/recibo/cuenta corriente por el importe debitado. |
| Devolucion bancaria rechazada | Deuda pendiente con descuento CBU revertido, conservando beneficios no CBU compatibles. |
Si un profesional tiene una cuota original de $1.000 y CBU activo, el RUN deja una deuda final de $800 y ese es el importe del lote. Si el banco rechaza el debito, la deuda vuelve a $1.000 salvo que exista otro beneficio no CBU compatible. Si el profesional es jubilado, el RUN deja $500 por jubilacion y no aplica CBU/tarjeta sobre esa misma cuota.
Cuando una tarjeta o CBU fue rechazado y el profesional paga después por transferencia el importe base completo, la conciliación puede usar Aplicar cuota completa. La acción exige identidad, período, rechazo e importe exactos; modifica sólo esa deuda y conserva sin cambios la adhesión maestra y las cuotas futuras. No genera saldo a favor ni comunicaciones.
RUN mensual auditable de conciliacion
El cierre mensual de cuotas debe registrarse como un RUN auditable antes de aplicar conciliaciones masivas. El RUN no reemplaza las sesiones de conciliacion bancaria: las agrupa por periodo y deja constancia de fuentes, decisiones, metricas y pendientes.
Desde la aplicacion se opera en Dinero -> Operaciones -> Conciliacion -> RUN mensual. El panel permite crear un RUN PREVIEW, seleccionar el periodo, registrar extractos ya procesados como fuentes, simular decisiones y recalcular metricas. Es un panel de auditoria y control: no aplica pagos por si mismo, no modifica deudas y no envia comunicaciones.
El RUN mensual guarda:
| Registro | Funcion |
|---|---|
MonthlyReconciliationRun |
Periodo, marcador, estado, modo, metricas y responsable. |
MonthlyReconciliationSource |
Fuentes usadas: CBU, tarjeta, extracto general, caja, recibos, padron, prestadores o evidencia auxiliar. |
MonthlyReconciliationDecision |
Clasificacion por evento: auto aplicable, ya cerrado, revision manual, bloqueado o excluido. |
Estados operativos:
DRAFT: RUN creado, todavia sin decisiones completas.PREVIEWED: fuentes y decisiones previsualizadas, sin aplicar pagos.APPLIED: reglas estrictas aplicadas con idempotencia.CLOSED: cierre administrativo del mes.CANCELLED: RUN descartado sin usar como fuente de cierre.
Reglas de seguridad:
- Todo archivo debe tener tipo, rol, periodo, cantidad, monto y hash cuando exista.
- Las fuentes primarias son las que representan eventos individuales de dinero cobrado o rechazado, por ejemplo CBU y tarjeta. Extractos generales, recibos, padrones y listados de prestadores sirven como evidencia auxiliar o contraste, no como dinero nuevo por si solos.
- Un re-run debe reutilizar
eventKey,markereidempotencyKeypara no duplicar operaciones. - En SANDBOX el RUN puede previsualizar y clasificar sin enviar correos ni notificaciones.
- La accion Simular PREVIEW escribe solo
MonthlyReconciliationDecision:AUTO_APPLY_STRICT,ALREADY_CLOSED,MANUAL_REVIEW,BLOCKEDoEXCLUDED. No creaPaymentOperation, no emite recibos y no cambiaDebt.status. - Una reserva persistente impide dos simulaciones simultaneas del mismo RUN. El reemplazo de decisiones, metricas y manifiesto es atomico: ante error, el universo anterior permanece completo.
- El manifiesto conserva hashes SHA-256 de fuentes, eventos y decisiones. Dos PREVIEW sobre el mismo universo deben reproducir las tres huellas y mantener inalterados deudas, pagos, recibos, operaciones, saldos, mensajes, correos y tickets.
- Las
PaymentOperationaprobadas por re-runs anteriores pueden cerrar un evento comoALREADY_CLOSEDsi existe evidencia unica por periodo, archivo, referencia y monto. Si hay ambiguedad, el evento quedaBLOCKED. - En la pantalla,
Eventos tratadosincluye tambien losEXCLUDED. La tasa de exito se calcula sobre eventos elegibles, es decir, tratados menos excluidos.Pendiente auditablecorresponde a revision manual + bloqueados, no a todos los tratados. - Los ajustes por aumento mensual salen de Dinero -> Configuracion -> Ajustes conciliacion (
MONTHLY_FEE_RECONCILIATION_ADJUSTMENTS), no de codigo hardcodeado. - Cuando se registra un extracto general como Galicia, el PREVIEW lo clasifica antes de matchear: cuota mensual, ajuste de periodo anterior, tramite/arancel, curso, liquidacion institucional, transferencia a clasificar o movimiento no acreditado. Solo la ruta de cuota mensual puede seguir al motor estricto de deudas; liquidaciones institucionales y egresos quedan excluidos del denominador de cuota, y tramites/cursos pasan a revision manual del concepto correspondiente.
SPTS total sandbox mayo/junio 2026
El Siguiente Paso Tecnico Sugerido para preproduccion es correr un RUN total controlado, no una aplicacion masiva. En SANDBOX se ejecuta con backend/scripts/sandbox/total-run-may-june-2026.mjs y usa como manifiesto todos los archivos de transferencias062026 mas los extractos bancarios ya procesados en la base.
El script crea o reutiliza un RUN por periodo con marker idempotente TOTAL_SANDBOX_YYYYMM_20260701. Registra todas las fuentes en MonthlyReconciliationSource y simula decisiones de conciliacion para CBU, tarjeta, transferencias y extractos procesables. Las fuentes de prestadores, padron, recibos, caja, beneficios, planes y cursos quedan como AUXILIARY o REFERENCE; no se convierten en dinero nuevo.
Salidas esperadas del SPTS:
| Archivo | Uso |
|---|---|
source-manifest.csv/json |
Lista completa de insumos, hash, dominio, rol y periodo detectado. |
money-run-summary.json |
Metricas del RUN mensual por periodo, fuentes registradas y gates. |
provider-crossmatch.csv/json |
Cruce de ordenes, lotes, pagos de obras sociales y liquidaciones de prestadores. |
professional-traceability.csv |
Vista por profesional: ordenes, obra social, liquidaciones, facturas pendientes y pagos vinculados. |
PREPROD_READINESS_REPORT.md |
Resumen ejecutivo de preproduccion y bloqueos antes de promover. |
Reglas de seguridad del SPTS:
--applyen este script significa aplicar fuentes y decisiones auditables al RUN mensual. No creaPaymentOperation, no emite recibos y no marca liquidaciones de prestadores como pagadas.- Los archivos
transferencias-banco-*,Liquidacion*,Facturacion*, recibos, arqueos y padrones no entran como fuente primaria de cuotas. Sirven para contraste y trazabilidad. - Si junio no tiene extracto general Galicia procesado, el gate
JUNE_GENERAL_BANK_STATEMENT_MISSINGqueda abierto. - Si hay liquidaciones de prestadores sin factura, el SPTS las deja visibles como pendiente operativo en el perfil del prestador. Si alguna liquidación no tiene operación
PAYtrazable, el gate de preproducción queda abierto aunque el RUN de cuotas mejore. - Las filas virtuales aprobadas se materializan solamente desde Dinero -> Operaciones, con aprobacion explicita e idempotencia por origen. Luego se vincula el extracto desde la ficha
PAY.
Beneficios, planes y conceptos externos
Los descuentos que modifican el importe de una cuota mensual deben quedar como regla persistente del profesional, no como correccion suelta del RUN. PSICOLE conserva dos niveles de evidencia:
| Registro | Uso |
|---|---|
ProfessionalBenefitRule |
Regla vigente o historica del profesional: jubilacion, maternidad/paternidad, primera matricula, debito o descuento manual autorizado. |
DebtBenefitApplication |
Snapshot del descuento aplicado a una deuda concreta durante la generacion o revaluacion de cuotas. |
PaymentPlan / PaymentPlanInstallment |
Plan de pago vigente, cancelado o completado, con cuotas pagadas y pendientes. |
ExternalConceptIncome |
Ingreso esperado que no pertenece necesariamente al padron local, por ejemplo cuota mensual del Curso de Salud Colectiva. |
Reglas operativas vigentes:
- Jubilacion: 50% sobre cuota mensual cuando la regla esta activa. No se acumula con descuento de CBU o tarjeta sobre la misma cuota.
- Maternidad/paternidad: se aplica segun periodo cubierto por la regla aprobada.
- Primera matricula: si la emision fue del dia 1 al 15, se bonifica el mes de emision y el mes siguiente; si fue del dia 16 al fin de mes, se bonifica el mes de emision y los dos meses siguientes.
- Planes de pago: la fila del plan debe quedar asociada al profesional cuando el match por nombre es suficiente. Las cuotas canceladas desde planilla se mantienen como
PAIDcon referencia de planilla hasta que exista una operacion de dinero asociada. - Curso Salud Colectiva: se registra como concepto externo por periodo e importe. Puede no tener profesional local, porque es un curso nacional.
- Materializacion controlada: desde Dinero -> Operaciones una fila virtual aprobada puede convertirse en operacion
PAY, recibo, pago y asiento de cuenta corriente solo con aprobacion explicita del operador. La accion usa clave idempotente por origen para no duplicar y deja auditoria. Los conceptos externos enREVIEWno se materializan; si no tienen profesional local, el mismo flujo permite buscar y vincular un profesional existente antes de emitir recibo. - Conciliacion posterior: cuando una fila virtual ya fue materializada, el siguiente paso no crea otro pago. Desde la ficha
PAYen Dinero -> Operaciones, la accion Vincular extracto enlaza un movimiento bancario pendiente con esa operacion, valida importe y signo, marca el movimiento como conciliado manualmente, agrega documento de extracto, match de conciliacion y auditoria. La accion exige nota de aprobacion y clave idempotente por operacion + movimiento.
En Dinero -> Operaciones, el filtro Destino operativo permite aislar:
| Filtro | Resultado |
|---|---|
| Planes de pago | Operaciones o pendientes vinculados a cuotas de plan. |
| Planilla pagada sin operacion | Cuotas informadas como canceladas en planilla pero todavia sin PaymentOperation; son filas de control, no pagos aplicados. |
| Conceptos externos | Cursos nacionales u otros ingresos esperados fuera de cuota mensual. |
| Conceptos externos esperados | Conceptos cargados por fuente externa que pueden matchear en un re-run si nombre, periodo e importe son suficientes. |
| Conceptos externos en revision | Conceptos externos con importe, identidad o periodo dudoso; quedan fuera del re-run automatico hasta revision humana. |
| Descuentos por beneficio | Deudas con snapshot de regla aplicada. |
| Curso Salud Colectiva | Cobros de curso identificados como curso externo o cuota de curso. |
En un re-run sandbox de mayo/junio, el modo preview puede clasificar un movimiento abierto como AUTO_APPLY_PAYMENT_PLAN_INSTALLMENT_PREVIEW o AUTO_APPLY_EXTERNAL_CONCEPT_PREVIEW cuando hay monto, periodo y nombre suficientes. Los conceptos en estado REVIEW quedan excluidos del denominador automatico para no importar ruido. Esa clasificacion mide mejora de trazabilidad; no crea pagos, no emite recibos y no modifica deudas hasta que un operador materialice una fila virtual aprobada.
Certificacion de planes y conceptos del 18/07/2026
La fuente canónica de planes continúa siendo PAGO COLEGIACIÓN (2026) - hoja PLANES.xlsx. Dos archivos nuevos cuyo nombre comenzaba con PLANES DE PAGO fueron inspeccionados por columnas, filas y contenido antes de importar: eran respuestas duplicadas del Curso de Salud Colectiva. Por eso se clasificaron como EXTERNAL_COURSE y no se crearon planes ni cuotas de plan a partir de ellos.
El cierre dejó 90 planes reales y 215 cuotas en SANDBOX, y 91 planes reales y 218 cuotas en PSICOLE. La diferencia corresponde a un plan real creado y operado en PSICOLE; no debe sobrescribirse para forzar igualdad con SANDBOX. La reparación de estados se ejecutó en modo lectura: SANDBOX no encontró cambios y PSICOLE detectó tres filas ya correctas, sin actualizar estados ni crear pagos.
El plan real adicional de PSICOLE es PP-2026-000007, matrícula 5695: está ACTIVE, tiene tres cuotas, dos pagadas y el próximo vencimiento en octubre de 2026. No es una mora ni un error de importación. Los dos planes adicionales que podía mostrar el total anterior de la pantalla pertenecen a una cuenta de prueba en cuarentena, están cancelados y no forman parte de los 91 planes reales.
Control operativo de planes de pago
La vista existente Dinero -> Operaciones -> Planes separa el estado administrativo del plan del estado operativo de sus cuotas:
- Planes reales excluye por defecto cuentas de prueba o maquetas en cuarentena.
- Profesionales con plan cuenta personas únicas. Puede ser menor que Planes reales porque un profesional puede tener más de un acuerdo histórico o vigente.
- Acuerdos adicionales es la diferencia entre planes reales y profesionales únicos; sirve para localizar historiales repetidos sin asumir automáticamente que sean duplicados.
- Con atraso cuenta sólo planes
APPROVEDoACTIVEcon cuotas abiertas cuya fecha de vencimiento ya pasó. - Por vencer muestra planes operativos sin mora que vencen dentro de los próximos diez días.
- Cuotas abiertas suma cuotas pendientes o vencidas únicamente de planes operativos.
- Incluir cuarentena permite auditar los registros de prueba sin mezclarlos con el total real.
El atraso se calcula al consultar la pantalla. La lectura no cambia PaymentPlan.status, no reescribe PaymentPlanInstallment.status, no cancela planes y no envía mensajes. Esto permite detectar demora aunque el scheduler esté inerte durante una prueba de preproducción.
Para revisar la cartera completa:
- Abrir
https://psicole.colegiopsimza.org.ar/admin/dinero/operaciones?tool=planes. - Dejar Estado y Tipo en todos para ver los planes reales completos.
- Elegir Estado de cuotas -> Con atraso para aislar planes activos demorados.
- Abrir un plan para contrastar cuotas pagadas, abiertas, importe y vencimiento más antiguo.
- Exportar el listado filtrado cuando Tesorería necesite seguimiento. La exportación incluye cuotas pagadas, pendientes, vencidas y próximo vencimiento.
- Activar Incluir cuarentena sólo para auditoría; esos registros no deben usarse para cobranza ni para comparar el informe real.
En Dinero -> Operaciones, las píldoras superiores muestran el backlog de cada sección, no el total histórico. Para Planes, el backlog es la suma de planes reales pendientes de revisión y planes activos con cuotas vencidas. Las cuotas abiertas y las cuotas pagadas por planilla sin operación se muestran como controles separados y no inflan el número de planes.
Pago idempotente de una cuota del plan
Desde el detalle de un plan ACTIVE, el operador puede registrar
el pago de una cuota pendiente. La acción usa una clave de idempotencia y reclama
la cuota dentro de la misma transacción antes de crear operación, recibo y pago.
- Si dos intentos compiten, sólo uno puede reclamar la cuota.
- Un reintento recupera el resultado existente únicamente cuando operación, recibo y pago están completos; no genera una segunda imputación.
- Si la cuota figura pagada pero faltan artefactos financieros, el sistema falla cerrado y exige revisión. No completa el pago por aproximación.
- El método y la referencia de pago quedan en la operación trazable.
Descuento especial sobre saldo pendiente
El botón Solicitar descuento crea una solicitud PENDING; no modifica el
plan ni registra un cobro. El monto base se lee del plan o deuda persistidos y,
en un plan parcialmente pagado, se calcula sobre importe final − total pagado.
El valor enviado por el navegador no puede ampliar esa base.
El descuento debe ser positivo, no superar el saldo, incluir motivo y período y
respetar los topes configurados. La aprobación requiere otro operador: quien lo
solicita no puede autoaprobarlo. Sólo planes ACTIVE/APPROVED y deudas
PENDING/OVERDUE admiten una solicitud nueva.
Más de 12 cuotas vencidas: descuento por pago único
Cuando un profesional tiene más de 12 cuotas mensuales vencidas, cualquier
operador habilitado para cobranza puede enviar a Tesorería una solicitud por el
conjunto completo de MONTHLY_FEE vencidas. Multas, cursos y otros conceptos no
cuentan ni integran el grupo. El sistema toma identificadores, saldos y
descuentos del servidor; no acepta una base informada por el navegador ni
permite omitir una vencida para alterar el total.
- En Cobro de Cuotas, buscar al profesional y elegir Solicitar descuento por pago único.
- Informar monto y fundamento. La solicitud queda
PENDINGy todavía no cambia deuda, cuenta corriente ni recibos. - Otra persona con autoridad
FINANCE_WRITErevisa y aprueba o rechaza. El solicitante no puede autoaprobar. - Una vez
APPROVED, seleccionar el grupo autorizado y registrarlo mediante el cobro existente. Deben pagarse todas las cuotas del snapshot por el importe total exacto en una única operación; un subconjunto, pago parcial, aplicación de saldo a favor, monto distinto o cuota modificada falla cerrado. El medioCASHpermanece bloqueado para este flujo hasta integrar su reversa atómica con Caja.
La aprobación es reversible mientras no se consumió. Al cobrar, el descuento se
distribuye en centavos, queda vinculado a solicitud, operación, recibo, cuotas y
ajuste de cuenta corriente, y la solicitud pasa a CONSUMED. Un replay conserva
el mismo resultado; no duplica descuento ni cobro. Si se anula un recibo
reversible, se restauran los importes del snapshot y la solicitud queda
REVERSED.
Evidencia visual pendiente
El pago de cuota y la solicitud de descuento comparten el detalle operativo de Planes. No se incorporan capturas nuevas en este cierre para no publicar identidades, saldos ni acuerdos reales.
Planes en la ficha del profesional
La ficha existente de Matrículas -> Profesionales incorpora la pestaña Planes. No crea otra cartera ni duplica el panel de Dinero: presenta, para la persona seleccionada, el mismo acuerdo y las mismas cuotas que administra Tesorería.
- Buscar al profesional por nombre, DNI o matrícula y abrir su ficha.
- Entrar en Planes para consultar acuerdos activos e históricos.
- Revisar Planes activos, Con atraso, avance pagado/total y cantidad de históricos.
- En cada acuerdo, contrastar estado administrativo, salud operativa, importe acordado, total pagado, próximo vencimiento y detalle de cuotas.
- Volver a Cuenta Corriente para contrastar las obligaciones ordinarias, recibos y operaciones
PAYvinculadas.
Los estados APPROVED y ACTIVE son operativos. Sólo ellos pueden informar cuotas abiertas, próximas a vencer o atrasadas. Los planes COMPLETED, CANCELLED o DEFAULTED permanecen visibles como historial, pero no generan nuevas cuotas operativas. La consulta calcula la mora con la fecha vigente; no reescribe el plan, no cambia cuotas y no envía comunicaciones.
Las obligaciones mensuales se muestran con una descripción canónica: Cuota Mensual - Mes Año. La normalización es de lectura para deudas históricas y de generación para cuotas nuevas; no cambia importes, pagos, recibos ni claves de trazabilidad existentes.
Los tableros operativos separan trabajo actual de historia migrada:
- Cuotas realmente vencidas cuenta sólo cuotas canónicas de profesionales activos, con saldo positivo y vencimiento cumplido. Las cuotas del mes vigente sin vencer y los registros históricos importados no inflan ese indicador.
- Tarjetas cuenta únicamente instrumentos reales pendientes de revisión. Las filas legadas sin profesional permanecen disponibles como inventario histórico, fuera del backlog diario.
- En la ficha profesional, una operación
LEGACY-*muestra el período y la fecha real del pago, con la etiqueta Histórico migrado. La fecha de importación nunca se presenta como fecha de cobro. - Los pagos parciales conservan el saldo restante y siguen visibles hasta su cancelación total; no se acreditan ni cierran por aproximación.
Desde Cuenta Corriente, Abrir ficha conserva el profesional y la pestaña de origen. La ficha de pago, recibo u operación muestra una acción para volver al mismo perfil, en lugar de regresar al listado general. Si la deuda todavía no tiene pago, se abre el libro de cuotas filtrado por su identificador interno y se ofrece el mismo regreso contextual.
Si Abrir ficha no muestra el registro esperado, no crear otro pago: verificar primero que el identificador de deuda, el número PAY o el número REC aparezcan en la URL y luego volver al perfil para revisar Cuenta Corriente. Un pago con operación siempre debe abrir la single canónica de esa operación.
Evidencia visual pública: No aplica. Esta ficha reúne identidad, matrícula, correo, deuda, recibos e importes de una persona real. La validación se realiza en SANDBOX con una cuenta autorizada y en vistas de escritorio y móvil, pero no se publican capturas con datos personales o financieros en el manual abierto.
La auditoría también verificó 384 reglas profesionales: 357 jubilatorias y 27 de primera matrícula. Los 38 antecedentes de maternidad/paternidad se conservaron como evidencia histórica o revisión (25 vencidos y 13 pendientes); ninguno se activó por inferencia. Los conceptos externos quedaron en 168: SANDBOX 52 aplicados y 116 esperados; PSICOLE 54 aplicados y 114 esperados. Estas diferencias reflejan trabajo manual real de cada entorno y no autorizan una copia destructiva.
Control recomendado antes de un nuevo RUN:
- En Profesionales, filtrar beneficios vencidos o en revision para detectar reglas que no deben impactar mayo/junio.
- En Dinero, revisar Planilla pagada sin operacion para separar cuotas canceladas por fuente externa de pagos ya materializados.
- En Dinero, revisar Conceptos externos esperados y Conceptos externos en revision antes de aceptar nuevos autos del preview.
- Para los autos aprobados, usar Materializar desde la fila virtual. Si el concepto externo no tiene profesional, usar Vincular en esa misma fila para elegir el profesional local y confirmar la emision. La nota de aprobacion es obligatoria y la accion es idempotente por cuota o concepto.
- Abrir cada operacion
PAYmaterializada y usar Vincular extracto solo contra el movimiento bancario pendiente correcto. No usar conciliacion rapida si la operacion ya existe, porque ese flujo crea pago y recibo nuevos. - Ejecutar el re-run como
PREVIEWy comparar tasas contra la corrida anterior antes de cualquier aplicacion masiva.
Vincular extracto a una operacion PAY existente
Este flujo se usa cuando el pago ya existe en PSICOLE y falta unirlo con el movimiento del banco. No debe usarse para crear un cobro nuevo: el objetivo es completar la trazabilidad banco -> operacion -> recibo sin duplicar pagos.
Roles habilitados: Super Admin, Admin y operadores con permiso de escritura financiera.
Ruta operativa:
- Entrar a Dinero -> Operaciones.
- Abrir la ficha de la operacion
PAYaprobada. - En la seccion Trazabilidad, usar Vincular extracto.
- Informar el UUID del movimiento bancario pendiente y una nota de aprobacion.
- Confirmar solo si el importe, signo y movimiento corresponden a la operacion.
Validaciones del sistema:
- La operacion debe estar
APPROVEDoRECONCILED, tener monto positivo y no tener extracto ya vinculado. - El movimiento bancario debe estar pendiente de conciliacion y no asociado a otra operacion.
- El importe esperado se valida con tolerancia operativa minima.
- La accion usa clave idempotente por operacion + movimiento bancario para evitar doble vinculacion.
- Al confirmar, la operacion queda
RECONCILED, el movimiento bancario quedaMANUAL_MATCHEDy se agregan evidencia bancaria, match de conciliacion y auditoria.
URLs de prueba en SANDBOX:
| Objetivo | URL |
|---|---|
| Listado de operaciones | https://sandbox.umdev.com.ar/admin/dinero/operaciones |
| Operacion elegible para abrir modal y cancelar | https://sandbox.umdev.com.ar/admin/dinero/operaciones/PAY-2026-917585 |
| Operacion ya conciliada con extracto vinculado | https://sandbox.umdev.com.ar/admin/dinero/operaciones/PAY-2026-917873 |
| Conciliacion / RUN mensual | https://sandbox.umdev.com.ar/admin/dinero/operaciones?tool=conciliacion |
| Dashboard de Dinero | https://sandbox.umdev.com.ar/admin/dinero/dashboard |
Evidencia visual: se valido en SANDBOX con capturas desktop 1440x1000 y mobile 390x844. Las capturas no se publican en el manual porque contienen nombres e importes reales de operaciones sandbox; quedan como evidencia interna del PR.
Certificacion SANDBOX mayo/junio 2026
La certificacion de cuotas de mayo y junio 2026 se hizo en SANDBOX con fuentes primarias de tarjeta y CBU, mas recibos, padrones, caja y listados de contraste. El objetivo fue probar el flujo completo RUN -> deuda -> lote/cobro -> operacion PAY -> recibo -> cuenta corriente -> banco -> conciliacion sin enviar correos ni avisos.
Resultado operativo de la prueba:
| Medicion | Eventos | Monto |
|---|---|---|
| Tarjeta aceptada + CBU cobrado en fuentes primarias | 5.986 | $70.671.456,50 |
| Conciliado con destino seguro despues del cierre | 5.697 | $67.128.180,50 |
| Sin destino seguro estricto | 289 | $3.543.276,00 |
| Tasa de conciliacion | 95,17% | 94,99% |
Tratamiento del remanente original de 360 eventos:
| Tratamiento | Eventos | Monto |
|---|---|---|
| Aplicados y verificados en SANDBOX | 71 | $883.603,50 |
| Ya cerrados/no-PENDING, sin accion nueva | 123 | $1.547.622,00 |
| Bloqueados/manuales por identidad o destino insuficiente | 152 | $1.851.042,50 |
| Sin deuda PENDING compatible | 6 | $48.060,00 |
| Bloqueados por regla bancaria estricta | 8 | $96.551,50 |
| Total tratado | 360 | $4.426.879,50 |
Los 71 aplicados usaron el marcador SANDBOX_REMAINING_360_CBU_PENDING_79_20260623. La verificacion exigio deuda PAID, operacion aprobada, recibo activo, pago aprobado, movimiento de cuenta corriente, asiento contable, links documentales y transaccion bancaria MANUAL_MATCHED. El replay idempotente no creo objetos nuevos.
Los 289 restantes no deben aplicarse por inferencia debil: requieren desempate de banco/emisor, migracion formal de profesional, generacion de deuda faltante o una regla operativa aprobada.
Definicion de cuota mensual certificada
En la version certificada en sandbox, la definicion de cuota mensual queda controlada por el concepto oficial, el tarifario mensual y la deuda que genera el RUN:
| Capa | Funcion |
|---|---|
Tarifario mensual (MONTHLY_FEE_TARIFF_POLICY) |
Fuente de verdad para importe base, importes finales por CBU/tarjeta, jubilacion, redondeo y periodos vigentes. |
Tipo de Cuota (FeeType) |
Habilita el concepto mensual oficial CUOTA_MENSUAL, periodicidad y vigencia general del concepto. Los conceptos mensuales historicos quedan inactivos. |
Deuda generada (Debt) |
Congela para cada profesional y periodo amount, discount y finalAmount; ese importe es el que toman cobros y lote CBU. |
Adhesion de cobro (DirectDebitEnrollment) |
Diferencia CBU / Caja de ahorro de tarjeta de credito para aplicar 20% o 30% solo si la adhesion esta ACTIVE y no hay jubilacion sobre esa cuota. |
La cuota mensual de agosto de 2026 vence el 31/08/2026 en hora de Mendoza y no integra la mora antes del 1 de septiembre. La regla está periodizada: no modifica otros meses ni los vencimientos propios de cuotas de planes de pago.
Si para un mes nuevo se aprueba otro valor, se agrega el periodo al tarifario mensual. El RUN genera la deuda con ese importe base y los descuentos aplicables; el lote CBU toma luego el Debt.finalAmount, no vuelve a calcular el valor desde cero.
Si el período todavía no existe en MONTHLY_FEE_TARIFF_POLICY, PREVIEW y generación fallan sin crear deudas. Esta guarda evita que un mes nuevo herede accidentalmente el último importe activo de FeeType.
Mora y trámites
La mora vigente se calcula con la configuracion activa al momento de previsualizar o cobrar. Hoy no existe una matriz completa por tramite y periodo para matricula, renovacion, especialidad o certificados; esos aranceles viven como FeeType y deben versionarse con la misma disciplina hasta que se implemente un tarifario centralizado.
Control antes de enviar un lote CBU
Antes de enviar un archivo bancario, comparar el total del lote con la suma de los importes finales de las deudas del periodo incluidas en el lote. Si hay diferencia, no enviar el archivo y revisar descuentos, beneficios, rechazos previos, metodo de cobro o ajustes pendientes.
Cobro desde ficha profesional y caja
Cuando el operador necesita registrar un cobro manual a un profesional, puede iniciar el circuito desde la lista o ficha de profesionales.
La capacidad de cobranza está disponible para Administración,
Superadministración, Supervisor de Trámites y todos los roles OPERADOR_*.
Desde Dinero -> Consulta de deuda pueden buscar al profesional, consultar
deudas y recibos, previsualizar la imputación y registrar pagos totales o
parciales. Contador conserva consulta sin escritura y los usuarios colegiados no
obtienen acceso a cuentas ajenas.
Esta autorización es acotada: no permite generar cuotas masivamente, configurar
mora o descuentos, anular recibos ni aplicar saldos a favor. Esas acciones
continúan reservadas a Finanzas/Administración. El cobro mantiene validación de
deuda vigente, idempotencia, bloqueo transaccional, rechazo de sobrepagos,
emisión de recibo y auditoría, independientemente de AUTHZ_POLICY_MODE.
En Profesionales, la acción con ícono de maletín abre el flujo de Caja para ingresar el pago correspondiente. Desde allí se registra el cobro, se imputa contra la deuda o concepto que corresponda y queda asociado a una operación de dinero trazable.
Uso operativo:
- Buscar al profesional.
- Abrir la acción de cobro/caja desde la fila o ficha.
- Confirmar concepto, importe, medio de pago y caja responsable. Para efectivo
debe existir una caja abierta; el servidor vincula la sesión activa
CAJA_1_CENTRALdel operador. - Registrar el pago.
- Revisar que quede emitido el recibo o movimiento asociado.
Este flujo se usa para cobros manuales presenciales o administrativos. Los pagos online y débitos automáticos siguen sus propios circuitos.
Un descuento no se incorpora directamente al cobro. Debe tramitarse mediante
Solicitar descuento, con motivo, tope y aprobación por una persona distinta;
recién el importe persistido y aprobado puede tomarse como base de pago.
Para más de 12 cuotas mensuales vencidas se usa la solicitud agrupada: incluye
todas las MONTHLY_FEE vencidas y sólo puede consumirse con el cobro único por
el importe exacto autorizado. No admite pago parcial, saldo a favor ni efectivo.
Monto positivo obligatorio
Antes de confirmar, el total debe ser mayor que cero. La interfaz detiene un
cobro de $0 y el servidor repite la misma validación antes de abrir la
transacción financiera. Si todos los conceptos quedaron bonificados o la
selección no tiene saldo, se revisa el descuento o se eligen otras deudas; no se
emite una operación ni un recibo de monto cero.
Operación única de dinero
Cada pago, cobro, depósito, reversa o conciliación importante se representa con una PaymentOperation. Su número visible tiene formato:
PAY-2026-000001
Ese número es el punto de entrada para soporte, auditoría, conciliación y comunicación con el usuario. Desde la single se debe poder ver:
- Estado en español amable: Aprobada, Pendiente, Rechazada, Revertida.
- Canal: NAVE, transferencia bancaria, efectivo, caja,
FIXED_POS, débito automático, obra social u otro. - Propósito: cuota de matrícula, curso, trámite, plan, liquidación, cobro particular o reintegro.
- Origen e idempotencia: proveedor, referencia externa, clave idempotente y registro origen.
- Vínculos: deuda, pago, recibo, profesional, lote, caja, extracto o conciliación.
- Eventos: creación, aprobación, recibo creado, conciliación, reversa, usuario responsable y fecha.
- Impacto contable: asiento o vínculo a libro diario cuando corresponda.

Regla de trazabilidad
Ninguna pantalla debe mostrar un pago como dato suelto si existe una operación. La fila debe abrir la single canónica de la operación, tanto en admin como en el perfil del profesional.
Exportaciones de operaciones
Desde Dinero → Operaciones las exportaciones deben respetar los filtros activos de la vista: período, estado, canal, propósito, profesional, texto de búsqueda y demás criterios aplicados.
El botón de Excel/CSV recorre páginas adicionales con los mismos filtros, en vez
de limitarse a la página visible. El corte actual admite hasta 100 páginas de
100 filas, es decir, 10.000 movimientos por descarga. Para un universo mayor
se deben acotar los filtros; la interfaz todavía no avisa que alcanzó ese tope.
Si no hay movimientos para exportar, la UI lo informa antes de descargar un
archivo vacío.
Uso operativo:
- Aplicar los filtros necesarios en Dinero → Operaciones.
- Revisar el total de resultados.
- Si el total supera
10.000, acotar período u otros filtros antes de exportar. - Exportar a Excel o CSV.
- Usar el archivo como soporte de auditoría, conciliación o análisis operativo.
La exportación es de sólo lectura. Si el navegador no descarga el archivo, el operador debe conservar los filtros, revisar que existan resultados y reintentar desde la misma vista; no corresponde recrear movimientos para hacerlos aparecer en el reporte. La evidencia visual actual orienta sobre la pantalla de Operaciones, pero el estado específico de descarga queda pendiente de una captura sanitizada.
Pagos y recibos
PSICOLE distingue tres conceptos:
| Concepto | Número | Función |
|---|---|---|
| Operación de dinero | PAY-YYYY-NNNNNN |
Movimiento económico trazable |
| Pago | Interno | Imputación del dinero contra una o más deudas |
| Recibo | REC-YYYY-NNNNNN |
Documento emitido como comprobante |
El dato documental autoritativo es Receipt.receiptNumber. Si un registro legado de pago conserva receiptNumber, se considera dato histórico y no debe presentarse como numeración principal.
Una operación puede vincular uno o más pagos y uno o más recibos según el caso operativo: pago de varias cuotas, curso más recargo, reversa parcial o regularización manual.
Saldos a favor y pagos parciales
Las diferencias de conciliación no se absorben con tolerancias amplias. En Dinero -> Operaciones -> Conciliación existen tres resultados controlados:
| Resultado | Efecto |
|---|---|
| Importe exacto o ajuste mensual aprobado | Cancela las deudas seleccionadas y materializa PAY, pago y recibo. |
| Transferencia mayor | Aplicar + saldo cancela la deuda y crea un saldo a favor por el excedente. |
| Transferencia menor | Pago parcial reduce una única deuda y mantiene el remanente pendiente. |
El saldo a favor no es ingreso por cuotas hasta que se aplica. Se muestra en la cuenta corriente del profesional y en el perfil administrativo con monto original, disponible, estado, nota y operación de origen. Para consumirlo, el operador abre Profesionales -> Cuenta Corriente -> Saldos a favor, pulsa Aplicar, elige una deuda y confirma la nota. La operación interna no vuelve a tocar Banco ni envía avisos.
La aplicación interna genera trazabilidad documental, pero no representa un nuevo ingreso de dinero. Por eso su recibo permanece visible y el importe no vuelve a sumarse en la métrica Total pagado.
La ficha única PAY muestra el saldo como sección activa y permite seguir la operación bancaria de origen, sus aplicaciones y las deudas alcanzadas. Mientras el saldo esté disponible se contabiliza en 2.1.4 Saldos a favor de profesionales; sólo la aplicación contra deuda lo reclasifica como ingreso.
Los estados del saldo son Disponible, Aplicado parcialmente, Aplicado y Reversado. Toda aplicación conserva idempotencia, pago, recibo, asiento, auditoría y vínculo con la deuda.
Para corregir una aplicación se anula primero su recibo: la deuda recupera el importe y el saldo vuelve a quedar disponible, sin tocar Banco ni enviar avisos. El recibo del ingreso bancario de origen sólo puede anularse cuando ya no tenga aplicaciones activas; esta secuencia evita saldos utilizables sin respaldo.
Agrupar profesionales por saldo y deuda
La vista existente de Matrículas -> Profesionales permite revisar el estado financiero sin abrir cada perfil:
- La columna Saldo a favor muestra el importe disponible para aplicar y se puede ordenar de mayor a menor o de menor a mayor.
- El filtro Saldo / deuda permite agrupar
Con saldo a favor,Con deuda,Saldo cubre deudaySin saldo pendiente. - La métrica Con saldo a favor abre el mismo filtro y muestra el total de profesionales con créditos disponibles.
- Si una persona tiene simultáneamente crédito y deuda, la fila muestra ambos datos: el saldo disponible en verde y la deuda en Cuota / Deuda. No se compensa visualmente ni se marca como pagada hasta aplicar el crédito.
- Un crédito
Aplicadono aparece como saldo disponible. El profesional queda visible por su deuda remanente, mientras la trazabilidad completa se consulta en Cuenta Corriente.
El ordenamiento y los filtros consultan los importes consolidados del servidor, no sólo la página visible. Esto permite preparar una cola de comunicación o revisión sin modificar pagos, recibos, deudas ni enviar avisos. Antes de comunicar, el operador debe abrir el perfil y confirmar el estado y la nota auditada del saldo.
Evidencia visual: validado en SANDBOX en escritorio y viewport móvil de 390 px. No se publica una captura de esta tabla porque contiene nombres, matrículas, DNI y saldos reales del entorno de prueba.
Pasarelas y conciliación
Los pagos por NAVE u otra pasarela habilitada no reemplazan la conciliación bancaria. Se relacionan así:
- El usuario inicia un pago desde Pagar deuda.
- La pasarela crea una solicitud externa con referencia única.
- PSICOLE registra o actualiza la operación
PAY. - Cuando la pasarela aprueba, PSICOLE materializa pago, recibo y eventos.
- Luego la pasarela liquida el dinero en una cuenta bancaria.
- La conciliación cruza la liquidación de la pasarela y el extracto del banco.
La idempotencia evita cobrar o registrar dos veces: se controla por proveedor, referencia externa, operación interna, monto, fecha y clave idempotente del lote o extracto.
PAYWAY y POS fijo
PAYWAY puede seguir apareciendo como providerCode técnico en extractos, settlements o importaciones históricas, pero la superficie operativa y las rendiciones deben tratarlo como POS físico fijo (FIXED_POS), no como pasarela online.
Reintegros, reversas y pagos por error
Las devoluciones no deben borrar el pago original. Se registra una operación compensatoria vinculada a la operación original.
| Caso | Acción correcta |
|---|---|
| Pago duplicado | Crear reversa o reintegro vinculado al PAY original |
| Curso pagado y luego desinscripto | Aplicar política de reembolso configurada |
| Transferencia mal imputada | Reasignar si no hay recibo emitido o crear reversa si ya fue documentada |
| Error de caja | Registrar ajuste con motivo y responsable |
La configuración de políticas se administra desde Dinero → Configuración, con motivo obligatorio y auditoría.
Contabilidad y libro diario
La trazabilidad del dinero no termina en el cobro. Cuando el circuito lo requiere, la operación debe dejar preparado o vinculado su impacto contable:
- cuenta o rubro operativo;
- fecha contable;
- asiento de libro diario o pendiente de generación;
- relación entre operación
PAY, recibo, conciliación y contrapartida.
La regla práctica es que una conciliación correcta no debe romper la relación entre operación económica y libro diario.
Criterios de calidad operativa
- Todo estado visible debe estar en español amable.
- Toda fila de pago debe abrir una single canónica.
- Todo recibo debe abrir su documento o su operación asociada si todavía no existe vista documental separada.
- Toda conciliación debe mostrar si el dinero proviene de pasarela, banco, caja, débito o transferencia directa.
- Toda reversa debe conservar el vínculo con el movimiento original.
- Toda operación conciliada debe poder rastrearse hasta su salida contable o su pendiente contable.


Finanzas
Finanzas es la vista operativa del dinero diario: deudas, pagos, recibos, caja y conciliación. Para el circuito completo y la single de trazabilidad, ver Módulo DINERO.
Principios
- Un pago no debe quedar aislado: debe vincularse a una operación
PAY. - Un recibo se identifica por
RECy es el documento autoritativo. - Caja, transferencias y pasarelas deben conciliarse sin duplicar ingresos.
- Los estados se muestran en español amable.

Cobranza
La cobranza permite registrar pagos manuales o revisar obligaciones pendientes. Cuando se registra un cobro:
- Se selecciona profesional y deuda.
- Se informa canal: efectivo, transferencia, caja, débito, NAVE u otro.
- Se valida que no exista una operación equivalente.
- Se crea la operación de dinero.
- Se emite recibo cuando corresponde.

Recibos
El recibo es el comprobante documental del cobro. Su número se genera en la entidad Receipt y no debe confundirse con identificadores internos de pago.
| Dato | Descripción |
|---|---|
| Número | REC-YYYY-NNNNNN |
| Operación vinculada | PAY-YYYY-NNNNNN |
| Profesional | Titular de la deuda o del pago |
| Método | Medio principal o proveedor |
| Instrumento | Tarjeta, QR, CBU, efectivo u otro detalle secundario |
Caja
Caja controla sesiones diarias de ingreso y egreso. Cada apertura, movimiento y cierre queda vinculado al responsable. Si el movimiento genera pago, también debe crear operación trazable.
Flujo operativo de caja
- Abrir una sesión de caja con responsable, caja física y saldo inicial.
- Registrar ingresos o egresos indicando concepto, importe, medio y profesional cuando corresponda.
- Imputar pagos contra deudas abiertas o dejar el movimiento como operación de caja identificada.
- Emitir recibo cuando el movimiento documenta un cobro.
- Cerrar la caja al final de la jornada con arqueo, diferencia y observación obligatoria si no cuadra.
| Estado | Significado |
|---|---|
| Abierta | La caja acepta movimientos |
| Cerrada | La jornada quedó bloqueada y auditada |
| Diferencia | El arqueo no coincide y requiere explicación |

No usar caja para saltear trazabilidad
Un cobro registrado por caja debe quedar vinculado a una operación PAY y, si corresponde, a un recibo REC. Si el dinero entra por banco o pasarela, la caja no reemplaza la conciliación.
Conciliación
La conciliación bancaria cruza tres capas:
- Operaciones internas de PSICOLE.
- Liquidaciones de pasarelas o lotes de débito.
- Extractos bancarios reales.
Una transferencia directa que no pasó por pasarela también puede conciliarse; si corresponde a deuda, curso o trámite, se imputa desde la operación.
Cierre exacto por método de cobro
La corrección entre débito automático y tarjeta sólo se aplica cuando el extracto identifica de forma exacta al profesional, el período, el medio y la deuda compatible. El importe aislado, una diferencia cercana al 20% o 30% y el nombre aproximado no son evidencia suficiente.
El gate del 23/07/2026 resolvió en PSICOLE 6 movimientos exactos por
$69.600,00. Cada aplicación creó una única operación, pago, recibo, vínculo
bancario y movimiento de cuenta corriente mediante el servicio oficial. El
replay inmediato devolvió los mismos artefactos, sin duplicar registros, crear
saldos, enviar comunicaciones ni alterar otras deudas.
Otras 3 filas por $37.476,00 quedaron
OPEN_AMOUNT_INFERENCE_REVIEW: el importe permite formular una hipótesis, pero
no demuestra el medio. Una de ellas además contradice el método vigente del
profesional. Estas filas siguen en revisión manual y no se convierten en cobro
por similitud.
Un movimiento puede aparecer en más de un snapshot mensual histórico. El replay es válido si la operación ya vinculada referencia el RUN solicitado; un RUN del mismo período que nunca estuvo vinculado se rechaza. El hash del comando continúa siendo obligatorio: cambiar deuda, transacción, importe o destino produce conflicto y no recupera una operación anterior.
No completar el método por porcentaje
El 20% y el 30% son reglas tarifarias, no identificadores bancarios. Si la fuente no demuestra el método, se conserva la fila manual aunque el importe coincida.
Evidencia bancaria OOSS en revisión
El cobro de una obra social no se confirma por nombre, cercanía de fecha o importe aislado. El control OOSS usa un manifiesto certificado y exige una transacción bancaria única, no test, abierta y coincidente en fecha, importe, referencia, titular y archivo de extracto.
Cuando la evidencia pasa esas guardas, PSICOLE registra un candidato de revisión:
| Clasificación | Qué demuestra | Qué falta |
|---|---|---|
| Pago de lote exacto | Existe un único lote y pago pendiente del mismo período, OOSS e importe | Aprobación humana y vínculo económico explícito |
| Cohorte OOSS | El banco respalda el cobro documental de la OOSS y el período | Completar o validar el lote antes de vincular |
| Bloqueada | Falta una transacción, hay ambigüedad o la cadena no está completa | Corregir la fuente y repetir el preview |
Todos estos candidatos tienen revisión humana obligatoria. No pueden autoaplicarse y no crean pagos, recibos, operaciones PAY, liquidaciones, cambios de deuda, avisos ni correos. Una coincidencia exacta es evidencia; todavía no es una conciliación económica.
El apply técnico sólo escribe la cola de candidatos y debe repetirse con la misma clave funcional. El replay válido devuelve las mismas filas como NOOP y conserva sin cambios el snapshot económico. El recalculador general tampoco puede superseder estos candidatos OOSS, porque pertenecen a un manifiesto externo certificado.
En el gate SANDBOX del 23/07/2026 se registraron inicialmente 16 candidatos. La auditoría detectó que faltaba el segundo extracto Galicia de julio, que ya estaba presente en PSICOLE. La fuente completa se importó en SANDBOX por hash y clave de deduplicación: agregó 438 movimientos una sola vez y el replay agregó 0.
Con el mismo universo de fuentes, ambos entornos produjeron el mismo plan normalizado de 18 candidatos: 6 contra pagos de lote exactos y 12 contra cohortes OOSS, sin bloqueos. El apply SANDBOX creó sólo los 2 candidatos faltantes y el replay devolvió 18 NOOP. El hash normalizado entre entornos fue 6bb318f111f8274b534c58b066f93c3498b064ff00990d0d20145bda1feb7203; pagos, recibos, deudas, órdenes, liquidaciones, movimientos y comunicaciones conservaron sus conteos. Esta paridad habilita el gate productivo review-only, pero no autoriza por sí sola una conciliación económica.
La promoción review-only a PSICOLE exige cuatro confirmaciones independientes: hash semántico de la evidencia, hash funcional del plan, SHA-256 del respaldo y hash del snapshot económico inmediatamente anterior. El servicio vuelve a capturar ese snapshot dentro de la transacción serializable y aborta antes de escribir si cambió. En SANDBOX, un hash económico incorrecto falló cerrado y el hash correcto reprodujo 18 NOOP.
El gate productivo se aplicó con esas cuatro confirmaciones: creó 18 candidatos y el replay creó 0, con 18 NOOP. Todos permanecen humanos, sin operación económica, sobre transacciones pendientes y no test. El snapshot amplio de PSICOLE conservó el hash 716f573558871606d3e8a7251c936d875923496de9a141ea486fb2dafcd78da6 antes y después; no cambiaron pagos, recibos, deudas, banco, lotes, liquidaciones, órdenes ni comunicaciones.
No corregir la paridad desde producción
Si SANDBOX y PSICOLE no contienen el mismo universo de extractos, no se copia el resultado ni se fuerza el vínculo. Primero se registra la fuente faltante en SANDBOX, se repite el preview y se exige igualdad del plan normalizado.
Corrección tarifaria histórica de órdenes
El período de prestación de una orden y el período operativo del lote son datos distintos. Una orden prestada en mayo de 2025 no toma la tarifa de mayo de 2026 por estar agrupada posteriormente en un lote de ese mes. Toda corrección debe resolver primero la tarifa vigente en la fecha de prestación y demostrar por orden que cantidad, precio unitario y total explican íntegramente la diferencia.
El gate OSTV del 23/07/2026 reconstruyó una diferencia agregada de
$ 187.200,00: cuatro órdenes históricas tenían una tarifa persistida de
$ 4.900,00 por sesión frente a una tarifa documental de $ 16.600,00. Dos
previews en SANDBOX y dos en PSICOLE produjeron el mismo hash funcional
639811d405b1eeeeb974fff37a784d4a312d922e4ff572fb510ea512509a8044.
La proyección lleva a cero la diferencia entre órdenes, lote y liquidación sin
modificar el bruto del lote, pago, débitos, comisión, neto, liquidaciones,
facturas, operaciones o recibos.
El auditor es estrictamente de sólo lectura y rechaza --apply y --write.
El cambio económico requiere otro comando, respaldo verificable, hash e
identidades exactas, autorización para órdenes históricas PAID, transacción
con bloqueo de filas e idempotency key. El replay debe producir cero escrituras
y el auditor posterior debe conservar cero comunicaciones y gaps iguales a
cero.
La corrección controlada se ejecutó únicamente en SANDBOX. Modificó las cuatro
órdenes exactas, creó cuatro registros de auditoría y una clave de idempotencia.
No creó ni modificó pagos, recibos, lote, pago de lote, liquidación, comisión,
neto, facturas, operaciones, tickets o comunicaciones. El replay devolvió
REPLAY_NOOP, sin escrituras, y dos previews posteriores clasificaron el estado
como ALREADY_CORRECTED_AND_CERTIFIED, con las dos diferencias en cero y el
mismo hash funcional
4c00be52c845f19cfc9bcafc3b076b6d77b06af726e5a819e938bceb718f60c8.
PSICOLE no fue modificado en este gate. La corrección productiva, si se autoriza, debe repetir el mismo circuito contra un respaldo y un preview actuales; nunca se promueve copiando datos desde SANDBOX.
No recalcular agregados ya correctos
Si el lote, su pago y la liquidación ya contienen los importes documentales, la reparación se limita a las órdenes inconsistentes. Recalcular comisión, neto, facturas o pagos duplicaría una corrección que ya está representada.
Readiness de cobro OOSS después de ajustes
La preparación de un cobro OOSS compara magnitudes equivalentes. La suma bruta
de órdenes se contrasta con el bruto del lote (totalAmount); la diferencia
entre bruto y aceptado se contrasta por separado con los ajustes de las
liquidaciones. Nunca se compara el bruto de órdenes directamente con el aceptado
después de ajustes.
Si ambos controles cierran, el lote puede quedar
READY_FOR_EXPLICIT_OOSS_COLLECTION_APPROVAL. Este estado sólo habilita la
revisión de un operador: no confirma el cobro, no concilia el banco y no paga al
prestador. Las advertencias de archivo respuesta, procedencia, factura
institucional y fecha bancaria siguen visibles y deben resolverse o aceptarse
individualmente antes de aprobar.
En el control SANDBOX del 23/07/2026, dos replays produjeron el mismo hash y
dejaron 6/6 lotes exactos listos para revisión humana. OSTV cerró con bruto de
órdenes y lote por $2.048.900,00, aceptado por $1.986.500,00, ajustes por
$62.400,00 y ambos gaps en cero. Los 18 candidatos bancarios permanecieron
humanos, sin decisión ni operación vinculada.
El pago a prestadores se controla en otro gate. Los seis casos continuaron bloqueados por facturas incompletas; ninguno quedó listo para pago. Los snapshots económicos antes y después fueron idénticos y PSICOLE no fue modificado.
Listo no significa cobrado
READY_FOR_EXPLICIT_OOSS_COLLECTION_APPROVAL describe que las guardas
aritméticas no bloquean la revisión. La aprobación humana y el vínculo
bancario idempotente siguen siendo obligatorios.
Reversas y reintegros
Los reintegros no borran recibos ni pagos históricos. Crean una operación compensatoria con motivo obligatorio y vínculo al movimiento original.
Reporte financiero
Los reportes financieros permiten revisar ingresos, egresos, métodos de pago, cuotas, caja y evolución mensual sin modificar datos. Sirven para control administrativo, auditoría y preparación de información contable.
Este apartado cubre EPIC-04UC-4.1 Reporte Financiero: acceso a reportes, extracción de datos consistentes y lectura cruzada con caja, pasarelas, recibos y conciliación.
Ruta operativa: /admin/dinero/reportes o Dinero → Reportes.
Flujo operativo
- Elegir período o rango de fechas.
- Seleccionar vista: recaudación, métodos de pago, evolución mensual, caja o balance.
- Revisar totales y desgloses.
- Comparar contra caja, pasarelas y conciliación cuando haya diferencias.
- Exportar el reporte si se requiere soporte externo.
Reglas de lectura
| Regla | Detalle |
|---|---|
| Reporte no cobra | Nunca crea pagos, deudas ni recibos |
| Fuente trazable | Los importes deben poder abrirse desde operación PAY, recibo o caja |
| Período explícito | Todo reporte debe mostrar el corte temporal usado |
| Diferencias | Se investigan en caja o conciliación, no se corrigen desde el reporte |
Contrato de cifras entre vistas
Las pantallas no deben compararse sin distinguir período, población y tipo de movimiento. El reporte usa estas definiciones:
| Indicador | Fuente y alcance |
|---|---|
| Recaudado del mes | Pagos externos aprobados cuya fecha efectiva paidAt cae en el mes. Excluye pruebas, aplicaciones internas, recibos anulados sin reversa y correcciones no monetarias. |
| Obligaciones del período | Deudas reales cuyo período económico es el mes seleccionado, aunque el pago se haya registrado después. |
| Pendientes sin vencer | Deudas directas abiertas con vencimiento posterior al momento de consulta. |
| Pendientes vencidas | Deudas directas abiertas cuya fecha de vencimiento ya pasó. No se vuelve a sumar como otra categoría pendiente. |
| Total abierto del período | Pendientes directas más obligaciones IN_PAYMENT_PLAN, descontando sólo asignaciones trazables del plan. |
| Deuda abierta en activos | Cartera de profesionales del padrón facturable vigente. Debe coincidir con la síntesis de Profesionales. |
| Cartera histórica | Obligaciones reales de perfiles fuera del padrón facturable. Se informa por separado y no aumenta la cantidad de matrículas activas. |
Estado económico canónico
El estado guardado en la deuda conserva la historia del flujo. Para decidir qué se cobra y qué integra un indicador, PSICOLE deriva además una posición económica de sólo lectura a partir de estado, saldo, descuento, vencimiento y asignaciones de plan. Las pantallas financieras deben usar esta clasificación común:
| Posición | Criterio operativo | ¿Integra deuda abierta? |
|---|---|---|
| Pendiente sin vencer | Saldo positivo, fuera de plan y vencimiento futuro | Sí |
| Pendiente vencida | Saldo positivo, fuera de plan y vencimiento pasado | Sí |
| En plan | Saldo positivo cubierto por un plan; se descuentan sólo asignaciones trazables | Sí, una sola vez |
| Pagada | Estado de cierre PAID |
No |
| Bonificada | Obligación neta y saldo iguales a cero por descuento total | No |
| Cancelada | Estado de cierre CANCELLED |
No |
| Revisión de datos | Estado desconocido o saldo cero sin un cierre económico explicable | No; queda en cuarentena |
La partición de cantidades debe cerrar siempre:
emitidas = pendientes sin vencer + pendientes vencidas + en plan + pagadas + bonificadas + canceladas + revisión de datos
Los grupos son mutuamente excluyentes. Una cuota pagada no se cuenta también como vencida aunque se haya abonado después del vencimiento. Por eso es válido que el importe pagado de un mes sea mayor que el saldo que todavía permanece vencido: son cohortes distintas del mismo universo emitido.
El estado persistido no se corrige desde un reporte
Si la posición derivada queda en Revisión de datos, el operador investiga deuda, PAY, recibo, plan y conciliación de origen. El reporte nunca reescribe la deuda ni la marca pagada por inferencia.
Cuatro unidades que no deben sumarse como si fueran iguales
| Unidad | Qué representa | Fecha que la ubica |
|---|---|---|
| Obligación | Una deuda emitida a una persona por un concepto y período económico. | Período de la deuda, por ejemplo 2026-06. |
| Cobro externo | Dinero ingresado por transferencia, tarjeta, débito, pasarela o caja. | Fecha efectiva de pago. |
| Imputación | Aplicación total o parcial de un cobro a una obligación concreta. | Período de la obligación y fecha de aplicación. |
| Recibo | Documento emitido como constancia de una operación. | Fecha de emisión; puede haber más de un documento por operación y anulaciones históricas. |
Por eso, 4.766 obligaciones emitidas, 3.104 cobros externos y 3.057 imputaciones a junio no describen tres versiones del mismo contador. Un cobro puede cubrir varias obligaciones, pagar otro período, quedar como saldo a favor o corresponder a otro concepto. Del mismo modo, una obligación puede recibir pagos parciales y continuar abierta con un saldo menor.
El Balance Mensual abre en Mes seleccionado y permite cambiar a Año completo. En ambos modos separa obligaciones emitidas, cobros externos, registros de cobro aprobados y recibos activos. El total anual de cobros no debe compararse directamente con las obligaciones del año mientras existan cobros históricos o importados sin una deuda asociada: esa diferencia se muestra como cohorte separada y se audita, no se imputa automáticamente.
La vista Dinero → Operaciones → Cuotas muestra el libro global: pendientes directas y cuotas en plan son estados distintos. Por eso su total abierto se obtiene como pendientes directas + en plan. La vista Profesionales agrupa ese libro por persona y sólo sobre el padrón facturable; no debe esperarse que su cantidad de personas sea igual a la cantidad de obligaciones.
Las órdenes, rendiciones, facturas y liquidaciones de prestadores se validan en Prestadores. Una orden representa una prestación a cobrar a una obra social y una liquidación representa una obligación hacia el prestador; ninguna de las dos se suma a la recaudación colegial hasta existir el movimiento económico externo correspondiente.
Las facturas fiscales que el Colegio emite a las obras sociales se consultan en Dinero → Configuración → Facturación OOSS. Pertenecen al circuito Colegio → OOSS y no deben confundirse con las facturas que un prestador presenta al Colegio. La constancia fiscal y su CAE documentan la emisión; el ingreso se confirma únicamente mediante conciliación y una operación económica trazable.
La carga documental es idempotente: una factura nueva se registra como Enviada y un PDF agregado a una factura existente conserva su estado. Repetir el mismo lote no crea otra factura ni otro archivo. Esta carga nunca genera pagos, recibos, liquidaciones, avisos o correos; cualquier cobro de la OOSS debe continuar por conciliación y conservar su operación económica.
La cabecera de Lista de Prestadores cuenta perfiles registrados, incluidos los históricos o inactivos. El certificado financiero informa por separado los prestadores activos al corte. Por eso ambos totales pueden diferir sin que falte una persona: primero se compara la misma población y luego sus órdenes, rendiciones y liquidaciones. En el corte SANDBOX del 20/07/2026 se observaron 473 registrados y 459 activos.
Control cruzado mensual
- En Reportes, seleccionar el mes y anotar cobros externos, obligaciones y total abierto.
- En Operaciones → Cuotas, comprobar que pendientes directas más cuotas en plan coincidan con la posición global del libro.
- En Profesionales, comprobar que la cantidad de profesionales y la deuda abierta correspondan al padrón facturable, no a la cartera histórica.
- En Prestadores, comprobar órdenes por fecha de prestación y liquidaciones por período. Las facturas faltantes permanecen como cola operativa y no se infieren como pagadas.
- Si una cifra no coincide, revisar primero alcance, período y población. La corrección se realiza en la operación o conciliación de origen, nunca editando el reporte.
- Ejecutar el certificado de verdad financiera para los períodos revisados y conservar
certification.jsoncomo evidencia del corte.
Certificación rápida y repetible
Desde el backend, el control completo se ejecuta así:
npm run audit:financial-truth -- \
--periods=2026-05,2026-06,2026-07 \
--replays=2 \
--output-dir=/app/tmp/financial-truth
El certificado:
- calcula en forma independiente las posiciones de Reportes, Operaciones, Profesionales y Prestadores;
- exige que la partición económica cierre para el libro global y para cada período;
- excluye perfiles, deudas y pagos de prueba del universo operativo;
- verifica que cobros, reversas y recibos tengan la procedencia esperada;
- repite el cálculo y exige el mismo
functionalHash; - compara contadores económicos y de comunicaciones antes y después;
- devuelve
PASSsólo si todos los invariantes pasan, los hashes coinciden ysideEffectDeltaes cero.
El archivo certification.json es la evidencia vigente. Las cifras de capturas y ejemplos del manual son ilustrativas y no reemplazan ese corte. Si el hash cambia entre replays o aparece un delta, no se corrige ningún dato automáticamente: se detiene la validación y se investiga el proceso concurrente o la diferencia de criterio.
En la certificación SANDBOX del 20/07/2026, mayo, junio y julio pasaron 37 controles cruzados, los dos replays de cada período conservaron su hash funcional y las 20 tablas observadas tuvieron delta cero. Como control visual adicional, Cuotas filtrada por junio mostró 4.767 obligaciones: 1.710 abiertas y vencidas, 3.050 pagadas, 6 bonificadas y ninguna en revisión, exactamente igual al oráculo.





Pagos Online y Pasarelas
Pagos Online permite que colegiados, prestadores o usuarios asistidos paguen deudas desde el portal. El checkout online operativo actual se canaliza por NAVE. PSICOLE nunca almacena datos de tarjeta.
Flujo de pago
- El usuario ingresa a Pagar deuda.
- Selecciona una o más cuotas, cursos, trámites u obligaciones pendientes.
- Confirma el total.
- PSICOLE crea una solicitud en la pasarela habilitada.
- El usuario completa el pago en el checkout externo.
- Al volver o al refrescar estado, PSICOLE consulta la pasarela.
- Si el pago fue aprobado, se materializan operación, pago, recibo y eventos de auditoría.

Capturas auditadas desktop y mobile
La pantalla de pagos fue recapturada en escritorio y celular para validar selección de deuda, acciones de pago y lectura de estados sin corrimientos laterales. Estas capturas reflejan la superficie vigente para el usuario final.


NAVE y otros proveedores
La pasarela visible depende de la configuración de Dinero → Configuración. En sandbox se trabaja en modo demo o entorno inerte.
| Proveedor | Uso |
|---|---|
| NAVE | Checkout externo operativo para tarjeta, QR o billetera según configuración del proveedor |
| Mercado Pago | Fuera del alcance operativo actual; no debe presentarse como checkout activo |
| PAYWAY | Reservado para compatibilidad técnica de POS físico presencial; no es checkout online |
| MODO | Puede aparecer en trazabilidad histórica o conciliación, pero no como checkout online activo |
Datos sensibles
Los datos de tarjeta se cargan siempre en el sitio del proveedor. PSICOLE conserva referencias, estados y trazabilidad, no datos financieros sensibles.
Compatibilidad histórica
Si aparecen referencias viejas a Mercado Pago, PAYWAY o MODO en operaciones, extractos o liquidaciones, deben leerse como compatibilidad histórica o técnica. El criterio operativo vigente para pagos online es NAVE.
Operación y recibo
Al aprobarse un pago:
- Se crea o actualiza una operación
PAY-YYYY-NNNNNN. - Se imputan las deudas incluidas.
- Se emite recibo
REC-YYYY-NNNNNNcuando corresponde. - Se registran eventos: pago aprobado, operación creada, recibo creado y usuario responsable.
El recibo documenta el cobro; la operación explica todo el recorrido.
Pagos impersonados o asistidos
Un administrador puede asistir a un usuario en el proceso de pago cuando el modo de impersonación lo permite. La pantalla debe mostrar claramente que se está actuando como otra persona y registrar:
- Administrador actuante.
- Usuario representado.
- Operación creada.
- Resultado de la pasarela.
Recuperación de pagos
Si el usuario completa el checkout pero la vuelta al sistema falla, el operador puede recuperar el estado desde la referencia externa. El sistema debe evitar duplicados usando la clave idempotente de la operación y la referencia del proveedor.
Errores frecuentes
| Mensaje | Qué significa | Acción |
|---|---|---|
| No pudimos iniciar el pago | La pasarela no respondió o rechazó el payload | Reintentar y revisar configuración |
| Pago pendiente | La pasarela aún no confirmó el resultado | Refrescar estado antes de volver a pagar |
| Pago aprobado sin recibo visible | Falta materializar o refrescar el estado | Abrir la operación y ejecutar recuperación |


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.

2.1 Corroboracion del RUN mensual de cuotas
La conciliacion no genera cuotas ni modifica el tarifario. Su funcion en el ciclo mensual es corroborar que el dinero que figura en el banco coincide con lo que PSICOLE genero y cobro.
Para cuotas mensuales, el sistema revisa:
- identidad fuerte del pagador o referencia bancaria;
- deuda abierta del periodo correspondiente;
- coincidencia entre el movimiento bancario y
finalAmountde la deuda; - pagos de varias cuotas acumuladas en un mismo movimiento;
- ajustes contables aprobados cuando el pago bancario refleja un importe anterior al aumento mensual.
Si la diferencia de monto no corresponde a una regla aprobada, el movimiento queda para revision manual. La decision debe documentar si se trata de ajuste, redondeo, pago parcial, descuento no configurado, saldo a favor o ingreso no identificado.
2.2 Corroboracion de lotes CBU / COELSA
Cuando la sesion incluye movimientos relacionados con debito automatico, el operador debe cruzar tres piezas:
| Pieza | Control |
|---|---|
| Lote PSICOLE | Total y cantidad de DirectDebitTransaction generadas desde Debt.finalAmount. |
| Archivo o retorno bancario | Registros aprobados/rechazados, codigo de respuesta y monto debitado. |
| Deuda y operacion | Pago/recibo si fue aprobado, deuda pendiente ajustada si fue rechazado. |
Para aprobados, el importe conciliado debe coincidir con debitAmount del lote. Para rechazados, no debe crearse ingreso bancario ni recibo; el sistema conserva el intento y actualiza la deuda quitando solo el descuento por debito directo. Beneficios no CBU se mantienen.
Si el movimiento bancario agrupa varios debitos, el motor puede sugerir el lote como candidato por importe agregado. Antes de confirmarlo, revisar que la cantidad de registros aprobados y rechazados coincida con la respuesta del banco.
2.3 Auditoria cruzada SANDBOX mayo-julio 2026
Para certificar un RUN mensual de cuotas, Finanzas puede ejecutar una auditoria cruzada en SANDBOX antes de replicar reglas en produccion. La prueba de mayo/junio 2026 uso como fuentes primarias:
- detalle de presentacion de tarjetas de credito de mayo;
- detalle de presentacion de tarjetas de credito de junio;
- reportes de cobros CBU de mayo y junio;
- recibos generados por el sistema, padron, caja, profesionales y listados de prestadores como contraste.
La medicion contable principal no suma todas las fuentes como si fueran movimientos nuevos, porque algunas son vistas del mismo hecho economico. El denominador estricto es: tarjeta aceptada + CBU cobrado. Los rechazos no representan dinero cobrado y se analizan aparte.
Resultado certificado en SANDBOX:
| Vista | Eventos | Monto |
|---|---|---|
| Total aceptado/cobrado | 5.986 | $70.671.456,50 |
| Conciliado con destino seguro | 5.697 | $67.128.180,50 |
| Pendiente de destino estricto | 289 | $3.543.276,00 |
| Tasa de exito | 95,17% | 94,99% |
El remanente original de 360 eventos quedo tratado al 100%: 71 se aplicaron en SANDBOX, 123 ya estaban cerrados/no-PENDING, 152 quedaron como cola manual por identidad o destino insuficiente, 6 no tenian deuda PENDING compatible y 8 fueron bloqueados por regla bancaria estricta.
Regla de aplicacion segura para CBU:
- Identidad oficial fuerte.
- Deuda mensual
PENDINGdel periodo y monto compatible. - Una unica
BankTransactionexacta por referencia, CBU, credito aceptado, importe y estadoPENDING. - Marker de SANDBOX e idempotency key por deuda + transaccion bancaria.
- Verificacion posterior de deuda
PAID, operacion aprobada, pago, recibo, asiento, cuenta corriente y links documentales.
Si falta cualquiera de esas condiciones, el movimiento queda en cola manual. No se debe crear un pago por similitud de nombre, monto aproximado o padron historico sin fuente de desempate.
Cierre dual SANDBOX / PSICOLE del 10/07/2026
El mega RUN final inventario transferencias062026/ antes de registrar fuentes. De 32 archivos de primer nivel, 28 fueron admisibles como fuente real o referencia. Se excluyeron .DS_Store y tres salidas psicole-run-* generadas por corridas anteriores. Los tres RUNs registran 36 filas de fuente deduplicadas porque las referencias aplicables se declaran dentro de cada periodo; este conteo no significa 36 archivos bancarios distintos.
| Entorno | Eventos | Cerrados/aplicables | Revisión manual | Bloqueados | Pendientes totales | Excluidos | Contaminación test |
|---|---|---|---|---|---|---|---|
| SANDBOX | 9.232 | 6.052 | 1.288 | 114 | 1.402 | 1.778 | 0 |
| PSICOLE | 9.232 | 6.047 | 1.293 | 114 | 1.407 | 1.778 | 0 |
Cada entorno reconoce solo su propia evidencia: el RUN no copia pagos, recibos ni operaciones entre SANDBOX y PSICOLE. SANDBOX reconoce 6.052 cierres reales previos y PSICOLE 6.047. Cualquier cierre sostenido por un pago isTestRun, un profesional isTestAccount, una operacion inactiva o evidencia incompleta vuelve a pendiente o bloqueado.
En ambos entornos el control antes/despues confirmo cero altas de Payment, Receipt, PaymentOperation, Invoice, ReceivedInvoice, Notification, EmailLog, InternalMessage y tickets. Solo aumentaron tres RUNs, 36 fuentes registradas y 9.232 decisiones auditables. PSICOLE incorporo ademas los dos extractos generales faltantes, con 438 movimientos bancarios reales y sin materializacion economica.
Julio usa un extracto Galicia parcial y no incluye todavía archivos primarios completos de CBU y tarjeta. Su tasa no debe compararse con mayo o junio ni usarse para cerrar el mes.
2.4 RUN mensual auditable
Para conciliaciones mensuales de cuotas, el operador puede organizar la evidencia en un RUN mensual auditable. Este registro agrupa las fuentes del periodo y permite medir la tasa de conciliacion sin aplicar pagos por inferencia debil.
El panel esta dentro del flujo existente: Dinero -> Operaciones -> Conciliacion -> RUN mensual. No es una ruta separada ni reemplaza las sesiones de conciliacion; funciona como tablero de cierre por periodo.
El RUN mensual se usa para:
- Declarar fuentes primarias y auxiliares del periodo.
- Registrar hash, cantidad y monto por archivo o fuente.
- Ejecutar una simulacion
PREVIEWsobre fuentes registradas ya procesadas, incluyendo auxiliares como extractos Galicia. - Clasificar eventos en
AUTO_APPLY_STRICT,ALREADY_CLOSED,MANUAL_REVIEW,BLOCKEDoEXCLUDED. - Medir tasa de exito por eventos y por monto, separando evidencia auxiliar del denominador.
- Dejar una cola manual con motivo y proximo paso.
En esta capa, AUTO_APPLY_STRICT significa que el evento cumple condiciones para ser aplicado por el motor seguro; no habilita por si solo una aplicacion si falta idempotencia, deuda abierta compatible, transaccion bancaria unica o consentimiento operativo.
Uso del panel:
- Seleccionar el periodo mensual.
- Crear un RUN en modo
PREVIEW. - Registrar los extractos procesados del periodo como fuentes del RUN.
- Usar Simular PREVIEW para generar decisiones auditadas sin aplicar pagos.
- Recalcular metricas para ver fuentes, eventos tratados, monto aplicado/cerrado, cola manual y bloqueos.
- Usar el detalle de fuentes y decisiones como evidencia del cierre mensual o como cola de investigacion.
RUN operativo e historial de previews
Un período puede conservar varios previews porque cada recalculo histórico es inmutable. Para evitar que el operador elija una versión incompleta, sólo uno debe quedar marcado como RUN operativo:
- Revisar que el RUN elegido incluya el conjunto final de extractos, lotes y fuentes del período.
- Pulsar Usar como operativo y documentar el criterio en una nota de al menos 20 caracteres.
- El RUN elegido queda identificado con la insignia RUN operativo.
- Los previews
DRAFToPREVIEWEDanteriores pasan aCANCELLEDcomo históricos de sólo lectura. No se borran fuentes, decisiones ni métricas. - Usar Ver históricos únicamente para auditoría o comparación; no continuar conciliando sobre una versión reemplazada.
La promoción no aplica pagos ni modifica deudas. Si el RUN operativo necesita nueva evidencia, se registran las fuentes y se vuelve a simular esa misma versión; no se crea otro RUN sólo para actualizar métricas. Un RUN APPLIED o CLOSED nunca se cancela automáticamente.
El boton Registrar extractos solo vincula archivos ya cargados y procesados en conciliacion bancaria. No crea pagos, no modifica deudas, no cambia estados profesionales y no envia correos.
El boton Simular PREVIEW clasifica las fuentes registradas. Si una transaccion ya esta vinculada a una operacion, queda como ALREADY_CLOSED; si existe una PaymentOperation aprobada de un re-run previo con evidencia unica por periodo, archivo, referencia y monto, tambien queda ALREADY_CLOSED sin crear pagos nuevos; si existe un match estricto con deuda abierta del periodo y monto compatible, queda como AUTO_APPLY_STRICT; si requiere decision humana, queda como MANUAL_REVIEW; si no tiene destino suficiente, queda como BLOCKED; y si la fuente informa rechazo o exclusion, queda como EXCLUDED.
Un RUN completo puede tardar más de un minuto porque vuelve a evaluar miles de eventos. La interfaz inicia un trabajo auditable, consulta su estado y mantiene el botón ocupado hasta recibir COMPLETED o FAILED; el proxy no interrumpe la tarea. El operador debe esperar la confirmación final y no crear otro PREVIEW. Un reintento mientras el trabajo está activo reutiliza el mismo identificador, y la simulación actualiza la misma versión operativa de forma idempotente.
La reserva del trabajo se conserva en base de datos durante 15 minutos. Por eso otro navegador, una recarga o una segunda instancia del backend reconocen el mismo PREVIEW activo y no comienzan una simulación paralela. Si el proceso queda realmente abandonado, la reserva vence y el siguiente intento la recupera de forma auditada.
Cada simulación reemplaza el universo completo de decisiones dentro de una sola transacción: bloquea el RUN, verifica que la fuente pertenezca a ese RUN, elimina las decisiones anteriores, inserta el nuevo universo y actualiza métricas y manifiesto. Si cualquier paso falla o excede el tiempo permitido, toda la escritura se revierte; nunca queda una mezcla parcial de decisiones viejas y nuevas.
El manifiesto visible del PREVIEW incluye tres huellas SHA-256:
| Huella | Qué inmoviliza | Uso operativo |
|---|---|---|
sourceUniverseHash |
Fuentes, roles, estados, cantidades e importes registrados. | Detecta que se agregó, quitó o cambió una fuente. |
eventUniverseHash |
Eventos normalizados que realmente fueron evaluados. | Demuestra que dos simulaciones recorrieron el mismo universo. |
decisionHash |
Estado, destino, deuda, operación e importe de cada decisión. | Demuestra que dos simulaciones produjeron el mismo resultado. |
Una certificación idempotente exige dos simulaciones consecutivas con las tres huellas iguales. También compara antes y después los conteos, importes y últimas actualizaciones de deudas, pagos, recibos, operaciones, saldos a favor, mensajes, notificaciones, correos y tickets. El resultado sólo pasa cuando economicStateStable=true; certificar PREVIEW no materializa cobros.
El certificador persiste un reporte RUNNING después de cada período. Si una simulación falla, escribe FAILED con período, RUN, código de error y comparación económica antes de terminar; una ejecución larga nunca se considera aprobada por ausencia de archivo o por un log incompleto. Sólo status=COMPLETED y passed=true constituyen evidencia válida.
Antes de intentar un match de deuda, el RUN asigna una ruta operativa a cada movimiento. Esta clasificacion evita que el extracto bancario general se trate como un unico lote de cuotas.
| Ruta operativa | Que agrupa | Decision esperada |
|---|---|---|
MEMBERSHIP_FEE |
CBU, tarjeta o transferencia con importe compatible con cuota del periodo. | Puede cerrar solo si hay deuda unica y regla estricta; multiples cuotas quedan manuales. |
LEGACY_PERIOD_ADJUSTMENT |
Importe compatible con cuota anterior o diferencia aprobada por aumento mensual. | Revision manual o ajuste auditable; no se autoaplica por inferencia. |
PROCEDURE_FEE / COURSE_FEE |
Matricula, certificados, tramites, cursos o cuotas de curso. | Sale del motor de cuotas mensuales y se revisa contra el concepto correspondiente. |
INSTITUTIONAL_SETTLEMENT |
Liquidaciones Payway/NAVE/Mercado Pago/MODO, recaudacion bancaria, obras sociales o proveedores. | EXCLUDED del denominador de cuota; queda como evidencia para conciliacion institucional. |
UNRESOLVED_PERSONAL_TRANSFER |
Transferencias entrantes sin tarifa ni destino unico. | MANUAL_REVIEW hasta identificar deuda, tramite, plan, caja u otra causa. |
NON_INBOUND_MOVEMENT |
Debitos, movimientos de egreso o importe cero. | EXCLUDED porque no representan cobro de cuota. |
Las resoluciones de re-run se incorporan al RUN mensual como evidencia de cierre, no como aplicacion nueva. El sistema exige que la operacion aprobada tenga pago aprobado, deuda del periodo y metadata o link documental de origen. Si aparecen varias operaciones compatibles, el evento sigue bloqueado para desempate humano.
Los perfiles isTestAccount, los pagos isTestRun y cualquier operación que sólo se sostenga en esa evidencia quedan fuera del cierre. El movimiento bancario real se conserva y vuelve a revisión sin profesional; nunca se elimina ni se reasigna automáticamente. La misma guarda aplica aunque nombre, referencia e importe coincidan con datos de un seed.
Como leer el resultado despues de Simular PREVIEW:
| Campo del panel | Que significa | Que debe pasar |
|---|---|---|
Fuentes registradas |
Archivos o extractos procesados vinculados al RUN. | Deben incluir fuentes primarias del periodo, por ejemplo CBU y tarjeta, y auxiliares de auditoria como Galicia si se van a contrastar. |
Eventos tratados |
Total de filas/eventos clasificados por el PREVIEW. Incluye cerrados, bloqueados y excluidos. | Debe coincidir con la suma de decisiones auditadas del RUN. |
Aplicable / cerrado |
Eventos ya cerrados por evidencia o aplicables por regla estricta. | Sirven como cierre auditable; el PREVIEW no crea pagos nuevos. |
Revisión manual |
Eventos con candidato suficiente pero que requieren confirmacion humana. | Deben revisarse antes de aplicar cualquier accion. |
Bloqueados |
Eventos sin destino unico, sin operacion compatible o con multiples operaciones compatibles. | Son la cola de investigacion; no se aplican automaticamente. |
Excluidos |
Eventos que no integran el denominador conciliable, por rechazo o regla de exclusion. | No son pendientes de cobro exitoso; se conservan como evidencia. |
Pendiente auditable |
Monto de manual + bloqueados, excluyendo rechazos. | Debe tender a cero con mas evidencia o quedar justificado por cola manual. |
Dentro de Decisiones auditadas, el filtro manual se divide en Manual · con profesional y Manual · sin profesional. El primer grupo ya tiene una identidad sugerida para verificar contra deuda e importe; el segundo requiere buscar al profesional o clasificar el movimiento como ruido, liquidacion institucional u otro destino operativo. Al usar Abrir matching, el alcance seleccionado se conserva y aparece el mismo selector en Conciliacion rapida. En los casos con profesional, la identidad auditada por el RUN se muestra como candidato supervisado; no habilita la aplicacion si no se selecciona una deuda y se cumplen las guardas de importe.
Cuando una deuda ya contiene un descuento oficial, la fila muestra Base, descuento y deuda exigible. CBU/COELSA usa la regla vigente del 20% y tarjeta de crédito la del 30%, salvo una regla histórica explícita del período. Si el ingreso supera la deuda ya descontada, no se agrega un segundo descuento: se aplica la deuda exigible y el remanente se registra como saldo a favor. Si la deuda conserva el importe base y el archivo de tarjeta o CBU trae exactamente el valor oficial descontado, el motor entrega el ajuste contable aprobado y habilita el match con esa evidencia.
No convertir un conflicto de medio en pago parcial
Si el extracto informa tarjeta de credito (30%) y la deuda seleccionada fue generada con CBU / debito bancario (20%), PSICOLE bloquea Match, Pago parcial y Aplicar + saldo. Esa diferencia no demuestra un pago incompleto: normalmente indica que se eligio otro profesional, que la adhesion de cobro no coincide o que la deuda fue generada con una regla incorrecta. El operador debe verificar nombre completo, DNI/CUIT, matricula y medio activo antes de continuar. Nunca debe compensar el 10% como pago parcial.
Para mayo de 2026, los importes de control son:
| Regla | Calculo | Deuda exigible |
|---|---|---|
| General | $15.615 sin descuento | $15.615 |
| CBU / debito bancario | $15.615 - 20% | $12.492 |
| Tarjeta de credito | $15.615 - 30% | $10.930,50 |
Un movimiento de tarjeta por $10.930,50 sólo puede imputarse a una deuda compatible con tarjeta 30% y con identidad suficiente. Si esa deuda ya posee una operacion aprobada, la decision del RUN queda de solo lectura y Abrir operacion lleva a la evidencia existente; no se habilita un segundo cobro.
Resultado final SANDBOX por periodo: mayo registra 4.410 eventos, 2.953 cerrados/aplicables, 479 manuales, 114 bloqueados y 864 excluidos; junio registra 4.669 eventos, 3.096 cerrados/aplicables, 705 manuales y 868 excluidos; julio parcial registra 153 eventos, 3 cerrados/aplicables, 104 manuales y 46 excluidos. La cola manual consolidada contiene 249 eventos con profesional y 1.039 sin profesional. Sumando los bloqueados, la cola pendiente completa contiene 1.402 eventos, 1.153 sin profesional.
Resultado final PSICOLE por periodo: mayo registra 2.952 cerrados/aplicables, 480 manuales y 114 bloqueados; junio 3.095 cerrados/aplicables y 706 manuales; julio parcial 107 manuales. La cola pendiente completa contiene 1.407 eventos: 251 con profesional y 1.156 sin profesional al incluir bloqueados. La diferencia neta contra SANDBOX es de cinco decisiones y debe conservarse como estado propio del entorno, no corregirse copiando operaciones.
Certificación de un rerun antes de aplicar
Una tasa de matching alta no demuestra que el RUN sea correcto. Finanzas debe separar dos gates:
| Gate | Qué demuestra | Condición mínima |
|---|---|---|
PREVIEW seguro |
La simulación no introdujo una decisión automática insegura. | Mismo universo de fuentes y eventos que el baseline; cero perfiles test; cero reasignaciones de profesional; cero AUTO_APPLY_STRICT con identidad, deuda, período, estado o medio incompatibles; cero efectos económicos o comunicaciones. |
Certificado para aplicar |
Los cierres existentes y las decisiones aplicables también cierran contablemente. | Todo lo anterior, más operación activa, evidencia no revertida, profesional consistente, ausencia de duplicados y monto de operación igual a la suma de pagos aprobados y saldos a favor vinculados. |
El procedimiento reproducible es:
- Inventariar las fuentes con nombre, rol, período, cantidad de eventos y SHA-256. Marcar salidas derivadas como
EXCLUDED; nunca reingestarlas. - Guardar un snapshot recuperable y conteos de deudas, pagos, operaciones, recibos, saldos, matches, facturas y comunicaciones.
- Elegir un baseline y congelar su universo por
period + eventKeyy por extracto procesado. Un archivo nuevo exige un baseline nuevo; no se compara como si fuera la misma prueba. - Ejecutar únicamente
PREVIEW. Comparar cada transición de estado y cualquier cambio de profesional. - Desglosar cada
AUTO_APPLY_STRICTpor regla: deuda exacta, CBU 20%, tarjeta 30%, ajuste de aumento u otra regla aprobada. Un match sin regla atribuible no certifica. - Auditar los
ALREADY_CLOSED: operación, pago, deuda, recibo, reversas, medio y asignación total del importe. - Repetir los conteos. Fuera de RUN, fuentes y decisiones, la diferencia debe ser cero.
- Promover el RUN sólo si ambos gates pasan. Si pasa únicamente
PREVIEW seguro, se puede investigar y exportar la cola, pero no materializar pagos.
Controles técnicos del despliegue manual:
# Dos PREVIEW consecutivos por cada RUN operativo; no aplica dinero.
npm run certify:monthly-preview-idempotency -- \
--periods=2026-05,2026-06,2026-07 \
--output=/app/tmp/monthly-preview-idempotency.json
# Auditoría de descuentos, beneficios, planes, saldos, prestadores y cobertura.
npm run audit:monthly-financial-integrity -- \
--periods=2026-05,2026-06,2026-07 \
--require-manifest=true \
--strict-test-data=true
# Sólo ante un critical de estado de deuda de plan: generar el plan, sin aplicar.
npm run repair:payment-plan-debt-status -- \
--target=PSICOLE \
--periods=2026-05,2026-06,2026-07 \
--output=/app/tmp/payment-plan-debt-status-plan.json
Antes de certificar un volumen mensual, verificar que exista el índice payments_debt_status_operation_idx. El índice sólo acelera la búsqueda de pagos aprobados por deuda y operación; no cambia importes ni estados. Su migración se ejecuta con ALGORITHM=INPLACE y LOCK=NONE. Un mantenimiento ANALYZE TABLE payments puede actualizar estadísticas, pero la consulta de cierre no depende de que el optimizador elija el índice: lo declara expresamente.
La auditoría distingue critical de warning. Un critical impide promover el RUN y requiere evidencia o reparación separada; un warning se investiga y documenta, pero no se convierte automáticamente en corrupción. En una deuda ordinaria, Debt.finalAmount representa el saldo exigible restante cuando hubo pago parcial o aplicación de crédito. En una deuda IN_PAYMENT_PLAN, en cambio, conserva la obligación congelada que el asignador usa para distribuir las cuotas del plan; el saldo restante se deriva de sus asignaciones aprobadas. La cobertura se calcula una sola vez con pagos aprobados y asignaciones de plan, sin volver a sumar la aplicación del saldo a favor que ya dejó su pago trazable.
Cierre de deudas incluidas en un plan de pago
Una deuda incorporada a un plan no se reduce manualmente con cada cuota. Permanece IN_PAYMENT_PLAN mientras la suma de asignaciones liquidadas sea menor que su obligación congelada. Cuando la cobertura llega al total exacto, pasa a PAID usando como fecha de pago la evidencia liquidada más reciente. El plan, sus cuotas, operaciones, pagos, recibos, importes y asignaciones no se reescriben durante ese cierre.
Si la auditoría detecta una deuda totalmente cubierta que todavía sigue abierta, Finanzas no debe corregirla desde la ficha ni volver a conciliar el ingreso. El procedimiento seguro es:
- Generar un plan read-only con
repair:payment-plan-debt-statuspara el entorno y períodos correctos. - Exigir cero filas bloqueadas y revisar profesional, deuda, plan, cuota pagada y operación aprobada de cada fila.
- Aplicar únicamente el archivo congelado, con su SHA-256 y cantidad exacta autorizada, manteniendo correos, scheduler y pagos online deshabilitados.
- Repetir el mismo
apply: debe informar cero actualizaciones nuevas y todos los casos como ya aplicados. - Volver a ejecutar la auditoría estricta y dos PREVIEW consecutivos. La promoción sólo continúa con
criticalTotal=0, hashes idénticos y estado económico/comunicacional estable.
El reparador falla cerrado ante perfiles o deudas test, planes no operativos, más de un plan por deuda, identidad cruzada, cuotas sin operación aprobada, asignación parcial, sobreasignación o evidencia modificada después de generar el plan. No crea recibos, pagos, operaciones, saldos, asientos, mensajes, correos, tickets ni transacciones bancarias.
Control SANDBOX del 12/07/2026 sobre mayo, junio y julio parcial:
| Resultado | Cantidad |
|---|---|
| Universo comparado | 9.232 eventos |
| Ya cerrados con evidencia | 5.985 |
AUTO_APPLY_STRICT |
182 |
| Revisión manual | 1.287 |
| Excluidos | 1.778 |
| Reasignaciones de profesional | 0 |
| Efectos económicos o comunicaciones del PREVIEW | 0 |
Los 182 automáticos quedan explicados por regla: 11 ajustes oficiales por medio de pago (7 CBU y 4 tarjeta), 36 coincidencias exactas contra deudas que ya tenían el descuento correcto (33 CBU y 3 tarjeta), 10 ajustes aprobados por aumento mensual y 125 coincidencias exactas provenientes del extracto general. Otros 248 movimientos tienen profesional identificado, pero no una deuda exacta y elegible; permanecen manuales.
Una segunda corrida independiente (RERUN_CONFIDENCE_V2) sobre el mismo manifiesto reprodujo los 9.232 eventos sin reutilizar decisiones: cero eventos agregados o faltantes, cero cambios de estado, cero reasignaciones y cero efectos económicos o comunicaciones. Sólo se crearon 3 RUNs, 48 fuentes y 9.232 decisiones de auditoría. Esta repetición es obligatoria cuando se modifica una regla de matching: una mejora que no puede reproducirse con marker nuevo no se considera confiable.
La primera certificación encontró 62 operaciones históricas con $199.558,06 sin asignación completa: 18 conflictos explícitos CBU/tarjeta, 43 cobros automáticos contra cuotas con beneficio jubilatorio y una diferencia de redondeo en julio. El hallazgo no fue creado por el rerun. Antes de corregir se generó un plan por operación, backup completo y dry-run; la aplicación quedó limitada por identidad fuerte, match activo único con score 100, mismo profesional/deuda, un pago y recibo aprobados, asiento DRAFT, fuente real y tarifario oficial del período.
La reparación SANDBOX del 12/07/2026 resolvió los 62 casos:
- 18 deudas históricas con fuente CBU se revalorizaron al importe oficial de débito bancario 20%, actualizando pago, recibo, snapshot y asignación contable sin crear saldo artificial;
- 43 cobros sobre cuotas jubilatorias conservaron la deuda al 50% y registraron el excedente como saldo a favor;
- una diferencia bancaria de
$2,56quedó como saldo a favor de redondeo; - se crearon 44 saldos por
$171.086,56; no se generaron mensajes, correos, facturas, avisos, jobs AFIP ni nuevas transacciones bancarias; - el segundo
applydevolvió los 62 casos comoalreadyApplied, sin escrituras nuevas.
Una tercera corrida independiente (RERUN_CONFIDENCE_V3) sobre el mismo manifiesto volvió a producir exactamente 9.232 eventos: 5.985 ALREADY_CLOSED, 182 AUTO_APPLY_STRICT, 1.287 manuales y 1.778 excluidos. Comparada con V2 tuvo cero eventos agregados o faltantes, cero cambios de estado, cero reasignaciones de profesional y cero efectos económicos o comunicaciones. Los 21 controles de integridad quedaron en cero y ambos gates pasaron: previewSafe=true y certifiedForApply=true.
Certificación v5 de descuentos y estado financiero del 13/07/2026
Antes de promover el refactor de conciliación se repitieron dos PREVIEW consecutivos sobre los tres RUN operativos. Mayo, junio y julio parcial conservaron exactamente sus universos y produjeron el mismo sourceUniverseHash, eventUniverseHash y decisionHash con el algoritmo monthly-reconciliation-v5. El snapshot protegido de deudas, pagos, recibos, operaciones, saldos a favor y comunicaciones no cambió.
La auditoría financiera read-only recorrió 14.311 cuotas mensuales reales y 11.373 snapshots de descuento. El desglose certificado fue:
| Regla aplicada | Snapshots | Validación exigida |
|---|---|---|
| CBU / COELSA 20% | 7.061 | Método BANK_DEBIT, porcentaje 20%, deuda final oficial del período y snapshot único. |
| Tarjeta de crédito 30% | 3.110 | Método CREDIT_CARD, porcentaje 30%, deuda final oficial del período y snapshot único. |
| Jubilación | 1.166 | Regla vigente o snapshot histórico; nunca acumulada con CBU/tarjeta en la misma cuota. |
| Primera matrícula | 36 | Bonificación exclusiva según ventana de alta. |
El resultado fue passed=true, criticalTotal=0. También se verificaron 384 reglas activas, 90 planes de pago, 168 conceptos externos, 55 saldos a favor, 582 órdenes de prestadores y un solo RUN operativo por período. Una cuota con descuento pero sin DebtBenefitApplication, con dos snapshots de medio, con porcentaje distinto de 20/30 o con importe final incompatible ahora es un error crítico y bloquea la promoción.
La certificación de procedencia de extractos exige período, cantidad de eventos y SHA-256 idénticos al manifiesto congelado. Certificar una fuente no aplica pagos. En el despliegue manual se mantienen DISABLE_ALL_EMAILS=true, PSICOLE_DISABLE_EMAIL_DELIVERY=true, ENABLE_SCHEDULER=false y ONLINE_PAYMENTS_ENABLED=false; cualquier diferencia en esos interruptores cancela la prueba.
Las reparaciones de integridad se preparan por alcance independiente: benefits reconstruye snapshots o revaloriza únicamente deudas abiertas sin cobertura, y plans contrasta plan, fila, nombre y estado contra el XLSX firmado. El plan resultante congela destino, alcance, identificadores, estado previo y SHA-256. Las cantidades se derivan del entorno auditado; nunca se aceptan números hardcodeados de SANDBOX como autorización para PSICOLE. Los pagos ya realizados, las coberturas ambiguas y las filas bloqueadas quedan fuera de ambas acciones y requieren un plan económico separado.
Checklist de promoción:
- Hacer backup de base y artefactos, con SHA-256 y ruta de rollback.
- Ejecutar el plan de fuentes y descuentos sin
--apply; debe informar cero cambios no explicados. - Ejecutar la auditoría estricta;
criticalTotaldebe ser cero. - Repetir dos PREVIEW por cada RUN operativo y exigir hashes iguales y
economicStateStable=true. - Desplegar backend y frontend sin ejecutar generación de cuotas, matching económico ni envío de lotes.
- Repetir auditoría, hashes, healthcheck, logs y prueba visual escritorio/móvil.
- Verificar que pagos, recibos, facturas, mensajes, notificaciones, correos, tickets y transacciones bancarias no hayan aumentado por el despliegue.
Certificar no es aplicar en masa
certifiedForApply=true demuestra que el universo, las reglas y los cierres económicos son consistentes. No materializa automáticamente los 182 AUTO_APPLY_STRICT, no resuelve los 1.287 manuales y no completa las 125 facturas pendientes de prestadores. La versión V3 se conserva como evidencia independiente hasta que Finanzas decida promoverla como RUN operativo y aprobar una acción económica controlada.
No se agregan capturas individuales de la reparación porque muestran nombres, deudas, recibos y referencias bancarias. La evidencia pública reutiliza las vistas genéricas de RUN en escritorio y móvil; el detalle queda respaldado por invariantes de base, auditoría autenticada y el reporte técnico V3.
El matching abierto desde un RUN mensual conserva su período económico. La cabecera muestra de forma explícita el período activo y el alcance de deuda, por ejemplo RUN julio de 2026 · Deudas exigibles hasta julio de 2026. Sólo ofrece deudas del período del RUN o anteriores; nunca muestra una cuota futura como destino de una transferencia histórica. Si el RUN identificó al profesional pero no existe una deuda cobrable dentro de ese alcance, el panel informa esa situación y no habilita una imputación. Esto evita que una transferencia de mayo termine proponiéndose contra una cuota de julio.
La certificación falla cerrada si encuentra una fuente activa, una transacción, una decisión o una deuda vinculada con período posterior al RUN. Un movimiento de julio puede mostrar deudas impagas de mayo, junio y julio porque todas son exigibles al cierre de julio; ese mismo movimiento no puede pertenecer a un RUN de mayo.
Para revisar los bloqueados:
- Entrar a Dinero -> Operaciones -> Conciliacion -> RUN mensual.
- Seleccionar el periodo, por ejemplo
2026-06. - Elegir el RUN del historial, por ejemplo
MRC-2026-06-A0C2CA4F. - En Decisiones auditadas, cambiar el filtro a Bloqueadas.
- Usar Exportar CSV para descargar el listado completo del filtro activo, no solo los primeros eventos visibles. El archivo incluye
operationalRoute,operationalBucketyoperationalDispositionpara depurar por naturaleza del movimiento. - Revisar cada evento por fuente, monto, referencia y motivo. Si el motivo dice
Sin operacion, pago o match compatible, falta un destino unico en PSICOLE. Si diceMultiples operaciones aprobadas compatibles, requiere desempate humano antes de cerrar. - En bloqueados con movimiento bancario, usar Abrir matching para ir a conciliacion rapida con esa transaccion preseleccionada.
Para depurar rechazados, cambiar el filtro a Excluidas y descargar el CSV. Esos eventos conservan estado, motivo, referencia, titular y CBU de la fuente, pero no se abren para aplicar match porque el banco o la tarjeta los informo como rechazados.
Los ajustes mensuales aprobados para diferencias de cuota se administran desde Dinero -> Configuracion -> Ajustes conciliacion. El motor de candidatos lee MONTHLY_FEE_RECONCILIATION_ADJUSTMENTS, de modo que un nuevo periodo no requiere cambiar codigo para reconocer una diferencia aprobada.
Certificacion integral del 18/07/2026
Los RUNs operativos de mayo, junio y julio se reconstruyeron en modo PREVIEW con las fuentes primarias y auxiliares registradas, incluidas cuotas, CBU, tarjeta, extractos Galicia, planes, beneficios, cursos y prestadores. Cada período conserva un único RUN operativo; los RUNs anteriores permanecen como historial auditable y no compiten para aplicar decisiones.
| Control | SANDBOX | PSICOLE |
|---|---|---|
| Decisiones evaluadas | 9.232 | 9.232 |
| Cerradas o estrictas | 6.164 | 6.148 |
| Revisión manual | 1.290 | 1.306 |
| Excluidas | 1.778 | 1.778 |
| Categorías críticas con errores | 0 | 0 |
La auditoría estricta recorrió 14.311 cuotas reales en cada entorno y confirmó ausencia de transacciones futuras, deudas futuras seleccionables, identidades de prueba, matches bancarios activos duplicados y efectos económicos creados por el PREVIEW. Dos ejecuciones consecutivas reprodujeron el mismo universo funcional. Las diferencias de manual/cerrado entre entornos corresponden a decisiones humanas ya aplicadas y no se sincronizan por fuerza.
Los marcadores vigentes terminan en 20260718_PROVIDER_PLANS_JULY_V1. La generación de julio se repitió para 4.722 profesionales elegibles: creó 0 cuotas y reutilizó 4.722 por generationKey. Durante toda la certificación permanecieron deshabilitados scheduler, correos, avisos y pagos online; no se crearon cobros, recibos, saldos ni transacciones bancarias reales.
Este cierre habilita la conciliación mensual controlada por operador. No habilita pagos automáticos a prestadores: las órdenes sin nomenclador y la cola de liquidación siguen siendo un gate independiente.
Certificacion operativa PSICOLE del 21/07/2026
El cierre total de mayo, junio y julio incorporó el segundo extracto parcial de Galicia de julio (438 créditos, sin superposición con el parcial anterior) y promovió un único RUN operativo por período. El replay de la importación insertó 0 movimientos, por lo que la fuente quedó confirmada como idempotente.
| Resultado consolidado | Cantidad |
|---|---|
| Eventos auditados | 9.670 |
| Ya cerrados con evidencia | 6.130 |
| Excluidos por regla o fuente | 1.958 |
| Revisión manual | 1.582 |
| Revisión con profesional identificado | 282 |
| Revisión sin profesional identificado | 1.300 |
| Aplicaciones estrictas pendientes | 0 |
| Bloqueados | 0 |
La cola manual consolidada representa $57.596.140,74. Es una cola de clasificación e imputación asistida, no deuda nueva ni dinero perdido. Las filas con profesional identificado se revisan primero; las restantes deben clasificarse como colegiación, arancel, curso, liquidación institucional, proveedor, transferencia interna o movimiento no acreditado antes de elegir un destino económico.
La certificación agregó dos guardas al PREVIEW estricto: una misma deuda no puede ser reclamada por dos movimientos del RUN y un movimiento con cualquier historial de operación económica no vuelve a presentarse como autoaplicable. Los 18 casos detectados por estas guardas quedaron en revisión manual. Dos replays consecutivos de cada período reprodujeron el mismo hash funcional y dejaron delta cero en deudas, pagos, recibos, operaciones, saldos, banco, planes, prestadores, tickets y comunicaciones.
Qué quedó aplicado
Se registró el nuevo extracto y se actualizaron RUNs, fuentes, decisiones, métricas y la referencia operativa de cada período. No se materializaron pagos, recibos, saldos a favor ni imputaciones nuevas. La aplicación económica continúa deshabilitada y cada pendiente debe resolverse desde la conciliación rápida con identidad, deuda, importe, nota e idempotencia válidos.
Sincronizacion CBU desde extracto
La sincronizacion de marca CBU desde un extracto debe usarse como previsualizacion de master-data. Por defecto no modifica profesionales. Para aplicar cambios se exige apply=true, motivo de auditoria y guard de produccion; si la identidad proviene solo de nombre truncado, el caso debe quedar para revision humana.
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 identidad, deuda e importe. Dentro de un RUN mensual, la única deuda del mismo período queda preseleccionada; una decisión estricta ya auditada conserva prioridad. Si hay más de una deuda posible para el período, el sistema no elige y exige selección explícita. Si la suma seleccionada coincide a centavos, hacer clic en Match.
- Si el importe no coincide, usar la opción que corresponda dentro de la misma fila:
- Aplicar + saldo: cancela la deuda y registra el excedente como saldo a favor disponible.
- Pago parcial: aplica el ingreso a una sola deuda y conserva el remanente pendiente.
- Ignorar / Excluir: excluye la transacción cuando no corresponde a un profesional.
- Las diferencias requieren una nota de aprobación de al menos 10 caracteres.
- Repetir hasta resolver todas las transacciones pendientes.
Pago parcial se usa únicamente cuando la identidad y el medio de cobro coinciden y el banco acredita menos que la deuda exigible por un hecho real documentado. No se usa para corregir una diferencia entre CBU 20% y tarjeta 30%, ni para volver a cobrar una decision ALREADY_CLOSED.
Resolver una cuota entre CBU 20% y tarjeta 30%
Este flujo se usa cuando el ingreso coincide exactamente con uno de los importes oficiales del período, pero la deuda conserva un método de cobro ausente, incorrecto o heredado. Está disponible en PSICOLE como acción controlada dentro del matching existente. No es una regla automática: siempre exige evidencia única, nota y aprobación humana.
| Alternativa | Regla sobre la cuota mensual | Acción visible |
|---|---|---|
| Caja de ahorro / CBU | 20% sobre la base oficial | Aplicar 20% |
| Tarjeta de crédito | 30% sobre la base oficial | Aplicar 30% |
La acción sólo aparece cuando el sistema puede demostrar todas estas condiciones:
- identidad global única por CUIT/DNI o nombre completo exacto;
- extracto, transacción, RUN y deuda del mismo período;
- una sola deuda mensual abierta y una sola alternativa oficial compatible a centavos;
- tarifario oficial vigente para el período;
- ausencia de jubilación, beneficio parental u otro descuento incompatible;
- un único snapshot de medio de pago y procedencia económica confiable;
- ningún conflicto entre el tipo explícito del extracto y el método propuesto.
Procedimiento del operador:
- Abrir el movimiento desde el RUN operativo del mes y comprobar período, titular, profesional y matrícula.
- Revisar el bloque Método 20%/30% por confirmar: base, descuento, saldo exigible y nivel de evidencia. Si el profesional tiene deudas de meses anteriores, comprobar que la fila marcada diga RUN: cuota del mismo período. Una decisión estricta existente puede señalar otra deuda; cualquier duplicado o ambigüedad exige selección manual.
- Si la evidencia es correcta, pulsar Aplicar 20% o Aplicar 30% e ingresar una nota de al menos 10 caracteres.
- Confirmar sólo una vez. El backend recalcula la regla bajo lock, actualiza únicamente el snapshot de esa deuda y materializa pago, recibo, operación y decisión del RUN en una transacción atómica e idempotente.
- Verificar que el movimiento salga de la cola manual y que la ficha del profesional muestre la cuota cancelada con su medio y operación trazables.
La resolución no cambia la adhesión maestra del profesional. Si corresponde corregir el método futuro, se hace por el circuito de adhesión después de revisar la evidencia; nunca se infiere una suscripción permanente desde una sola transferencia. Si hay dos alternativas posibles, monto aproximado, identidad ambigua, beneficio concurrente, fuente test o contradicción del extracto, no aparece la acción y el caso permanece en revisión.
Si una conciliación histórica fue revertida, la operación cancelada no se borra ni se reutiliza. PSICOLE sólo permite supersederla cuando el pago está rechazado o reintegrado, el recibo está anulado, los movimientos de cuenta corriente netean cero y no existen vínculo bancario activo, saldo a favor, reversión, match confirmado, trabajo AFIP ni asiento contabilizado. En ese caso archiva la clave de fuente anterior, anula únicamente asientos DRAFT y enlaza en ambos sentidos la operación cancelada con su reemplazo. Todo ocurre dentro de la misma transacción del nuevo match. Si queda cualquier efecto económico o contable, la acción se bloquea para revisión y no modifica deuda, pago, recibo, operación ni decisión del RUN.
Antes de habilitar el piloto se ejecuta project-payment-method-resolution.mjs en modo sólo lectura. El control debe repetirse dos veces y producir el mismo resultado normalizado, con economicCountsUnchanged=true. La proyección SANDBOX del 14/07/2026 detectó 11 casos: 7 CBU 20%, 4 tarjeta 30%, 1 conflicto histórico que exige aprobación explícita y 0 desacuerdos entre el profesional/deuda del RUN y el destino calculado. La proyección no creó pagos, recibos, operaciones, saldos, notificaciones ni correos.
La promoción manual a PSICOLE repitió el mismo protocolo antes de habilitar el flag: dos proyecciones con el flag apagado, dos con el flag encendido y dos PREVIEW consecutivos para cada RUN operativo de mayo, junio y julio. Se detectaron 11 candidatos por $132.710,00 (7 CBU y 4 tarjeta), con un conflicto explícito y cero desacuerdos de destino. Ningún candidato fue aplicado durante la certificación; pagos, recibos, operaciones, deudas, saldos, notificaciones y correos conservaron sus contadores.
La auditoría de producción recorrió 14.311 cuotas mensuales y 11.373 snapshots de descuento, además de reglas de jubilación y primera matrícula, planes de pago, conceptos externos y órdenes de prestadores. El resultado fue criticalTotal=0. Los antecedentes parentales vencidos o pendientes de revisión no se activaron por inferencia. La prueba visual autenticada confirmó filtros, acciones 20%/30%, conflicto visible, deuda del período, escritorio y móvil sin desborde, sin ejecutar acciones económicas.
Habilitado no significa automático
El flag permite que la UI proponga Aplicar 20% o Aplicar 30% sólo en casos elegibles. No cambia cuotas, adhesiones ni estados por sí solo. El operador debe revisar cada caso y PSICOLE vuelve a validar todas las guardas dentro de la transacción antes de escribir.
Después de materializar tres muestras auditadas, incluida una operación histórica cancelada y económicamente neutralizada, quedaron 8 casos por $96.795,50: 5 CBU 20% y 3 tarjeta 30%. Los siete casos no conflictivos restantes se aprobaron después, uno por uno, desde la UI: 4 CBU 20% y 3 tarjeta 30%. En total se resolvieron 10 casos por $120.218,00; cada uno creó exactamente un pago, un recibo, una operación, un match y una auditoría, sin crear saldos a favor, notificaciones ni correos.
El caso residual por $12.492,00 se mantuvo bloqueado hasta contrastar Galicia, recibos y respuestas del procesador por período. Galicia y el recibo identificaron un pago bancario de mayo; no existía tarjeta en la fuente de mayo y la tarjeta hallada en junio había sido rechazada. Con backup y aprobación explícita se reclasificó únicamente la deuda de mayo a CBU 20%. La adhesión maestra y las cuotas de junio/julio no cambiaron.
La proyección de cierre se repitió dos veces con el mismo hash normalizado 4c8ed073e07c73abb30aabedb992624db500f65bd87c66b4d0a254d4c2ed57b1, economicCountsUnchanged=true, cero casos restantes, cero conflictos y cero desacuerdos de destino. En total se resolvieron 11 casos por $132.710,00, siempre de forma individual; no existe aplicación masiva.
Una respuesta rechazada de CBU o tarjeta nunca activa el medio ni revalúa la cuota. Sólo una respuesta aceptada puede intervenir, y siempre para su propio período. Si dos métodos aceptados compiten por el mismo profesional y mes, el migrador bloquea ambos y exige revisión.
Aplicar la cuota completa después de un rechazo validado
Este flujo cubre el caso en que el procesador rechazó el débito automático de una cuota y, dentro del mismo período, el profesional pagó por transferencia el importe base completo. No es un cambio de método permanente ni un pago parcial: revierte únicamente el descuento por cobro automático de esa deuda y aplica el ingreso por el total de la cuota.
La acción Aplicar cuota completa sólo aparece cuando PSICOLE puede demostrar simultáneamente:
- identidad única y exacta por DNI/CUIT entre movimiento, profesional y deuda;
- transferencia bancaria general acreditada, positiva y pendiente;
- respuesta rechazada de CBU o tarjeta para el mismo profesional, período y deuda;
- motivo o código de rechazo conservado en la fuente primaria;
- importe transferido exactamente igual a la base oficial de la cuota;
- ausencia de otros beneficios, pagos, saldos o fuentes aceptadas incompatibles;
- RUN, movimiento y deuda del mismo período, sin procedencia test.
Procedimiento del operador:
- Abrir el movimiento desde el RUN del período y verificar titular, DNI/CUIT, matrícula e importe.
- Revisar la evidencia del rechazo: fecha, medio, código o motivo y fuente primaria.
- Confirmar que Base, descuento a revertir y deuda exigible correspondan a una única cuota.
- Pulsar Aplicar cuota completa e ingresar una nota que explique el rechazo y la transferencia posterior.
- Verificar la operación
PAY, el recibo, la cuotaPAIDy los dos documentos vinculados: transferencia acreditada y respuesta rechazada.
La confirmación ocurre en una única transacción idempotente. Actualiza sólo la deuda del período, elimina únicamente su snapshot de descuento por débito/tarjeta, crea un pago y un recibo por el importe base, y enlaza ambas evidencias. No crea saldo a favor, no reactiva ni suspende la adhesión maestra, no modifica cuotas futuras y no envía avisos ni correos. Si falta una condición, el caso permanece en revisión manual.
Evidencia visual: se validaron escritorio 1440x900 y móvil 390x844 en SANDBOX para ambas alternativas, incluida nota obligatoria y cancelación sin efectos. Las capturas de detalle no se publican porque contienen nombres, matrículas, importes y referencias bancarias reales; se conserva la evidencia técnica de viewport, consola e invariantes económicas.
Después de confirmar un match dentro de un RUN mensual, PSICOLE cierra solamente la decisión correspondiente y actualiza sus métricas. No vuelve a simular todas las fuentes por cada fila. La transacción resuelta desaparece de la cola y el operador puede continuar inmediatamente con la siguiente. El recálculo o la simulación completa se reserva para el control del lote, después de una tanda de decisiones.
Registrar un pago anticipado sin imputar una cuota futura
Este caso se usa cuando el RUN identifica inequívocamente al profesional, pero no existe deuda cobrable en el período del extracto. Es el caso típico de un pago de mayo que debe quedar disponible para una cuota posterior. La cuota futura se muestra sólo como referencia y no es seleccionable desde el RUN histórico.
- Abrir el movimiento desde Dinero -> Operaciones -> Conciliación -> RUN mensual -> Manual -> Abrir matching.
- Verificar que el candidato sea el profesional identificado por el RUN y que el panel indique Sin deuda cobrable en el período del RUN.
- Revisar la Próxima deuda informativa sólo para orientar el seguimiento. No se imputa el movimiento contra junio/julio desde el matching de mayo.
- Pulsar Registrar pago anticipado y confirmar que el ingreso no sea un duplicado ni un reintegro. La nota de aprobación es obligatoria.
- El movimiento queda
MANUAL_MATCHED, la decisión del RUN quedaALREADY_CLOSEDy se crea unSaldo a favorabierto por el importe total recibido. - Para consumirlo en otro período, abrir el perfil del profesional en Cuenta Corriente -> Saldos a favor -> Aplicar, elegir la deuda abierta y confirmar la aplicación con nota. Esta aplicación interna no crea otro movimiento bancario ni envía avisos.
Reglas de seguridad: el extracto y el RUN deben compartir período de origen; sólo se acepta un crédito bancario pendiente; el profesional debe estar activo y ser cobrable; si existe deuda pendiente hasta el período del RUN, el botón no se habilita. La operación usa una clave idempotente por movimiento y profesional, crea auditoría, recibo interno y trazabilidad hacia banco, operación, pago, crédito y profesional. El recibo de saldo a favor no se envía a AFIP mientras el importe no esté aplicado a una deuda.
Si el mismo comando se reintenta por demora o doble clic, PSICOLE recupera la operación ya creada y no duplica pago, recibo ni saldo. Si el reintento cambia profesional, deuda, importe, RUN o destino económico, se rechaza como conflicto. Si se intenta usarlo con el RUN de otro mes, devuelve BANK_ACCOUNT_CREDIT_RUN_PERIOD_MISMATCH; la deuda futura permanece intacta.
Guardas de procedencia e idempotencia
Antes de materializar un match, un pago anticipado o una aplicación de saldo, PSICOLE verifica la procedencia de toda la cadena económica. La guarda no borra ni corrige datos históricos: cuando la evidencia es incompleta o de prueba, conserva el registro y bloquea la nueva acción para revisión.
Comprobar idempotencia sin aplicar dinero
El control está integrado en las dos superficies existentes de Dinero; no crea una pantalla ni un flujo paralelo:
- En RUN mensual -> Comprobar idempotencia, PSICOLE ejecuta dos veces el mismo PREVIEW con iguales fuentes y parámetros. Compara cantidades, importes, destinos,
sourceUniverseHash,eventUniverseHashydecisionHash. También toma un snapshot antes y después de deudas, pagos, recibos, operaciones, saldos y comunicaciones. - En Ficha única de operación -> Trazabilidad -> Comprobar idempotencia, realiza dos lecturas funcionales, compara la huella de la operación y sus vínculos, y busca otro comando activo cuando el origen admite una sola operación. Pagos parciales de una misma deuda no se confunden con duplicados. Las reversas múltiples se elevan a revisión humana.
Los resultados son:
| Resultado | Significado |
|---|---|
PASS |
Las dos lecturas coinciden, no aparecieron duplicados y no cambió el estado económico. |
REVIEW |
La operación no conserva una clave de replay o tiene varias reversas activas relacionadas; no se modifica automáticamente. |
INCONCLUSIVE |
Hubo actividad concurrente mientras se comprobaba. Repetir cuando el entorno esté estable. |
FAIL |
Cambió la huella funcional o existe más de un comando activo para un origen que admite una sola operación. No continuar con una nueva imputación. |
La comprobación es inerte: no crea pagos, recibos, saldos, cuotas, mensajes, notificaciones ni transferencias. Un PASS confirma repetibilidad técnica; no reemplaza la revisión humana de identidad, período, importe, beneficio, plan o medio de cobro.
La acción queda bloqueada cuando ocurre cualquiera de estas condiciones:
- el movimiento bancario, la deuda, el pago o el profesional están marcados como test;
- el extracto o la metadata contienen marcadores de
SANDBOX,TEST,SEED,FIXTURE,MOCKoSYNTHETIC; - un saldo a favor proviene de un pago o movimiento de prueba;
- una cuota figura pagada sin ningún pago aprobado enlazado, o sólo tiene pagos aprobados de procedencia no confiable;
- el movimiento ya fue resuelto con otro profesional, otra deuda, otro RUN o una disposición de importe diferente.
En esos casos la interfaz muestra Revisar evidencia y deshabilita la aplicación económica. Los códigos UNTRUSTED_MONEY_PROVENANCE, UNTRUSTED_ACCOUNT_CREDIT_PROVENANCE y PROFESSIONAL_PAYMENT_PROVENANCE_REVIEW_REQUIRED identifican el motivo técnico para auditoría.
Certificar un extracto real espejado desde SANDBOX
Una marca sandbox-run no se elimina manualmente ni se ignora. Si el archivo es un extracto real que fue cargado primero en SANDBOX y luego espejado, Conciliación rápida ofrece Certificar fuente por SHA-256 sólo cuando se cumplen todas estas condiciones:
- el extracto está
PROCESSED, tiene nombre no-test y pertenece al mismo período del RUN; - el RUN operativo contiene una fuente
PRIMARYoAUXILIARYNORMALIZEDpara ese extracto; - la fuente pertenece a un canal financiero certificable: extracto bancario general (
BANK_STATEMENT), lote CBU/COELSA (BANK_DEBIT) o liquidación de tarjeta (CREDIT_CARD); - el hash SHA-256 del manifiesto coincide exactamente con el hash original conservado por el extracto;
- el manifiesto declara
sourceOrigin=local_manifestysafeForSimulation=true; - la cantidad de eventos coincide entre archivo, extracto y fuente;
- ningún otro extracto posee el mismo hash real.
Al confirmar, el operador ve el archivo, RUN, cantidad de movimientos, operaciones y pagos afectados, e ingresa una nota de al menos 20 caracteres. La acción certifica el extracto completo, no una fila aislada. Normaliza los flags técnicos heredados y agrega provenanceCertification a las operaciones vinculadas, preservando los marcadores legacy para auditoría. No crea pagos, no concilia movimientos y no cambia deudas. Un segundo intento devuelve la certificación existente sin duplicar cambios.
La certificación usa la misma política para Galicia, CBU/COELSA y tarjeta. El tipo de canal no reemplaza la evidencia: si nombre, período, SHA-256, cantidad de eventos, rol o estado no coinciden, la fuente queda bloqueada. Caja, recibos, padrón, prestadores y archivos de referencia no son fuentes certificables de movimientos bancarios aunque formen parte del RUN.
Después de certificar:
- Actualizar la fila y verificar que desaparezca el bloqueo de fuente.
- Revisar profesional, deuda, regla de descuento e importe.
- Aplicar
Match,Aplicar + saldooPago parcialsegún el hecho económico. - Recalcular el mismo RUN operativo y comprobar que el evento pase de bloqueado/manual a cerrado.
No se publica una captura individual de esta confirmación porque contiene titular, importe y referencia bancaria. La evidencia visual pública reutiliza la entrada al RUN en SANDBOX; la certificación queda demostrada por pruebas backend, auditoría y verificación E2E autenticada.
Cada comando económico exige una Idempotency-Key. La misma clave, el mismo operador y el mismo contenido devuelven el resultado existente; cambiar operador, cuerpo, parámetros de ruta o RUN devuelve conflicto. Si el almacén idempotente no está disponible, el backend responde 503 y no inicia el comando. Además, la operación PAY conserva un hash semántico de fuente, profesional, deudas, importe y destino para detectar reintentos incompatibles aunque cambie la clave HTTP.
La fila seleccionada, el detalle y el comando también comparten un token de contexto del movimiento. Mientras ese contexto se actualiza, la lista no avanza y los botones quedan deshabilitados. Si el movimiento cambió o el operador intenta confirmar con el detalle de otra fila, PSICOLE responde BANK_TRANSACTION_CONTEXT_STALE, conserva ambos movimientos sin cambios y exige actualizar antes de volver a revisar. BANK_TRANSACTION_CONTEXT_REQUIRED indica un cliente desactualizado que debe recargar la aplicación.
En un entorno tratado como producción, la aplicación interna requiere además ALLOW_BANK_RECONCILIATION_APPLY=true. Si falta esa habilitación, el backend responde PRODUCTION_CONSENT_REQUIRED sin crear pagos, recibos ni matches. Esta bandera no habilita correos, scheduler, débitos automáticos ni pagos online; esos circuitos mantienen sus controles independientes.
Si el resultado económico se confirmó pero falló únicamente el registro de su respuesta idempotente, la interfaz reintenta una vez con la misma clave para recuperar la operación existente. El operador no debe volver a crear el pago ni cambiar de RUN: debe esperar la recuperación o recargar la fila. Este mecanismo sólo actúa ante códigos técnicos de idempotencia; nunca reintenta automáticamente un rechazo de procedencia, importe, identidad o regla de negocio.
La transacción bancaria, el profesional y las deudas se bloquean mientras se materializa el match. El pago, recibo, operación, saldo y decisión del RUN se confirman en una única transacción de base de datos. El recálculo de métricas puede quedar como advertencia posterior, pero no modifica el resultado económico ya confirmado.
La confirmación legacy de propuestas queda deshabilitada para materialización. La ruta operativa es Conciliación rápida, que aplica las guardas, locks, idempotencia y auditoría. El aprendizaje supervisado sólo ordena candidatos: incluso una regla TRUSTED conserva los flags económicos calculados por las guardas y nunca autoriza por sí sola un pago.


La evidencia visual pública muestra la entrada al flujo en SANDBOX. La captura del bloqueo sobre un movimiento individual no se publica porque contiene titulares e importes bancarios; su validación E2E se conserva en el reporte técnico de la Fase 0.
Aprendizaje supervisado del matching
Cada match bancario confirmado por un operador registra una regla de asociacion entre la huella del movimiento y el profesional elegido. La regla no reemplaza la validacion de deuda, importe, signo ni estado del movimiento: solamente agrega evidencia para ordenar candidatos en corridas posteriores.
Los estados son:
| Estado | Significado operativo |
|---|---|
LEARNING |
Tiene una o dos confirmaciones y sigue requiriendo decision humana. |
TRUSTED |
Tiene tres confirmaciones validas y puede elevar una sugerencia, siempre sujeta a las guardas economicas del match. |
SUSPENDED |
Recibio un rechazo o una reversa; no debe participar de sugerencias automaticas. |
Procedimiento recomendado para entrenar sin introducir falsos positivos:
- Trabajar un periodo por vez desde RUN mensual -> Manual -> Abrir matching.
- Confirmar identidad por DNI, matricula, CBU o nombre completo consistente; nunca por monto aislado.
- Elegir la deuda o las deudas efectivamente cubiertas. Para una diferencia, usar Aplicar + saldo o Pago parcial con nota.
- Registrar como ruido todo egreso, liquidacion institucional, gasto interno o movimiento ajeno a un colegiado.
- Recalcular el
PREVIEWy verificar que el movimiento resuelto pase a cerrado y que futuros movimientos comparables mejoren su candidato. - Ante una asignacion incorrecta, revertir la operacion y suspender la regla; no compensar editando estados manualmente.
Confirmaciones independientes
Para certificar aprendizaje, las tres confirmaciones deben provenir de movimientos distintos y de periodos o referencias independientes. Repetir la confirmacion del mismo BankTransaction no constituye evidencia adicional. Mientras la aplicacion no impida tecnicamente esa repeticion, Finanzas debe tratar TRUSTED como una sugerencia supervisada y no como autorizacion de autoaplicacion.
Huella bancaria vigente
La huella actual incluye datos normalizados del titular, proveedor, referencia, referencia interna y descripcion. Por eso puede no generalizar cuando el banco cambia una referencia entre meses. La prueba correcta compara corridas antes/despues y exige que mejore la ubicacion del candidato sin relajar las guardas de identidad e importe.
Aplicar y consumir saldos a favor
Cuando una transferencia supera la deuda seleccionada, PSICOLE separa el hecho económico:
- La deuda recibe sólo el importe que la cancela.
- El excedente se registra como
Saldo a favor, con monto original y disponible, vinculado a banco,PAY, pago a cuenta y recibo. - Contabilidad debita Banco por el total recibido, acredita Ingresos por la deuda y acredita el excedente en
2.1.4 Saldos a favor de profesionales. - El saldo queda visible en Cuenta Corriente del perfil administrativo y del profesional.
- Desde el perfil administrativo, el operador puede pulsar Aplicar, elegir una deuda abierta y confirmar con nota. La aplicación no crea otro movimiento bancario: debita el pasivo y acredita el ingreso correspondiente.
El saldo también se informa en el candidato de Conciliación rápida. Esa indicación es contextual: no convierte el crédito en una segunda transferencia ni lo aplica automáticamente. Para consumirlo, abrir el perfil del profesional, entrar en Cuenta Corriente -> Saldos a favor, pulsar Aplicar y seleccionar una deuda abierta.
Al pasar al RUN del mes siguiente:
- El movimiento bancario que originó el excedente permanece cerrado en su mes de origen.
- El saldo disponible permanece en la cuenta corriente hasta que exista una aplicación aprobada.
- Si la cuota del mes siguiente ya está pagada, no se modifica y el saldo continúa disponible.
- Si existe una deuda abierta, el operador puede aplicarle hasta el menor valor entre saldo disponible y deuda.
- La aplicación crea trazabilidad interna y reduce ambos saldos; no crea otra transacción bancaria ni vuelve a enseñar el mismo movimiento al matcher.
Ejemplo: un ingreso de $15.615 aplicado a una cuota de $12.492 cancela la cuota y crea $3.123 de saldo a favor. Si junio ya está pagado, el crédito no se fuerza contra junio. Puede aplicarse luego a una deuda de julio de $13.085,95, que quedaría con $9.962,95 pendiente.
La aplicación es idempotente, reduce simultáneamente el saldo disponible y el saldo de la deuda y no envía comunicaciones. Si el crédito o la deuda cambian mientras se confirma, la operación se rechaza y debe recargarse el perfil.
El recibo interno conserva la trazabilidad del dinero recibido. El excedente permanece como pasivo y no debe facturarse como ingreso por cuota mientras siga disponible. La cola AFIP vigente es simulada; cualquier integración fiscal real debe tomar el importe aplicado a deuda y excluir el saldo a favor.
Seguimiento posterior desde Profesionales
Una vez aplicada una diferencia, la cola de seguimiento se prepara desde la vista existente Matrículas -> Profesionales. La columna Saldo a favor es ordenable y el filtro Saldo / deuda permite separar créditos disponibles, deudas, créditos que cubren la deuda y cuentas sin saldo pendiente. La fila conserva la deuda en Cuota / Deuda aunque exista un crédito; sólo la aplicación aprobada cambia la deuda.
La métrica Con saldo a favor muestra cuántos perfiles tienen crédito disponible y funciona como acceso al filtro. El listado se calcula sobre el conjunto total, no sobre la página actual, por lo que sirve para revisión y eventual comunicación. La consulta no envía mensajes ni modifica operaciones: antes de contactar a un profesional, revisar su Cuenta Corriente, el estado del crédito (Disponible, Aplicado parcialmente, Aplicado o Reversado) y la nota de aprobación.

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).
En el RUN estricto, una tolerancia amplia nunca autoriza un pago. El rango amplio puede utilizarse únicamente para ordenar candidatos y orientar al operador; antes de aplicar una deuda, el importe bancario y la suma de las deudas seleccionadas deben coincidir con tolerancia de centavos ($0,01). La única excepción es un ajuste contable aprobado por regla de periodo, con importe bancario, importe de sistema, componentes y motivo auditables.
Una diferencia positiva del banco no se imputa automáticamente: el operador puede aprobar Aplicar + saldo, que cancela sólo la deuda y registra el excedente como pasivo. Una diferencia negativa puede aprobarse como Pago parcial sobre una única deuda. Sin disposición y nota explícitas, ambos casos permanecen en revisión.
La revisión manual debe dejar la decisión en el mismo flujo de Dinero -> Operaciones -> Conciliación: deuda o deudas cubiertas, importe aplicado, diferencia, motivo, operador y evidencia. Si ya existe una operación aplicada, no se la rechaza cambiando sólo el estado; se corrige mediante una reversa compensatoria vinculada al PAY original.
Aumentos mensuales
Si un aumento mensual fue aprobado despues de que algunos profesionales pagaron al valor anterior, la conciliacion puede cancelar la deuda con un ajuste contable trazable por la diferencia aprobada. El importe bancario no se altera; se registra la diferencia como ajuste interno para mantener cuadrada la cuenta corriente.
Rechazo CBU
Un rechazo CBU no elimina todos los descuentos de la deuda. Solo revierte el descuento por debito directo. Si el profesional conserva jubilacion, beneficio parental u otro beneficio aprobado, el saldo pendiente debe reflejar esos beneficios.
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 pasarelas como NAVE?
Sí. El pago aprobado por la pasarela crea la operación y el recibo; luego la liquidación de la pasarela debe cuadrar contra el extracto bancario. El sistema evita duplicados con referencias externas, operación PAY, monto, fecha y claves idempotentes.
¿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.


Consultorio
Consultorio es la agenda operativa del psicólogo dentro de PSICOLE. Puede usarlo un psicólogo colegiado aunque no sea prestador, y también un prestador cuando trabaja con órdenes de obras sociales.
Acceso
Menú: Órdenes → Consultorio
Ruta: /consultorio
Roles: COLEGIADO, PRESTADOR.

Activación
El módulo puede estar activo o desactivado por profesional.
| Estado | Qué muestra |
|---|---|
| Desactivado | Pantalla de presentación con llamada a activar el consultorio |
| Activo | Dashboard con turnos, pacientes, agenda, recordatorios y cobros |
La activación no obliga a ser prestador. Un colegiado puede usarlo de forma autónoma para agenda, pacientes y cobros particulares. Si además es prestador, puede generar órdenes PSICOLE desde una sesión.
Flujo principal
- Crear o elegir paciente.
- Agendar turno con fecha, hora, modalidad y notas internas.
- Configurar recordatorios y, si corresponde, exportar agenda
.ics. - Completar sesión.
- Generar orden de obra social o cobro particular.

Pacientes
La libreta de pacientes permite reutilizar datos en turnos y órdenes:
- Nombre y documento.
- Contacto.
- Obra social, si existe.
- Tratamientos o sesiones previas.
- Historial de órdenes y cobros asociados.
Al crear una nueva orden, el sistema debe sugerir pacientes y tratamientos ya utilizados para reducir carga manual.
Prestadores y obras sociales
Cuando el profesional es prestador, Consultorio puede terminar una sesión como orden PSICOLE. En ese caso se aplican las reglas de prestadores:
- Obra social habilitada.
- Datos de afiliado.
- Diagnóstico y nomenclador cuando corresponda.
- Adjuntos y autorización.
- Rendición posterior ante la obra social.
Si el profesional no trabaja con obras sociales cargadas en PSICOLE, puede usar Consultorio de forma autónoma con pacientes, turnos, cobros particulares y recordatorios.
Cobros particulares
Los cobros particulares forman parte del ciclo de dinero. Cuando se registran, deben crear operación trazable y, si corresponde, recibo.
El cobro no debe mezclarse con una orden de obra social salvo que el flujo indique expresamente copago, diferencia o cargo complementario.
Buenas prácticas
- Mantener un paciente único por persona para evitar duplicados.
- Registrar el turno antes de la sesión y completarlo al finalizar.
- Usar notas internas solo para gestión profesional; no incluir datos innecesarios en comprobantes.
- Revisar la agenda semanalmente para detectar turnos sin cerrar.
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 → Gestión de Cursos (
/admin/courses) y usar 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 → Gestión de Cursos (
/admin/courses) y abrir el curso correspondiente. - 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 → Gestión de Cursos (
/admin/courses), abrir el curso y seleccionar Asistencia para 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 → Gestión de Cursos (
/admin/courses), abrir el curso y seleccionar 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 → Gestión de Cursos (
/admin/courses), abrir el curso y seleccionar Materiales. - 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.

7. Desinscripción y reembolso
Desde Mis Cursos, el usuario puede abrir el detalle de una inscripción y solicitar desinscripción cuando el curso y la política vigente lo permiten.
El sistema distingue:
| Situación | Resultado |
|---|---|
| Inscripción con deuda pendiente | Se cancela la deuda sin registrar cobro |
| Inscripción pagada dentro de plazo | Se crea reversa o reintegro según política |
| Curso iniciado o completado | Requiere revisión administrativa |
| Curso cancelado por el Colegio | Se aplica la política de devolución definida |
La política de reembolso se configura desde Dinero → Configuración. Toda devolución debe quedar vinculada a la operación de pago original para conservar trazabilidad.

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 los psicólogos matriculados que atienden pacientes de obras sociales. Las obras sociales derivan pacientes a los profesionales; cada atención genera una orden de prestación que el prestador carga en el sistema, presenta mensualmente al Colegio y cobra a través del proceso de liquidación.
El flujo completo cubre: carga de órdenes → validación por el operador → rendición mensual del prestador → aprobación y liquidación por el Colegio → acreditación al prestador.
Antecedentes históricos de altas de prestador
La bandeja existente de Altas de prestador incorpora dos orígenes consultables: Solicitudes del sistema y Antecedentes históricos. El segundo reúne planillas de inscripción identificadas de forma fuerte por matrícula y correo o nombre normalizado. Expone fecha, origen y cantidad de documentos declarados sin crear tickets ni cambiar el estado del perfil.
Una fila histórica no equivale a una aprobación. Sólo la aprobación del trámite
formal puede activar isProvider, habilitar órdenes o generar comunicaciones.
Los enlaces declarados en formularios quedan como evidencia pendiente hasta que
el archivo físico, su identidad y su hash puedan verificarse; los documentos
verificados se abren desde el perfil en la pestaña Prestador.
Un alta operativa y un antecedente documental responden preguntas distintas.
Que isProvider esté activo permite operar como prestador, pero no prueba que
exista una solicitud histórica preservada. Por eso la bandeja informa ambas
coberturas sin fabricar altas retroactivas. En el corte certificado del
26/07/2026 hay 461 prestadores activos y 91 con antecedente histórico de
alta; los 370 restantes conservan su estado operativo y quedan como brecha
documental, no como error de rol.
La planilla histórica disponible contiene 138 respuestas distribuidas entre
2024, 2025 y el corte vigente. De ellas, 137 se identificaron de forma exacta
y representan a 91 prestadores que continúan activos; también conserva altas
de personas históricas que hoy no integran el padrón operativo. La respuesta
restante presenta una matrícula ocupada por otra identidad y queda aislada. No
existe otra planilla de altas en las fuentes revisadas que permita reconstruir
los 370 antecedentes ausentes; el rol activo no autoriza a fabricar una
solicitud retroactiva.
Las facturas fiscales del prestador tampoco son trámites. Se consultan en la
misma ficha, dentro de Prestador, pero se almacenan como comprobantes
recibidos. El corte del 27/07/2026 contiene 2.452 facturas con archivo físico en
305 perfiles; sólo 3 tienen vínculo exacto a una liquidación. El resto se
preserva como evidencia fiscal sin inferir pago ni liquidación por igualdad de
nombre, período o importe.
Desde el 28/07/2026 el portal propio reutiliza Liquidaciones para mostrar el
inventario canónico completo de received_invoices, incluidas las facturas que
todavía no tienen una liquidación exacta. La tabla distingue Sin liquidación
exacta, Falta archivo y los estados fiscales reales; ya no depende sólo del
campo legado invoiceUrl de una liquidación. La consulta queda limitada por el
professionalId del usuario autenticado, por lo que un prestador nunca recibe
facturas de otro perfil.
Esta mejora es de visibilidad y no cambia estados económicos. Una factura sin
paymentSettlementId continúa REGISTERED; verla o descargarla no la aprueba,
no crea una liquidación, no genera una operación PAY y no demuestra un egreso
bancario. La misma evidencia canónica se usa en lista, kanban y línea de tiempo
para evitar que dos vistas contradigan el estado del archivo.
Cuando una factura fiscal agrupa liquidaciones de varias OOSS del mismo período, la ficha muestra el comprobante en cada liquidación cubierta mediante asignaciones documentales explícitas. El total asignado debe cerrar exactamente contra el importe fiscal y la identidad debe ser única. Esta relación no duplica la factura, no altera el neto de las liquidaciones y no autoriza pagos; las facturas agregadas permanecen sujetas a revisión financiera.
El cruce documental amplio encontró 81 facturas con neto compatible en
planillas o antecedentes bancarios (60 exactas y 21 con corrección de
período). Esa compatibilidad sirve para ordenar la revisión, pero no reemplaza
una liquidación canónica ni una operación bancaria vinculada. Por eso las
2.448 facturas sin relación exacta a paymentSettlement no se marcan como
pagadas, aprobadas o liquidadas.
El cruce documental del 26/07/2026 confirmó la misma cobertura en SANDBOX y
PSICOLE después de incorporar nuevos adjuntos de trámites: 161 perfiles con
órdenes, 62 con liquidaciones y 305 con facturas presentadas. Existen 59
perfiles con 127 requerimientos de factura pendientes por $20.966.558,50.
Estas métricas describen evidencia disponible y trabajo pendiente; no autorizan
completar una factura, liquidación o pago por aproximación.
Qué ve cada actor y qué prueba esa vista
- El prestador consulta en Liquidaciones sus liquidaciones y el inventario paginado de facturas canónicas, vinculadas o no. También puede descargar un recibo propio que informa únicamente el neto.
- El administrador consulta la misma evidencia en Profesionales → ficha → Prestador, con las relaciones operativas necesarias para investigar el circuito.
- Finanzas conserva bruto, comisión y neto en sus vistas administrativas. La comisión del Colegio no se devuelve ni se representa en pantallas o recibos propios del prestador; no se elimina ni se recalcula.
- Abrir una factura, recibo, transferencia, ticket o trámite verifica el objeto concreto y su propietario. La autorización de una sección no permite leer un archivo perteneciente a otro profesional.
Ver una factura física demuestra recepción y trazabilidad documental. Sólo un
vínculo canónico exacto demuestra su relación con una liquidación; tampoco ese
vínculo, por sí solo, demuestra cobro OOSS o egreso bancario. Al 28/07/2026 el
perfil puede exponer las 2.452 facturas asociadas a 305 profesionales, pero
la cadena económica completa sigue bloqueada: hay 130 liquidaciones
PENDING, 21 lotes sin respuesta, 20 pagos de lote sin movimiento bancario
y 418 facturas institucionales sin líneas de detalle.
Roles con acceso
| Rol | Nivel de acceso |
|---|---|
| ADMIN | Acceso completo: alta de obras sociales, configuración de comisiones, aprobación de lotes, auditoría, importación masiva de pacientes |
| OPERADOR_FINANZAS | Cargar órdenes, validar, aprobar lotes mensuales, generar liquidaciones, revisar rendiciones |
| OPERADOR_PRESTADORES | Corregir y controlar órdenes, rendiciones y lotes dentro del circuito de Prestadores |
| OPERADOR_TRAMITES / SUPERVISOR_TRAMITES | Operar órdenes, rendiciones y lotes cuando el rol tiene asignado el módulo. La capacidad tarifaria se vuelve un bloqueo de autorización sólo con PROVIDER_PRICING_GUARD_MODE=enforce; en observe la discrepancia se registra pero se conserva la autorización legada |
| PRESTADOR | Gestionar su agenda, cargar y consultar sus órdenes, libreta de pacientes, rendiciones mensuales |
Módulos del portal del prestador
Consultorio — Agenda de turnos
El prestador gestiona su agenda de sesiones desde Mis Órdenes → Consultorio.
Vista semanal con turnos agrupados por día y ordenados por hora. Cada card muestra:
- Hora y duración de la sesión.
- Nombre del paciente.
- Chip de obra social (si aplica).
- Estado: Programado (azul) · Completado (verde) · Cancelado (gris) · Ausente (naranja).
Crear turno:
- Hacé clic en + Nuevo turno.
- Seleccioná el paciente con autocomplete desde la libreta (o ingresá el nombre libremente).
- Completá fecha y hora, duración (default 50 min), modalidad (Presencial / Virtual) y notas.
- Si el paciente tiene obras sociales en la libreta, el campo OOSS se muestra automáticamente.
- Guardá.
Completar turno:
Al marcar un turno como Completado, si tenía obra social asociada el sistema propone crear la orden de prestación con los datos pre-llenados (paciente, DNI, afiliado, OOSS, fecha). El prestador confirma o ajusta los datos y guarda la orden con un clic.
Exportar agenda:
El botón Exportar .ics descarga un archivo RFC 5545 importable en Google Calendar, Apple Calendar o cualquier cliente de calendario compatible. Cada turno se exporta como evento con título, horario y descripción.
Libreta de pacientes
Repositorio personal del prestador para centralizar los datos de sus pacientes habituales y agilizar la carga de órdenes.
Funciones:
| Función | Descripción |
|---|---|
| Búsqueda | Por nombre, apellido o DNI — resultados en tiempo real |
| Multi-OOSS | Cada paciente puede tener múltiples obras sociales con Nº de afiliado y plan por cada una |
| Datos de contacto | Teléfono, email, fecha de nacimiento, dirección, notas privadas |
| Última orden | Chip que indica la fecha de la última orden creada para ese paciente |
| Importación automática | Crea pacientes a partir del historial de órdenes existentes |
Importar desde órdenes:
Cuando el prestador tiene pocos pacientes registrados (menos de 5) y ya tiene órdenes históricas, aparece un banner de importación:
- Hacé clic en Ver preview — el sistema analiza todas las órdenes del prestador y muestra los pacientes únicos que se crearían, con sus obras sociales detectadas.
- Si el resultado es correcto, hacé clic en Confirmar importación.
- El sistema reporta:
X creados · Y actualizados · Z sin cambios.
Integración con órdenes:
Al crear o editar una orden, el campo Paciente tiene autocomplete desde la libreta. Al seleccionar un paciente: - Se auto-completan DNI, obra social y número de afiliado. - Si el paciente tiene múltiples obras sociales, aparece un dropdown para elegir cuál usar en la orden. - Los campos diagnóstico y tratamiento sugieren valores históricos del prestador.
Órdenes de prestación
- Ir a Mis Órdenes → + Nueva Orden.
- Campo Paciente con autocomplete desde la libreta.
- Completar datos clínicos: fecha, sesiones, diagnóstico, tratamiento, adjunto (JPG/PNG/PDF).
- Guardar.
Estados de una orden:
| Estado | Descripción |
|---|---|
| Pendiente | Cargada por el prestador, sin validar |
| Validada | Aprobada por el operador, incluible en rendición |
| Observada | El operador detectó algún problema — ver motivo en el detalle |
| Presentada | Incluida en una rendición enviada al Colegio |
| Pagada | Liquidada y acreditada al prestador |
Rendición mensual
Al cerrar el mes, el prestador presenta sus órdenes validadas al Colegio.
Banner de alerta:
Cuando hay órdenes con estado Validada sin rendición asignada, aparece un banner verde en Mis Órdenes:
"Tenés X órdenes validadas listas para rendir este período."
Generar rendición:
- Hacer clic en Generar rendición.
- Revisar el resumen por obra social: cantidad de órdenes y subtotal por cada una.
- Hacer clic en Enviar rendición al Colegio.
- Esperar a que el Colegio genere la liquidación con el neto definitivo.
- Desde Liquidaciones, presentar la factura correspondiente a esa liquidación.
Seguimiento:
En Liquidaciones se listan las liquidaciones con período, estado, cantidad de órdenes, neto, factura vinculada y comprobante cuando exista.
Las facturas fiscales históricas también aparecen en Profesionales → perfil → Prestador y en la lista operativa de Facturas recibidas. Un comprobante REGISTERED puede existir sin liquidación vinculada: conserva el archivo y la identidad fiscal, pero no habilita aprobación ni pago. El alcance y las guardas del archivo maestro están documentados en Liquidaciones → Ampliación del archivo maestro.
Estados de una rendición:
| Estado | Descripción |
|---|---|
| Pendiente | Enviada al Colegio, pendiente de revisión |
| Aprobada | El operador aprobó la rendición |
| Observada | El operador envió una observación — ver nota en el detalle |
| Rechazada | Rendición rechazada — ver motivo y volver a presentar |
Flujo completo: del turno a la acreditación
PRESTADOR SISTEMA OPERADOR_FINANZAS
│ │ │
│── Agenda turno ──────────────► │ │
│── Completa turno ────────────► │ propone crear orden │
│── Confirma orden ────────────► │ crea ProviderOrder (PENDING) │
│ │ │
│ │ ◄── valida órdenes del período ── │
│ │ ──► ordenes → VALIDATED ─────────►│
│ │ │
│── banner: "X órdenes listas" ──│ │
│── genera rendición ───────────►│ crea ProviderSubmission (PENDING) │
│ │ │
│ │ ◄── revisa rendición ─────────── │
│ │ ──► APPROVED ───────────────────►│
│ │ │
│ ◄── liquidación disponible ───│ ──── genera liquidación ──────────►│
│── presenta factura ──────────►│ vincula ReceivedInvoice │
│ │ ◄── revisa/aprueba factura ────── │
│ ◄── acreditación bancaria ────│ ──── registra pago trazable ─────►│
│── descarga comprobante ───────►│ │
Flujo de revisión del operador (Rendiciones)
El OPERADOR_FINANZAS gestiona las rendiciones desde Operador → Prestadores → Rendiciones.
- Tabla de rendiciones pendientes con: prestador, período, cantidad de órdenes, monto, fecha de envío y link a la factura.
- Acciones por rendición:
- Aprobar — cambia estado a
APROBADAy dispara el proceso de liquidación. - Observar — abre un modal para ingresar una nota; el prestador ve la observación en su portal.
- Rechazar — requiere motivo; el prestador debe corregir y reenviar.
Corregir una orden después de guardarla
El operador puede corregir una orden desde Prestadores → Órdenes o, si ya
pertenece a una rendición, desde el detalle de esa rendición. El modal permite
cambiar prestador, número de orden, paciente y DNI, afiliado, Obra Social, fecha
de prestación, práctica, cantidad y precio unitario. Siempre exige un motivo y
deja auditoría CORRECT_ORDER.
- Abrir el detalle de la orden y elegir Corregir.
- Buscar la práctica por código o descripción. El catálogo se limita a la Obra Social y a la vigencia de la fecha de prestación.
- Ajustar cantidad o precio. El sistema recalcula
cantidad × valor unitario; el total no se edita como un campo independiente. - Escribir el motivo y guardar.
- Si la orden estaba
VALIDATEDoSUBMITTED, vuelve aOBSERVEDpara que un operador la valide otra vez. Una ordenOBSERVEDvuelve aPENDING.
Una orden vinculada a una rendición no se corrige desde la grilla general: debe abrirse desde esa rendición. De ese modo conserva el vínculo y el sistema recalcula el total de la rendición en la misma operación. Los estados terminales —aceptada, pagada, rechazada o cancelada— no admiten edición.
Límite vigente dentro de una rendición
En el corte actual, el botón Corregir dentro del detalle de la rendición
se muestra para órdenes PENDING u OBSERVED. Aunque el contrato de backend
contempla VALIDATED y SUBMITTED, la interfaz no ofrece esa acción cuando
ya están vinculadas a una rendición. Es una brecha de UI pendiente y no debe
declararse como corrección completada para esos dos estados.
El código de la práctica se persiste con su referencia de nomenclador cuando
está disponible. Para una orden legada sin referencia interna, el sistema puede
resolver un único código vigente por Obra Social y fecha; si no hay coincidencia
confiable, la orden queda PENDING_REVIEW. Corregir un campo no económico
preserva una aprobación tarifaria existente sólo si siguen iguales la Obra
Social, práctica, fecha y vigencia, cantidad, precio aplicado y referencia
oficial. Cambiar cantidad, práctica, fecha, Obra Social o cualquier precio es un
cambio económico y requiere nueva revisión o una excepción autorizada con
motivo.
Evidencia visual pendiente
La funcionalidad modifica un modal y el detalle de una rendición. En este cierre no se incorporan capturas nuevas porque las órdenes reales exponen datos personales y el pase documental no autorizó capturar pantallas. Las capturas generales del panel que siguen sirven como orientación, no como prueba de estos campos.
Panel del operador auditado
El panel operativo de prestadores fue recapturado en escritorio y celular para validar que pestañas, filtros, KPIs, tablas y acciones no se superpongan en resoluciones bajas. En móvil, las pestañas se desplazan horizontalmente y el contenido operativo conserva lectura vertical.


Lotes mensuales y facturacion manual ARCA OOSS
El circuito Colegio → Obra Social se revisa desde Prestadores → Lotes mensuales. Cada lote agrupa una Obra Social y un período, y permite controlar las órdenes antes de preparar la factura real en ARCA.
Control previo de ordenes
Al abrir un lote mensual, el operador puede generar el PDF del lote para revisar:
- Obra Social y período.
- Profesionales incluidos, ordenados alfabéticamente.
- Matrícula del prestador.
- Paciente, DNI y número de afiliado.
- Número de orden.
- Fecha, sesiones, valor unitario e importe.
- Subtotal por prestador y total del lote.
Este PDF sirve para auditoría interna del lote. No es una factura. La generación
y regeneración normal del PDF de presentación ocurre mientras el lote está
DRAFT; la acción masiva también selecciona exclusivamente borradores. Confirmar
el lote exige un pdfUrl vigente, lo lleva a READY y congela el PDF revisado:
un READY que ya tiene PDF y cualquier SENT rechazan reemplazarlo. Como
compatibilidad acotada para datos legados, un READY cuyo pdfUrl es nulo puede
recuperar manualmente el archivo una sola vez mediante CAS; no se reabre ni se
migra el lote. La tarjeta, el detalle y el panel operativo muestran para ese caso
el CTA Recuperar PDF faltante. La descarga del PDF vigente sigue disponible.
Control de órdenes y exportación previa a facturar
La pestaña de control reúne las órdenes sin crear lotes, facturas, pagos ni cambios de estado. Permite buscar por prestador, matrícula, paciente, número de orden, práctica u Obra Social y filtrar por estado, etapa, Obra Social, período o rango de fechas.
El detalle y el CSV muestran el número de orden y la información operativa necesaria para controlar la carga: prestador, matrícula, Obra Social, afiliado, código y descripción de la práctica, cantidad, valor unitario, valor total, fecha de prestación, estado tarifario, adjunto y vínculos a lote, presentación y rendición.
Para exportar se debe seleccionar una Obra Social y un período o rango completo. El rango máximo es de 366 días y el límite es de 50.000 filas; si el universo es mayor, el operador debe acotarlo. El archivo usa CSV compatible con Excel, separa campos por punto y coma y protege las celdas que podrían interpretarse como fórmulas. La exportación se registra en auditoría y no altera la orden.
La fecha de prestación se trata como fecha calendario de Mendoza tanto en lista como en detalle y exportación. No se convierte a la zona horaria del navegador, por lo que una prestación del 17/07 no debe mostrarse como 16/07.
Vista previa y generación con los mismos filtros
Antes de generar, el operador debe ejecutar Vista previa. La previsualización y la generación reciben el mismo rango, campo de fecha y Obra Social; el número de órdenes y el total previsualizados son el universo que se intenta materializar.
El rango puede aplicarse por:
- Fecha de carga (
createdAt): opción recomendada para cierres operativos. - Fecha de validación (
validatedAt): si una orden legada no conserva esa fecha, se usa su última actualización como respaldo explícito. - Fecha de prestación (
serviceDate): selecciona por el día real del servicio.
También se puede indicar una fecha de corte de carga o limitar el cierre a una
única Obra Social. Sólo participan órdenes VALIDATED, con Obra Social y todavía
sin lote. La selección agrupa un lote por Obra Social y mantiene intacta la fecha
de prestación: el período del lote describe el cierre, no reescribe el mes del
servicio.
Si se informan al mismo tiempo un rango y una fecha de corte, el rango tiene prioridad. El campo de fecha elegido se aplica a ese rango y la fecha de corte no amplía el universo.
Si el preview da cero, el botón de generación permanece inactivo. Si los filtros cambian, se debe ejecutar otra vista previa antes de generar; no se completa un lote con datos de una consulta anterior.
La asignación o remoción de órdenes del lote es una acción del operador: el
prestador no puede conectar, mover ni desvincular órdenes por su cuenta. Si
edita o elimina una orden ya ligada mientras el lote sigue DRAFT, el sistema
recalcula los totales e invalida los modelos/PDF para exigir una nueva revisión.
Las acciones individuales o masivas del operador para validar, observar o
rechazar una orden ligada usan el mismo protocolo transaccional: reclaman y
actualizan el parent DRAFT e invalidan sus artefactos antes de cambiar la
orden. Una vez que el lote está READY o SENT, esas mutaciones se bloquean.
Las órdenes que pertenecen a una rendición continúan gestionándose desde esa
rendición. El envío reclama exactamente la versión y el PDF confirmados; dos
envíos concurrentes no pueden ganar.
Evidencia visual pendiente
Los selectores de rango y Obra Social todavía no tienen un par de capturas sanitizadas de escritorio y móvil. La documentación queda cerrada en texto y la evidencia visual queda pendiente por contener órdenes reales.
Modelo interno para carga manual en ARCA
La acción Modelo factura ARCA OOSS genera un PDF de apoyo para que el operador copie los datos y complete la factura real manualmente en el sitio de ARCA.
El modelo prepara:
- Emisor: Colegio.
- Receptor: Obra Social.
- CUIT, domicilio fiscal y condición IVA del receptor, cuando estén cargados.
- Período facturado.
- Detalle por profesional y orden.
- Cantidad, precio unitario, importe y total.
- Campos pendientes de completar en ARCA, como punto de venta, número de comprobante, CAE y vencimiento del CAE.
No es factura fiscal
PSICOLE no emite CAE ni factura real desde este flujo. El PDF es un modelo interno para carga manual. La factura fiscal existe recién cuando el operador completa la emisión en ARCA y registra la constancia correspondiente.
Factura fiscal del Colegio a la Obra Social
Después de emitir manualmente en ARCA, el operador registra y consulta la constancia desde Dinero → Configuración → Facturación OOSS. Se reutiliza la configuración existente de Dinero; no se agrega otro módulo ni una bandeja paralela.
Cada factura institucional conserva:
- número de comprobante y período económico;
- Obra Social y CUIT receptor;
- fecha de emisión y vencimiento de pago;
- importe, CAE y vencimiento del CAE;
- PDF fiscal privado y hash SHA-256 de la fuente;
- estado y operación de pago, cuando exista una conciliación bancaria trazable.
El PDF prueba la emisión fiscal, no el cobro. Una factura respaldada por fuente no puede pasar a Pagada desde esta lista sin una PaymentOperation vinculada. Los estados históricos incompatibles quedan en revisión y no se reescriben por inferencia.
Gate documental institucional 2026
El 22/07/2026 se contrastaron 82 facturas del Colegio a OOSS contra las carpetas fiscales 2026. 81 tenían PDF, CUIT, CAE, período e importe verificables: 50 se registraron como Enviadas y 31 recibieron el PDF y los metadatos fiscales sobre su registro existente, preservando su estado previo. La factura de UNIMED abril 2026 por $55.000 permanece bloqueada porque no se encontró el PDF fiscal; no se creó una factura sustituta.
El primer gate de SANDBOX creó o completó exactamente esas 81 facturas. Dos replays posteriores devolvieron 81 NOOP, el mismo hash funcional y cero altas de pagos, recibos, operaciones, notificaciones, correos o mensajes. La vista autenticada abrió el detalle y el PDF privado sin errores de consola. Este corte sigue siendo documental: no confirma cobros de OOSS, no genera liquidaciones y no habilita pagos a prestadores.
La auditoría separó además 37 estados históricos Pagada sin operación económica vinculada. Son una cola de revisión de procedencia y no se toman como evidencia de cobro hasta conciliarlos.
Factura del prestador al Colegio
La factura que el prestador entrega al Colegio pertenece a otro circuito. Se presenta sobre la liquidación cuando el neto definitivo ya fue calculado y no se genera desde los lotes de Obra Social. La carga opcional histórica sobre ProviderSubmission queda como legado de consulta y no es la fuente canónica para autorizar pagos.
No deben mezclarse:
- Colegio → Obra Social: modelo interno, emisión manual en ARCA y constancia fiscal registrada en Facturación OOSS.
- Prestador → Colegio: factura real del prestador, registrada en
received_invoicesy vinculada a una liquidación.
El operador las consulta sin abrir una pantalla nueva, desde Prestadores → Liquidaciones de pagos → Facturas recibidas. La lista mensual agrupa prestador, número, fecha, período, obra social, importe, liquidación, estado y archivo; permite buscar y filtrar por estado. Una fila legada sin registro canónico se identifica como Legada: revisar y no se aprueba automáticamente. Las facturas reemplazadas permanecen como Canceladas con su archivo histórico accesible para auditoría.
Si la factura llega antes de una liquidación compatible, el operador la ve como Registrada y Sólo documental. El sistema conserva el PDF privado, la clave fiscal, el período declarado y el motivo que impide vincularla. No completa obra social, liquidación o pago por nombre o importe aislados.
El primer gate histórico registró las mismas 293 facturas reales en SANDBOX y PSICOLE: 4 de 2023, 74 de 2024, 143 de 2025 y 72 de 2026, correspondientes a 43 profesionales. La identidad quedó resuelta por evidencia fiscal y los archivos duplicados o no fiscales quedaron fuera del universo canónico.
Dentro de esas 293, sólo 3 facturas están vinculadas a una liquidación relacional exacta y continúan En revisión; el vínculo documental no confirma el cobro de la Obra Social ni habilita el pago. Otras 19 tienen respaldo documental de neto exacto, pero todavía no existe una liquidación canónica compatible. Las 271 restantes permanecen Registradas y Sin liquidación fuente. No se fuerza un vínculo por nombre, importe aislado o cercanía de período, ni se interpreta una diferencia como rechazo OOSS sin evidencia explícita.
La aplicación y el replay fueron idempotentes: se incorporaron 221 comprobantes históricos, se completaron 72 registros existentes y luego las 293 facturas devolvieron NOOP. No hubo altas de pagos, recibos, operaciones, órdenes, liquidaciones o comunicaciones.
La ampliación posterior del archivo maestro agregó 2.158 facturas certificadas de 2018–2026 en ambos entornos. El total canónico quedó en 2.451 comprobantes. Todas las altas nuevas permanecen REGISTERED: estar visibles en el perfil no implica que exista una liquidación, aprobación o pago. El replay productivo fue completamente idempotente y la descarga del PDF quedó validada mediante acceso autenticado privado.
Gate de débitos Galicia y rendición al prestador
El cruce del 22/07/2026 separa cuatro evidencias que no son intercambiables:
- Los reportes de débito automático y tarjeta son cobranzas entrantes de cuotas colegiales. No prueban una transferencia al prestador.
- El archivo de transferencias bancarias es una instrucción. No prueba que el banco la haya ejecutado.
- El débito del extracto Galicia prueba un egreso bancario, pero todavía no identifica por sí solo la liquidación y la factura que lo justifican.
- El cierre operativo exige liquidación canónica, factura vinculada y aprobada, movimiento bancario persistido y operación
PAYaprobada o conciliada.
Se contrastaron 173 netos documentales por prestador/período con cinco extractos Galicia. Hubo 54 egresos exactos por identidad e importe, por un total de $15.037.755,69; 51 también están persistidos como movimientos bancarios en PSICOLE. Los otros tres pertenecen al extracto de mayo y requieren registrar esa fuente antes de continuar.
El cruce contra las bases de SANDBOX y PSICOLE produjo la misma clasificación:
| Estado | Casos | Importe documental | Acción |
|---|---|---|---|
| Liquidación exacta | 2 | $218.773,80 | Revisar factura y operación; ambas siguen pendientes |
| Sin liquidación del período | 47 | $14.223.424,89 | Regularizar primero órdenes, lote y liquidación |
| Liquidación con otro importe | 5 | $595.557,00 | Contrastar órdenes aceptadas, comisión, débitos y rechazos documentados |
Ninguna cadena está cerrada. Una de las dos liquidaciones exactas tiene factura vinculada, pero el débito bancario es anterior a la factura; la otra no tiene factura. Las dos operaciones continúan PENDING. Por lo tanto no se marcó ninguna liquidación o factura como pagada.
Para operar la cola:
- Abrir Prestadores → Liquidaciones de pagos y seleccionar el período.
- Buscar al prestador por matrícula o nombre y comparar el neto con el CSV de revisión.
- Si falta la liquidación, reconstruirla sólo desde órdenes y lote aprobados.
- Si el importe difiere, revisar la fuente que declara rechazos o ajustes. La diferencia no se etiqueta automáticamente como rechazo OOSS.
- Revisar la factura en Facturas recibidas o en Profesionales → perfil → Prestador.
- Registrar el pago sólo cuando factura, liquidación, banco y operación coincidan y la factura esté
APPROVED_FOR_PAYMENT.
La evidencia privada está identificada como provider-payout-debit-gate-20260722. Los replays canónico y con copias duplicadas reprodujeron el hash económico 8d04f54274004fe19d811d401c1ec21c4ed310b850bcf544fb401f61a51877ae, sin pagos, recibos, cambios de estado ni comunicaciones. El hash de inventario sí cambia cuando se agregan copias y permite auditar esa diferencia sin alterar el resultado financiero.
El gate es reproducible con los comandos administrativos build:provider-payout-evidence, build:provider-payout-system-crosscheck y build:provider-payout-live-report. El primero genera evidencia documental; el segundo produce SQL de consulta con una tabla temporal; el tercero compara SANDBOX y PSICOLE y publica la cola privada. Ninguno tiene modo --apply.
El control del 27/07/2026 incorporó el detalle vivo de julio sin relajar estas
reglas. Las 711 prestaciones explican el neto base de los 62 prestadores;
los beneficios jubilatorios se muestran por separado y completan el pago final.
Los 62/62 prestadores quedaron identificados y vinculados al renglón del libro
general, pero la evidencia bancaria conserva estados diferentes: exacta,
anterior a la factura, identidad triangulada, ambigua, con diferencia o ausente.
Un egreso anterior a la factura ya no desaparece del auditor: queda como
Revisión: egreso anterior a factura, sin candidato aplicable ni cambio de
estado. Una abreviatura de nombre puede recuperar la matrícula sólo mediante el
detalle de órdenes certificado; continúa requiriendo aprobación y nunca se
resuelve por importe aislado.
Cuando un replay integral deja de producir un candidato abierto de esta fuente,
el sistema lo marca SUPERSEDED y conserva la evidencia anterior con el motivo
del recálculo. Esta limpieza sólo afecta la cola de revisión: no modifica ni
desvincula pagos, recibos, deudas, órdenes, liquidaciones, facturas o movimientos
bancarios. Los candidatos ya aprobados, rechazados o aplicados permanecen
intactos. El preview informa cuántos candidatos abiertos quedarían obsoletos
antes de ejecutar la actualización.
Preview de regularización de liquidaciones
El siguiente gate toma únicamente los 52 casos con egreso Galicia exacto y liquidación ausente o de importe distinto. Reconstruye las líneas documentales de prestación y consulta identidad, órdenes, lote, liquidación, factura y banco en una sola clasificación de sólo lectura. No crea órdenes, lotes, liquidaciones, facturas, operaciones o pagos; tampoco cambia estados ni envía comunicaciones.
El parser recuperó correctamente el período económico de las 173 rendiciones documentales. El replay conservó los mismos importes y produjo el mismo SQL tanto desde la evidencia histórica como desde la evidencia regenerada. SANDBOX y PSICOLE devolvieron el mismo hash de consulta y el mismo resultado fila por fila:
| Bloqueo seguro | Casos | Importe | Criterio para continuar |
|---|---|---|---|
| Órdenes faltantes | 42 | $11.548.574,46 | Incorporar y validar las órdenes desde la fuente documental |
| Órdenes ambiguas | 3 | $2.514.149,49 | Desambiguar número de orden o afiliado sin elegir por importe aislado |
| Vínculo orden-lote incompleto | 4 | $497.534,40 | Reconstruir o vincular el lote antes de crear la liquidación |
| Egreso Galicia no persistido | 3 | $258.723,54 | Registrar la fuente bancaria, todavía sin imputar el pago |
Las 52 filas suman $14.818.981,89 y contienen 568 líneas: 31 tienen una orden única, 532 no tienen orden compatible, 5 son ambiguas y sólo 20 ya están vinculadas a lote. Mayo concentra 4 casos, junio 3 y julio 45; julio explica 530 de las 532 líneas faltantes. Ninguna fila alcanzó el estado READY_SETTLEMENT_CREATE_PREVIEW, por lo que el gate no habilita un apply.
La evidencia privada está identificada como provider-settlement-repair-preview-20260722 y tiene hash semántico 586c8ef4b5c46db49254fbba0cfb277d883456a44434faed21d907a916050669. Dos reportes consecutivos reprodujeron ese hash, con paridad total entre entornos, 0 mutaciones económicas, 0 notificaciones y 0 antecedentes de débito automático usados como prueba de pago al prestador.
Este control es NO_UI: se ejecuta como auditoría administrativa y su salida contiene datos fiscales privados. No requiere capturas, ayuda contextual, onboarding ni tour. La operación humana continúa en las pantallas existentes de Prestadores → Liquidaciones de pagos, Facturas recibidas y la pestaña Prestador del perfil.
Gate por línea y disponibilidad de lote para mayo/junio
El corte específico de mayo y junio volvió a procesar los 7 egresos Galicia pendientes por $714.623,40 contra 31 líneas documentales, órdenes, lotes, liquidaciones, facturas y banco. La comparación se realiza en dos niveles: primero por línea de prestación y luego por la suma de todas las liquidaciones del prestador y período. Varias liquidaciones del mismo mes son válidas cuando pertenecen a diferentes OOSS o lotes; no deben reducirse a una sola fila ni compararse individualmente contra el neto mensual completo.
El resultado dejó 28 líneas respaldadas por una orden única o por un conjunto equivalente, 1 orden verdaderamente faltante, 1 posible desfase de período y 1 línea ambigua. De las 12 líneas respaldadas que aún no están vinculadas, 10 apuntan a lotes cuyo neto ya fue distribuido completamente entre liquidaciones existentes. Vincularlas sin reconstruir el pago OOSS duplicaría o sobredistribuiría dinero, aunque la identidad y el importe documental parezcan correctos.
Por eso el estado TARGET_BATCH_FULLY_ALLOCATED_REVIEW es un bloqueo económico obligatorio. El operador debe reconstruir primero la fuente OOSS, el pago del lote, sus débitos o rechazos explícitos y la distribución existente. El estado SET_EQUIVALENT_ORDER_GROUP_REVIEW conserva líneas duplicadas indistinguibles como conjunto y prohíbe emparejarlas arbitrariamente una a una. Ninguno de estos estados habilita UPDATE, liquidación, factura, operación PAY o cambio de estado.
SANDBOX y PSICOLE devolvieron exactamente el mismo detalle de casos, líneas y 9 lotes relevantes. Dos replays reprodujeron el hash semántico 2328f4e17a324cd800df6f067d326af03996e49fbe6d6c3f608094e3934048e8, con 0 mutaciones económicas, 0 comunicaciones y 0 antecedentes de débito automático usados como prueba de pago. La evidencia privada está identificada como provider-may-june-order-batch-gate-20260723.
Este gate también es NO_UI: endurece la auditoría previa y documenta por qué no existe todavía una reparación idempotente. Las pantallas y acciones humanas siguen siendo las existentes.
Gate bancario OOSS → Colegio → prestador
El siguiente control contrasta, sin modificar estados, la cadena económica completa:
- lote y factura institucional de la Obra Social;
- crédito acreditado en los extractos Galicia del Colegio;
- liquidaciones y facturas recibidas de prestadores;
- débito bancario que podría respaldar el pago al prestador.
El período de liquidación no obliga a que la acreditación bancaria ocurra en el mismo mes calendario. Por eso una coincidencia sólo se acepta cuando conserva el CUIT exacto de la OOSS y el importe documental coincide con un único crédito o con una única suma de créditos. El motor bloquea coincidencias por importe aislado, nombre aproximado, cercanía de fecha, movimientos reutilizados o más de una combinación posible.
Sobre 30 cohortes documentales de mayo, junio y julio por $56.224.572,02, los cinco extractos Galicia aportaron 27 créditos OOSS por $47.467.273,96. El resultado fue:
| Clasificación | Cohortes | Importe documental | Tratamiento |
|---|---|---|---|
| Crédito único por CUIT e importe | 16 | incluido en el total exacto | Evidencia candidata; requiere aprobación y vínculo persistente |
| Suma única de créditos por CUIT | 1 | incluido en el total exacto | Evidencia candidata; conservar todos los movimientos |
| Total exacto respaldado | 17 | $27.801.564,60 | No marca pagado por sí solo |
| CUIT encontrado, importe distinto | 10 | — | Revisar rechazos, ajustes, débitos o lote complementario |
| Sin crédito bancario de ese CUIT | 3 | — | Mantener pendiente |
Quedaron 9 créditos OOSS sin cohorte documental inequívoca y no se reutilizó ningún movimiento. En el lado de egresos, 54 de 173 períodos de prestador tienen un débito exacto por identidad e importe, por $15.037.755,69. Aun así, mayo, junio y julio permanecen en PARTIAL_EXACT_BANK_CHAIN: ninguna cadena cuenta simultáneamente con vínculos bancarios persistidos de cobro OOSS y pago a prestador.
El gate termina en PASS_READ_ONLY_BANK_EVIDENCE_CLASSIFICATION, pero su habilitación económica permanece BLOCKED_OPERATOR_APPROVAL_AND_PERSISTED_BANK_LINKS. El siguiente paso permitido es revisar cada coincidencia exacta, aprobarla expresamente y crear vínculos bancarios idempotentes. Recién después puede evaluarse una operación económica; este control nunca crea pagos, recibos, liquidaciones, saldos, mensajes ni cambios de estado.
SANDBOX y PSICOLE devolvieron el mismo contenido normalizado. Dos replays reprodujeron el hash semántico b2728fca0d68374cb6330d037c28a732cc837b9fbd2dc0b52042c9df5c390f6f; las capturas de base antes y después conservaron sus hashes por entorno, con 0 mutaciones económicas y 0 comunicaciones.
La auditoría se ejecuta con build:provider-ooss-bank-chain-evidence. Es NO_UI, utiliza únicamente archivos y snapshots de lectura, y deja JSON, CSV y README privados para revisión. No requiere pantalla, captura, ayuda contextual, onboarding ni tour.
CUIT maestro y diferencias tarifarias del lote
El CUIT usado para identificar un crédito OOSS debe existir tanto en la fuente documental como en el maestro de la Obra Social. Completarlo es un cambio de datos maestros: exige respaldo, coincidencia exacta de ID, código y nombre, preview sin conflictos y replay idempotente. No confirma un cobro ni modifica órdenes, lotes, liquidaciones o pagos.
Si el bruto documental de una liquidación difiere de la suma de sus órdenes, el
operador no debe asumir que faltan órdenes. El control compara cada número de
orden, cantidad, tarifa unitaria e importe. Una tarifa histórica mal importada
se clasifica como TARIFF_MISMATCH y mantiene bloqueados el lote y la cobranza
hasta ejecutar un preview de corrección que recalcule:
- importe de cada orden afectada;
- bruto aceptado del lote;
- comisión del Colegio;
- neto de cada liquidación;
- facturas y vínculos bancarios relacionados.
El preview debe explicar el 100% de la diferencia, reproducir el mismo hash en
dos ejecuciones y dejar en cero órdenes faltantes, sobrantes o ambiguas. La
corrección no se aplica parcialmente ni se usa para autorizar el pago al
prestador. En el gate del 23/07/2026, seis CUIT maestros se normalizaron sólo en
SANDBOX con replay de cero escrituras; una diferencia OSTV de $187.200 quedó
explicada por cuatro órdenes con tarifa persistida distinta de la fuente.
La reparación posterior se aplicó sólo en SANDBOX sobre esas cuatro identidades
exactas. Conservó su estado PAID, normalizó precio, total, período de servicio
y procedencia tarifaria, y dejó intactos lote, pago OOSS, liquidación, comisión,
neto, facturas y operaciones. El replay fue NOOP y dos auditorías posteriores
confirmaron diferencias cero. Esto corrige la representación histórica de las
órdenes; no confirma un nuevo cobro OOSS ni autoriza un pago al prestador.
PSICOLE permaneció sin cambios.
El control posterior separó el bruto del lote de su aceptado después de ajustes.
Las órdenes se comparan con batch.totalAmount; la diferencia entre ese bruto y
batch.acceptedAmount debe coincidir con los ajustes de las liquidaciones. En
OSTV, $2.048.900,00 - $1.986.500,00 = $62.400,00, exactamente el ajuste
documentado. Dos replays dejaron 6/6 lotes exactos listos únicamente para
aprobación humana de cobro OOSS, con los 18 candidatos todavía sin decisión ni
operación económica.
Los pagos a prestadores se mantuvieron bloqueados en los seis casos por
PROVIDER_INVOICES_INCOMPLETE. La disponibilidad para revisar un cobro OOSS no
habilita una liquidación ni un pago al prestador; factura canónica, operación
PAY y evidencia bancaria de egreso continúan siendo requisitos separados.
Trazabilidad en el perfil del prestador
El perfil del profesional muestra la trazabilidad financiera cuando el colegiado tiene isProvider activo y rol operativo habilitado. No se agrega una pantalla nueva: el bloque aparece dentro de Actividad como Prestador.
La sección resume:
| Dato | Significado |
|---|---|
| Liquidaciones pendientes | Cantidad y neto pendiente de pagar al prestador. |
| Facturas pendientes | Liquidaciones sin factura canónica aprobada; incluye las aún no presentadas, en revisión o legadas. |
| Pagos vinculados | Liquidaciones que ya tienen operación PAY asociada. |
| Últimas liquidaciones | Período, obra social, neto, estado de factura y operación de pago si existe. |
| Facturas de Prestador | Facturas fiscales históricas efectivamente recibidas y, por separado, liquidaciones que todavía requieren presentación. Los comprobantes reales incluyen número, fecha, período, importe, evidencia, estado y PDF privado; una fila Pendiente de presentación / No presentada no representa un archivo fiscal. |
La tabla de facturas está dentro de la pestaña existente Prestador. El resumen separa comprobantes presentados de obligaciones pendientes. En revisión significa que existe un vínculo documental exacto con una liquidación todavía pendiente; Registrada / Sin vínculo exacto significa que el archivo está preservado pero requiere normalización o evidencia adicional. Pendiente de presentación muestra una liquidación real que todavía no tiene factura recibida y nunca debe interpretarse como comprobante importado. Si no existen facturas ni liquidaciones, el perfil lo informa explícitamente. En móvil, el desplazamiento horizontal queda contenido dentro de la tabla y no desplaza el perfil completo.
El auditor de reciprocidad del 27/07/2026 confirmó en PSICOLE 2.451
facturas físicas asociadas sin identidades huérfanas ni diferencias de importe
en los vínculos exactos existentes. Esas facturas pertenecen a 305 perfiles;
por eso un prestador activo sin comprobantes puede mostrar correctamente un
estado vacío. Sólo 3 de las 130 liquidaciones tienen factura canónica
vinculada. Las 127 restantes son una cola documental real y no deben
completarse por importe, nombre o período aproximado.
La ficha también enlaza Operaciones recientes con el historial completo de Dinero filtrado por matrícula. Ese acceso evita interpretar el resumen reciente como el universo total de pagos y transferencias del profesional.
La respuesta administrativa de perfil informa collectionCompleteness para
cada colección y entrega el historial completo consultado, sin límites
silenciosos de pagos, operaciones, órdenes, trámites, comunicaciones o
auditoría. En modo AUTHZ_POLICY_MODE=enforce, cada bloque se entrega sólo a
roles con capacidad explícita: identidad, finanzas, prestadores, trámites,
formación, comunicaciones, auditoría y roles se autorizan de forma independiente.
En observe se conserva la compatibilidad vigente y se registran diferencias
sin bloquear a los operadores que ya están probando.
Consultar GET /users/:id/full-profile es estrictamente de sólo lectura. Si una
credencial no tiene QR, la ficha informa que requiere emisión administrativa;
no genera ni persiste el QR durante el GET. La emisión o regeneración continúa
en su flujo administrativo auditable.
El auditor de reciprocidad falla cerrado. Una corrida sólo puede declararse
CERTIFIED cuando son cero, simultáneamente: liquidaciones sin factura canónica,
lotes OOSS sin respuesta, pagos de lote sin movimiento bancario y facturas OOSS
sin líneas. El corte actual continúa INCOMPLETE; la corrección evita un falso
PASS, pero no inventa los vínculos que todavía faltan.
Interfaz existente y datos privados
No se creó una pantalla nueva. El prestador consulta sus facturas en Liquidaciones y el operador en Profesionales → perfil → Prestador o Facturas recibidas. No se publica una captura adicional porque las filas contienen información fiscal y financiera privada.
El barrido integral del 23/07/2026 verificó 293/293 facturas fuente y sus
archivos privados en SANDBOX y PSICOLE. Esos comprobantes pertenecen a 43
profesionales; no existe una factura para cada persona marcada como prestadora.
Por eso, un perfil vacío puede ser un resultado correcto y no un error de
importación.
La cobertura se clasifica sin fabricar actividad:
| Clase | Perfiles | Tratamiento |
|---|---|---|
| Sin actividad en las fuentes | 305 | Mantener el perfil sin facturas, órdenes o liquidaciones inventadas. |
| Órdenes sin liquidación | 84 | Completar el circuito OOSS antes de solicitar factura o pagar. |
| Órdenes y antecedentes de factura sin liquidación | 19 | Preservar documentos y revisar período/lote; no vincular por importe. |
| Sólo antecedente de factura | 3 | Mantener REGISTERED hasta encontrar una liquidación exacta. |
| Liquidación con factura requerida | 59 | Mostrar la obligación Pendiente de presentación. |
| Liquidación con documento exacto pendiente de aprobación | 3 | Revisar fiscalmente; el vínculo documental no equivale a factura aprobada ni pago. |
Los dos entornos tienen la misma cobertura: 473 prestadores, 161 perfiles
con órdenes, 62 con liquidaciones y 43 con facturas presentadas. Las 130
liquidaciones incluyen 127 requerimientos sin factura aprobada por
$20.966.558,50. Sólo 3 tienen documento exacto vinculado y todavía requieren
aprobación humana. No se infiere estado pagado, rechazo de OOSS ni liquidación a
partir de un débito bancario aproximado.
El SPTS total de mayo/junio/julio usa esta misma estructura para producir professional-traceability.csv. Ese archivo permite revisar por profesional si existen órdenes, lotes, pagos desde obra social, liquidaciones, facturas pendientes y pagos al prestador antes de cerrar preproducción.
En el cierre del 10/07/2026, PSICOLE incorporó 581 órdenes fuente del alcance mayo-julio y 125 liquidaciones reales pendientes distribuidas en 19 lotes. Las 125 conservan la factura del prestador como pendiente y no tienen operación PAY: son una cola documental, no pagos omitidos. SANDBOX conserva además históricos de órdenes y operaciones de prueba, por lo que sus totales globales no deben copiarse a producción ni usarse para inferir pagos.
Certificacion de ordenes de junio del 18/07/2026
La planilla Ordenes Junio 2026 Completo.xlsx fue procesada como fuente de órdenes, no como extracto bancario. Contenía 887 filas: 884 órdenes canónicas, 3 duplicados internos, 2 coincidencias exactas ya existentes y 2 conflictos de identidad que quedaron fuera de la importación automática. Se incorporaron 878 órdenes seguras en cada entorno; repetir el comando importó 0, confirmando idempotencia.
Después del cruce, SANDBOX y PSICOLE contienen el mismo universo por código trazable: 1.444 órdenes, 143 rendiciones y 125 liquidaciones. No se generó ninguna orden de pago a prestador. Las órdenes nuevas sin nomenclador oficial permanecen PENDING_REVIEW: el sistema no inventa un precio, una factura, una liquidación ni un pago a partir de la planilla.
El control estricto dejó 1.100 órdenes históricas pagadas por obra social todavía pendientes de una liquidación formal al prestador. Esta cifra es una cola operativa para revisar precio, rendición, factura y liquidación; no representa 1.100 pagos omitidos ni habilita una materialización masiva. Hasta resolver esa cola y aprobar el nomenclador, los pagos automáticos a prestadores continúan bloqueados.
En SANDBOX se aislaron tres PDF identificados exactamente como fixtures de prueba. Se movieron al respaldo de cuarentena, sin borrar usuarios, órdenes, documentos reales ni antecedentes. PSICOLE no tenía esos archivos activos.
Control de liquidacion integral de julio del 21/07/2026
La planilla PRESTADORES-OBRASSOCIALES-Liquidación Julio 2026.xlsx es una liquidación preparada en julio, pero sus 711 renglones de prestaciones corresponden a períodos entre febrero y mayo de 2026. Contiene 62 profesionales, 9 obras sociales y 10 facturas institucionales. El total bruto es $21.100.115,42, el aceptado $20.131.152,00 y el neto de detalle $18.118.036,69; la planilla agrega $245.942,99 de beneficios jubilatorios y llega a un neto final de $18.363.979,82.
Los 62 profesionales tienen identidad única y están marcados como prestadores en PSICOLE. La resolución canónica y los gates posteriores separan identidad, precio y efecto económico:
600líneas con número de orden son candidatas nuevas y1línea ya está representada inequívocamente;108líneas sin número tienen afiliado y firma económica únicos. El preview propone para cada una un númeroLEGACY-AAAAMM-<hash>derivado del hash de fuente y la firma completa de línea;- los
108números, trace codes, claves canónicas e idempotency keys son únicos y no colisionan con órdenes de SANDBOX ni PSICOLE; 2líneas de Poder Judicial coinciden en firma económica con una orden existente pero traen otro número; permanecen en revisión manual por posible duplicación;- las
10facturas institucionales todavía no existen en el registro canónico; - las diferencias de liquidación detectadas son únicamente de redondeo, entre
$0,01y$0,08por prestador.
La identidad sintética certificada no equivale a precio aprobado. Entre esas 108 líneas, sólo 36 tienen tarifa oficial exacta; 71 difieren del nomenclador activo y 1 no tiene nomenclador. En las 600 líneas con número, 520 tienen precio oficial exacto y 80 permanecen agrupadas en 12 excepciones tarifarias: 9 sin segunda evidencia, 1 prestación sin código canónico y 2 precios históricos incompatibles de Swiss Medical.
Por esa razón, el control continúa en preview, sin crear órdenes, facturas, liquidaciones ni pagos. No se debe hacer un cruce masivo por nombre, importe agregado o cantidad ni importar sólo una parte de una factura o lote.
El preview integral de las 708 altas potenciales ya fue ejecutado dos veces en SANDBOX y dos en PSICOLE. Cubrió las 711 líneas fuente sin huecos: 708 altas potenciales, 1 línea reutilizable y 2 posibles duplicados en revisión. No detectó colisiones de trace code, clave canónica o idempotencia y conservó delta cero en 15 familias económicas.
La proyección deja 8/17 lotes listos después de importar sus órdenes, 8 bloqueados por tarifa y 1 por posible duplicación. De las 10 facturas institucionales, 2 quedarían listas, 7 continúan bloqueadas por tarifa y 1 por posible duplicación. Las 152 líneas sin precio oficial exacto se agrupan en 13 decisiones documentales: 142 difieren del nomenclador activo y 10 no tienen nomenclador.
Este resultado certifica la integridad del preview, no la aplicación económica. economicApplyReady, la importación parcial y la aplicación automática permanecen bloqueadas hasta resolver los 13 grupos tarifarios y las dos líneas de Poder Judicial, y volver a obtener el mismo hash con todos los lotes y facturas completos.
Cola de 15 decisiones documentales
El gate siguiente convirtió las excepciones en una cola reproducible, sin crear ni modificar datos económicos. Dos ejecuciones en SANDBOX y dos en PSICOLE produjeron el mismo hash semántico y conservaron en cero los deltas de nomenclador, órdenes, rendiciones, lotes, facturas, pagos, recibos y comunicaciones.
11grupos quedanAWAITING_SECONDARY_TARIFF_EVIDENCE: requieren arancel oficial o una segunda fuente independiente del mismo período;2grupos Swiss Medical quedanAWAITING_EFFECTIVE_DATE_POLICY: existen precios fuente incompatibles y debe definirse vigencia o diferencia de plan;2líneas Poder Judicial quedanREUSE_EXISTING_PENDING_OPERATOR_CONFIRMATION: coinciden en profesional, obra social, período, afiliado, prestación, cantidad e importe con una orden existente, pero el número de orden cambió.
La coincidencia económica de las dos líneas de Poder Judicial es una propuesta de reutilización, no una fusión automática. El operador debe confirmar si se trata de una reemisión; si fuera una prestación distinta, debe conservar ambas y documentar la evidencia. Hasta resolver las 15 decisiones, no se activa una tarifa, no se crea una orden y no se promueve ningún lote o factura afectado.
La evidencia auditable se conserva en provider-ooss-exception-decision-gate-20260721: incluye CSV por decisión, linaje de fuentes, precios fuente y de nomenclador, lotes/facturas afectados, cuatro replays y checksum SHA-256. Esta etapa es NO_UI: se opera como control previo al lote y no agrega una pantalla al sistema.
Estado previo que se conserva sin reescritura: 40 liquidaciones PENDING, todas sin factura recibida aprobada; 11 lotes (9 validados, 1 pagado y 1 borrador); y 10 pagos de lote (9 pendientes y 1 confirmado). Estos estados no prueban por sí solos que una liquidación individual esté pagada y no autorizan inferir una transferencia al prestador.
No pagar por cruce automático
Que una transferencia o liquidación aparezca en el SPTS no autoriza pagar automáticamente al prestador. Primero debe existir factura del prestador cuando corresponda y una operación PAY trazable. El RUN total deja el cruce y los bloqueos visibles; la factura pendiente queda consignada en el perfil del prestador.
Importación masiva de pacientes (Admin)
El Administrador puede importar los pacientes de cualquier prestador desde el historial completo de órdenes:
- Endpoint:
POST /api/v1/operator/provider-patients/bulk-import - Body:
{ "professionalId": "...", "importAllHistory": true } - Resultado:
{ created, updated, skipped, total } - Para lotes grandes (más de 200 órdenes), el proceso corre en background y registra el resultado en el log de auditoría.
Directorio público del prestador
El prestador controla su presencia en el directorio público desde Mi Perfil Público:
- Activar/desactivar el perfil público.
- Completar bio, especialidades, obras sociales aceptadas, modalidad de atención, horarios y datos de contacto públicos.
- Subir foto de perfil.
Los cambios aplican de inmediato (respetando el TTL de caché del directorio: 2 minutos).
API pública del directorio
Ver documentación completa en Directorio Público.
Reglas de negocio
Precio oficial y revisión tarifaria
Las órdenes nuevas derivan su precio del nomenclador oficial de la obra social, código de prestación y fecha de servicio. El valor escrito por el formulario no reemplaza esa fuente.
- Si existe un nomenclador activo y vigente, la orden conserva el código, la versión y el precio oficial utilizado.
- Si el importe ingresado difiere, con
PROVIDER_PRICING_GUARD_MODE=enforcese usa el precio oficial. Una excepción manual requiere motivo y la capacidad de Finanzas o Administración. - Si no existe un precio confiable, la orden queda
PENDING_REVIEW. No se inventa un monto ni se habilita una factura o liquidación nueva sobre esa orden. - La corrección existente de una orden permite aprobar el precio con motivo y clave idempotente. Repetir el mismo comando recupera el resultado; cambiar el contenido con la misma clave se rechaza.
- Las órdenes históricas no se reescriben, cancelan ni cambian de estado por activar la guarda. Se presentan como cola de revisión y conservan sus liquidaciones y facturas existentes.
Durante la activación gradual, PROVIDER_PRICING_GUARD_MODE=observe calcula y
registra la diferencia, conserva el precio solicitado como PENDING_REVIEW y no
hace bloqueante la capacidad de aprobación: mantiene la decisión legada. Sólo
PROVIDER_PRICING_GUARD_MODE=enforce aplica el precio oficial y rechaza con
403 una aprobación manual solicitada por un rol sin la capacidad tarifaria,
además de bloquear órdenes pendientes en las operaciones protegidas.
Para fuentes históricas sin número de orden, un identificador sintético sólo es admisible cuando matrícula, obra social, período, afiliado, prestación, cantidad e importes forman una firma única, no existe una orden equivalente y el identificador se deriva del hash inmutable de la fuente. El preview debe probar unicidad, colisiones, idempotencia y delta cero. Aun cumpliendo identidad, una tarifa faltante o contradictoria mantiene la línea en revisión y bloquea su factura y lote.
Si dos fuentes traen la misma firma económica con distinto número de orden, el sistema no debe crear una segunda orden ni fusionarlas por sí solo. La línea queda en revisión hasta que el operador confirme reemisión o prestación distinta y deje trazabilidad del documento que respalda la decisión.
Prestador habilitado
Solo pueden cargar órdenes los colegiados con matrícula activa y rol PRESTADOR habilitado. Las órdenes de prestadores con matrícula suspendida son rechazadas automáticamente en la validación.
Sin duplicados por período
El sistema detecta órdenes con el mismo número de orden y obra social en el mismo período. Las duplicadas se marcan como RECHAZADA_DUPLICADO.
Factura posterior a la rendición
La rendición se cierra con las órdenes y la validación correspondiente. La factura del prestador se presenta después, sobre la liquidación neta. Lo que queda bloqueado sin factura canónica aprobada es el pago de la liquidación, no el cierre de la rendición.
Rendición única por período
Solo puede existir una rendición activa por prestador y período. Si una rendición fue rechazada, debe eliminarse antes de generar una nueva para el mismo mes.
Errores frecuentes
| Error | Causa | Solución |
|---|---|---|
PRESTADOR_NO_MATRICULADO |
El número de matrícula no existe en PSICOLE | Verificar el número con la obra social |
PRESTADOR_INHABILITADO |
La matrícula existe pero está suspendida | Regularizar la matrícula antes de validar |
CODIGO_PRESTACION_DESCONOCIDO |
El código de prestación no está en el nomenclador | Actualizar el nomenclador de la obra social |
PENDING_REVIEW |
No existe un precio oficial confiable o falta aprobación de una excepción | Completar el nomenclador o corregir la orden con motivo desde el panel existente |
403 al aprobar precio |
Con PROVIDER_PRICING_GUARD_MODE=enforce, el rol no tiene capacidad financiera o administrativa |
Solicitar revisión a Finanzas/Admin; no cambiar el rol del prestador. En observe la discrepancia sólo se registra |
LOTE_YA_APROBADO |
Se intenta modificar un lote cerrado | Usar órdenes de ajuste en el próximo lote |
SUBMISSION_YA_EXISTE |
Ya existe una rendición para ese período | Revisar en Liquidaciones si ya fue enviada |
Preguntas frecuentes
¿Puede un prestador tener pacientes con múltiples obras sociales? Sí. La libreta soporta múltiples OOSS por paciente, cada una con su número de afiliado y plan. Al crear una orden, el prestador elige cuál OOSS usar.
¿Qué pasa si el turno no tiene paciente de la libreta? El turno puede crearse con nombre libre (sin vincularlo a la libreta). Al completarlo, el sistema igualmente permite crear la orden aunque el paciente no esté registrado.
¿Cómo funciona la notificación al paciente? Si el paciente tiene email registrado en la libreta y el prestador activó la opción "Notificar al paciente" al crear el turno, el sistema envía un email automático de confirmación con fecha, hora y modalidad de la sesión.
¿Puede el prestador ver órdenes observadas? Sí. Las órdenes observadas aparecen con el motivo visible en el portal del prestador, para que pueda informar a su obra social la corrección necesaria.


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, presentar su factura, 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.

Facturas de prestadores y liquidaciones
La factura que emite el prestador al Colegio se gestiona sobre la liquidación, cuando el neto definitivo ya fue calculado. No se adjunta para cerrar la rendición ni se genera desde el modelo de factura de Obra Social.
El flujo canónico es:
- Validar las órdenes del período.
- Generar o asociar la liquidación del prestador.
- El prestador carga la factura real desde Liquidaciones, informando número, fecha, importe y archivo.
- El sistema registra la factura en
received_invoices. Si corresponde a una sola liquidación conserva el vínculo directo; si agrupa varias OOSS del mismo prestador y período, registra asignaciones documentales explícitas contra cada liquidación.payment_settlements.invoice_*permanece sólo como espejo de compatibilidad del vínculo directo. - El operador la encuentra en Prestadores → Liquidaciones de pagos → Facturas recibidas, verifica archivo, identidad e importe neto y la aprueba u observa.
- Recién con estado
APPROVED_FOR_PAYMENTse habilita registrar el pago de la liquidación. La aprobación de la factura no crea por sí sola una transferencia, un recibo ni una comunicación.
Cuando el Colegio recibe una factura antes de contar con una liquidación canónica compatible, puede registrarla como documentación recibida. En ese caso queda REGISTERED, sin paymentSettlementId ni paymentOperationId. El archivo, la identidad fiscal y el motivo de bloqueo permanecen visibles, pero el registro no habilita aprobación, pago ni comunicación.
El prestador consulta todas sus facturas canónicas en la pantalla existente de
Liquidaciones, aunque todavía no estén vinculadas a una liquidación. La API
resuelve el propietario desde la sesión y filtra por issuerType=PROVIDER e
issuerId exacto; no admite elegir otro prestador por parámetro. La vista marca
las filas sin vínculo como Sin liquidación exacta y conserva por separado la
existencia del comprobante y la disponibilidad de su archivo físico.
Un gate documental posterior puede vincularla a una liquidación PENDING
únicamente cuando coinciden de forma inequívoca prestador, período económico,
importe neto y archivo fiscal. También admite una factura agregada cuando una
única combinación de liquidaciones del mismo prestador y período suma
exactamente el importe fiscal. Cada asignación conserva su importe y su clave
idempotente; una liquidación no puede recibir dos facturas activas por esta vía.
El vínculo cambia la factura a LINKED_TO_SETTLEMENT y la expone en todas las
liquidaciones cubiertas, pero no confirma el cobro de la Obra Social, no aprueba
la factura y no genera una operación PAY.
La autorización de pago sigue siendo estricta: una factura agregada requiere revisión financiera de toda la composición y no puede habilitar por sí sola el pago individual de ninguna liquidación. El replay del gate debe producir cero altas y cero cambios económicos.
Estados de la factura recibida:
| Estado | Significado |
|---|---|
REGISTERED |
Comprobante fiscal recibido y preservado, todavía sin liquidación canónica vinculada; no habilita pago |
LINKED_TO_SETTLEMENT |
Presentada por el prestador y pendiente de revisión |
APPROVED_FOR_PAYMENT |
Validada por un operador; habilita registrar el pago |
PAID |
La liquidación fue pagada y quedó vinculada a la operación de pago |
CANCELLED |
Reemplazada o anulada; permanece en el historial de auditoría |
Contrato de privacidad para el prestador
Las respuestas y documentos propios del prestador se construyen desde un modelo de presentación separado del modelo administrativo. Exponen monto neto, período, estado, OOSS, factura y trazabilidad propia; omiten importe bruto, porcentaje de comisión e importe de comisión del Colegio. La omisión es sólo de presentación: los valores administrativos permanecen intactos y disponibles para roles financieros autorizados.
El inventario de facturas se pagina en servidor y siempre deriva el
professionalId desde la sesión autenticada. No acepta otro prestador por query
string. La descarga del archivo vuelve a comprobar factura, liquidación y
propietario; conocer la ruta física no concede acceso.
El recibo descargable desde el portal se genera con el mismo contrato neto. No reutiliza un PDF administrativo que pueda incluir comisión. La prueba de regresión exige que payload, HTML y PDF propios no contengan claves o rótulos de bruto/comisión y que una liquidación ajena responda acceso denegado.
La pestaña Prestador también proyecta cada liquidación sin comprobante como
Pendiente de presentación. Esa fila no es una factura fiscal, no tiene
archivo y no crea un registro en received_invoices: identifica la obligación
documental, con su período, neto y liquidación de origen. Cuando se recibe una
factura real, la fila esperada deja de mostrarse y aparece el comprobante con su
estado canónico. No presentada significa que el Colegio todavía no recibió
el archivo; Falta archivo significa que existe un registro fiscal que debe
ser revisado porque no conserva un adjunto utilizable.
El número de factura es único por prestador. El importe debe coincidir con el neto de la liquidación, con una tolerancia máxima de $ 1,00 para redondeos. Si el prestador reemplaza una factura todavía no aprobada, la anterior no se borra: queda CANCELLED, conserva su archivo histórico y el archivo vigente se refleja en la liquidación.
La lista operativa permite buscar por prestador, número de factura, período, liquidación u obra social. También filtra por Registradas sin liquidación, En revisión, Aprobada para pago, Pagada, Cancelada y Legada: revisar. Las facturas vinculadas respetan el período operativo seleccionado; las registradas sin liquidación conservan su período fiscal propio y permanecen en la bandeja documental hasta vincularse. Las filas legadas son referencias anteriores sin identidad canónica completa y nunca se aprueban automáticamente.
Gate documental histórico 2023–2026
El 22/07/2026 se cerró el inventario completo de las facturas enviadas por prestadores al Colegio. La fuente contenía 297 archivos: 3 eran copias duplicadas y 1 no era una factura. El universo canónico quedó en 293 comprobantes fiscales pertenecientes a 43 profesionales: 4 de 2023, 74 de 2024, 143 de 2025 y 72 de 2026. Cada registro conserva PDF privado, clave fiscal, hash de fuente, período económico y evidencia de identidad.
El contraste revisó además 275 planillas de órdenes, facturación y liquidaciones de OOSS, incluyendo las fuentes adicionales de mayo y junio de 2026. Después de deduplicar evidencia, 22 facturas tienen importe neto documental exacto: 13 en el período declarado y 9 con corrección de período respaldada por la fuente. Sólo 3 cuentan también con una liquidación relacional exacta y permanecen LINKED_TO_SETTLEMENT; las otras 19 siguen REGISTERED hasta que exista esa liquidación canónica. Las 271 restantes conservan el motivo Sin liquidación fuente.
Una diferencia entre factura, bruto de órdenes y neto no demuestra por sí sola un rechazo de la Obra Social. Puede corresponder a comisión, débito explícito, ajuste o diferencia de período. El sistema sólo muestra rechazo OOSS cuando una fuente lo declara; nunca lo completa por cercanía de nombre o importe.
El importador es idempotente por CUIT emisor, punto de venta, número y hash del archivo. En SANDBOX y PSICOLE incorporó 221 comprobantes históricos y completó los metadatos de las 72 facturas 2026 ya registradas. El replay posterior resolvió las 293 como NOOP: no creó pagos, recibos, operaciones, órdenes, rendiciones, liquidaciones, mensajes, correos ni avisos, y no cambió roles o estados.
El verificador independiente confirmó en ambos entornos 293/293 registros, 293/293 archivos, 43 profesionales, los mismos períodos y decisiones documentales, 0 extras y 0 problemas. La consulta se realiza en Prestadores → Liquidaciones de pagos → Facturas recibidas o en Profesionales → perfil → Prestador. El selector del panel incluye los períodos históricos con información.
Ampliación del archivo maestro 2018–2026
El 24/07/2026 se auditó el archivo histórico externo organizado por emisor. De 2.541 archivos físicos quedaron 2.360 documentos únicos después de excluir 181 copias binarias. El gate separó:
2.158facturas certificadas para perfiles profesionales;3duplicados fiscales internos y3comprobantes ya registrados en el gate anterior;117documentos cuyo destinatario no certifica una factura de prestador al Colegio;4documentos que requieren revisión;75candidatos excluidos del subconjunto importable porque corresponden a proveedores o gastos institucionales, o porque no tienen una identidad profesional única.
La identidad se resuelve por CUIT profesional exacto. Cuando el CUIT almacenado en el perfil es incompleto o legado, se admite el DNI de ocho dígitos embebido en un CUIT individual válido con prefijo 20, 23, 24 o 27, siempre que exista un único profesional con ese DNI. No se usa nombre, carpeta, monto ni cercanía textual como única prueba de identidad.
SANDBOX y PSICOLE incorporaron las 2.158 facturas certificadas como REGISTERED, con PDF privado y hash verificado. Sumadas al archivo anterior, cada entorno conserva 2.451 facturas. El subconjunto nuevo corresponde a 282 profesionales identificados de forma inequívoca. El verificador comprobó 2.158/2.158 registros y archivos nuevos, 0 problemas y replay NOOP completo en ambos entornos. El apply agregó sólo las facturas y sus auditorías: no creó pagos, recibos, operaciones, deudas, órdenes, rendiciones, liquidaciones, mensajes, correos ni avisos.
La promoción productiva se ejecutó después de un respaldo verificable de base y archivos. El replay devolvió 2.158 NOOP y los contadores económicos y operativos conservaron delta cero. La prueba autenticada confirmó que el perfil devuelve sus facturas y que el PDF se descarga únicamente por la ruta privada protegida.
El cruce complementario de OOSS revisó 13.532 prestaciones institucionales únicas, 2.267 líneas de liquidación y 173 combinaciones prestador/período. Las coincidencias económicas son evidencia para revisión; no vinculan automáticamente una factura a una liquidación ni convierten una diferencia de importe en rechazo de OOSS.
Archivo histórico no equivale a deuda ni pago
Una factura histórica visible prueba que el Colegio recibió ese comprobante. Mientras permanezca REGISTERED, no prueba liquidación, aprobación, débito bancario ni pago al prestador.
Certificación fail-closed de la cadena económica
La certificación integral evalúa por separado cuatro coberturas obligatorias:
- cada liquidación debe tener factura canónica;
- cada lote mensual OOSS debe conservar una respuesta;
- cada pago de lote debe tener movimiento bancario vinculado;
- cada factura institucional OOSS debe conservar sus líneas de detalle.
Si cualquiera de esos contadores es distinto de cero, el resultado es
INCOMPLETE y el auditor finaliza con error. Un conjunto de órdenes, importes o
fechas compatibles puede ordenar la revisión, pero no sustituye estas relaciones
persistidas. La certificación no corrige datos, no cambia estados y no crea
pagos, recibos, operaciones o comunicaciones.
Cruce contra débitos bancarios de prestadores
El control de egresos usa el extracto Galicia, no los reportes de débito automático de colegiación. La secuencia mínima es:
neto documental → liquidación canónica → factura aprobada → débito Galicia → operación PAY aprobada/conciliada.
Un importe exacto en el banco es evidencia para revisar, no una autorización de pago. En el gate vigente se encontraron 54 egresos documentales exactos; sólo 2 tienen además una liquidación relacional del mismo período e importe y ninguna completa toda la secuencia. Las 47 filas sin liquidación y las 5 con diferencia de importe permanecen bloqueadas.
Los archivos de instrucciones bancarias tampoco sustituyen al extracto: de 21 instrucciones históricas, 16 tienen importe parcial o desactualizado y ninguna demostró por sí sola una ejecución exacta. El operador debe consultar la factura y la liquidación existentes, no crear una segunda a partir del archivo bancario.
Diferencia de importe no equivale a rechazo
Una diferencia puede provenir de órdenes no incorporadas, comisión, débito explícito, ajuste de período o rechazo documentado. Sólo se informa rechazo OOSS cuando la fuente de OOSS lo declara.
Archivo general de liquidaciones 2026
El archivo general se usa como evidencia documental auxiliar para reconstruir la cadena prestador/período. No sustituye la liquidación canónica, la factura recibida, el extracto bancario ni la aprobación de pago.
El gate 2026 procesó 384 filas de 95 prestadores por $94.443.978,40.
Encontró 42 egresos Galicia exactos con identidad suficiente. Nunca se acepta
una coincidencia basada sólo en importe. La fecha bancaria tampoco puede ser
anterior a la fecha de factura o, si no existe, a la fecha de liquidación.
El cruce final resolvió las 16 variantes de identidad que permanecían
bloqueadas. La compatibilidad admite únicamente un prestador inequívoco y se
limita a segundo nombre omitido, apellido compuesto sin espacio o una sola
letra diferente en un token largo. La evidencia queda identificada con el
método utilizado, siempre requiere revisión humana y nunca autoriza una
liquidación o un pago automático.
La cola final contiene 76 candidatos humanos:
37filas documentales con liquidación para revisar;3retenciones documentales con liquidación pero sin banco probado;35egresos exactos sin liquidación canónica del período;3egresos exactos con diferencia contra el importe persistido;1cadena con débito y liquidación individual exactos, todavía pendiente de aprobación humana.
Otras 3 filas declaradas RETENIDO contradicen un débito exacto. Esas
contradicciones quedan bloqueadas y no se persisten como candidatos.
Permanecen fuera de cualquier vinculación automática 240 filas sin
liquidación del sistema, 46 diferencias de importe, 19 egresos anteriores a
la factura y 3 contradicciones entre estado retenido y débito bancario. No
quedan identidades bloqueadas en el libro general. El estado DEPOSITADO del
archivo tampoco prueba ejecución bancaria.
El apply sólo persiste evidencia en MoneyAssociationCandidate; no crea ni
actualiza pagos, recibos, deudas, órdenes, liquidaciones, facturas, estados o
comunicaciones. El replay debe devolver 0 altas y los mismos candidatos.
Las planillas mensuales vivas de enero a mayo agregan una comprobación
independiente de cuenta bancaria. Sus 262/262 filas se vincularon de forma
única al libro general: 17 cuentas registradas confirmaron al prestador,
16 filas tuvieron además un débito Galicia único, 4 explicaron la relación
bruto/neto por la comisión del 10% y no hubo conflictos de cuenta. En 11
filas la planilla mensual no aporta por sí sola una identidad bancaria
independiente; conservan el vínculo del libro general, pero no suman evidencia
para pagar. La carpeta viva no contiene planillas mensuales equivalentes de
junio o julio; esos períodos continúan respaldados por el archivo general y el
extracto, sin inventar una confirmación de cuenta ausente.
Para resolver un candidato, el operador debe reconstruir la secuencia:
órdenes OOSS → lote/cobro OOSS → liquidación neta → factura aprobada → débito
Galicia → operación PAY. Una diferencia de monto exige revisar comisión,
ajustes, órdenes rechazadas documentadas o distribución entre lotes; no autoriza
completar la causa por inferencia.
Auditoría de reciprocidad OOSS y prestadores
El control del 27/07/2026 separó los dos sentidos del circuito:
- OOSS → Colegio:
21lotes mensuales y20pagos de lote registrados. Ninguno tiene todavía un movimiento bancario vinculado; por lo tanto el lote distribuido no prueba cobro. - Colegio → prestador:
130liquidaciones,125con operación económica asociada y sólo3con factura canónica. Todas continúanPENDING; una operación relacionada no equivale a pago aprobado o conciliado. - Prestador → Colegio:
2.451facturas físicas preservadas en305perfiles. Sólo los tres vínculos exactos forman parte hoy de una liquidación canónica; las demás conservan valor documental. - Colegio → OOSS:
418facturas institucionales registradas,81con PDF físico disponible. La factura documenta emisión fiscal, no acreditación.
Las dos referencias físicas rotas fueron restauradas por hash y el control
posterior informa physicalMissingTotal = 0 en ambos entornos. La certificación
económica completa sigue bloqueada por las cadenas sin liquidación canónica,
las diferencias de importe y la ausencia de vínculos bancarios persistidos; no
corresponde recalcular, marcar pagado o sustituir evidencia automáticamente.
Control de distribución del lote
Antes de vincular órdenes faltantes o reconstruir una liquidación, el control suma todas las liquidaciones del prestador y período y audita el lote OOSS de destino. Varias liquidaciones mensuales son válidas si provienen de lotes u obras sociales diferentes; la igualdad se evalúa sobre el agregado mensual y se conserva el detalle por lote.
Si el neto pagado del lote ya coincide con la suma de sus liquidaciones, el sistema clasifica cualquier nueva orden candidata como TARGET_BATCH_FULLY_ALLOCATED_REVIEW. La identidad correcta de una orden no habilita por sí sola una nueva distribución: primero debe existir evidencia de que el pago OOSS, un débito, un rechazo o una asignación previa están incompletos o incorrectos. Hasta entonces no se crea ni modifica una liquidación.
Las líneas documentales repetidas que no pueden distinguirse individualmente se validan como conjunto. El estado SET_EQUIVALENT_ORDER_GROUP_REVIEW exige igualdad de cardinalidad y firma económica entre líneas y órdenes, pero mantiene el vínculo bloqueado hasta resolver el lote. Esta regla evita elegir una fila arbitraria y mantiene la idempotencia del circuito.
Cobertura documental y confirmación bancaria del lote
El control del lote separa tres comprobaciones que no son equivalentes:
- Cobertura documental: cada orden del lote debe corresponder a una línea de la respuesta o liquidación de la OOSS.
- Distribución aritmética: el aceptado, los débitos explícitos, la comisión y el neto distribuido deben cerrar por lote y prestador.
- Evidencia bancaria: el cobro de la OOSS y el pago al prestador requieren movimientos bancarios vinculados a sus operaciones económicas.
Un lote puede cerrar internamente y seguir PENDING. FULLY_ALLOCATED sólo indica que el neto registrado fue distribuido entre liquidaciones; no demuestra que la OOSS haya transferido el dinero ni que el Colegio haya pagado a los prestadores.
El gate de mayo/junio 2026 auditó 9 lotes, 984 órdenes y 92 liquidaciones en SANDBOX y PSICOLE. Todas las órdenes del sistema tienen respaldo documental y la distribución no presenta diferencias económicas; un agregado de Swiss Medical difiere $ 0,04 por redondeo de 63 líneas y queda identificado como tolerancia, no como rechazo. Sin embargo:
8lotes son subconjuntos de la documentación mensual: existen435líneas fuente que no integran esos lotes;- sólo Poder Judicial junio tiene cobertura documental exacta;
- los
9pagos de lote fueron cargados con procedenciasandbox_provider_settlements_202606, siguenPENDINGy declaran que no confirman extracto bancario; - no existe un movimiento bancario vinculado al cobro OOSS ni a las
92liquidaciones.
El gate siguiente contrastó el manifiesto certificado con las transacciones Galicia persistidas. Luego de importar en SANDBOX el segundo extracto de julio por hash y clave de deduplicación, registró 18 candidatos exclusivamente humanos: 6 apuntan a un pago de lote exacto y pendiente, y 12 conservan la evidencia contra la cohorte OOSS/período hasta completar el lote. Ninguno tiene paymentOperationId, puede autoaplicarse o cambia el estado del lote.
Poder Judicial julio se mantuvo bloqueado mientras faltó una de las dos transferencias que componen su evidencia. Con la fuente completa, SANDBOX y PSICOLE produjeron 18/18 filas funcionalmente idénticas al excluir únicamente UUID técnicos. El apply SANDBOX creó los 2 candidatos faltantes; el replay creó 0, dejó 18 sin cambios y no modificó el snapshot económico. La paridad se resolvió cargando la fuente, nunca copiando candidatos desde producción.
El primer control exacto dejó 5 cobranzas OOSS listas para aprobación humana y
1 bloqueada. La corrección histórica posterior normalizó en SANDBOX cuatro
órdenes OSTV y cerró la diferencia de $187.200 sin recalcular lote, pago,
comisión, neto o liquidación.
El auditor posterior compara ahora el bruto de órdenes con el bruto del lote y
concilia por separado bruto - aceptado contra los ajustes. Dos replays dejaron
6/6 cobranzas exactas listas sólo para aprobación humana: OSTV cerró con
$2.048.900,00 brutos, $1.986.500,00 aceptados y $62.400,00 de ajustes, sin
gaps. Los seis pagos a prestadores continúan bloqueados por facturas canónicas
incompletas; no se aprobó cobro, liquidación o pago alguno y PSICOLE no cambió.
Por eso no se agregan líneas faltantes a un lote ya distribuido ni se marca una liquidación como pagada. Sólo después de paridad, revisión humana y aprobación explícita corresponde vincular el cobro OOSS; reconstruir un lote complementario o corregir una distribución sigue siendo una acción económica separada, idempotente y auditada.
Los reportes de débito automático y tarjeta de colegiación son antecedentes de cobros entrantes de cuotas. Nunca se usan como evidencia del cobro de una OOSS ni del pago a un prestador.
Las capturas públicas corresponden al corte inicial 2026. La validación vigente se repitió en escritorio y móvil y abrió el PDF autenticado desde ambas rutas; no se publican capturas actuales de perfiles porque exponen datos personales y fiscales.


Si una orden figura pagada pero todavía no aparece una liquidación asociada, debe regularizarse desde el circuito de liquidaciones antes de cargar la factura. El sistema no debe permitir cargar una factura del prestador sobre una orden suelta sin liquidación formal.
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 |
| Número de factura del prestador | Texto alfanumérico | Sí | Identificador único por prestador |
| Fecha de factura | Fecha | Sí | No puede ser futura |
| Importe de factura | Decimal mayor que cero | Sí | Debe coincidir con el neto liquidado, tolerancia $ 1,00 |
| Archivo de factura | PDF/JPG/PNG | Sí | Evidencia física validada antes de aprobar |
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.
Factura aprobada antes del pago
Una liquidación no puede pasar a PAID sin una factura canónica APPROVED_FOR_PAYMENT. El control se aplica tanto al pago individual como al pago masivo. La carga y la aprobación son acciones auditadas y no envían correos ni avisos automáticamente.
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 |
APPROVED_PROVIDER_INVOICE_REQUIRED |
Se intentó pagar una liquidación sin factura aprobada | Revisar la factura desde Facturas recibidas y aprobarla antes del pago |
INVOICE_AMOUNT_MISMATCH |
El importe facturado no coincide con el neto liquidado | Corregir la factura o regularizar la liquidación; no forzar el pago |
INVOICE_FILE_MISSING |
La referencia existe pero el archivo físico no está disponible | Restaurar evidencia válida y volver a presentar; no aprobar por metadatos solamente |
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? No desde este circuito. La generación de liquidación, la carga y la aprobación de factura son operaciones inertes respecto de mensajería. Cualquier comunicación al prestador debe iniciarse de forma explícita desde el canal operativo correspondiente.
¿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.


Autogestión del Profesional
Descripción
El portal de Autogestión es la interfaz propia del psicólogo matriculado para interactuar con el Colegio sin intermediación administrativa. Disponible las 24 horas desde cualquier dispositivo, permite consultar la cuenta corriente, pagar deudas por una pasarela habilitada, descargar recibos y mantener 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.
Dashboard: deuda vencida real y cuotas futuras
El aviso rojo del dashboard representa únicamente deuda vencida real. Para mostrarlo debe existir al menos una obligación abierta cuya fecha de vencimiento ya haya pasado. El importe y la cantidad del aviso se calculan con esas obligaciones vencidas, no con todas las cuotas abiertas.
- Una cuota del mes vigente o de un mes futuro puede verse en Estado de Cuenta, pero no debe presentarse como mora antes de su vencimiento.
- Si no hay deuda vencida, el dashboard no reutiliza un total general de deuda para fabricar un aviso rojo.
- Si una cuota futura aparece como vencida, no debe pagarse ni corregirse por inferencia: hay que informar el caso mediante el signo ? para que se revise su fecha y trazabilidad.
Evidencia operativa. El 12/08/2026 una identidad sintética de Producción,
sin filas financieras, mostró Al día, sin aviso rojo ni desborde en
escritorio y 390×844. Login, perfil, cuenta, agenda, documentos y tickets
respondieron 200. Después de la prueba la cuenta quedó inactiva, la contraseña
se rotó y se revocaron las sesiones. La captura histórica queda sólo como
referencia de diseño; no se publica la captura efímera de Producción.
Perfil y autogestión en pantallas pequeñas
En teléfono, las acciones Editar perfil, Contraseña, Historial y Pagos se acomodan en filas completas, con áreas táctiles legibles. Los paneles de edición e historial usan el alto visible del dispositivo, conservan el contenido desplazable y bloquean el scroll de la página que queda detrás. Esto evita que el teclado o las barras del navegador oculten las acciones.
El profesional puede cargar documentación propia desde su perfil. La eliminación de documentación gobernada por el Colegio continúa reservada a los roles administrativos autorizados.
Evidencia visual pendiente. No existe todavía un par sanitizado que pruebe el nuevo comportamiento de perfil en 1440 px y 390 px; no se declara certificación visual hasta incorporarlo.
Cambios recientes en la vista de perfil
- Bitácora: se retiró de la vista de perfil (pestaña propia y ficha pública del profesional) y de la navegación del directorio. La funcionalidad de publicaciones quedó desactivada; ya no hay acceso desde los perfiles ni desde las rutas públicas del directorio.
- Póliza de Mala Praxis: dejó de mostrarse en el perfil permanente. Es un requisito propio de la gestión de prestadores y se administra dentro de los trámites de alta y renovación de prestadores, no como condición permanente del perfil.
- Notificaciones por WhatsApp: el selector quedó desactivado en la interfaz con el aviso "Disponibles próximamente". La preferencia guardada se conserva en la cuenta y podrá reactivarse cuando el canal esté disponible.
Evidencia visual: No aplica para este cierre. Se retiraron controles y rutas; las capturas vigentes del perfil no muestran esos elementos.
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 por pasarela habilitada
- 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 continuar hacia la pasarela habilitada, por ejemplo NAVE.
- Completar los datos de pago en la interfaz externa del proveedor. PSICOLE no almacena datos de tarjeta.
- Al recibir o consultar la confirmación aprobada, el sistema registra la operación
PAY, imputa la deuda y genera el reciboREC. - 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
El colegiado tiene dos puntos de acceso a su credencial: la MiniCredencial del dashboard (vista rápida con QR y acciones principales) y la página completa en /credential (con todas las opciones de compartición y verificación pública).
- Desde el Dashboard, hacer clic en la miniatura de credencial para abrir el modal de vista ampliada con botones rápidos (PDF, Copiar enlace, Compartir, Ver completa).

- Para la vista completa, ir a Mi Cuenta → Mi Credencial Digital (
/credential). - La credencial digital muestra la foto del profesional, nombre completo, número de matrícula, especialidad y estado de la matrícula. Incluye la fecha de vigencia y el código QR que apunta al verificador público.
- Desde la barra de acciones se puede Descargar PDF, Exhibir (modo pantalla completa), Copiar enlace de verificación, Email o Compartir por redes/WhatsApp.
- La credencial se actualiza automáticamente al cambiar el estado de la matrícula; si el colegiado tiene cuotas vencidas o la matrícula está suspendida, la credencial sigue siendo consultable pero las opciones de descarga/compartir quedan deshabilitadas y se muestra un banner de aviso.

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.

8. Consultar antecedentes históricos y adjuntos verificados
- Ir a Mis Trámites → Historial.
- Además de los trámites recientes, el listado muestra los antecedentes históricos asociados con identidad exacta al perfil.
- Abrir el detalle para contrastar la fecha, el tipo de trámite, la planilla de origen y la cantidad de adjuntos declarada.
- Cuando exista un archivo físico verificado, usar Abrir adjunto para visualizarlo o descargarlo. Los documentos son privados y sólo están disponibles para la persona titular y los roles administrativos autorizados.
- La verificación puede provenir del contenido del archivo o de una triangulación estricta entre la respuesta exacta de Forms, matrícula, DNI, nombre completo, carpeta, campo, archivo único y fecha de carga. Cuando el formulario histórico no conserva DNI, sólo se admite el vínculo si matrícula y todos los componentes del nombre completo coinciden entre Forms, contenido del archivo y un único perfil vigente. Un nombre o importe aislado nunca alcanza.
- Un antecedente o adjunto histórico no aprueba una renovación ni modifica por sí solo matrícula, beneficio, deuda o ticket. Si falta evidencia suficiente, se conserva como pendiente de enlace exacto.
En el corte SANDBOX del 27/07/2026 existen 3.505 antecedentes sobre
2.578 profesionales y 654 adjuntos físicos verificados. El control de
integridad encontró 654/654 archivos por tamaño y SHA-256, sin faltantes ni
huérfanos. Este corte acredita la cobertura disponible; no significa que todos
los adjuntos declarados en las fuentes históricas ya tengan archivo físico
certificado.
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. 13 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 sólo puede generarse si la matrícula está vigente y la posición económica canónica no tiene obligaciones pendientes, vencidas ni en plan. Una bonificación total no constituye deuda; una obligación con saldo cero sin cierre explicable queda en revisión y también bloquea la emisión hasta ser auditada.
Pagos online y confirmación
El procesamiento puede ser asíncrono según la pasarela. Si el pago queda pendiente, no intentes pagarlo de nuevo hasta refrescar el estado desde la operación o consultar al operador.
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 |
La pasarela aún no confirmó el resultado | Esperar unos minutos y recargar la página; si persiste, contactar al operador |
DEUDA_IMPIDE_CERTIFICADO |
Se intenta generar una constancia con deuda abierta o una obligación en revisión | Regularizar las pendientes/vencidas/en plan o solicitar auditoría del dato; el botón se habilita cuando la posición queda certificable |
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 expiró durante el proceso de pago | Iniciar sesión nuevamente y revisar el historial antes de intentar pagar otra vez |
Preguntas frecuentes
¿Puedo pagar con tarjeta de crédito en cuotas? Depende de la pasarela y los acuerdos vigentes del Colegio. La pantalla externa del proveedor muestra 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 conserva el pago original y el operador de finanzas registra una reversa o reintegro vinculado a la operación original, según la política configurada.


Comunicaciones
Comunicaciones centraliza avisos, correos, notificaciones internas y eventos transaccionales. El objetivo es que cada mensaje importante tenga trazabilidad, estado y motivo de fallo si no pudo enviarse.
Canales
| Canal | Uso |
|---|---|
| Avisos internos | Mensajes dentro de PSICOLE |
| Credenciales, reseteos, trámites, pagos y recordatorios, siempre bajo compuertas operativas | |
| Soporte | Tickets y burbuja de ayuda |
| Outbox transaccional | Cola confiable para eventos que no deben perderse |
Eventos documentados
- Alta de usuario y envío de datos de acceso.
- Reset de contraseña desde administración.
- Notificaciones de pagos aprobados, recibos creados y operaciones registradas.
- Solicitudes de corrección de trámites.
- Avisos de cursos, inscripción, desinscripción o reembolso.
- Recordatorios de consultorio cuando estén habilitados.
Entorno inerte
En sandbox o test, los mensajes no deben salir a destinatarios reales. El sistema debe registrar el intento, mostrar estado amable y permitir auditar el contenido sin generar impacto externo.
Cuando un registro aparece como Bloqueado en la auditoría, significa que el evento se generó pero una compuerta operativa evitó el envío real. El mensaje debe seguir siendo visible para soporte, auditoría y diagnóstico.
Auditoría
Cada comunicación relevante debe indicar:
- Usuario destinatario.
- Evento origen.
- Canal.
- Estado.
- Fecha.
- Error amable si falló.
- Vínculo al objeto relacionado: trámite, pago, recibo, usuario o curso.
Vista auditada desktop y mobile
La pantalla Super Admin → Comunicaciones fue recapturada luego del ajuste responsive. En escritorio conserva la tabla completa con filtros, dominios y desglose por evento; en móvil prioriza lectura vertical, controles contenidos en el ancho disponible y tablas con desplazamiento horizontal explícito cuando corresponde.


Mensajes internos auditados
La vista de mensajes internos fue incluida en el barrido para confirmar que bandejas, estados y acciones mantengan lectura correcta tanto en escritorio como en teléfono.


Beneficios para Matriculados
PSICOLE gestiona dos tipos de beneficios económicos para los profesionales matriculados: el beneficio por maternidad/adopción y el beneficio por jubilación. Ambos reducen automáticamente el monto de las cuotas del beneficiario.
Beneficio por Jubilación (50% de descuento)
¿Qué es?
Los profesionales que alcanzan los 60 años de edad son elegibles para un descuento permanente del 50% en sus cuotas. El sistema detecta automáticamente a los elegibles mediante un proceso programado y los notifica por email.
Vista del Colegiado
Los colegiados acceden a su beneficio desde Mi Cuenta → Beneficio por Jubilación (/my-retirement-benefit).

La pantalla muestra:
| Sección | Contenido |
|---|---|
| Elegibilidad | Fecha de nacimiento, cuándo cumple 60 años, estado actual |
| Detalle | Porcentaje de descuento (50%), fecha de elegibilidad, fecha de aplicación |
| Cronología | Línea de tiempo: detectado → notificado → aplicado / rechazado |
Acciones disponibles:
- Rechazar el beneficio — si el profesional no desea el descuento, puede rechazarlo voluntariamente. Se solicita un motivo opcional.
El rechazo es reversible
Si un colegiado rechaza el beneficio y luego desea reactivarlo, debe solicitarlo directamente al colegio. Un operador puede reactivarlo desde el panel administrativo.
Panel Administrativo
Los operadores acceden desde Trámites → Beneficios por Jubilación (/admin/retirement-benefits).

Vista en dispositivo móvil:

Estadísticas del módulo
El encabezado muestra KPIs en tiempo real:
| Indicador | Descripción |
|---|---|
| Total | Total de registros de beneficio en el sistema |
| Pendientes | Sin notificar aún |
| Notificados | Email enviado, pendientes de respuesta |
| Activos | Descuento aplicado y vigente |
| Rechazados | Profesional rechazó el beneficio |
| Cancelados | Beneficio cancelado por el colegio |
| Elegibles sin registrar | Detectados pero no procesados aún |
Estados del beneficio
| Estado | Badge | Descripción |
|---|---|---|
PENDING_NOTIFICATION |
Amarillo | Elegible detectado, falta enviar notificación |
NOTIFIED |
Azul | Email enviado al profesional |
ACTIVE |
Verde | Descuento activo en las cuotas |
REJECTED |
Rojo | El profesional rechazó el beneficio |
CANCELLED |
Gris | Cancelado por el colegio |
Acciones del operador
Detección automática:
El CRON ejecuta la detección diariamente y notifica automáticamente a los nuevos elegibles. Para ejecutarla manualmente:
- Hacer clic en "Ejecutar detección manual".
- El sistema busca profesionales que cumplan 60 años y no tengan beneficio registrado.
- Envía email de notificación automático.
- Los nuevos registros aparecen en estado
PENDING_NOTIFICATION.
Acciones sobre un beneficio individual:
| Acción | Estado requerido | Descripción |
|---|---|---|
| Aplicar | PENDING / NOTIFIED | Activa el descuento del 50% en las cuotas futuras |
| Cancelar | ACTIVE / NOTIFIED | Desactiva el descuento. Requiere motivo obligatorio |
| Reactivar | CANCELLED / REJECTED | Vuelve a activar el descuento. Acepta notas opcionales |

Beneficio por Maternidad / Adopción
¿Qué es?
Las profesionales que atraviesan una licencia por maternidad o adopción pueden solicitar una reducción temporal en sus cuotas durante el período de licencia. El colegio revisa y aprueba la solicitud con documentación respaldatoria.
Vista del Colegiado
Acceso desde Mi Cuenta → Beneficio por Maternidad (/my-parental-benefit).
El flujo de solicitud incluye:
- Verificar elegibilidad — el sistema valida que no exista una solicitud activa.
- Completar formulario — tipo de licencia (maternidad / adopción), fecha de inicio y fin estimada, descripción.
- Adjuntar documentación — certificado médico o documentación de adopción.
- Enviar al Colegio — queda en estado
PENDING_REVIEW.

Estados de la solicitud:
| Estado | Descripción |
|---|---|
PENDING |
Formulario iniciado, no enviado |
PENDING_REVIEW |
Enviado al colegio, en revisión |
APPROVED |
Aprobado — descuento aplicado durante el período |
REJECTED |
Rechazado con motivo |
COMPLETED |
Período de licencia finalizado |
CANCELLED |
Cancelada por la colegiada |
Panel Administrativo
Los operadores acceden desde Trámites → Beneficios por Maternidad (/admin/parental-benefits).

Acciones del operador
Desde el detalle de cada solicitud el operador puede:
| Acción | Estado requerido |
|---|---|
| Aprobar | PENDING_REVIEW |
| Rechazar (con motivo obligatorio) | PENDING_REVIEW |
| Completar (período terminado) | APPROVED |
| Cancelar | Cualquier estado activo |
Documentación requerida
Antes de aprobar, verificá que la documentación adjunta sea válida: certificado médico firmado o documentación notariada de adopción con fecha de inicio que coincida con la declarada.
Antecedentes históricos de beneficios
Las bandejas existentes de Beneficios por Jubilación y Beneficios por Maternidad permiten alternar entre solicitudes formales y Antecedentes históricos. Los antecedentes conservan titular, fecha, fuente y documentos verificados cuando existen, para revisar la totalidad de presentaciones sin mezclarlas con beneficios vigentes.
Un antecedente no activa, extiende, rechaza ni cancela un descuento. La regla económica sólo cambia desde una solicitud formal aprobada o una regla persistente con fuente y vigencia auditables. Un documento declarado sin enlace físico verificable queda visible como pendiente de vínculo, no como adjunto aprobado.
La cobertura documental y la cobertura operativa se auditan por separado. En
el corte del 27/07/2026 existen 3 perfiles con beneficio parental operativo
sin formulario histórico compatible y 361 perfiles jubilatorios operativos
sin solicitud histórica. La planilla de edad jubilatoria prueba elegibilidad o
regla económica, no una solicitud aprobada. Estos casos conservan correctamente
su beneficio y su trazabilidad financiera, pero no se convierten artificialmente
en trámites.
El mismo corte conserva 57 antecedentes parentales: 20 con archivo físico
exacto, 1 con vínculo parcial, 35 pendientes de enlace y 1 sin adjuntos
declarados. También conserva 11 antecedentes jubilatorios sobre 9 perfiles,
todos todavía sin archivo exacto. La ausencia de formulario no desactiva una regla económica ya
auditada; sólo impide presentarla como solicitud histórica aprobada.
Preguntas frecuentes — Beneficios
¿El descuento se aplica retroactivamente? No. Al aprobar o aplicar un beneficio, el descuento rige desde el próximo período de facturación. Las cuotas ya generadas no se modifican automáticamente.
¿Puedo tener activos ambos beneficios al mismo tiempo? Sí, son independientes. Un profesional puede tener activo el descuento por jubilación y una licencia por maternidad simultáneamente; en ese caso los descuentos se combinan.
¿Qué pasa si se cambia el beneficio después de generar cuotas? Las cuotas generadas antes del cambio no se modifican. Los cambios rigen para cuotas futuras. Si se necesita ajustar una cuota ya emitida, debe hacerse manualmente desde el módulo de Finanzas.
Certificados de Ética Profesional
El Colegio emite certificados de ética que acreditan que un profesional matriculado no registra antecedentes disciplinarios. Son documentos oficiales solicitados habitualmente para concursos, empleos, acreditaciones académicas o trámites ante organismos.
Flujo completo
Colegiado solicita certificado
↓
Sistema verifica elegibilidad
(sin deudas vencidas, matrícula activa)
↓
Solicitud creada → PENDING
↓
Colegiado confirma pago del arancel
(sube referencia de transferencia)
↓
Estado → PENDING_REVIEW
↓
Operador revisa documentación y pago
↙ ↘
APPROVED REJECTED
↓ ↓
Genera PDF Email con
descargable motivo
Vista del Colegiado
Acceso desde Mi Cuenta → Certificado de Ética (/my-ethics-certificate).
Verificar elegibilidad
Antes de mostrar el formulario, el sistema valida automáticamente:
| Condición | Resultado |
|---|---|
| Sin deudas vencidas | ✅ Puede solicitar |
| Con deudas vencidas | ❌ Bloqueado hasta regularizar |
| Matrícula activa | ✅ Puede solicitar |
| Matrícula vencida o baja | ❌ Bloqueado |
| Solicitud activa pendiente | ⚠️ No puede crear otra hasta resolver la actual |
Solicitar certificado

- Completar el campo "Motivo / uso del certificado" (opcional — ej.: concurso docente, presentación en obra social).
- Hacer clic en "Solicitar certificado".
- El sistema muestra el arancel vigente y las instrucciones de pago por transferencia.
Confirmar pago
Una vez realizada la transferencia bancaria:
- Hacer clic en "Confirmar pago".
- Ingresar el número de referencia / comprobante de la transferencia.
- El estado pasa a
PENDING_REVIEWy el Colegio recibe una notificación.

Descargar el certificado
Una vez aprobado, el botón "Descargar PDF" queda habilitado. El PDF incluye:
- Datos del profesional (nombre, matrícula, DNI)
- Declaración de ausencia de antecedentes disciplinarios
- Fecha de emisión y vigencia
- Firma del presidente del Colegio
- Código QR de verificación de autenticidad
Estados de la solicitud
| Estado | Badge | Descripción |
|---|---|---|
PENDING |
Gris | Solicitud creada, pendiente de pago |
AWAITING_PAYMENT |
Amarillo | Arancel informado, esperando confirmación |
PENDING_REVIEW |
Azul | Pago confirmado, en revisión por el operador |
APPROVED |
Verde | Aprobado — PDF disponible para descarga |
REJECTED |
Rojo | Rechazado con motivo |
CANCELLED |
Gris | Cancelado por el colegiado |
Cancelación
La solicitud puede cancelarse en estado PENDING o AWAITING_PAYMENT. Una vez enviada a revisión (PENDING_REVIEW) ya no se puede cancelar unilateralmente.
Panel Administrativo
Acceso desde Trámites → Certificados de Ética (/admin/ethics-certificates).

Columnas de la tabla
| Columna | Descripción |
|---|---|
| Nro. Solicitud | Código único de la solicitud (en monoespaciado) |
| Profesional | Nombre, email y número de matrícula |
| Estado | Badge de color según estado |
| Arancel | Monto a pagar |
| Fecha solicitud | Timestamp de creación |
Filtros disponibles
- Por estado: PENDING / AWAITING_PAYMENT / PENDING_REVIEW / APPROVED / REJECTED / CANCELLED
- Búsqueda libre: por nombre del profesional, número de matrícula o número de solicitud
Revisar una solicitud
Al hacer clic en una solicitud se abre el panel de detalle:

El panel muestra:
| Campo | Descripción |
|---|---|
| Nro. Solicitud | Código único |
| Estado actual | Badge actualizable |
| Profesional | Nombre, email, matrícula, DNI |
| Arancel | Monto correspondiente |
| Pago confirmado | Fecha de confirmación y referencia |
| Motivo declarado | Uso del certificado indicado por el colegiado |
| Validación automática | Estado de la validación de deudas y matrícula |
| Deudas vencidas | Listado si las hay (alerta) |
Acciones del operador
| Acción | Estado requerido | Detalle |
|---|---|---|
| Aprobar | PENDING_REVIEW |
Genera el PDF del certificado automáticamente y notifica al colegiado |
| Rechazar | PENDING_REVIEW |
Requiere motivo obligatorio + notas opcionales. Notifica al colegiado con el motivo |
| Agregar nota interna | Cualquier estado | Visible solo para operadores |
Verificar el pago antes de aprobar
Aunque el colegiado confirma la referencia de transferencia, el operador debe verificarla manualmente contra el extracto bancario del Colegio antes de aprobar. La integración de conciliación automática para este módulo está en el roadmap.
Preguntas frecuentes — Certificados de Ética
¿Cuánto tiempo tarda el proceso? Depende del colegio, pero el flujo típico es: solicitud → confirmación de pago → revisión en 24–48 horas hábiles → descarga del PDF.
¿El certificado tiene vencimiento? Sí, en general los certificados tienen validez de 6 meses desde la emisión. La fecha de vencimiento figura en el propio PDF.
¿Puedo solicitar varios certificados? Solo puede haber una solicitud activa por vez. Una vez descargado el certificado aprobado, la solicitud pasa a estado histórico y se puede iniciar una nueva.
¿Qué pasa si se rechazan deudas que ya pagué? Si el sistema detecta deudas vencidas y el colegiado ya regularizó, debe esperar a que el pago se procese en el sistema (máx. 24 hs.) y volver a intentar la solicitud.
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 |
Superficie pública vigente
El directorio conserva el listado, la ficha individual y los datos públicos elegidos por cada profesional. La ficha individual organiza el contenido en Sobre mí, Trayectoria, Redes y Contacto.
La sección de publicaciones y las rutas /bitacora y /bitacora/:slug están desactivadas por decisión de producto. Tampoco se muestran accesos a esa sección desde el directorio, el perfil propio ni la navegación móvil.
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 | Origen de navegador incluido explícitamente en CORS_ORIGINS; clientes servidor a servidor sin Origin admitidos |
| 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 aislado por entorno
La API no publica un comodín global. Cada entorno declara sus orígenes de
navegador confiables en CORS_ORIGINS y exige coincidencia exacta; Sandbox
no incluye dominios productivos. Las rutas públicas no requieren
autenticación, pero un navegador de otro origen sigue sujeto a esa política.
Un consumidor servidor a servidor que no envía Origin puede consultar el
endpoint y continúa sujeto al rate limit y a la validación de entrada.
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
La política global de app.js toma la lista exacta de CORS_ORIGINS del
entorno. Para una solicitud de navegador acepta el origen únicamente si está en
esa lista; una integración servidor a servidor sin header Origin puede
continuar.
cors({
origin: (origin, callback) => {
if (!origin || configuredCorsOrigins.includes(origin)) {
return callback(null, true)
}
return callback(new Error('CORS origin not allowed'))
},
credentials: true
})
El header Access-Control-Allow-Origin refleja el origen aprobado; no devuelve
* para solicitudes con credenciales. Sandbox y PSICOLE mantienen listas
separadas y no deben copiar dominios entre entornos.
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. En la parte superior del formulario el colegiado puede subir, recortar (a 512x512) o eliminar su foto de credencial mediante el componente PhotoUploader (JPG/PNG/WebP, máx. 8 MB).

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"
}


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 |
| Activo | Toggle | Sí | Habilitado por defecto |
- Hacer clic en Guardar. El usuario queda creado con el acceso pendiente.
- Desde la lista, usar Resetear y enviar acceso. PSICOLE genera la contraseña temporal exclusivamente en el servidor y la envía al correo del usuario; nunca la muestra ni permite copiarla desde el panel.
- El acceso sólo se activa cuando el servidor SMTP confirma que aceptó el mensaje. En el primer ingreso, el usuario sólo puede continuar después de definir una contraseña propia.
Entornos de prueba
Sandbox bloquea toda entrega real. El intento queda auditado, no cambia la contraseña anterior ni habilita el acceso pendiente.

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).
Enviar acceso y resetear clave
Desde la lista de usuarios, el ícono de llave permite generar una nueva contraseña temporal y enviar al usuario el aviso con la URL de acceso.
El flujo es transaccional:
- El administrador confirma el reset.
- El sistema genera una contraseña temporal.
- Se intenta enviar el aviso con la URL del sistema y los datos de acceso.
- Si el aviso falla, se bloquea o queda simulado, la contraseña anterior se conserva y no se revocan sesiones.
- Si SMTP acepta el aviso, PSICOLE activa la clave temporal con control de concurrencia, revoca las sesiones anteriores y registra la operación.
- La clave no aparece en la respuesta, el DOM, el portapapeles ni los logs. Al ingresar con ella, todas las funciones excepto cerrar sesión y cambiar la contraseña permanecen bloqueadas.
Esta acción sirve para usuarios nuevos, usuarios que no recibieron el alta original o cuentas que requieren recuperación asistida.
No enviar claves por canales informales
El acceso debe enviarse desde la acción del sistema para que quede registro y trazabilidad. PSICOLE no entrega la clave al operador para reenviarla por WhatsApp, portapapeles u otro canal informal.
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 como lo ve otro usuario. Es útil para soporte y diagnóstico. Cuando una acción esté habilitada en modo asistido, el sistema debe mostrar claramente que se está operando como otro usuario y registrar auditoría.
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 asistido
La barra superior indica si la sesión es de solo lectura o asistida. Cualquier operación sensible, como pagar una deuda por el usuario, debe quedar registrada con el administrador actuante y el usuario representado.
En cada petición de una sesión asistida el sistema vuelve a validar tanto al administrador actuante como al usuario representado. Si cualquiera fue desactivado o perdió acceso, la petición se rechaza sin cerrar ni modificar las sesiones de otros usuarios. La auditoría conserva ambos identificadores.
Activación gradual de capacidades
Los permisos sensibles se calculan por capacidades explícitas de tickets, Finanzas, deuda, prestadores e impersonación. La transición se realiza por configuración, sin resetear claves ni recrear usuarios:
observe: conserva el comportamiento vigente y registra diferencias entre el rol histórico y la capacidad propuesta.enforce: aplica la capacidad explícita después de revisar esas diferencias en SANDBOX.
El cambio de modo no invalida sesiones ni altera hashes de contraseña. Los procesos iniciados antes del corte conservan su estado; una diferencia se envía a revisión en lugar de reescribir tickets, RUNs, órdenes, facturas o liquidaciones históricas.

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 |
PASSWORD_RESET_SENT |
Reset asistido de clave y aviso enviado |
PASSWORD_RESET_FAILED |
Intento de reset sin envío; se conserva la clave anterior |
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.

Operadores Especiales, Dinámicos y Asignación de Módulos
PSICOLE permite crear operadores especiales asignándoles solo los módulos del sistema que necesitan para su trabajo diario. Esto es útil cuando un operador trabaja exclusivamente en finanzas, matrículas, cursos, prestadores o trámites, sin acceso innecesario al resto del sistema.
¿Qué son los módulos dinámicos?
Además del sistema de roles fijo (RBAC), PSICOLE ofrece una capa adicional de especialización: los módulos operativos (EPICs). Cada módulo agrupa funcionalidades relacionadas y puede asignarse individualmente a cualquier usuario con rol de operador.
Los EPICs operativos disponibles son:
| EPIC | Nombre | Funcionalidades incluidas |
|---|---|---|
| EPIC-01 | Onboarding y Matrículas | Revisión de solicitudes, matrícula provisoria, matrícula definitiva |
| EPIC-02 | Gestión Financiera | Cobranzas, caja, conciliación bancaria, recibos |
| EPIC-03 | Formación Continua | Gestión de cursos, certificados |
| EPIC-05 | Prestadores | Rendiciones, lotes, liquidaciones, pagos de obras sociales |
| EPIC-06 | Usuarios y Seguridad | Usuarios, accesos, grupos, super admins y auditoría |
| EPIC-08 | Integraciones y Comunicaciones | Pasarelas, outbox, avisos y eventos externos |
| EPIC-09 | Trámites Administrativos | Tickets, beneficios, cancelaciones de matrícula |
Administrar módulos de un operador
Acceso: Administración → Operadores → Módulos de Operadores (/admin/operator-modules)

Vista en dispositivo móvil:

Ver módulos asignados
La pantalla muestra una tabla con todos los usuarios que tienen rol de operador, junto con los módulos habilitados para cada uno:
| Columna | Descripción |
|---|---|
| Operador | Nombre completo, email y rol |
| Módulos asignados | Chips con los EPICs activos |
| Último acceso | Timestamp de la última sesión |
| Acciones | Editar módulos |
Asignar o modificar módulos
- Hacer clic en "Editar módulos" en la fila del operador.
- Se abre el panel de asignación con los 5 EPICs.
- Seleccionar o deseleccionar los módulos necesarios.

- Opcionalmente, dentro de cada EPIC, seleccionar funciones específicas (granularidad fina):
- EPIC-02 → Operaciones, caja, conciliación, planes, débito, transferencias, reintegros.
- EPIC-06 → Usuarios, reset de accesos, grupos/sedes, super admins, auditoría.
- EPIC-08 → Pasarelas, comunicaciones, outbox y webhooks.
- Hacer clic en "Guardar".
¿Cuándo aplicán los cambios?
Los cambios aplican inmediatamente. Si el operador está activo en ese momento, los verá en la próxima navegación o al recargar la página.
Módulos vs. Permisos
Los módulos dinámicos complementan el sistema de roles, no lo reemplazan. Un operador sin el módulo EPIC-02 asignado no verá el menú de finanzas aunque su rol base lo permita. Asegurate de que los módulos asignados sean coherentes con el rol del usuario.
Métricas de operadores
Desde el mismo panel, el botón "Ver métricas" muestra:
| Indicador | Descripción |
|---|---|
| Distribución por módulo | Cuántos operadores tienen cada EPIC asignado |
| Operadores sin módulos | Usuarios con rol operador pero sin ningún EPIC |
| Actividad reciente | Operadores activos en las últimas 24/48/72 horas |
Panel del Operador (vista del operador)
Cuando un operador con módulos asignados inicia sesión, el sistema muestra solo los menús correspondientes a sus módulos. Por ejemplo:
- Un operador con solo EPIC-02 (Finanzas) ve: Cobros, Caja, Conciliación, Recibos — y nada más.
- Un operador con EPIC-01 y EPIC-09 ve: Matrículas + Trámites.
El onboarding del sistema también se adapta: al iniciar sesión por primera vez, el tour interactivo muestra exclusivamente las funcionalidades de los módulos asignados.
Grupos de Usuarios (Sedes / Ciudades)
Los grupos de usuarios permiten organizar operadores por zona geográfica (sede, delegación, ciudad). Esto es útil cuando el colegio opera en múltiples ciudades y quiere que los operadores de cada sede vean solo los profesionales de su zona.
Acceso: Administración → Operadores → Grupos de Usuarios (/admin/user-groups)

Crear un grupo
- Hacer clic en "Nuevo grupo".
- Ingresar nombre del grupo (ej.: "Sede Mendoza", "Delegación Sur").
-
Configurar el grupo en las 3 pestañas:
- Nombre del grupo
- Descripción (opcional)
-
Ciudades — chips de ciudades cubiertas por este grupo. Los profesionales de estas ciudades serán visibles para los operadores miembros.
-
Miembros actuales con botón para remover
- Agregar operador — búsqueda por nombre o email, lista de disponibles
Permite incluir o excluir profesionales específicos independientemente de su ciudad:
Tipo Descripción INCLUDE Agregar un profesional aunque su ciudad NO esté en el grupo EXCLUDE Quitar un profesional aunque su ciudad SÍ esté en el grupo Cada excepción puede tener una razón descriptiva opcional.
Ejemplo de uso
El operador "María García" trabaja en la sede de Mendoza. Se crea el grupo "Sede Mendoza" con las ciudades Mendoza, Godoy Cruz y Luján de Cuyo. Se agrega a María como miembro. Ahora María solo ve profesionales de esas tres ciudades cuando trabaja en matrículas o finanzas.
Super Administradores
Los Super Administradores son usuarios con privilegios elevados que pueden realizar operaciones críticas del sistema, como promover o degradar a otros administradores. Es una capa de seguridad adicional sobre el rol ADMIN.
Acceso: Administración → Seguridad → Super Administradores (/admin/super-admins)
Solo visible para Super Admins
Esta sección solo aparece en el menú para usuarios que ya son Super Admins. Los administradores regulares no tienen acceso.
Promover un usuario a Super Admin
- Hacer clic en "Promover usuario".
- Buscar el usuario por nombre o email.
- Seleccionar el usuario.
- El sistema envía un código de verificación de 6 dígitos al email del Super Admin actual.
- Ingresar el código en el modal de confirmación.
- La operación queda registrada en el log de auditoría.
Degradar a un Super Admin
- En la fila del Super Admin, hacer clic en "Degradar".
- Confirmar la intención.
- El sistema envía un código de verificación por email.
- Ingresar el código.
No se puede degradar al único Super Admin
El sistema impide degradar al último Super Admin activo. Siempre debe existir al menos uno.
Seguridad del proceso
| Parámetro | Valor |
|---|---|
| Duración del código | 10 minutos |
| Intentos máximos | 3 |
| Bloqueo tras intentos fallidos | 30 minutos |
| Auditoría | Todas las operaciones quedan en el log |


Parámetros del Sistema
Descripción
Los parámetros del sistema son la configuración global que define la identidad y el comportamiento de la plataforma. Incluyen los datos institucionales del Colegio, la personalización visual, la firma digital de credenciales y la configuración de notificaciones.
Acceso
Menú: Administración → Parámetros del Sistema
Roles con acceso: ADMIN
Datos institucionales
Estos datos aparecen en reportes, credenciales digitales, encabezados de emails y recibos.
| Campo | Descripción | Ejemplo |
|---|---|---|
| Nombre del Colegio | Razón social completa | Colegio de Psicólogos de la Provincia de X |
| Nombre corto | Abreviatura para interfaces compactas | CPSX |
| CUIT | Número de CUIT del Colegio | 30-12345678-9 |
| Dirección | Calle, número, piso/depto | Av. Belgrano 1234, Piso 3 |
| Localidad | Ciudad o partido | Rosario |
| Provincia | Provincia | Santa Fe |
| Código Postal | CP | 2000 |
| Teléfono | Número de contacto institucional | (0341) 555-1234 |
| Email institucional | Email público del Colegio | info@colegiopsicologos.org.ar |
| Sitio web | URL del sitio público | https://www.colegiopsicologos.org.ar |

Configuración de la aplicación
| Parámetro | Descripción | Ejemplo |
|---|---|---|
| URL base de la app | Dirección pública del sistema (sin barra final) | https://psicole.colegio.org.ar |
| Zona horaria | Zona horaria para fechas y CRON jobs | America/Argentina/Buenos_Aires |
| Idioma por defecto | Idioma de la interfaz | es-AR |
| Nombre de la app | Título que aparece en el navegador | PSICOLE |
URL base
La URL base es crítica para la generación de los links de verificación de QR en credenciales digitales y para los links incluidos en emails automáticos. Si cambia el dominio, actualizar este campo antes de generar nuevas credenciales.
Logo y marca
| Campo | Descripción | Formato recomendado |
|---|---|---|
| Logo principal | Imagen para encabezados y login | PNG con fondo transparente, mín. 300×100 px |
| Logo para PDF | Imagen usada en credenciales y recibos | PNG, alta resolución, mín. 600×200 px |
| Favicon | Ícono del navegador | ICO o PNG 32×32 px |
| Color primario | Color principal de la interfaz (hex) | #1a5276 |
| Color secundario | Color de acento | #2980b9 |
Para subir una imagen: hacer clic en el área de carga o arrastrar el archivo. El sistema previsualizará la imagen antes de guardar.

Firma escaneada
La firma del directivo autorizado se incrusta en las credenciales digitales y en las constancias oficiales emitidas por el sistema.
Pasos para cargar la firma:
- Escanear la firma en papel blanco con buena resolución (300 DPI mínimo).
- Recortar la imagen para que solo incluya la firma (sin márgenes excesivos).
- Guardar como PNG con fondo transparente.
- En Parámetros del Sistema → Firma escaneada, hacer clic en Subir firma.
- Vista previa: el sistema muestra cómo quedará la firma en una credencial de ejemplo.
- Completar los campos:
| Campo | Descripción |
|---|---|
| Imagen de firma | Archivo PNG, fondo transparente |
| Nombre del firmante | Ej.: Lic. María González |
| Cargo del firmante | Ej.: Presidenta del Colegio |
| Vigencia desde | Fecha desde la cual rige esta firma |
Cambio de autoridades
Al cambiar las autoridades del Colegio, actualizar la firma y los datos del firmante. Las credenciales ya emitidas no se actualizan retroactivamente. Si se requiere, regenerarlas manualmente desde el módulo de Credenciales Digitales.

Parámetros de notificaciones
La configuración SMTP se gestiona en el módulo Notificaciones. Aquí se definen parámetros complementarios:
| Parámetro | Descripción | Ejemplo |
|---|---|---|
| Email remitente | Dirección desde la que se envían los emails | noreply@colegiopsicologos.org.ar |
| Nombre remitente | Nombre visible en el cliente de correo del destinatario | PSICOLE — Colegio de Psicólogos |
| Email de copia oculta (BCC) | Dirección que recibe copia de todos los emails | registros@colegiopsicologos.org.ar |
| Días de aviso de vencimiento | Con cuántos días de anticipación avisar sobre cuotas por vencer | 5 |
Guardar cambios
Todos los cambios en parámetros del sistema se aplican inmediatamente tras guardar. No se requiere reiniciar la aplicación. Cada modificación queda registrada en el log de auditoría con el usuario, la fecha y el valor anterior vs. nuevo.
Tarifario Mensual de Cuotas
Que resuelve
El tarifario mensual es la fuente operativa para los importes de cuota por periodo. El concepto cobrable habilitado sigue siendo CUOTA_MENSUAL, pero los valores de mayo, junio y meses siguientes se administran en Dinero -> Configuracion -> Tarifario mensual mediante MONTHLY_FEE_TARIFF_POLICY.
Esta separacion evita crear conceptos mensuales versionados, reduce errores al ejecutar el RUN y deja una politica auditable para descuentos, redondeos y beneficios.
Flujo operativo
- Tesoreria define el valor general del periodo y los importes finales aprobados para CBU, tarjeta y jubilacion.
- Super Admin o Finanzas actualiza el Tarifario mensual.
- El operador previsualiza el RUN en Dinero -> Operaciones -> Cuotas.
- Al ejecutar el RUN, el sistema genera una deuda por profesional, periodo y concepto
CUOTA_MENSUAL. - La deuda queda congelada con
amount,discount,finalAmounty un cargo interno idempotentedebt-charge:<debtId>. - El lote CBU toma
Debt.finalAmount; no vuelve a calcular descuentos. - La conciliacion bancaria corrobora el dinero ingresado o rechazado contra la deuda y la operacion trazable.

Valores versionados mayo-agosto 2026
| Periodo | Cuota general | CBU / Caja de ahorro | Tarjeta de credito | Jubilado |
|---|---|---|---|---|
| Mayo 2026 | $15.615,00 | $12.492,00 | $10.930,50 | $7.807,50 |
| Junio 2026 | $16.021,00 | $12.817,00 | $11.215,00 | $8.010,50 |
| Julio 2026 | $16.357,44 | $13.085,95 | $11.450,21 | $8.178,72 |
| Agosto 2026 | $16.670,00 | $13.336,00 | $11.669,00 | $8.335,00 |
Reglas:
- CBU / Caja de ahorro aplica 20% con adhesion
ACTIVE. - Tarjeta de credito aplica 30% con adhesion
ACTIVE. - Jubilacion aplica 50% sobre la cuota general y excluye CBU/tarjeta.
- No se permite doble descuento jubilacion + CBU/tarjeta sobre la misma cuota.
- Cada período conserva sus importes finales oficiales; el RUN no los vuelve a
deducir a partir de porcentajes si existe un
finalAmountexplícito. - Junio tarjeta se registra como valor oficial final
$11.215,00, no como resultado matematico inferido. - Julio CBU y tarjeta se registran con los valores finales oficiales
$13.085,95y$11.450,21; el RUN no vuelve a redondearlos ni infiere otro importe. - Agosto conserva
$16.670,00como cuota general,$13.336,00para CBU y$11.669,00para tarjeta. La jubilación aplica 50% y queda en$8.335,00.
Julio canónico y tarifario de agosto 2026
La auditoría del 19/07/2026 confirmó en PSICOLE 4.776 cuotas mensuales reales de julio, con 4.776 claves de generación únicas y ningún duplicado activo. De ese universo, 4.775 permanecen pendientes y una está pagada. Los 4.722 profesionales actualmente elegibles tienen su cuota de julio; las 54 cuotas adicionales pertenecen a antecedentes de perfiles que ya no forman parte del universo cobrable actual y se conservan para trazabilidad.
La distribución congelada de julio es:
| Regla | Cuotas | Importe final |
|---|---|---|
| Primera matrícula 100% | 2 | $0,00 |
| Jubilación 50% | 390 | $8.178,72 |
| Tarjeta de crédito 30% | 1.040 | $11.450,21 |
| CBU / débito 20% | 2.350 | $13.085,95 |
| Sin descuento | 994 | $16.357,44 |
Agosto 2026 está versionado en MONTHLY_FEE_TARIFF_POLICY con la cuota general
y los importes finales indicados arriba. Esto habilita el PREVIEW de agosto,
pero no reescribe la entrada de julio ni convierte el preview en un cobro. El
RUN sólo puede ejecutarse con autorización operativa y conserva una clave de
generación por profesional, período y concepto.
Las plantillas vigentes de planes de pago, beneficios jubilatorios, maternidad/paternidad, curso y prestadores complementan el universo profesional, pero no definen el aumento mensual de agosto.
Revalorización segura de cuotas abiertas
Cuando la política de generación solicita actualizar cuotas mensuales abiertas al valor vigente, el sistema usa el tarifario del período objetivo y registra el ajuste contra la misma deuda. No crea una segunda cuota.
La actualización sólo alcanza deudas reales PENDING u OVERDUE de
profesionales facturables. Se omite cuando ya existe evidencia económica:
- pago aprobado;
- débito directo aprobado;
- saldo a favor aplicado;
- asignación pagada de un plan;
- operación
PAYde la deuda aprobada o conciliada.
La evidencia se verifica antes de calcular y otra vez dentro de la transacción,
para evitar que un pago simultáneo compita con la actualización. El ajuste
conserva período original y registra targetTariffPeriod, importes anteriores,
beneficios aplicados y fuente tarifaria. Repetirlo reutiliza el cargo interno y
el ajuste de la deuda, sin duplicarlos.
La cuota del mes inmediatamente anterior —julio al preparar agosto— se difiere mientras su RUN de conciliación no esté cerrado o aplicado sin bloqueos ni saldo sin resolver. Esta guarda evita convertir en deuda de agosto una cuota de julio que fue pagada pero todavía no quedó conciliada.
Relacion con Tipos de Cuota
CUOTA_MENSUAL es el unico concepto mensual oficial que debe quedar activo para generacion. Los conceptos mensuales historicos o versionados deben quedar inactivos para evitar que un RUN tome un importe equivocado.
La pantalla de Tipos de Cuota sigue administrando matriculas, cursos, certificados, recargos y otros aranceles. Para cuota mensual, actua como habilitador del concepto; el importe mensual por periodo sale del tarifario.

RUN, lote y conciliacion
El RUN mensual crea deuda pendiente y cargo interno, pero no registra cobro real. El cobro real ocurre despues por caja, transferencia, POS, checkout o debito automatico.
Para CBU / COELSA:
- el lote debe sumar exactamente los
Debt.finalAmountincluidos; - tarjeta de credito no entra al archivo COELSA;
- si el banco aprueba, el pago/recibo queda contra la deuda;
- si el banco rechaza, no se crea ingreso bancario y la deuda vuelve a saldo pendiente segun la regla de rechazo vigente;
- cualquier diferencia contra extracto debe quedar como ajuste, reversa o revision manual documentada.
En el RUN mensual auditable, un extracto bancario general no se imputa completo como cuota. El sistema primero separa rutas operativas:
- Cuota mensual: importe compatible con el tarifario del periodo y destino unico.
- Ajuste o periodo anterior: importe compatible con una cuota vieja o una diferencia aprobada.
- Tramite, curso o arancel: importe que coincide con conceptos configurados fuera de la cuota.
- Liquidacion institucional: Payway, NAVE, Mercado Pago, MODO, recaudacion bancaria, obras sociales o proveedores.
- Transferencia a clasificar: ingreso personal sin tarifa ni deuda unica.
- Movimiento no acreditado: debitos, egresos o importes cero.
Solo la ruta de cuota mensual puede quedar como AUTO_APPLY_STRICT si tambien existe deuda unica, idempotencia y evidencia suficiente. Las demas rutas quedan como MANUAL_REVIEW o EXCLUDED segun corresponda.

Certificacion SANDBOX y PSICOLE mayo/junio/julio 2026
La prueba de mayo/junio/julio 2026 certifico que el tarifario mensual congela importes distintos por periodo y que el cobro posterior respeta la deuda generada:
| Periodo | General | CBU / Caja de ahorro | Tarjeta | Jubilado |
|---|---|---|---|---|
| Mayo 2026 | $15.615,00 | $12.492,00 | $10.930,50 | $7.807,50 |
| Junio 2026 | $16.021,00 | $12.817,00 | $11.215,00 | $8.010,50 |
| Julio 2026 | $16.357,44 | $13.085,95 | $11.450,21 | $8.178,72 |
Contra fuentes primarias de tarjeta y CBU, el cierre SANDBOX dejo 5.697 eventos conciliados de 5.986 aceptados/cobrados. El remanente original de 360 eventos fue clasificado completo: 71 aplicados, 123 ya cerrados, 152 manuales, 6 sin deuda PENDING compatible y 8 bloqueados por transaccion bancaria no aplicable.
La prueba no envio correos ni notificaciones. Las aplicaciones usaron marker de SANDBOX, replay idempotente y verificacion de deuda, pago, recibo, banco, cuenta corriente y asiento contable.
El cierre del 18/07/2026 volvió a ejecutar la generación de julio sobre los 4.722 profesionales elegibles en ambos entornos. El resultado fue 0 deudas nuevas y 4.722 reutilizadas por generationKey: julio ya estaba completo y el reintento no duplicó cuotas. La auditoría estricta de mayo-julio recorrió 14.311 cuotas reales y terminó con criticalTotal=0 tanto en SANDBOX como en PSICOLE.
Controles antes de ejecutar
- Confirmar que
MONTHLY_FEE_TARIFF_POLICYtenga el periodo a generar. - Si el período falta, detener el flujo y solicitar el importe oficial: no usar el último
FeeTypecomo reemplazo. - Confirmar que
CUOTA_MENSUALeste activo y los conceptos mensuales legacy esten inactivos. - Previsualizar cantidad de profesionales, total general, descuentos y final.
- Revisar los contadores de cuotas revalorizadas, protegidas por evidencia y diferidas por conciliación antes de autorizar el RUN.
- Revisar que jubilados no acumulen CBU/tarjeta.
- Revisar que una adhesion de cobro este
ACTIVE;PENDING,SUSPENDEDoCANCELLEDno otorgan descuento. - No habilitar correos de generacion salvo decision explicita mediante
QUOTA_GENERATION_NOTIFICATIONS_ENABLED.
Evidencia movil
La administracion de tarifario, RUN y lote CBU es operacion interna de Finanzas/Super Admin. La evidencia principal es escritorio. En movil no se recomienda operar ejecuciones masivas; usar solo para consulta si el entorno lo permite.
La captura actual de Configuración orienta sobre la ubicación del tarifario, pero no prueba todavía los valores de agosto ni los contadores de revalorización. El par actualizado escritorio/móvil queda pendiente porque este cierre no autorizó capturas ni acceso a datos operativos.


Tipos de Cuota (FeeTypes)
Descripción
Los Tipos de Cuota definen los conceptos cobrables que el Colegio aplica a sus matriculados: cuota mensual, matricula, cursos, certificados, recargos u otros cargos. Cada tipo especifica categoria, codigo interno, periodicidad, vigencia y reglas de descuento de respaldo.
Para cuotas mensuales, FeeType habilita el concepto oficial CUOTA_MENSUAL. El importe de cada periodo se administra en Tarifario Mensual de Cuotas mediante MONTHLY_FEE_TARIFF_POLICY. No se deben crear ni reactivar conceptos mensuales versionados para mayo, junio u otros meses.
Fuente de verdad operativa
Para cuota mensual, MONTHLY_FEE_TARIFF_POLICY define importe base, descuentos, finales por metodo y periodos. FeeType solo debe dejar activo CUOTA_MENSUAL como concepto generable. El porcentaje de cobro automatico se diferencia por metodo: CBU 20% y tarjeta de credito 30%, pero solo si la adhesion esta ACTIVE.
Jubilacion y cobro automatico no se acumulan
Si el profesional tiene descuento de jubilacion habilitado para la cuota, ese 50% se aplica sobre el importe base y excluye el descuento por CBU o tarjeta. No debe existir doble descuento jubilacion + CBU/tarjeta en la misma cuota mensual.
Impacto en debito automatico
El lote CBU no vuelve a calcular el importe de la cuota. Usa Debt.finalAmount generado para el periodo. Si un tipo de cuota o beneficio se corrige despues del RUN, revisar las deudas abiertas antes de generar o enviar el lote bancario.
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 |
| Vigencia | Desde y hasta que periodo aplica el valor |
| 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 |
| 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 beneficio parental | Toggle | Sí | Si aplica el descuento por maternidad, paternidad, adopción o guarda cuando el beneficio está aprobado |
| Admite recargo por mora | Toggle | Sí | Si aplica recargos por pago tardío |
| Vigente desde | Fecha | Sí | Primer día desde el que puede usarse este valor |
| Vigente hasta | Fecha | No | Último día de vigencia; vacío significa sin fecha de cierre |
| 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 debe ser estable y claro. Cambiarlo puede afectar integraciones, reportes o llamadas operativas existentes, por lo que debe hacerse solo con criterio administrativo y revisión previa.

Editar un tipo de cuota
Se pueden modificar los datos del tipo de cuota, pero para cambios de valor mensual aprobados por resolucion se debe actualizar el Tarifario Mensual de Cuotas. La generacion selecciona CUOTA_MENSUAL, calcula descuentos con el tarifario del periodo y deja Debt.amount, Debt.discount y Debt.finalAmount en cada deuda creada.
Las cuotas ya generadas no se recalculan por editar el tipo. Si se ejecuta la generacion del periodo actual y existen cuotas mensuales abiertas con un valor anterior, el sistema puede revalorizar deudas abiertas y registrar el cargo interno trazable segun el tarifario vigente.
Cambios de importe retroactivos
No cambiar valores retroactivamente sin revisar el impacto en deudas abiertas, lotes de debito y conciliacion bancaria. Si una cuota ya fue pagada o conciliada, cualquier diferencia debe tratarse como ajuste o reversa trazable.
Antes de enviar un lote CBU, Finanzas debe confirmar que las deudas incluidas reflejan el valor vigente y los beneficios aprobados. Un lote ya enviado al banco se controla por devolución bancaria, no por edición retroactiva del tipo de cuota.
Cuotas certificadas mayo/junio 2026
| Concepto | Periodo | Importe base | CBU / Caja de ahorro | Tarjeta de credito | Jubilado |
|---|---|---|---|---|---|
CUOTA_MENSUAL |
Mayo 2026 | $15.615,00 | $12.492,00 | $10.930,50 | $7.807,50 |
CUOTA_MENSUAL |
Junio 2026 | $16.021,00 | $12.817,00 | $11.215,00 | $8.010,50 |
El importe de junio 2026 debe cargarse como valor oficial fijo de $16.021. No debe documentarse como resultado de un incremento de 2,1% sobre mayo, porque ese calculo no coincide. Los importes finales se redondean al multiplo operativo de $0,50 mas cercano.
Para editar estos valores, usar Tarifario Mensual de Cuotas. Los conceptos mensuales legacy o versionados deben permanecer inactivos.
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 |
| Categoría | Cuota mensual |
| Cobro automático | Sí: CBU 20%, tarjeta de crédito 30% |
| Jubilación | Sí (50% de descuento) |
| Beneficio parental | Sí, si existe beneficio aprobado |
| 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 |
| Categoría | Cuota mensual |
| Débito directo | Sí |
| Jubilación | No |
| Beneficio parental | Sí, si existe beneficio aprobado |
| 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 |
| Categoría | Cuota de matrícula |
| Débito directo | No |
| Jubilación | Sí |
| Beneficio parental | 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 |
| Categoría | Cuota de matrícula |
| Débito directo | No |
| Jubilación | No |
| Beneficio parental | No |
| Mora | No |
Descuentos y Recargos
Descripción
PSICOLE aplica automáticamente descuentos y recargos sobre las cuotas generadas. Los descuentos se otorgan según método de cobro, condición del colegiado o beneficios aprobados. Los recargos por mora se calculan sobre la deuda final vigente al momento de previsualizar o registrar el cobro.
Acceso
Menú: Administración → Descuentos y Recargos
Roles con acceso: ADMIN, OPERADOR_FINANZAS
Descuentos automáticos
Los descuentos se aplican a los tipos de cuota que tengan habilitado el descuento correspondiente (ver Tipos de Cuota). Para cuotas mensuales, el método de cobro determina el porcentaje certificado.
Método de cobro automático
Descuento para colegiados que tengan CBU / COELSA o tarjeta de crédito activa como método de cobro mensual. La marca historica hasDirectDebit no alcanza: debe existir una adhesion vigente en estado ACTIVE.
| Método | Condición | Descuento |
|---|---|---|
| CBU / Caja de ahorro | Adhesión BANK_DEBIT activa y cuenta verificada |
20% |
| Tarjeta de crédito | Adhesión CREDIT_CARD activa |
30% |
Ejemplo mayo 2026: cuota general $15.615 -> CBU $12.492; tarjeta de crédito $10.930,50.
Ejemplo junio 2026: cuota general $16.021 -> CBU $12.817,00; tarjeta de crédito $11.214,50, redondeados al multiplo operativo de $0,50.

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).
Jubilacion excluye CBU/tarjeta
El descuento de jubilacion no se acumula con CBU ni con tarjeta de credito. Si el colegiado es jubilado y el tipo de cuota admite ese beneficio, el RUN aplica 50% sobre el importe base y omite el descuento por metodo de cobro. Por eso una adhesion activa de CBU debe suspenderse si se detecta doble beneficio sobre la misma cuota mensual.
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.
- Si corresponde jubilacion, se aplica 50% sobre el importe base y no se aplica CBU/tarjeta.
- Si no corresponde jubilacion, se aplica el descuento por metodo de cobro si la adhesion esta
ACTIVE: CBU 20% o tarjeta de credito 30%. - Se aplica beneficio parental si existe beneficio aprobado para el periodo.
- Se calcula el recargo por mora sobre el importe final de la deuda.
Ejemplo: Cuota $1.000, CBU activo, jubilado y 45 días de mora:
| Paso | Operación | Monto |
|---|---|---|
| 1 | Importe base | $1.000,00 |
| 2 | Jubilado 50% | -$500,00 -> $500,00 |
| 3 | CBU | No aplica por regla de exclusividad |
| 4 | Mora 10% sobre $500 | +$50,00 |
| Total | $550,00 |
Mora por trámite
La configuración actual de mora es global/default y se elige por vigencia al momento de cobrar. No hay todavía una matriz completa de mora por trámite, categoría o periodo histórico. Para trámites como matrícula, renovación, especialidad o certificados, documentar la regla aprobada y versionar el FeeType correspondiente hasta que se implemente el tarifario centralizado.
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 |
Para agosto de 2026, la fecha institucional autorizada es el 31/08/2026 en la zona horaria de Mendoza. El hotfix está limitado a ese período y no modifica vencimientos históricos ni futuros sin una nueva política aprobada.
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 puede enviar correos electrónicos automáticos ante eventos clave del sistema, pero la salida SMTP queda controlada por compuertas operativas. En el estado actual, los envíos generales permanecen bloqueados y solo se habilitan casos puntuales y controlados, priorizando tickets de soporte y pruebas dirigidas.
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
Compuertas de seguridad vigentes
Los entornos no productivos deben mantener:
DISABLE_ALL_EMAILS=true
PSICOLE_DISABLE_EMAIL_DELIVERY=true
EMAIL_REDIRECT_TO=santosma@gmail.com
EMAIL_REDIRECT_TO es una defensa adicional, no una autorización. En Sandbox,
la compuerta de entorno bloquea la entrega antes de llegar a SMTP, incluso si
también se habilitan templates de tickets. El intento queda en EmailLog como
BLOCKED; no debe interpretarse como enviado ni redirigido.
En producción, los avisos de tickets requieren además:
PSICOLE_ENABLE_TICKET_EMAIL_DELIVERY=true
PSICOLE_ENABLE_PRODUCTION_TICKET_EMAIL_DELIVERY=true
PSICOLE_EMAIL_ALLOWED_TEMPLATES=TICKET_UPDATED,TICKET_RESOLVED,SUPPORT_TICKET_ALERT
PSICOLE_SUPPORT_TICKET_ALERTS_ENABLED=true
PSICOLE_SUPPORT_TICKET_ALERT_RECIPIENTS=santosma@gmail.com
Esto no habilita avisos de pagos, cuotas, prestadores, colegiados, beneficios, cursos ni mensajes masivos. Tampoco alcanza con una respuesta simulada o un redirect de seguridad: sólo una aceptación SMTP real al destinatario previsto se considera entrega.
Cuando la compuerta bloquea un correo, el panel de Comunicaciones debe mostrar el evento como auditado y no enviado. Ese estado no implica error de aplicación: indica una decisión operativa de no entregar el mensaje.
Matriz operativa de correo del candidato
| Flujo | Template / señal | Destinatario | Resultado funcional | Sandbox |
|---|---|---|---|---|
| Alta o reenvío de acceso | WELCOME_CREDENTIALS |
Usuario nuevo o seleccionado | Envía login y contraseña temporal directamente al titular. Nunca se muestra al operador ni se registra el cuerpo. La contraseña sólo cambia y las sesiones sólo se revocan después de una entrega SMTP real aceptada; el primer ingreso obliga a definir una clave propia. Si falla, se bloquea o hay una carrera, se conserva el acceso anterior. | BLOCKED; no cambia clave ni sesiones |
| Recuperación desde “Olvidé mi contraseña” | PASSWORD_RESET |
Titular de la cuenta | Enlace de un solo uso lógico, válido por una hora. La respuesta pública es genérica para no revelar si el email existe. Requiere compuerta dedicada y destinatario permitido. | BLOCKED; no entrega enlace |
| Compartir credencial | CREDENTIAL_SHARED |
Dirección indicada por el profesional | Envía únicamente el enlace oficial /verify/:qrCode; no adjunta ni fabrica otro QR. Si la entrega no es aceptada, la interfaz informa el fallo. |
BLOCKED; la acción no se informa como exitosa |
| Ticket nuevo, respuesta del emisor, adjunto o reapertura | SUPPORT_TICKET_ALERT |
santosma@gmail.com en Producción |
Se emite una sola alerta operativa en español. No se envían lotes, revisiones internas, pedidos de información del operador ni reportes de Sandbox. | BLOCKED; el ticket sí queda creado |
| Pedido de información o resolución de ticket | TICKET_UPDATED / TICKET_RESOLVED |
Solicitante real del ticket | Conserva comentario y aviso interno; el email es una copia opcional sujeta a compuertas. | BLOCKED; comentario y aviso interno permanecen |
El 12/08/2026 se verificó autenticación SMTP sin enviar mensaje y luego una sola
muestra dirigida a santosma@gmail.com. Gmail recibió exactamente un correo;
SPF, las firmas DKIM institucional y del relay, y DMARC resultaron válidos. Esta
certificación no abre correo general: los dos kill-switches globales continúan
activos y sólo los templates indicados pueden usar la excepción acotada.
Requisitos antes de enviar a Gmail/Hotmail
Antes de hacer una muestra real hay que validar:
| Control | Estado requerido |
|---|---|
| SPF | umdev.com.ar debe autorizar la IP de envío |
| DKIM | mail._domainkey.umdev.com.ar debe resolver y opendkim-testkey debe pasar |
| DMARC | _dmarc.umdev.com.ar debe existir, inicialmente con p=none para monitoreo |
| PTR | La IP 168.181.185.221 debe resolver reverso a mail.umdev.com.ar |
| Postfix | Debe activarse solo para la ventana de prueba controlada |
| Reputación | Revisar DNSBL públicas, Google Postmaster Tools y Microsoft SNDS |
Antes de abrir nuevos destinatarios o templates debe repetirse el canario específico correspondiente. La certificación actual cubre el transporte a Gmail y las alertas internas de soporte, no campañas ni avisos financieros.
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 reales: usar DISABLE_ALL_EMAILS=true y PSICOLE_DISABLE_EMAIL_DELIVERY=true en el .env del servidor. Para habilitar solo tickets, usar la compuerta específica indicada arriba.
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 |
| Inicio de matrícula oficial | Campo Matrícula desde del registro de vigencia actual |
| Vencimiento de matrícula | Vigencia oficial registrada por el Colegio |
| 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 |

Vigencia mostrada
La leyenda Vigente hasta usa exclusivamente el vencimiento oficial verificado. El sistema conserva por separado:
- fecha de egreso;
- fecha de expedición del título;
- inicio oficial de matrícula;
- vencimiento oficial de matrícula.
La credencial no extiende una fecha vencida por antigüedad ni por un cálculo
quinquenal en tiempo de consulta. Al aprobar una renovación, comienza un nuevo
registro Matrícula desde y el vencimiento oficial anterior avanza cinco años.
Al convertir una matrícula provisoria en definitiva también comienza una nueva
vigencia; la fecha de egreso, la expedición del título y el ingreso histórico
permanecen separados. La verificación pública deja de indicar vigencia desde
el día posterior al vencimiento; también puede quedar no vigente por baja,
suspensión o deuda bloqueante mayor a 12 meses.
Todas estas fechas son fechas civiles: no se desplazan por zona horaria. Un cumpleaños del 29 de febrero se representa con el último día de febrero cuando el año de vencimiento no es bisiesto.
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 aprobar una renovación quinquenal: se actualiza la credencial con la nueva vigencia oficial.
- 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 oficial y estable que codifica una URL de verificación pública del mismo entorno:
https://[DOMINIO_PSICOLE]/verify/[CODIGO_QR]
/verify/:qrCode es la ruta canónica. /verificar/:qrCode se conserva como
alias de compatibilidad y responde con una redirección permanente 308 a la
ruta canónica. La URL completa se construye desde PUBLIC_BASE_URL; una
configuración no puede apuntar el QR de un entorno hacia otro origen.
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.

La credencial completa y la ficha pública muestran el QR y un enlace Abrir
verificación oficial sólo cuando el backend entrega qrCode,
verificationUrl y la imagen oficial. Si falta el código, el servidor intenta
provisionar uno único de forma idempotente. El frontend nunca fabrica un QR ni
una URL alternativa; ante un fallo muestra que la verificación no está
disponible.
Código estable y consulta en tiempo real
Regenerar el PDF no reemplaza un QR oficial existente. Al abrir el enlace, PSICOLE consulta el estado vigente en la base de datos; el PDF no congela el resultado de la verificación.
Continuidad entre dominios
El contrato del candidato admite la aplicación en
psicole.colegiopsimza.org.ar, el entorno de pruebas en
sandbox.colegiopsimza.org.ar y los hosts *.umdev.com.ar durante la
transición. Los QR ya impresos deben conservar su host o recibir una redirección
que mantenga exactamente /verify/:qrCode (y el alias /verificar/:qrCode).
El dominio raíz colegiopsimza.org.ar corresponde al sitio institucional
WordPress; no genera códigos ni reemplaza el verificador oficial de PSICOLE.
Estado al 12/08/2026. Producción certificó la vista pública y el alias
/verificar/:code → /verify/:code tanto en el dominio institucional como en
psicole.umdev.com.ar, incluida la respuesta controlada 404 para códigos
inválidos. Los QR físicos con UMDEV siguen válidos. Los subdominios
psicole.colegiopsimza.org.ar y sandbox.colegiopsimza.org.ar tienen DNS, TLS
y proxy válidos; UMDEV permanece como alias de continuidad no indexable.
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.


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.
Alertas operativas internas de soporte
El sistema incorpora una capacidad de alerta por correo para el equipo interno
de soporte. Está desactivada por defecto y sólo envía cuando
PSICOLE_SUPPORT_TICKET_ALERTS_ENABLED=true. Los destinatarios se declaran en
PSICOLE_SUPPORT_TICKET_ALERT_RECIPIENTS como una lista separada por comas: se
descartan direcciones inválidas, se eliminan duplicados y se aceptan como máximo
diez destinatarios.
Los únicos eventos admitidos son: ticket nuevo, respuesta pública del emisor, adjunto agregado y reapertura. Cambios internos, revisión o moderación, pedidos de información del operador, respuestas generadas, cambios de estado y aplicación de lotes se omiten aunque la compuerta esté activa.
La plantilla es NUEVO TICKET SOPORTE PSICOLE y distingue un ticket nuevo de una actualización. Esta alerta operativa es independiente del correo o aviso que pueda recibir la persona solicitante: habilitarla no autoriza envíos masivos a profesionales ni sustituye la decisión humana del ticket.
Evidencia visual: No aplica. Es una integración de backend sin pantalla propia; se valida con la compuerta apagada, destinatarios configurados y pruebas del servicio de correo.
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 |
Dos canales, una misma mesa operativa
El signo ? conserva dos canales separados por actor:
| Canal | Categoría canónica | Quién lo abre | Uso |
|---|---|---|---|
| Soporte a Colegiados | SOPORTE_COLEGIADOS |
COLEGIADO y PRESTADOR |
Consultas sobre matrícula, trámites, pagos, documentación o uso de su perfil |
| Soporte Técnico | SOPORTE_TECNICO |
Personal y operadores autorizados | Errores de aplicación, diagnóstico y necesidades de desarrollo |
Los dos canales llegan a /admin/support-tickets y comparten la misma área de
trabajo. No se mezclan: cada ticket conserva su categoría y el tablero ofrece
distintivo y filtro por canal. Un colegiado o prestador sólo puede consultar sus
propios tickets; el tablero administrativo continúa protegido por rol.
La categoría se determina nuevamente en el servidor según el rol efectivo. El navegador no puede convertir una consulta colegiada en soporte técnico. Durante una prueba asistida, el ticket pertenece al operador real que abrió el signo ?, no al perfil que estaba observando.
El 12/08/2026 se certificó en Producción el panel móvil 390×844 y escritorio con una identidad sintética sin datos ni tickets: el signo ? abrió exclusivamente Soporte a Colegiados, mostró adjuntos y las pestañas Nuevo reporte / Mis reportes, sin desborde horizontal ni acceso a Soporte Técnico. La identidad fue desactivada y sus sesiones revocadas; no se conserva captura pública porque era una comprobación efímera de Producción.
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.

Mesa unificada de Soporte — Admin
Ruta: Administración → Soporte (/admin/support-tickets)
Vista Kanban con Soporte a Colegiados y Soporte Técnico agrupados por estado (Sin asignar, Asignado, En proceso, En espera, Resuelto). El distintivo y filtro permiten separar ambos canales sin duplicar tableros. Muestra KPIs en la cabecera y permite cambiar a vista Lista, actualizar o tomar un ticket desde cada tarjeta.

Triage directo de soporte
Ruta: Administración → Soporte Técnico (/admin/support-tickets)
La operación diaria vigente ya no depende de exportar ni reimportar JSON. El tablero abre en modo Triage directo: el operador revisa cada ticket, usa la sugerencia local como apoyo y guarda una decisión humana desde el panel lateral.


Capturas auditadas del triage vigente
Estas capturas corresponden al tablero actual validado por la auditoría UI/UX. La vista desktop conserva filtros, ordenamiento, lista y acciones visibles; la vista móvil mantiene los controles dentro del ancho de pantalla y evita superposición con la burbuja de soporte.


Flujo operativo
- Abrir un ticket desde la lista o el kanban.
- Revisar captura, descripción, adjuntos, URL, usuario y sugerencia de triage local.
- Elegir una decisión: Solo revisar, Responder consulta, Pedir información, Bug / desarrollo o Resolver con aviso.
- Completar el mensaje visible para el usuario cuando corresponda.
- Guardar la decisión humana desde el panel lateral.
- Validar el resultado operativo: estado, comentario visible, aviso interno y eventual correo si la compuerta lo permite.
Reglas de seguridad
| Regla | Comportamiento |
|---|---|
| Sugerencia local | Es orientativa; no cambia tickets por sí sola. |
| Sin decisión humana | El ticket sigue visible como pendiente de definición. |
| Acción guardada | Debe dejar trazabilidad de operador, fecha y contenido aplicado. |
| Responder consulta | Envía aviso interno al usuario, registra comentario visible, genera email de ticket si la compuerta está habilitada y deja el ticket resuelto. |
| Pedir información | Envía aviso interno, registra comentario visible, genera email de ticket si la compuerta está habilitada y deja el ticket en espera de respuesta. |
| Bug / desarrollo | Registra la decisión humana y deja el ticket en proceso para intervención técnica. |
Uso excepcional de lotes
Los flujos por lote o manifest quedan reservados para migraciones puntuales, replay controlado o cierres excepcionales. No son el modelo diario de trabajo del soporte operativo.
Avisos por email de soporte
El email es una copia del aviso interno. No reemplaza la campana ni el mensaje interno dentro de PSICOLE.
La compuerta de email de soporte solo permite estos templates:
| Template | Cuándo se usa |
|---|---|
TICKET_CREATED |
Creación de ticket |
TICKET_UPDATED |
Pedido de información, espera o cambio de estado relevante |
TICKET_ASSIGNED |
Asignación a operador |
TICKET_RESOLVED |
Resolución con aviso al usuario |
En Sandbox no se entrega ningún correo real, aunque exista
EMAIL_REDIRECT_TO: los intentos quedan auditados como BLOCKED. En Producción
la alerta interna está habilitada únicamente para
santosma@gmail.com y para las cuatro señales reales indicadas arriba. El
transporte quedó certificado con una muestra única recibida por Gmail y
resultados SPF, DKIM y DMARC válidos. Los demás correos generales permanecen
bloqueados. La matriz completa está en
Notificaciones.
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. Ualá u otras). 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 y billetera virtual. En PSICOLE puede aparecer en trazabilidad, extractos o documentación histórica, pero no debe interpretarse como checkout online operativo actual salvo habilitación explícita del Colegio.
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 un proveedor externo utiliza para informar a PSICOLE sobre el resultado de un pago (aprobado, rechazado, pendiente). Es asíncrono: puede tardar algunos 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 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Registrar pago parcial | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Aplicar saldo a favor | ✅ | — | ✅ | — | — | — | — | — | — |
| Generar cuotas desde Cobranza | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver recibos (todos) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Ver recibos propios | ✅ | — | ✅ | — | — | — | ✅ | — | — |
| Anular recibo | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver configuración descuentos | ✅ | — | ✅ | — | — | — | — | — | — |
| Editar configuración descuentos | ✅ | — | ✅ | — | — | — | — | — | — |
| Ver configuración recargos | ✅ | — | ✅ | — | — | — | — | — | — |
| Editar configuración recargos | ✅ | — | ✅ | — | — | — | — | — | — |
| Editar recargos desde Cobranza | ✅ | — | ✅ | — | — | — | — | — | — |
| Configurar tipos de cuota | ✅ | — | ✅ | — | — | — | — | — | — |
La capacidad acotada de cobranza se aplica a todos los roles OPERADOR_*,
incluidos Prestadores y Soporte aunque no tengan columna propia en esta tabla, y
no depende de AUTHZ_POLICY_MODE. Permite consultar deuda/recibos y registrar
pagos totales o parciales. Generación de cuotas, mora, saldos a favor,
anulaciones y configuración financiera permanecen restringidas.
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 y cobranza acotada |
OPERADOR_FINANZAS |
CRUD de cuotas, pagos, recibos, conciliación bancaria, descuentos y recargos |
OPERADOR_CURSOS |
CRUD de cursos, inscripciones, asistencia, certificados y cobranza acotada |
OPERADOR_TRAMITES |
Gestión de trámites, edición de borradores, tickets y cobranza acotada |
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 |
Todos los demás roles OPERADOR_* disponen asimismo de Consulta de deuda y
registro de pagos total/parcial, sin heredar administración financiera.
Casos de uso y flujos de trabajo
Esta sección es la fuente de verdad operativa de los casos de uso de PSICOLE. Reúne la tabla total de UC en una lectura navegable para administradores, operadores, gestores de profesionales, soporte y desarrollo: actor, disparador, pasos, alternativas, reglas de negocio, postcondición, página de manual relacionada y estado de evidencia visual.
Fuente canónica
La fuente primaria es el CSV CASOS DE USO - TABLA TOTAL - 22-12-25 - Agrupa todas en una MEGA TABLA; puedes_ todas las....csv. Esta página recicla ese contenido y lo normaliza para el manual público. Cuando cambien permisos, pantallas, reglas de dinero, estados o lotes, se actualiza primero la tabla canónica y luego esta matriz.
Cobertura documental
La cobertura es una auditoría heurística contra manual/docs y excluye esta propia página para evitar autocobertura. Un UC marcado como cubierto puede requerir actualización si cambió la UI o si falta evidencia escritorio/móvil vigente.
Cómo usar esta fuente de verdad
- Usar el identificador
EPIC-XXUC-X.Xen tickets, PR, pruebas, documentación, QA y soporte. - Revisar la página de manual relacionada antes de cerrar un cambio funcional o un ticket de desarrollo.
- Mantener los flujos de dinero trazables desde definición de cuota, generación de deuda/lote, aplicación de pago, recibo, conciliación y contabilidad.
- Publicar capturas de sandbox en pares escritorio/móvil cuando el UC tenga interfaz operativa.
- No usar esta matriz como reemplazo de las guías por módulo: la matriz ordena el mapa completo; cada página funcional explica la operación diaria.
Estado de cobertura documental
- Total de casos de uso relevados: 65.
- Cubiertos, incluidos los verificados y candidatos: 48.
- Parciales candidatos: 14.
- Faltantes candidatos: 0.
- No implementados documentados: 3.
- Corte de actualización: 8 de agosto de 2026.
Prioridad de documentación pendiente
Faltantes
No hay UC sin página candidata en este corte.
Parciales a revisar
| UC | Flujo | Página candidata | Trabajo pendiente |
|---|---|---|---|
| EPIC-05UC-5.3 | Generación Lote OS | modulos/prestadores.md | Roles, filtros, selección y estados están documentados; falta el par sanitizado escritorio/móvil de los filtros nuevos. |
| EPIC-05UC-5.6 | Acceso Certificados | inicio-rapido/colegiado.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-06UC-6.2 | Gestión Usuarios | referencia/matriz-permisos.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-06UC-6.3 | Config Parámetros | modulos/directorio-publico.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-07UC-7.1 | Autenticación (Login) | modulos/autenticacion.md | Login, recuperación fail-closed, cookies y CORS están documentados; falta renovar el par visual. |
| EPIC-07UC-7.2 | Gestión Sesiones | modulos/autenticacion.md | Rotación, revocación y CSRF están documentados como NO_UI; revisar evidencia de integración antes de promover cobertura. |
| EPIC-08UC-8.1 | Pasarelas Pago | modulos/pagos-online.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-08UC-8.3 | Notif. Multicanal | administracion/notificaciones.md | SMTP a Gmail y las alertas internas de soporte están certificados; Sandbox y correo general permanecen bloqueados. Faltan los demás canales para cerrar el UC multicanal. |
| EPIC-09UC-9.2 | Certificado Ética | referencia/glosario.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-09UC-9.5 | Beneficio Paternidad | inicio-rapido/administrador.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-09UC-9.6 | Baja Matrícula | referencia/faq.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-09UC-9.8 | Jubilación Auto | inicio-rapido/operador-finanzas.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-08UC-8.5 | Avisos y Agenda Personal | administracion/tickets-soporte.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
| EPIC-05UC-5.13 | Directorio Público Profesional y Curaduría | modulos/directorio-publico.md | Completar roles, pasos, reglas, estados y evidencia visual si aplica. |
No implementados documentados
| UC | Flujo | Manual relacionado | Decisión |
|---|---|---|---|
| EPIC-10UC-10.1 | Crear Convocatoria | modulos/cursos.md | Documentado como flujo no operativo; no publicar como pantalla disponible. |
| EPIC-10UC-10.2 | Inscripción Beca | modulos/cursos.md | Documentado como flujo no operativo; no publicar como pantalla disponible. |
| EPIC-10UC-10.3 | Sorteo Becas | modulos/cursos.md | Documentado como flujo no operativo; no publicar como pantalla disponible. |
Matriz total de casos de uso
| # | UC | Flujo | Cobertura | Manual relacionado | Evidencia visual |
|---|---|---|---|---|---|
| 1 | EPIC-01UC-1.1 | Solicitud de Nueva Colegiatura | Cubierto candidato | modulos/solicitud-matricula.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 2 | EPIC-01UC-1.2 | Validación y Gestión Min. Salud | Cubierto candidato | modulos/gestion-matriculas.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 3 | EPIC-01UC-1.3 | Consulta Pública Matrícula | Cubierto | administracion/credenciales-digitales.md | Dominio institucional, TLS, QR oficial y alias /verificar certificados; UMDEV permanece como continuidad. |
| 4 | EPIC-02UC-2.1 | Generación y Cobro Cuotas | Cubierto | modulos/autogestion.md | Dashboard certificado en Producción escritorio/móvil con canario sintético sin deuda: “Al día”, cero alerta roja y sin overflow. |
| 5 | EPIC-02UC-2.2 | Pago Online Portal | Cubierto candidato | referencia/changelog.md | Pendiente: página candidata sin captura directa. |
| 6 | EPIC-02UC-2.3 | Conciliación Bancaria | Cubierto | modulos/conciliacion-bancaria.md | Documenta RUN operativo e históricos, período económico visible, lease persistente, reemplazo atómico, hashes de fuentes/eventos/decisiones, comprobación inerte de idempotencia en RUN y ficha única, resolución auditada CBU 20%/tarjeta 30%, matching, procedencia y gates separados de PREVIEW seguro y certificación para aplicar. |
| 7 | EPIC-02UC-2.4 | Facturar Cuotas (AFIP) | Cubierto candidato | modulos/dinero.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 8 | EPIC-03UC-3.1 | Gestión Cursos | Cubierto candidato | modulos/cursos.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 9 | EPIC-03UC-3.2 | Inscripción Curso | Cubierto candidato | modulos/cursos.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 10 | EPIC-03UC-3.3 | Certificados Digitales | Cubierto candidato | modulos/cursos.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 11 | EPIC-04UC-4.1 | Reporte Financiero | Cubierto | modulos/finanzas.md | Contrato de cifras, partición económica canónica y certificado independiente, repetible e inerte por período; Reportes y Cuotas verificados en escritorio y móvil contra el mismo oráculo en SANDBOX. |
| 12 | EPIC-04UC-4.2 | Gestión Caja | Cubierto candidato | modulos/finanzas.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 13 | EPIC-05UC-5.1 | Gestión Perfil | Cubierto candidato | modulos/autogestion.md | Flujo y comportamiento responsive documentados; falta par sanitizado escritorio/móvil. |
| 14 | EPIC-05UC-5.2 | Reg. Rendición Física | Cubierto | modulos/prestadores.md | Universo de 143 rendiciones contrastado entre entornos; el cierre conserva precio, factura, liquidación y pago como etapas separadas. |
| 15 | EPIC-05UC-5.3 | Generación Lote OS | Parcial candidato | modulos/prestadores.md | Preview y generación comparten Obra Social, rango y campo de fecha; sólo toman órdenes validadas sin lote, congelan composición/PDF al confirmar y no reescriben la fecha de prestación. Falta el par sanitizado de capturas de los filtros nuevos. |
| 16 | EPIC-05UC-5.4 | Liquidación Pago OS | Cubierto | modulos/liquidaciones.md | Flujo canónico, precio oficial por fecha de prestación y facturas recibidas separadas del pago. El cruce vivo 2026 resolvió identidades con reglas cerradas y vinculó 262/262 filas mensuales al libro general, pero mantiene 76 candidatos humanos y no autoriza pagos mientras falte la cadena canónica. |
| 17 | EPIC-05UC-5.5 | Consulta Cta Cte | Cubierto | modulos/dinero.md | Cuenta, planes, single económica y regreso contextual documentados; renovar evidencia visual segura. |
| 18 | EPIC-05UC-5.6 | Acceso Certificados | Parcial candidato | inicio-rapido/colegiado.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 19 | EPIC-05UC-5.7 | Gestión Órdenes | Cubierto | modulos/prestadores.md | Corrección contextual con motivo y auditoría; práctica por OOSS/fecha, recálculo cantidad × precio y preservación tarifaria sólo ante cambios no económicos con contexto idéntico. |
| 20 | EPIC-05UC-5.8 | Matrícula Digital | Cubierto | administracion/credenciales-digitales.md | QR oficial, enlace, alias legacy y dominio institucional certificados el 12/08/2026. |
| 21 | EPIC-06UC-6.1 | Gestión Tipos Cuotas | Cubierto candidato | administracion/tipos-cuota.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 22 | EPIC-06UC-6.2 | Gestión Usuarios | Parcial candidato | referencia/matriz-permisos.md | Pendiente: página candidata sin captura directa. |
| 23 | EPIC-06UC-6.3 | Config Parámetros | Parcial candidato | modulos/directorio-publico.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 24 | EPIC-06UC-6.4 | Auditoría Sistema | Cubierto | modulos/finanzas.md | Certificado independiente con dos replays, hash funcional y control antes/después. Tras importar idempotentemente la fuente faltante, SANDBOX y PSICOLE produjeron 18/18 candidatos normalizados; SANDBOX repitió 18 NOOP y cero mutaciones. |
| 25 | EPIC-06UC-6.5 | Gestión Prestadores | Cubierto | modulos/prestadores.md | Lista, perfil y control de órdenes documentados. El CSV exige OOSS y período/rango, limita 366 días y 50.000 filas, preserva fechas calendario y no muta estados. |
| 26 | EPIC-07UC-7.1 | Autenticación (Login) | Parcial candidato | modulos/autenticacion.md | Login, recuperación de una hora, cookies httpOnly y orígenes exactos documentados; falta renovar el par visual. |
| 27 | EPIC-07UC-7.2 | Gestión Sesiones | Parcial candidato | modulos/autenticacion.md | Refresh rotativo, detección de reuso, logout revocable y CSRF de doble envío documentados; los controles de middleware son NO_UI. |
| 28 | EPIC-08UC-8.1 | Pasarelas Pago | Parcial candidato | modulos/pagos-online.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 29 | EPIC-08UC-8.2 | Integración LMS | Cubierto candidato | modulos/cursos.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 30 | EPIC-08UC-8.3 | Notif. Multicanal | Parcial | administracion/notificaciones.md | SMTP Gmail, SPF/DKIM/DMARC y alertas internas certificadas; Sandbox y correo general bloqueados. Otros canales continúan sin certificar. |
| 31 | EPIC-08UC-8.4 | Servicios AFIP | Cubierto candidato | modulos/dinero.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 32 | EPIC-09UC-9.1 | Ticket Trámite | Cubierto | administracion/tickets-soporte.md | Categorías canónicas en Producción y panel ? certificado en móvil/escritorio sin crear ticket; evidencia visual efímera no publicada. |
| 33 | EPIC-09UC-9.2 | Certificado Ética | Parcial candidato | referencia/glosario.md | Pendiente: página candidata sin captura directa. |
| 34 | EPIC-09UC-9.3 | Constancia Libre Deuda | Cubierto | modulos/autogestion.md | Elegibilidad alineada con deuda abierta canónica, planes y cuarentena; pruebas unitarias cubren pendiente, plan, bonificación y revisión. |
| 35 | EPIC-09UC-9.4 | Alta x Transferencia | Cubierto candidato | modulos/dinero.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 36 | EPIC-09UC-9.5 | Beneficio Paternidad | Parcial candidato | inicio-rapido/administrador.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 37 | EPIC-09UC-9.6 | Baja Matrícula | Parcial candidato | referencia/faq.md | Pendiente: página candidata sin captura directa. |
| 38 | EPIC-09UC-9.7 | Débito Automático | Cubierto | modulos/debito-automatico.md | Documenta CBU 20%, tarjeta crédito 30%, lote COELSA, rechazo y tarjeta sin vencimiento informado mediante sentinel técnico, sin confundirlo con vigencia real. |
| 39 | EPIC-09UC-9.8 | Jubilación Auto | Parcial candidato | modulos/beneficios.md | Regla económica y separación del antecedente histórico documentadas; falta captura directa no sensible. |
| 40 | EPIC-09UC-9.9 | Op. Prestadores | Cubierto | modulos/prestadores.md | El circuito suma corrección PENDING/OBSERVED dentro de rendición, recálculo transaccional, control CSV de sólo lectura y lote con preview equivalente a generación. La acción interna para VALIDATED/SUBMITTED sigue pendiente en UI. |
| 41 | EPIC-09UC-9.10 | Trámite Sin Categ. | Cubierto candidato | referencia/changelog.md | Pendiente: página candidata sin captura directa. |
| 42 | EPIC-10UC-10.1 | Crear Convocatoria | No implementado documentado | modulos/cursos.md | No aplica: flujo documentado como no operativo; no hay pantalla productiva para capturar. |
| 43 | EPIC-10UC-10.2 | Inscripción Beca | No implementado documentado | modulos/cursos.md | No aplica: flujo documentado como no operativo; no hay pantalla productiva para capturar. |
| 44 | EPIC-10UC-10.3 | Sorteo Becas | No implementado documentado | modulos/cursos.md | No aplica: flujo documentado como no operativo; no hay pantalla productiva para capturar. |
| 45 | EPIC-02UC-2.5 | Operación de dinero única trazable | Cubierto candidato | modulos/dinero.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 46 | EPIC-02UC-2.6 | Reintegros reversas y pagos por error | Cubierto candidato | modulos/dinero.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 47 | EPIC-02UC-2.7 | Conciliación multi pasarela y banco | Cubierto | modulos/conciliacion-bancaria.md | Documenta denominador estricto, fuentes de contraste, método exacto 20/30%, reserva persistente, reemplazo transaccional, replay desde snapshots vinculados, idempotencia fail-closed, locks, auditoría de integridad y evidencia escritorio/móvil existente. |
| 48 | EPIC-03UC-3.4 | Desinscripción curso y política de reembolso | Cubierto candidato | modulos/cursos.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 49 | EPIC-05UC-5.9 | Consultorio autónomo del profesional | Cubierto candidato | modulos/consultorio.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 50 | EPIC-06UC-6.6 | Operadores especiales y módulos dinámicos | Cubierto candidato | administracion/operadores-modulos.md | Con par escritorio/móvil en página candidata; revisar vigencia visual. |
| 51 | EPIC-06UC-6.7 | Accesos reset y aviso de credenciales | Cubierto candidato | administracion/notificaciones.md | Cambio de clave sólo tras entrega real y rollback seguro documentados; evidencia de correo es NO_UI. |
| 52 | EPIC-01UC-1.4 | Renovación de Matrícula | Cubierto | modulos/renovacion-matricula.md | Flujo, cuatro fechas, padrón y antecedentes históricos consultables desde la misma bandeja de renovaciones y por titular en Mis Trámites; APPROVED queda reservado a la renovación formal y los adjuntos no cambian vigencia por sí solos. |
| 53 | EPIC-05UC-5.10 | Gestión de Pacientes de Consultorio | Cubierto candidato | modulos/consultorio.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 54 | EPIC-05UC-5.11 | Agenda y Recordatorios de Consultorio | Cubierto candidato | modulos/prestadores.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 55 | EPIC-05UC-5.12 | Cobros Particulares de Consultorio | Cubierto candidato | modulos/consultorio.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 56 | EPIC-08UC-8.5 | Avisos y Agenda Personal | Parcial candidato | administracion/tickets-soporte.md | Con par escritorio/móvil en página candidata; revisar vigencia visual. |
| 57 | EPIC-09UC-9.11 | Alta de Prestador | Cubierto candidato | referencia/changelog.md | Pendiente: página candidata sin captura directa. |
| 58 | EPIC-02UC-2.8 | Planes de Pago de Deuda | Cubierto | modulos/dinero.md | Pago sólo sobre plan ACTIVE, clave idempotente y artefactos transaccionales; descuentos calculados sobre saldo pendiente y aprobados por una persona distinta. |
| 59 | EPIC-09UC-9.12 | Baja como Prestador | Cubierto candidato | inicio-rapido/operador-finanzas.md | Pendiente: página candidata sin captura directa. |
| 60 | EPIC-06UC-6.8 | Permisos de Edición de Perfil | Cubierto candidato | administracion/usuarios-roles.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 61 | EPIC-05UC-5.13 | Directorio Público Profesional y Curaduría | Parcial candidato | modulos/directorio-publico.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 62 | EPIC-04UC-4.3 | Contabilidad y Libro Diario | Cubierto candidato | modulos/dinero.md | Con captura en página candidata; falta confirmar par escritorio/móvil. |
| 63 | EPIC-13UC-13.1 | Gestión de Proveedores del Colegio | Cubierto candidato | referencia/changelog.md | Pendiente: página candidata sin captura directa. |
| 64 | EPIC-02UC-2.9 | Tarifario Mensual de Cuotas | Cubierto | administracion/tarifario-cuotas.md | Incorpora agosto de 2026, preserva julio canónico y difiere su revalorización mientras la conciliación previa tenga bloqueos. Móvil no recomendado para ejecuciones masivas. |
| 65 | EPIC-02UC-2.10 | Reglas operativas persistentes de cobro y beneficios | Cubierto | modulos/dinero.md | Saldos pendientes, descuentos con separación solicitante/aprobador, cobros positivos y evidencia económica protegida se validan en servidor e idempotencia. |
Detalle normalizado por EPIC
El detalle conserva la semántica de la tabla total, pero separa cada campo para que pueda revisarse como caso de prueba, guía de operación o criterio de aceptación documental.
EPIC-01
EPIC-01UC-1.1 · Solicitud de Nueva Colegiatura
Actores y resumen. Actor: Aspirante. Resumen: Solicitud de inscripción digital guiada.
Precondición y disparador. Pre: Internet. Disp: Clic "Solicitar Matrícula".
Flujo principal.
- Registro cuenta (email/pass).
- Carga Datos (Personales, Académicos).
- Carga Docs (DNI, Título, Analítico).
- Aceptación Declaración Jurada.
- Generación Boleta Pago Inicial.
- Envío Solicitud.
Flujos alternativos.
- FA-1.1.1: Datos incompletos (bloqueo).
- FA-1.1.2: Docs rechazados (pide re-subir).
Reglas de negocio y postcondición. Reglas: CUIT único. Pago inicial obligatorio p/ revisión. Post: Estado "Pendiente Revisión".
Cobertura documental. Cubierto candidato. Página candidata: modulos/solicitud-matricula.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-01UC-1.2 · Validación y Gestión Min. Salud
Actores y resumen. Actores: Operador Altas, Sistema. Resumen: Validación, trámite Ministerio y Alta.
Precondición y disparador. Disp: Admin selecciona solicitud.
Flujo principal.
- Revisión docs.
- Aprobación interna -> Matrícula Provisoria -> PDF p/ Ministerio.
- Recepción OK Ministerio.
- Confirmación Alta Definitiva.
- Genera Deuda, Matrícula Oficial (PDF 3 capas) y Credencial QR.
Flujos alternativos.
- FA-1.2.1: Solicitud corrección.
- FA-1.2.2: Rechazo (motivo detallado).
Reglas de negocio y postcondición. Reglas: Historial inmutable. Matrícula oficial solo tras OK Ministerio. Post: Profesional Habilitado.
Cobertura documental. Cubierto candidato. Página candidata: modulos/gestion-matriculas.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-01UC-1.3 · Consulta Pública Matrícula
Actores y resumen. Actor: Público. Resumen: Verificación habilitación.
Precondición y disparador. Disp: Web o Scan QR.
Flujo principal.
- Buscar (Nombre/Matrícula) o Escanear.
- Mostrar Ficha (Nombre, Estado, Vencimiento).
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: no mostrar datos de contacto privados. CAPTCHA. La consulta pública toma la vigencia de la matrícula y su vencimiento oficial; la mora se informa por separado y nunca convierte una matrícula vigente en no vigente. Una baja, cancelación, suspensión o fallecimiento requiere estado oficial explícito. Post: verificación hecha sin exponer datos privados.
Cobertura documental. Cubierto candidato. Página candidata: administracion/credenciales-digitales.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-01UC-1.4 · Renovación de Matrícula
Actores y resumen. Actor: Colegiado/Operador Matrículas/Sistema. Resumen: Renovación periódica de matrícula profesional con elegibilidad, declaración jurada, datos de contacto personal/consultorio, documentos y revisión administrativa.
Precondición y disparador. Disp: faltan 90 días o menos para el vencimiento oficial, la matrícula ya venció o el colegiado consulta el trámite. Pre: profesional autenticado con matrícula definitiva o suspendida, vencimiento verificable y sin otra renovación abierta. Una matrícula provisoria usa los mismos avisos de vencimiento, pero se orienta al pase a definitiva y no a este trámite quinquenal.
Flujo principal.
- Verificar elegibilidad.
- Crear solicitud de renovación.
- Firmar declaración jurada.
- Actualizar contacto personal y datos de consultorio.
- Subir documentos requeridos. Si la renovación se inició o completó presencialmente, el operador puede constatar únicamente los originales cuyos tipos no tengan archivo digital.
- Generar la boleta con el arancel explícito de renovación, sin vencimiento.
- Transferir y adjuntar evidencia del pago.
- Enviar solicitud.
- Finanzas acredita el importe exacto y el sistema emite el recibo de renovación.
- Operador revisa, aprueba o solicita cambios.
- Sistema registra historial y nueva vigencia.
Flujos alternativos.
- FA-1.4.1: Fuera de ventana informa días hasta vencimiento.
- FA-1.4.2: Faltan documentos y no permite enviar.
- FA-1.4.2a: existen originales presentados presencialmente sin archivo digital; un operador autorizado registra una constancia auditada. La constancia no reemplaza archivos pendientes, rechazados o ilegibles.
- FA-1.4.3: Operador rechaza o solicita cambios con motivo.
- FA-1.4.4: Colegiado cancela solicitud antes de aprobación.
- FA-1.4.5: Vencimiento sin fuente verificable -> bloquear inicio y enviar el dato a corrección administrativa.
- FA-1.4.6: Inconsistencia cronológica entre inicio y vencimiento -> no aplicar y conservar evidencia para revisión.
- FA-1.4.7: Matrícula o DNI coinciden sólo parcialmente, o CUIT/correo ya pertenecen a otro perfil -> aislar como conflicto de identidad sin crear ni actualizar.
- FA-1.4.8: Profesional ausente de una fuente o incluido en el padrón de morosos -> conservar su estado; ausencia y mora no prueban una baja.
- FA-1.4.9: Formulario histórico con identidad exacta -> exhibirlo como antecedente; sólo una renovación
APPROVEDo el padrón certificado puede respaldar la vigencia. Un adjunto sin ID de Drive o huella verificable queda pendiente de enlace exacto.
Reglas de negocio y postcondición. Reglas: fecha de egreso, fecha de expedición, inicio oficial de la vigencia y vencimiento son datos distintos. Matrícula desde identifica el comienzo del registro vigente y no equivale a Fecha Ingreso; se actualiza al aprobar una definitiva o renovación. La expedición no puede anteceder al egreso y el vencimiento no puede anteceder al inicio. La credencial muestra Matrícula hasta verificada y no la proyecta durante la consulta. En una sincronización de padrón, una fecha vencida sólo puede avanzar por ciclos quinquenales cuando la misma fuente mantiene el alta activa, con confirmación explícita y evidencia del valor original y calculado. La actualización automática exige matrícula + DNI exactos; CUIT y correo actúan como guardas de duplicidad. Mora y ausencia de una planilla no cambian la vigencia. Una baja requiere evidencia oficial explícita. El acceso del usuario es independiente y no se activa ni desactiva durante la certificación. Una provisoria nueva vence a los 18 meses y debe completar el pase a definitiva; una definitiva nueva vence en el cumpleaños del quinto año calendario; una renovación agrega cinco años al vencimiento oficial anterior. La boleta usa únicamente un arancel de renovación explícitamente configurado y no reutiliza la reinscripción; no genera deuda, pago ni recibo y no tiene vencimiento. El pago y el recibo con concepto RENOVACION nacen recién al acreditar evidencia y monto exacto, dentro de una única operación económica. La ventana abre a 90 días, la agenda sube a prioridad alta a 30 días y queda urgente después de vencer. La aprobación registra el nuevo inicio, fuente, trámite, fecha de verificación e historial. Datos de consultorio y contacto personal se tratan separados. Solo operadores de matrícula pueden aprobar/rechazar. Post: renovación aprobada, observada, rechazada o cancelada con trazabilidad.
Cobertura documental. Cubierto. Páginas: modulos/renovacion-matricula.md y administracion/credenciales-digitales.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-02
EPIC-02UC-2.1 · Generación y Cobro Cuotas
Actores y resumen. Actor: Admin/Tesorería/todos los roles OPERADOR_*/Supervisor Trámites/Sistema. Todos los operadores disponen de la capacidad acotada de consulta, previsualización y cobro total o parcial, independientemente de AUTHZ_POLICY_MODE; la generación mensual y la administración financiera permanecen reservadas a Finanzas/Administración. Resumen: generación mensual idempotente, previsualización, cobro y recibo de cuotas con trazabilidad PAY.
Precondición y disparador. Pre: CUOTA_MENSUAL activo, periodo definido en MONTHLY_FEE_TARIFF_POLICY, scheduler/ejecución autorizada. Disp: ciclo mensual, ejecución manual controlada o cobro presencial/online.
Flujo principal.
- Revisar que
CUOTA_MENSUALeste activo y que el periodo exista en Tarifario mensual. - Previsualizar generación en Dinero -> Operaciones -> Cuotas.
- Generar Debt única por profesional/período/tipo sin avisos si no fueron autorizados.
- Registrar cargo en cuenta corriente con generationKey idempotente.
- Cobrar por canal real: caja, transferencia, débito, POS o checkout.
- Emitir/vincular recibo y cuenta corriente.
- Reflejar impacto en Dinero/Contabilidad cuando corresponda.
Flujos alternativos.
- FA-2.1.1: Pago parcial bancario se aplica a una sola deuda, conserva remanente y exige nota.
- FA-2.1.5: Pago excedente cancela la deuda y registra el remanente como saldo a favor trazable.
- FA-2.1.2: Reversa/anulación crea operación opuesta trazable.
- FA-2.1.3: Sin
CUOTA_MENSUALvigente o sin una entrada explícita del período enMONTHLY_FEE_TARIFF_POLICY, la previsualización/generación falla sin crear deuda ni reutilizar el importe del mes anterior. - FA-2.1.4: Reintento reutiliza deuda/generationKey idempotente.
- FA-2.1.6: Revalorización de una cuota abierta actualiza la misma deuda; si ya existe evidencia de pago, débito, crédito, plan u operación aprobada, se omite.
- FA-2.1.7: Un cobro con monto cero o negativo se rechaza antes de iniciar la transacción.
- FA-2.1.8: Con más de 12 cuotas mensuales (
MONTHLY_FEE) vencidas, un operador de cobranza solicita un descuento sobre el conjunto completo. Multas y otros conceptos quedan fuera. Tesorería/FINANCE_WRITElo aprueba con doble autoridad y el cobro existente sólo lo consume si recibe exactamente todas las cuotas y el importe total del snapshot en una operación idempotente. Un pago parcial, saldo a favor o efectivo falla cerrado.
Reglas de negocio y postcondición. Reglas: No enviar correos/notificaciones salvo autorización explícita; QUOTA_GENERATION_NOTIFICATIONS_ENABLED=false por defecto si aplica al entorno. La generación crea cargo pendiente, nunca cobro real. Lote CBU usa Debt.finalAmount. CBU / Caja de ahorro aplica 20%, tarjeta de crédito 30% y jubilados 50% según política vigente; jubilación excluye CBU/tarjeta sobre la misma cuota. Un excedente se registra como pasivo disponible y un faltante sólo puede reducir una deuda por vez. Toda cuota impaga es pendiente; si su vencimiento pasó también se presenta como pendiente vencida, sin perder la obligación. La evidencia económica se vuelve a verificar dentro de la transacción de revalorización. Los resúmenes operativos se calculan sobre el universo filtrado completo, excluyen datos test y no dependen de la página visible. Post: deuda, cuenta corriente, recibo/pago, saldo a favor cuando corresponda y contabilidad quedan vinculados.
Cobertura documental. Cubierto. Páginas: modulos/dinero.md y administracion/tarifario-cuotas.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-02UC-2.2 · Pago Online Portal
Actores y resumen. Actor: Colegiado. Resumen: Pago web desde portal con checkout operativo NAVE.
Precondición y disparador. Pre: Deuda activa. Disp: Acceso pagos.
Flujo principal.
- Seleccionar deuda.
- Crear operación PAY idempotente.
- Redirección a NAVE.
- Pago externo.
- Retorno o refresh estado.
- Materialización de pago y recibo.
Flujos alternativos.
- FA-2.2.1: Cancelación (sigue pendiente).
- FA-2.2.2: Timeout o vuelta fallida -> recuperar estado por referencia externa.
- FA-2.2.3: Mercado Pago/PAYWAY no operativos online.
Reglas de negocio y postcondición. Reglas: HTTPS. NAVE es el checkout activo. PAYWAY queda solo como POS físico legacy. Post: Deuda pagada, recibo disponible y PAY trazable.
Cobertura documental. Cubierto candidato. Página candidata: referencia/changelog.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-02UC-2.3 · Conciliación Bancaria
Actores y resumen. Actor: Admin/Op. Finanzas. Resumen: Cotejo sistema vs banco por sesiones auditadas.
Precondición y disparador. Disp: Importación periódica de extracto o liquidación.
Flujo principal.
- Importar extracto.
- Clasificar origen.
- Matching automático sugerido.
- Confirmación manual o ajuste.
- Cierre de sesión.
- Revisión de pendientes y evidencia.
- Promoción de una única versión como RUN operativo; previews reemplazados quedan históricos de sólo lectura.
- Certificación SHA-256 de extractos reales espejados que conserven una marca técnica de SANDBOX.
- Ejecución de los gates de
PREVIEW seguroycertificado para aplicar, comparando universo, identidad, medio, monto, asignación contable y efectos colaterales. - Repetición del mismo PREVIEW y comparación exacta de
sourceUniverseHash,eventUniverseHashydecisionHash. - Auditoría inerte de deudas, pagos, recibos, operaciones, saldos, beneficios, planes, prestadores y comunicaciones antes de promover.
- Resolución explícita de un método CBU 20% o tarjeta 30% sólo cuando identidad, período, tarifario e importe oficial determinan una única alternativa.
- Preselección de la única deuda del mismo período del RUN; si existen duplicados o más de una alternativa, el operador debe elegirla explícitamente antes de aplicar.
- Aplicación individual de la cuota base completa cuando una transferencia general exacta sucede a un rechazo validado del mismo profesional y período.
Flujos alternativos.
- FA-2.3.1: Sin candidato.
- FA-2.3.2: Duplicado idempotente.
- FA-2.3.3: Settlement FIXED_POS pendiente.
- FA-2.3.4: Excedente aprobado crea saldo a favor sin contabilizarlo como ingreso por cuota.
- FA-2.3.5: Faltante aprobado registra pago parcial y conserva deuda remanente.
- FA-2.3.6: La vista de Profesionales agrupa y ordena saldos disponibles y deudas para seguimiento; la consulta no aplica pagos ni envía comunicaciones.
- FA-2.3.7: Evidencia ligada a un perfil
isTestAccounto pagoisTestRunno puede cerrar el movimiento; vuelve a revisión sin profesional. - FA-2.3.8: Cuota pagada sin pago aprobado enlazado o saldo con fuente test se conserva, pero bloquea nuevas aplicaciones hasta certificar procedencia.
- FA-2.3.9: Reintento equivalente recupera el resultado existente; reintento con otro destino económico devuelve conflicto.
- FA-2.3.10: Fuente
sandbox-runde Galicia (BANK_STATEMENT), CBU/COELSA (BANK_DEBIT) o tarjeta (CREDIT_CARD) sólo se habilita si el manifiesto primario o auxiliar normalizado coincide en hash, período y cantidad de eventos; certificar no crea pagos. Caja, recibos, padrón y referencias no son certificables como extracto. - FA-2.3.11: Varios previews del mismo mes conservan auditoría, pero sólo el marcado RUN operativo admite continuidad; los anteriores quedan históricos.
- FA-2.3.12: La deuda ya descontada muestra base, descuento y exigible; un ingreso mayor crea saldo a favor y no duplica el descuento.
- FA-2.3.13: Si el medio de una deuda está ausente o heredado y el importe coincide de forma única con CBU 20% o tarjeta 30%, el operador puede resolver sólo el snapshot de esa deuda con nota y aprobación explícita. Si el extracto contradice la alternativa, hay beneficio concurrente o la evidencia no es única, se bloquean match, saldo y pago parcial. Una decisión ya cerrada abre la operación existente en modo lectura.
- FA-2.3.14: Un RUN puede aprobar el gate de PREVIEW porque no introduce decisiones inseguras y aun así fallar la certificación económica por cierres históricos inconsistentes.
- FA-2.3.15: Una inconsistencia histórica sólo se repara con plan por operación, backup, identidad fuerte, match único, tarifario del período e idempotencia; un excedente jubilatorio o de redondeo se registra como saldo a favor y un conflicto de medio rectifica la deuda, pago y recibo sin crear crédito artificial.
- FA-2.3.16: Si el importe de una operación no coincide con la suma de pagos aprobados y saldos a favor vinculados, el cierre queda bloqueado para reparación; la diferencia no se oculta como mejora de tasa.
- FA-2.3.17: Si una simulación falla, el reemplazo completo se revierte y permanece disponible el universo anterior; un reintento recupera o reutiliza la reserva persistente.
- FA-2.3.18: Si un profesional tiene deuda de meses anteriores y una única deuda del período del RUN, la UI marca la del RUN. Una decisión estricta auditada conserva prioridad. Dos deudas del mismo período o una selección ambigua bloquean el atajo de teclado y exigen elección humana.
- FA-2.3.19: Una respuesta mensual rechazada de CBU o tarjeta conserva evidencia, pero no activa el medio, no limpia el rechazo y no revalúa cuotas. Sólo una respuesta aceptada puede operar sobre su propio período; dos métodos aceptados para el mismo profesional y mes bloquean la migración.
- FA-2.3.20: Si existe un rechazo validado y luego una transferencia por la base exacta de la cuota, el operador puede revertir sólo el descuento de esa deuda y aplicar el total con nota. Falta de identidad, período, importe o evidencia única bloquea la acción; la adhesión maestra y las cuotas futuras no cambian.
Reglas de negocio y postcondición. Reglas: Conciliados inmutables. Auditoría completa. Separar banco, pasarela, débito, caja y POS fijo. Para certificacion de cuotas, el denominador estricto es tarjeta aceptada + CBU cobrado; una respuesta rechazada nunca activa el medio ni revalúa una cuota, y recibos, padron, caja y prestadores son evidencia de contraste si representan el mismo hecho economico. La tolerancia amplia sólo ordena candidatos; la aplicación económica exige importe exacto a centavos o ajuste aprobado por periodo. CBU/COELSA aplica 20% y tarjeta de crédito 30% según política vigente o snapshot histórico; una deuda ya descontada no recibe el descuento dos veces. La resolución de método exige identidad global única, mismo período, tarifario oficial, una sola deuda y un único importe compatible; reemplaza sólo el snapshot de esa deuda y no modifica la adhesión maestra. Después de un rechazo validado, una transferencia general por la base exacta puede revertir sólo el descuento de esa deuda mediante aprobación individual; debe enlazar ambas evidencias y no crear saldo, modificar adhesiones ni alterar cuotas futuras. Una contradicción explícita del extracto, un beneficio concurrente o evidencia ambigua bloquean toda imputación. Excedentes y faltantes permanecen en revisión como saldo a favor, pago parcial o diferencia documentada sólo cuando identidad y medio coinciden. Seeds, perfiles test, pagos test, evidencia incompleta y archivos derivados quedan fuera de decisiones de cierre. Una fuente real espejada puede certificarse sólo por manifiesto SHA-256 coincidente, sin aplicar pagos. Cada período tiene un único RUN operativo; los previews reemplazados y las decisiones ALREADY_CLOSED se conservan de sólo lectura. Una reserva persistente evita simulaciones paralelas; fuentes, decisiones, métricas y manifiesto se reemplazan en una transacción completa. Los comandos económicos exigen idempotencia fail-closed, hash semántico, locks de fuente/profesional/deudas y actualización atómica de la decisión del RUN. Una operación cancelada sólo puede liberar su clave de fuente para un reintento dentro de la misma transacción cuando pago y recibo están anulados, la cuenta corriente netea cero y no quedan banco, saldo, reversión, AFIP, match confirmado ni asiento contabilizado; la historia anterior se conserva y enlaza con el reemplazo. Una reparación histórica exige backup, plan inmutable, evidencia fuerte y segundo apply sin escrituras. El aprendizaje sólo ordena candidatos y no modifica la autorización económica. Una mejora de tasa no certifica el RUN: se exige mismo universo de fuentes y eventos, hashes reproducibles, cero reasignaciones de profesional, cero decisiones automáticas con conflicto de medio, asignación completa del importe y cero cambios económicos o comunicaciones durante PREVIEW. certifiedForApply certifica consistencia, no autoriza materialización masiva sin aprobación explícita. Post: Registros alineados o pendientes diagnosticados.
Cobertura documental. Cubierto. Página principal: modulos/conciliacion-bancaria.md, secciones auditoría cruzada y certificación de rerun.
Evidencia visual. Con captura escritorio y movil en la página principal.
EPIC-02UC-2.4 · Facturar Cuotas (AFIP)
Actores y resumen. Actor: Admin/Tesorería/Operador Finanzas/Sistema. Resumen: facturación fiscal post-pago mediante cola AFIP trazable, sin emitir CAE ficticio cuando AFIP no está configurado.
Precondición y disparador. Pre: pago, recibo u operación PAY materializada y configuración fiscal disponible. Disp: pago aprobado, conciliación aplicada, débito automático cobrado, caja cerrada, tarea programada o acción manual Procesar AFIP.
Flujo principal.
- Materializar pago y recibo desde una operación PAY.
- Encolar AfipInvoiceJob vinculado al recibo/pago.
- Procesar cola por scheduler o botón administrativo.
- Validar configuración WSAA/WSFE.
- Autorizar comprobante sólo si AFIP responde correctamente.
- Registrar DONE o reintento/FAILED con alerta y auditoría.
Flujos alternativos.
- FA-2.4.1: AFIP no configurado deja job pendiente/fallido sin CAE.
- FA-2.4.2: AFIP caído reprograma con backoff.
- FA-2.4.3: máximo de intentos dispara alerta e intervención manual.
- FA-2.4.4: modelo de facturación de OOSS usa circuito ARCA/manual y no CAE automático simulado.
Reglas de negocio y postcondición. Reglas: no emitir CAE simulado; recibo interno no reemplaza factura fiscal; cola idempotente y auditable; correlatividad fiscal depende de autorización real. Post: comprobante autorizado por AFIP o job trazable para corrección/reintento.
Cobertura documental. Cubierto candidato. Página candidata: modulos/dinero.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-02UC-2.5 · Operación de dinero única trazable
Actores y resumen. Actor: Admin/Op. Finanzas/Sistema. Resumen: Todo movimiento económico relevante abre una single PAY.
Precondición y disparador. Disp: Pago, caja, transferencia, NAVE, débito, reversa, conciliación o ajuste contable.
Flujo principal.
- Crear operación PAY.
- Vincular deuda, pago, recibo, profesional y origen.
- Registrar eventos e idempotencia.
- Exponer single canónica.
- Vincular impacto contable/libro diario cuando corresponda.
Flujos alternativos.
- FA-2.5.1: Movimiento legacy se clasifica como histórico.
- FA-2.5.2: Pago sin recibo queda pendiente de materialización.
- FA-2.5.3: El
PAYde un excedente muestra saldo original, disponible y aplicaciones posteriores. - FA-2.5.4: Una aplicación de saldo abre otro
PAYinterno y conserva el vínculo con la operación bancaria de origen.
Reglas de negocio y postcondición. Reglas: PAY único e idempotente. Estados en español amable. Una fila virtual aprobada puede materializar PAY/recibo/pago con nota explícita; si el PAY ya existe, el vínculo con extracto se hace desde la ficha única sin crear otro pago. La acción Vincular extracto exige nota de aprobación, valida importe/signo/movimiento pendiente y usa idempotencia por operación + movimiento bancario. Los saldos a favor y sus aplicaciones se exponen como sección activa, línea de tiempo y detalle relacionado; aplicar un saldo no crea otro movimiento bancario ni duplica el crédito de cuenta corriente. Post: Operación auditable, navegable y conciliable.
Cobertura documental. Cubierto candidato. Página candidata: modulos/dinero.md.
Evidencia visual. Validado en SANDBOX con par escritorio/móvil para ficha PAY elegible y modal de vinculación. Capturas no publicadas por contener nombres e importes reales; evidencia interna en docs/evidencias/dinero-vincular-extracto-2026-07-01.md.
EPIC-02UC-2.6 · Reintegros reversas y pagos por error
Actores y resumen. Actor: Admin/Op. Finanzas. Resumen: Corrección sin borrar el movimiento original.
Precondición y disparador. Disp: Pago duplicado, desinscripción, error de caja, transferencia mal imputada o cobro por error.
Flujo principal.
- Abrir operación original.
- Seleccionar reversa o reintegro.
- Informar motivo.
- Crear operación compensatoria.
- Actualizar saldo, eventos y vínculo contable.
Flujos alternativos.
- FA-2.6.1: Si ya hay recibo emitido no se borra; se compensa.
- FA-2.6.2: Si el proveedor no devuelve, registrar gestión manual auditada.
Reglas de negocio y postcondición. Reglas: Motivo obligatorio, vínculo al PAY original y reversabilidad completa. Post: Corrección trazable sin pérdida histórica.
Cobertura documental. Cubierto candidato. Página candidata: modulos/dinero.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-02UC-2.7 · Conciliación multi pasarela y banco
Actores y resumen. Actor: Op. Finanzas/Sistema. Resumen: Cuadre entre operaciones, banco, NAVE, débito, caja y POS fijo.
Precondición y disparador. Disp: Carga extracto, settlement o lote de origen.
Flujo principal.
- Importar lote o extracto.
- Crear o seleccionar RUN mensual
PREVIEWdesde Dinero -> Operaciones -> Conciliacion -> RUN mensual. - Registrar fuentes procesadas del periodo.
- Simular decisiones
PREVIEWcon clave idempotente por evento. - Proponer matches y asociaciones.
- Para cobros OOSS certificados, registrar sólo candidatos de revisión contra el pago de lote exacto o la cohorte del período.
- Separar
ALREADY_CLOSED,AUTO_APPLY_STRICT, cola manual, bloqueos y excluidos. - Confirmar conciliación cuando cumple reglas estrictas.
- Marcar gaps.
- Alimentar ledger de diferencias.
- Certificar dos simulaciones con hashes iguales y snapshot económico inerte.
Flujos alternativos.
- FA-2.7.1: Transferencia directa sin pasarela se imputa manualmente.
- FA-2.7.2: Duplicado se descarta y audita.
- FA-2.7.3: PAYWAY se agrupa como FIXED_POS.
- FA-2.7.4: Excedente aprobado se divide entre ingreso por deuda y pasivo de saldo a favor.
- FA-2.7.5: Faltante aprobado registra pago parcial sobre una única deuda.
- FA-2.7.6: Fuente de prueba o evidencia incompleta se conserva para auditoría, pero no materializa ni alimenta aprendizaje.
- FA-2.7.7: Si falla la reserva idempotente, el comando no comienza; si la respuesta se interrumpe después del commit, el reintento equivalente recupera la operación.
- FA-2.7.8: Tarjeta 30% contra deuda CBU 20%, o cualquier medio incompatible, se rechaza antes de crear pago, recibo, match o saldo; una decisión cerrada remite a su operación original.
- FA-2.7.9: Una simulación concurrente reutiliza la reserva activa; una falla revierte el reemplazo completo y no deja decisiones parciales.
- FA-2.7.10: Una cohorte OOSS compuesta con una transacción faltante se bloquea completa; no se registra evidencia parcial ni se promueve el gate entre entornos con distinto universo de extractos.
- FA-2.7.11: Una operación ya cerrada puede recuperarse desde cualquiera de sus snapshots mensuales efectivamente vinculados; un RUN no vinculado o un payload con otro hash se rechaza sin escritura.
Reglas de negocio y postcondición. Reglas: No duplicar ingresos. Separar proveedor técnico, medio operativo y banco. El RUN mensual auditable agrupa fuentes, decisiones, métricas y cola manual por período. Una aplicación automática segura de CBU exige identidad fuerte, deuda PENDING compatible, única transacción bancaria exacta, procedencia certificada e idempotencia por deuda + transacción. Una diferencia sólo se aplica por decisión humana con nota cuando identidad y medio coinciden: excedente a pasivo o faltante como pago parcial. Un conflicto CBU/tarjeta se bloquea y no genera artefactos económicos. Los porcentajes 20% y 30% no sustituyen la evidencia del método. La evidencia OOSS persistida nunca autoaplica: exige manifiesto certificado, candidato humano, destino único y posterior aprobación económica. Fuente, profesional, deudas y decisión mensual se confirman con locks y una única transacción. Una conciliación aplicada sólo se corrige mediante reversa compensatoria vinculada al PAY original. Post: Banco y sistema conciliados o gap explícito.
Cobertura documental. Cubierto. Página principal: modulos/conciliacion-bancaria.md, secciones RUN mensual auditable y auditoria cruzada SANDBOX mayo/junio 2026.
Evidencia visual. Con captura escritorio y movil en la página principal.
EPIC-02UC-2.8 · Planes de Pago de Deuda
Actores y resumen. Actor: Colegiado/Op. Finanzas/Admin/Sistema. Resumen: Solicitud, aprobación y cobro de planes de pago sobre cuotas adeudadas, con cuotas, descuentos reglados, recibos, AFIP y operación PAY.
Precondición y disparador. Disp: Colegiado con deuda acumulada consulta elegibilidad o Finanzas crea plan asistido. Pre: profesional con matrícula aprobada y deudas mensuales pendientes/vencidas.
Flujo principal.
- Verificar elegibilidad.
- Calcular deuda, descuento y opciones de cuotas.
- Crear plan automático o personalizado.
- Revisar plan si requiere operador.
- Pagar cuota del plan.
- Generar operación PAY, recibo, transacción de cuenta corriente y job AFIP.
- Consultar mis planes, el panel de Dinero o la pestaña Planes de la ficha profesional con avance y mora.
- Para un descuento especial, calcularlo sobre el saldo pendiente persistido y derivarlo a una persona aprobadora distinta de quien lo solicitó.
Flujos alternativos.
- FA-2.8.1: Menos de 3 cuotas no habilita plan.
- FA-2.8.2: Más de 60 cuotas requiere comunicación con Colegio.
- FA-2.8.3: Ya existe plan activo bloquea duplicado.
- FA-2.8.4: Plan de 24+ cuotas requiere revisión/direct debit según política.
- FA-2.8.5: Una planilla externa informa cuotas canceladas sin operación PAY. El sistema las lista como control operativo hasta vincularlas o crear la operación por corrida aprobada.
- FA-2.8.6: Una deuda incluida en un plan está totalmente cubierta por asignaciones liquidadas, pero conserva estado
IN_PAYMENT_PLAN. La auditoría bloquea la promoción y exige un plan de reparación congelado; no se vuelve a cobrar ni se modifica el importe. - FA-2.8.7: Un plan cancelado, completado o dado de baja permanece visible como antecedente en la ficha, pero no genera cuotas operativas ni se cuenta como plan activo.
- FA-2.8.8: Repetir la misma clave de pago devuelve el resultado ya completo; si una cuota figura pagada pero falta un artefacto financiero, el replay se detiene para revisión en lugar de fabricar el faltante.
Reglas de negocio y postcondición. Reglas: Una deuda cubierta por plan queda bloqueada/conciliada para evitar doble cobro. Mientras está IN_PAYMENT_PLAN, Debt.finalAmount conserva la obligación congelada y el saldo se deriva de asignaciones liquidadas. La deuda pasa a PAID sólo cuando esa cobertura llega al total; una cobertura parcial mantiene el estado y no reescribe el importe. Sólo un plan ACTIVE admite el pago de cuotas; el comando es idempotente y trazable. Un descuento no confía en un saldo enviado por el cliente: usa el saldo persistido, exige monto positivo que no lo supere y separación entre solicitante y aprobador. Las cuotas pagadas por planilla sin operación se muestran como filas de control y no abren ficha de operación hasta materializarse con aprobación explícita. Luego se vinculan al extracto desde la operación PAY existente, validando importe, signo y movimiento pendiente. La tolerancia amplia sólo sirve para sugerir candidatos; la aplicación exige importe exacto a centavos o ajuste aprobado. Un excedente o faltante queda en revisión como saldo a favor, pago parcial o diferencia documentada y no marca la deuda como pagada por el importe bancario completo. Una reparación de estado exige evidencia liquidada, plan congelado con SHA-256, cantidad exacta, segundo apply sin escrituras y cero efectos económicos o comunicaciones fuera de status/paidAt y auditoría. Post: plan queda pendiente, aprobado, activo, cancelado o pagado con movimientos contables o con control pendiente de operación.
Cobertura documental. Cubierto. Página: modulos/dinero.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-02UC-2.9 · Tarifario Mensual de Cuotas
Actores y resumen. Actor: Admin/Tesorería/Operador Finanzas/Sistema. Resumen: definición del tarifario mensual por periodo, descuentos y generación idempotente de deudas por CUOTA_MENSUAL.
Precondición y disparador. Pre: CUOTA_MENSUAL activo y vigente, periodo cargado en MONTHLY_FEE_TARIFF_POLICY, usuario autorizado; RUN manual o scheduler habilitado. Disp: Tesorería aprueba nuevo valor, operador previsualiza/genera cuotas o se ejecuta el ciclo mensual.
Flujo principal.
- Abrir Administración -> Tarifario Mensual de Cuotas.
- Crear o actualizar el periodo con importe base, finales por metodo, beneficios y redondeo.
- Confirmar que Tipos de Cuota mantenga
CUOTA_MENSUALactivo y mensuales legacy inactivos. - Previsualizar generación en Dinero -> Operaciones -> Cuotas.
- Ejecutar RUN mensual autorizado.
- Generar Debt y Transaction con amount, discount, finalAmount y generationKey idempotente.
- Revisar QuotaGenerationLog/historial antes de cobrar o generar lote CBU.
Flujos alternativos.
- FA-2.9.1: no hay periodo explícito en el tarifario mensual o
CUOTA_MENSUALno esta activo, el PREVIEW y el RUN fallan sin crear deuda y sin heredar el último importe deFeeType. - FA-2.9.2: concepto mensual legacy o versionado activo se bloquea para evitar doble fuente de monto.
- FA-2.9.3: cuotas abiertas del período actual pueden revalorizarse con ajuste trazable si cambia el tarifario vigente.
- FA-2.9.4: sandbox o modo solo lectura permite previsualizar sin ejecutar mutaciones masivas.
- FA-2.9.5: beneficios vencidos, beneficios en revision o conceptos externos
REVIEWse aislan en filtros operativos y no se usan como automaticos del re-run. Un concepto externo sin profesional local solo puede convertirse en recibo desde Dinero -> Operaciones luego de vincular un profesional existente y confirmar la materializacion. - FA-2.9.6: la cuota inmediatamente anterior se difiere si su RUN todavía tiene bloqueos o saldo sin resolver; no se la revaloriza mientras puede existir un pago real pendiente de conciliación.
Reglas de negocio y postcondición. Reglas: MONTHLY_FEE_TARIFF_POLICY es la fuente de importe base mensual, finales por metodo, beneficios y redondeo. CUOTA_MENSUAL es el unico concepto mensual oficial activo. El método de cobro diferencia CBU 20% y tarjeta de crédito 30% con adhesión ACTIVE; jubilación aplica 50% sobre el importe base y excluye CBU/tarjeta. Agosto 2026 usa $16.670 general, $13.336 CBU, $11.669 tarjeta y $8.335 jubilado; julio conserva su política canónica previa y no se recalcula con agosto. Junio tarjeta queda como final oficial $11.215,00. El lote CBU usa Debt.finalAmount y no recalcula descuentos. Las reglas persistentes por profesional registran jubilacion, maternidad/paternidad, primera matricula y snapshots por deuda; el re-run solo toma conceptos esperados o aplicados, nunca conceptos en revision. La certificacion SANDBOX mayo/junio 2026 valido el flujo RUN -> deuda -> cobro/lote -> PAY -> recibo -> banco -> conciliacion. Post: período queda generado, omitido o diagnosticado con QuotaGenerationLog y cuenta corriente trazable.
Cobertura documental. Cubierto. Páginas principales: administracion/tarifario-cuotas.md, modulos/dinero.md y administracion/tipos-cuota.md.
Evidencia visual. Con captura escritorio en configuracion de dinero; movil no recomendado para ejecuciones masivas, solo consulta.
EPIC-02UC-2.10 · Reglas operativas persistentes de cobro y beneficios
Actores y resumen. Actor: Admin/Tesorería/Operador Finanzas/Sistema. Resumen: registro por profesional de beneficios, planes de pago, conceptos externos y evidencia que explica descuentos o destinos del RUN mensual.
Precondición y disparador. Pre: fuente externa real, período definido y profesional facturable. Disp: carga de jubilación, maternidad/paternidad, primera matrícula, plan de pago, curso o mega RUN.
Flujo principal.
- Inventariar y clasificar la fuente real, excluyendo salidas derivadas y maquetas.
- Resolver identidad por DNI, CUIT, matrícula o match curado; un nombre ambiguo queda en revisión.
- Crear o actualizar la regla, plan, concepto externo o snapshot de deuda con fuente y vigencia.
- Ejecutar el RUN en
PREVIEWcontra extractos, CBU, tarjetas y referencias auxiliares. - Revisar filtros de Profesionales/Dinero y exportar la cola manual con/sin profesional.
- Materializar únicamente decisiones aprobadas e idempotentes en un flujo separado.
Flujos alternativos.
- FA-2.10.1: beneficio vencido queda histórico y no descuenta la cuota vigente.
- FA-2.10.2: concepto externo fuera de rango o sin profesional local queda en revisión.
- FA-2.10.3: cuota de plan cancelada por planilla sin operación queda pendiente de trazabilidad.
- FA-2.10.4: perfil sin matrícula, sintético o test no participa del matching ni del cierre.
- FA-2.10.5: liquidación de prestador sin factura queda pendiente y no crea
PAY. - FA-2.10.6: descuento agrupado por pago único queda
PENDINGsin modificar deuda; no admite autoaprobación, se revierte antes del cobro o junto con la anulación del recibo, y conserva snapshot por cuota, monto distribuido, aprobador y operación que lo consumió. La reversa consumida reclama la transición por compare-and-set y sólo restaura un snapshot económico coincidente; una carrera o diferencia revierte la transacción completa.
Reglas de negocio y postcondición. Toda regla conserva vigencia, fuente, fila y auditoría. El PREVIEW no crea pagos, recibos, facturas, mensajes ni transacciones bancarias. Un candidato aprendido prioriza la revisión, pero no materializa dinero sin aprobación. Post: beneficios, planes, conceptos y pendientes quedan trazables por profesional, deuda, operación y RUN.
Cobertura documental. Cubierto. Páginas principales: modulos/dinero.md, modulos/conciliacion-bancaria.md y modulos/prestadores.md.
Evidencia visual. Se reutilizan las capturas existentes de Dinero, Conciliación y perfil de Prestador en escritorio/móvil; el auditor final es backend y no agrega pantalla.
EPIC-03
EPIC-03UC-3.1 · Gestión Cursos
Actores y resumen. Actor: Gestor Académico. Resumen: ABM Cursos.
Precondición y disparador. Disp: Nuevo curso.
Flujo principal.
- Carga Datos (Nombre, Fechas, Disertantes, Costos).
- Carga Materiales.
- Publicar.
Flujos alternativos.
- FA-3.1.1: Editar.
- FA-3.1.2: Duplicar.
- FA-3.1.3: Eliminar.
Reglas de negocio y postcondición. Reglas: Respetar cupo máximo. Post: Curso en catálogo.
Cobertura documental. Cubierto candidato. Página candidata: modulos/cursos.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-03UC-3.2 · Inscripción Curso
Actores y resumen. Actor: Colegiado. Resumen: Inscripción, validación y cobro.
Precondición y disparador. Disp: Ver catálogo.
Flujo principal.
- Verificar requisitos (matrícula/cupo).
- Inscripción.
- Crear deuda o checkout según política.
- Confirmación.
- Email/aviso si la compuerta lo permite.
Flujos alternativos.
- FA-3.2.1: Cupo agotado -> lista de espera.
- FA-3.2.2: Requisito no cumplido.
- FA-3.2.3: Pago fallido o pendiente.
Reglas de negocio y postcondición. Reglas: El pago confirmado materializa la inscripción; si se usa checkout online, sigue el flujo PAY/NAVE vigente. Post: Inscripto o en espera con trazabilidad.
Cobertura documental. Cubierto candidato. Página candidata: modulos/cursos.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-03UC-3.3 · Certificados Digitales
Actores y resumen. Actor: Sistema. Resumen: Emisión auto.
Precondición y disparador. Disp: Admin marca "Aprobado".
Flujo principal.
- Detectar estado "Aprobado".
- Generar PDF plantilla.
- Generar CUV y QR.
- Publicar y notificar.
Flujos alternativos.
- FA-3.3.1: Re-generar.
- FA-3.3.2: Verificación pública.
Reglas de negocio y postcondición. Reglas: CUV único. Solo aprobados. Post: Certificado emitido.
Cobertura documental. Cubierto candidato. Página candidata: modulos/cursos.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-03UC-3.4 · Desinscripción curso y política de reembolso
Actores y resumen. Actor: Colegiado/Prestador/Op. Cursos/Op. Finanzas. Resumen: Baja de inscripción con cancelación de deuda o corrección económica trazable.
Precondición y disparador. Disp: Usuario solicita desinscripción o admin cancela inscripción.
Flujo principal.
- Abrir Mis Cursos.
- Ver detalle.
- Solicitar desinscripción.
- Evaluar política.
- Cancelar deuda o crear reversa/reintegro.
- Dejar trazabilidad en PAY original.
Flujos alternativos.
- FA-3.4.1: Fuera de plazo requiere revisión manual.
- FA-3.4.2: Curso completado no permite baja automática.
Reglas de negocio y postcondición. Reglas: Política definida en Dinero Configuración. Todo pago se vincula a PAY y mantiene reversabilidad. Post: Inscripción cancelada con trazabilidad.
Cobertura documental. Cubierto candidato. Página candidata: modulos/cursos.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-04
EPIC-04UC-4.1 · Reporte Financiero
Actores y resumen. Actor: Directiva, Administración y Operador de Finanzas. Resumen: informes consolidados y contrastables del ciclo económico.
Precondición y disparador. Disp: acceso a Reportes o cierre mensual. Pre: período económico explícito y permiso financiero.
Flujo principal.
- Seleccionar período económico y vista.
- Consultar cobros por fecha efectiva y obligaciones por período sin mezclarlos.
- Revisar la partición canónica: pendiente sin vencer, vencida, en plan, pagada, bonificada, cancelada y revisión de datos.
- Contrastar el libro de Operaciones, la agrupación por Profesional y el circuito separado de Prestadores.
- Exportar el reporte cuando corresponda.
- Ejecutar dos replays del certificado y conservar hash, invariantes y delta de efectos laterales.
Flujos alternativos.
- Un estado persistido con saldo cero y obligación positiva queda en revisión; no se corrige desde el reporte.
- Si dos replays difieren, el corte no certifica y se investiga concurrencia, alcance o procedencia.
- Una cifra histórica o captura nunca sustituye el certificado vigente.
Reglas de negocio y postcondición. Reglas: cobros externos por fecha efectiva de pago; obligaciones por período económico; estados económicos mutuamente excluyentes y exhaustivos; planes incluidos una sola vez; bonificaciones totales fuera de deuda abierta; inconsistencias en cuarentena; padrón facturable y cartera histórica separados; órdenes y liquidaciones de prestadores fuera de la recaudación colegial hasta existir movimiento externo trazable. El certificado usa un oráculo independiente, exige hash igual en dos replays y cero delta en objetos económicos o comunicaciones. Post: reporte generado, contrastable y certificado sin modificar datos.
Cobertura documental. Cubierto. Página: modulos/finanzas.md.
Evidencia visual. Par final de escritorio y móvil en SANDBOX. La evidencia numérica vigente es el certification.json del período, no la captura.
EPIC-04UC-4.2 · Gestión Caja
Actores y resumen. Actor: Cajero. Resumen: Movimientos diarios.
Precondición y disparador. Disp: Jornada.
Flujo principal.
- Apertura.
- Reg. Cobros/Pagos.
- Cierre (Arqueo).
- Reg. Diferencias.
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: Historial inmutable. Post: Caja cerrada.
Cobertura documental. Cubierto candidato. Página candidata: modulos/finanzas.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-04UC-4.3 · Contabilidad y Libro Diario
Actores y resumen. Actor: Admin/Contador/Sistema. Resumen: Gestión del plan de cuentas, libro diario, posteo/anulación de asientos y balance de sumas y saldos conectado a operaciones económicas.
Precondición y disparador. Disp: Admin abre Contabilidad o una operación genera impacto contable. Pre: usuario con rol administrativo/contable y catálogo de cuentas inicializado.
Flujo principal.
- Consultar plan de cuentas.
- Crear, editar o desactivar cuentas según reglas.
- Consultar libro diario.
- Crear asiento manual o recibir asiento desde operación PAY.
- Postear asiento cuando cuadra débito/crédito.
- Anular asiento con reverso auditado.
- Consultar balance por periodo.
Flujos alternativos.
- FA-4.3.1: Cuenta con movimientos no se elimina físicamente.
- FA-4.3.2: Asiento descuadrado no puede postearse.
- FA-4.3.3: Asiento posteado no se edita; se anula con reverso.
- FA-4.3.4: Periodo cerrado bloquea cambios manuales.
Reglas de negocio y postcondición. Reglas: Debe conservar partida doble, trazabilidad a PaymentOperation cuando aplique y auditoría de posteo/anulación. Post: plan contable, libro diario y balance quedan consultables y consistentes.
Cobertura documental. Cubierto candidato. Página candidata: modulos/dinero.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-05
EPIC-05UC-5.1 · Gestión Perfil
Actores y resumen. Actor: Colegiado. Resumen: Modificar datos.
Precondición y disparador. Disp: Mi Perfil.
Flujo principal.
- Ver datos.
- Editar permitidos.
- Enviar solicitud.
- Aprobación admin.
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: Datos sensibles requieren admin. Post: Solicitud enviada.
Cobertura documental. Cubierto candidato. Página candidata: modulos/autogestion.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-05UC-5.2 · Reg. Rendición Física
Actores y resumen. Actor: Op. Obras Sociales. Resumen: Carga rendiciones.
Precondición y disparador. Pre: Ordenes entregadas. Disp: Registrar.
Flujo principal.
- Carga datos.
- Valida consistencia.
- Estado "Validada" u "Observada".
Flujos alternativos.
- FA-5.1.1: Incompleta.
- FA-5.1.2: Error digitalización.
Reglas de negocio y postcondición. Reglas: Solo validadas pasan a lote. Post: Rendición registrada.
Cobertura documental. Cubierto candidato. Página candidata: inicio-rapido/prestador.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-05UC-5.3 · Generación Lote OS
Actores y resumen. Actor: Op. Obras Sociales. Resumen: Enviar a OS.
Precondición y disparador. Pre: Validadas. Disp: Generar Lote.
Flujo principal.
- Seleccionar obra social y período.
- Elegir rango opcional y campo de fecha (
createdAt,validatedAtoserviceDate), y previsualizar todas las líneas fuente. - Validar identidad, tarifa, aritmética, claves canónicas e idempotencia.
- Comprobar que ninguna factura o lote quede parcial.
- Ejecutar dos previews y exigir hashes equivalentes y delta cero.
- Resolver la cola documental de tarifas y posibles reemisiones con evidencia externa.
- Repetir el preview y comprobar que todos los bloqueos del lote y sus facturas estén cerrados.
- Crear el lote en
DRAFT, generar allí el PDF de presentación, confirmarlo aREADYpara congelar el artefacto revisado y enviarlo sólo cuando no existan bloqueos. - Emitir la factura real manualmente en ARCA.
- Registrar número, período, OOSS, CUIT receptor, importe, CAE, vencimientos y PDF privado en Dinero → Configuración → Facturación OOSS.
- Contrastar el crédito Galicia por CUIT exacto e importe único o suma única, sin exigir el mismo mes calendario.
- Confirmar el cobro sólo con aprobación explícita y vínculo bancario persistente e idempotente.
Flujos alternativos.
- FA-5.2.1: Excluye incompletas.
- FA-5.3.2: Tarifa con una sola fuente queda a la espera de evidencia secundaria.
- FA-5.3.3: Precios incompatibles exigen una política explícita de vigencia o plan.
- FA-5.3.4: Misma firma económica con otro número de orden exige confirmar reemisión o prestación distinta.
- FA-5.3.5: Factura informada sin PDF fiscal queda bloqueada; no se crea ni completa por inferencia.
- FA-5.3.6: Estado histórico Pagada sin operación vinculada queda en revisión de procedencia y no confirma cobro.
- FA-5.3.7: Fuente mensual con más líneas que un lote histórico distribuido exige reconstrucción o lote complementario; no se amplía el lote existente.
- FA-5.3.8: CUIT encontrado con importe distinto exige revisar ajustes, débitos, rechazos o lote complementario; no se acepta por nombre o cercanía.
- FA-5.3.9: Más de una combinación bancaria posible, crédito ya utilizado o ausencia de CUIT exacto bloquea la acreditación.
- FA-5.3.10: CUIT documental ausente en el maestro OOSS exige respaldo, identidad exacta y replay idempotente; completar el maestro no confirma el cobro.
- FA-5.3.11: Diferencia entre bruto documental y órdenes exige comparar tarifa y cantidad por orden; no se presume una orden faltante ni se corrige parcialmente.
- FA-5.3.12: Orden histórica agrupada en un lote posterior usa la tarifa vigente en la fecha de prestación, no la del período operativo del lote.
- FA-5.3.13: Vista previa sin órdenes deja la generación deshabilitada; cambiar cualquier filtro invalida la vista previa anterior.
- FA-5.3.14: Un lote
READYcon PDF o cualquierSENTrechaza reemplazarlo. UnREADYlegado conpdfUrlnulo permite una única recuperación manual por CAS, sin reabrir el lote; la acción masiva sólo selecciona lotesDRAFTsin PDF.
Reglas de negocio y postcondición. Reglas: lote sólo con órdenes validadas, con Obra Social y todavía sin lote, identidad inequívoca y tarifa respaldada. Vista previa y generación usan exactamente los mismos filtros; el período del lote no cambia la fecha de prestación. La generación normal del PDF de presentación publica por CAS sobre la misma versión DRAFT; confirmar exige un pdfUrl vigente y congela esa versión. La única excepción es la recuperación manual de un READY legado con pdfUrl nulo, que reclama exactamente { id, status: READY, updatedAt, pdfUrl: null }; un READY con PDF y cualquier SENT no admiten reemplazo. El bulk permanece DRAFT-only. Una transición operativa de una orden ligada también reclama y toca el parent DRAFT, e invalida sus artefactos; si el parent ya está READY o SENT, la orden no cambia. Una coincidencia económica no autoriza fusionar órdenes. Cobertura documental, distribución y banco son controles independientes. La evidencia bancaria exige CUIT exacto y coincidencia única por importe o suma; no exige el mismo mes calendario, no reutiliza movimientos y no autoriza pago sin aprobación y vínculo persistente. Completar un CUIT maestro requiere respaldo, identidad exacta y replay de cero escrituras; no confirma un cobro. Una diferencia tarifaria se reconstruye por número de orden, fecha de prestación, cantidad y precio unitario, debe explicar el total del gap y exige preview antes de modificar. Si lote, pago y liquidación ya reflejan el documental, permanecen intactos y la reparación se limita a las órdenes. La factura institucional usa número y hash de fuente únicos; su PDF es privado y no prueba el cobro. El registro fiscal es idempotente y no crea pagos, recibos, liquidaciones ni comunicaciones. Post: lote enviado y factura fiscal trazable, o bloqueo explícito sin efecto económico parcial.
Cobertura documental. Parcial candidato. Página candidata: modulos/prestadores.md.
Evidencia visual. El gate de tarifas continúa NO_UI. La factura fiscal institucional se consulta en la pestaña existente Facturación OOSS; escritorio, búsqueda, estado preservado y enlace al PDF privado fueron verificados en SANDBOX y PSICOLE. Las capturas productivas se conservan como evidencia privada y no se publican porque contienen importes institucionales. El par sanitizado de los nuevos filtros de rango, campo de fecha y OOSS queda pendiente.
EPIC-05UC-5.4 · Liquidación Pago OS
Actores y resumen. Actor: Op. Obras Sociales/Operador Finanzas/Prestador. Resumen: registrar el pago de la OS, calcular la liquidación, recibir y aprobar la factura del prestador y registrar el pago trazable.
Precondición y disparador. Pre: Pago OS confirmado.
Flujo principal.
- Seleccionar Lote.
- Cargar Pago.
- Calc. Comisión y Neto.
- Generar una liquidación por prestador.
- El prestador presenta número, fecha, importe y archivo de factura sobre la liquidación.
- El operador revisa la factura en Prestadores → Liquidaciones de pagos → Facturas recibidas.
- Aprobar la factura para pago.
- Registrar el pago y vincular factura, liquidación, órdenes y operación
PAY.
Flujos alternativos.
- FA-5.3.1: Pago Parcial.
- FA-5.3.2: Diferencia importe.
- FA-5.4.3: Factura con importe distinto al neto -> bloquear y regularizar.
- FA-5.4.4: Referencia sin archivo físico -> bloquear aprobación.
- FA-5.4.5: Factura reemplazada antes de aprobar -> cancelar la anterior y conservar registro y archivo histórico.
- FA-5.4.6: Orden pagada sin liquidación -> regularizar antes de recibir factura.
- FA-5.4.7: Factura recibida antes de una liquidación compatible -> registrar
REGISTERED, conservar archivo y motivo, sin habilitar aprobación ni pago. - FA-5.4.8: Coincidencia exacta con liquidación pendiente -> permitir vínculo documental
LINKED_TO_SETTLEMENT, manteniendo bloqueadas aprobación y pago hasta completar el circuito económico. - FA-5.4.9: Ausencia, ambigüedad o conflicto de período -> conservar
REGISTEREDy el PDF privado, sin forzar liquidación ni obra social. - FA-5.4.10: Débito Galicia exacto sin liquidación, factura aprobada u operación económica -> conservar evidencia y enviar a revisión; no marcar pagado.
- FA-5.4.11: Diferencia entre neto documental y liquidación existente -> revisar órdenes, comisión, ajustes y rechazo explícito; no inferir la causa.
- FA-5.4.12: Egreso bancario con órdenes faltantes, ambiguas o sin lote -> clasificar en preview de sólo lectura; no construir liquidación ni pago hasta completar la cadena fuente.
- FA-5.4.13: Orden respaldada cuyo lote ya está totalmente distribuido -> bloquear el vínculo y reconstruir pago OOSS, débitos, rechazos o distribución previa antes de cualquier corrección.
- FA-5.4.14: Líneas duplicadas indistinguibles con igual conjunto de órdenes -> validar cardinalidad y firma económica como conjunto, sin emparejar filas arbitrariamente.
- FA-5.4.15: Lote distribuido sin movimiento bancario vinculado -> mantener pago y liquidaciones pendientes; no interpretar
FULLY_ALLOCATEDcomo cobro o egreso. - FA-5.4.16: Fuente OOSS mensual mayor que el lote existente -> conservar las líneas fuera del lote y preparar reconstrucción o lote complementario después de confirmar banco.
- FA-5.4.17: Cobro OOSS exacto y débito de prestador exacto sin vínculos persistidos -> conservar la cadena como evidencia parcial, persistir sólo candidatos humanos idempotentes y exigir aprobación por cada extremo.
- FA-5.4.18: Orden existente con tarifa histórica distinta de la fuente -> bloquear cobro y pago; corregir sólo mediante preview integral del lote, comisión y neto.
- FA-5.4.19: Preview demuestra que los agregados ya son documentales -> no recalcular lote, pago, liquidación, comisión, neto o facturas; corregir sólo campos económicos y metadatos tarifarios de las órdenes exactas.
- FA-5.4.20: Corrección histórica exacta aplicada en SANDBOX -> exigir respaldo, estado previo certificado, transacción, auditoría e idempotencia; el replay debe ser NOOP y la verificación posterior debe dejar gaps cero sin promover datos a PSICOLE.
- FA-5.4.21: Lote con bruto distinto del aceptado por ajustes documentados -> comparar órdenes con bruto del lote y conciliar por separado
bruto - aceptadocontra los ajustes; bloquear si cualquiera de los dos gaps queda sin explicar. - FA-5.4.22: Archivo general declara
DEPOSITADOsin fecha bancaria -> conservar como evidencia documental; no interpretar el estado como pago ejecutado. - FA-5.4.23: Archivo general declara
RETENIDOpero existe un débito bancario exacto -> bloquear por contradicción y exigir revisión humana de ambas fuentes. - FA-5.4.24: Débito exacto e identidad suficiente sin liquidación canónica -> crear sólo candidato humano; reconstruir órdenes, lote, liquidación y factura antes de cualquier pago.
- FA-5.4.25: Factura física visible en el perfil sin vínculo canónico -> conservar
REGISTERED; no interpretar visibilidad como aprobación, liquidación o pago. - FA-5.4.26: Neto del pago de lote distinto de la suma de sus liquidaciones -> bloquear la certificación económica y revisar la distribución fuente sin recalcular agregados automáticamente.
- FA-5.4.27: Factura canónica sin liquidación exacta -> mostrarla al prestador en Liquidaciones y al operador en la ficha, pero mantener
REGISTEREDy bloquear pago. - FA-5.4.28: Liquidación sin factura, lote sin respuesta, pago de lote sin banco o factura OOSS sin líneas -> declarar la cadena
INCOMPLETE; el auditor no puede emitirPASSparcial.
Reglas de negocio y postcondición. Reglas: comisiones por vigencia; una factura canónica por CUIT emisor, punto de venta y número; hash de archivo trazable; importe igual al neto con tolerancia de $ 1,00; archivo físico obligatorio; pago individual o masivo bloqueado hasta APPROVED_FOR_PAYMENT; una coincidencia por importe no crea vínculo; varias liquidaciones del mismo prestador y período se comparan por suma mensual y conservan su separación por OOSS/lote; cobertura documental, distribución, cobro OOSS y egreso al prestador se certifican por separado; FULLY_ALLOCATED no confirma banco; un lote sin disponibilidad neta no admite nuevas imputaciones; el bruto de órdenes se compara con el bruto del lote y la diferencia hasta el aceptado debe quedar explicada exactamente por ajustes; una diferencia de tarifa debe explicar el total del gap por orden y fecha de prestación antes de cualquier cambio; los agregados ya documentales no se recalculan; toda corrección histórica exige respaldo, estado previo exacto, transacción, auditoría, idempotencia y replay sin escrituras; los reportes de débito automático y tarjeta de cuotas no prueban cobros OOSS ni egresos a prestadores; una instrucción bancaria no prueba ejecución; los dos extremos bancarios requieren vínculos persistentes e idempotentes; acciones auditadas; la carga y aprobación no envían comunicaciones ni ejecutan transferencias. Post: factura documentada sin efecto económico o pago registrado con trazabilidad orden -> lote -> pago OS -> liquidación -> factura -> operación PAY.
Cobertura documental. Cubierto. Página: modulos/liquidaciones.md.
Evidencia visual. Par escritorio/móvil verificado en SANDBOX y PSICOLE con las 72 facturas fiscales 2026 disponibles por perfil, PDF privado accesible y desplazamiento horizontal contenido. El apply vinculó 3 coincidencias exactas; el replay produjo 0 mutaciones / 3 NOOP y no modificó estados económicos o comunicaciones. El gate bancario OOSS es NO_UI: con fuentes equivalentes, SANDBOX y PSICOLE produjeron 18/18 candidatos normalizados, 6 contra pagos de lote exactos y 12 contra cohortes. El archivo general 2026 agregó en ambos entornos 75 candidatos humanos: 34 liquidaciones documentales sin banco, 3 retenciones documentales sin banco, 34 egresos sin liquidación, 3 diferencias de importe y 1 cadena individual exacta. De las 41 evidencias bancarias exactas, 38 originaron candidatos y 3 contradicciones RETENIDO/débito quedaron bloqueadas fuera de la cola. El replay creó 0 y conservó los 75; no hubo efectos económicos. El cruce vivo de julio relacionó 62/62 prestadores, 711 prestaciones y los 62 renglones del libro general con hash estable: 31 egresos exactos, 11 anteriores a factura, 3 identidades trianguladas, 2 ambiguos, 5 con diferencia y 10 sin banco. Todos continúan no autoaplicables. El auditor de reciprocidad del 27/07/2026 confirmó 2.451 facturas en 305 perfiles y 0 archivos físicos faltantes después de restaurar dos referencias exactas, pero mantiene bloqueada la certificación por la distribución OOSS incoherente y ausencia de vínculos bancarios persistentes en los pagos de lote. La visualización por perfil sí tiene ayuda contextual; el auditor contable continúa NO_UI y no requiere onboarding ni tour.
EPIC-05UC-5.5 · Consulta Cta Cte
Actores y resumen. Actor: Colegiado; en modalidad administrativa, Operador de Finanzas/Admin. Resumen: consultar cuenta corriente, pagos, recibos, saldos y planes de una persona sin alterar su estado financiero.
Precondición y disparador. Disp: Cuenta Corriente del portal o ficha de un profesional. Pre: usuario autenticado y, para consulta administrativa, permiso financiero sobre el perfil.
Flujo principal.
- Ver deudas y pagos con descripción mensual canónica.
- Abrir o descargar recibos y operaciones vinculadas.
- Consultar saldos a favor y planes activos o históricos.
- Aplicar filtros.
- Desde una ficha económica, volver al mismo profesional y pestaña de origen.
- Consultar la completitud de cada colección sin que la lectura genere QR, pagos, recibos, órdenes, mensajes o cualquier otra escritura.
Flujos alternativos.
- Una deuda sin pago abre el libro de cuotas por identificador; no se crea una operación inexistente.
- Un plan terminal se presenta como historial y no como obligación operativa.
- Si una ficha económica falla, el operador vuelve al perfil y verifica deuda,
PAYoRECantes de registrar otro cobro. - Un rol sin capacidad financiera puede consultar sólo las secciones de perfil que le corresponden; no recibe cuenta corriente, pagos ni auditoría por el mero hecho de ser operador.
- Una credencial sin QR informa que requiere emisión administrativa; abrir la ficha no persiste el código faltante.
Reglas de negocio y postcondición. Reglas: el colegiado sólo accede a datos propios; el operador requiere capacidad financiera. La consulta y el cálculo visual de mora no modifican deudas, planes ni cuotas. Una cuota mensual se presenta como Cuota Mensual - Mes Año sin reescribir la historia. Post: información consultada y contexto de navegación preservado.
Cobertura documental. Cubierto. Páginas principales: modulos/dinero.md, sección Planes en la ficha del profesional, e inicio-rapido/operador-finanzas.md.
Evidencia visual. El contrato automatizado verifica retorno contextual recargable, rechazo de rutas externas, reinicio del scroll de la ficha y filtros compactos. En el cierre del 28/07/2026 no se ejecutó navegador por restricción explícita de RAM y privacidad. Antes del release queda requerido un único smoke acotado escritorio/móvil en SANDBOX con cuenta de prueba sin datos personales.
EPIC-05UC-5.6 · Acceso Certificados
Actores y resumen. Actor: Colegiado. Resumen: Descarga docs.
Precondición y disparador. Disp: Mis Cursos.
Flujo principal.
- Listar cursos.
- Descargar PDF con QR (si finalizado).
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: Solo cursos completados. Post: Descarga OK.
Cobertura documental. Parcial candidato. Página candidata: inicio-rapido/colegiado.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-05UC-5.7 · Gestión Órdenes
Actores y resumen. Actor: Prestador/Operador de Prestadores/Finanzas. Resumen: carga, consulta y corrección controlada de órdenes.
Precondición y disparador. Disp: Nuevo.
Flujo principal.
- Cargar datos y escaneo.
- Enviar.
- Consultar estado.
- Si corresponde, el operador abre Corregir, ajusta prestador, orden, paciente, afiliado, OOSS, fecha, práctica, cantidad o precio y registra el motivo.
- El sistema recalcula cantidad × precio y devuelve a revisión una orden que ya estaba validada o presentada.
Flujos alternativos.
- Una tarifa sin respaldo suficiente mantiene la orden
PENDING_REVIEW. - Dos fuentes con la misma firma y distinto número no generan una orden duplicada: quedan en revisión humana.
- Una reemisión confirmada reutiliza la orden existente y conserva el linaje de ambos documentos; una prestación distinta conserva ambos hechos económicos.
- Una orden dentro de una rendición sólo se corrige desde esa rendición y
recalcula su total. En la UI vigente el botón interno está disponible para
PENDINGyOBSERVED; las vinculadasVALIDATED/SUBMITTEDson una brecha de interfaz pendiente. Una orden terminal no admite edición. - Validar, observar o rechazar una orden ligada a un lote reclama el parent
DRAFTen la misma transacción e invalida sus artefactos. Un parentREADYoSENTrechaza la acción, también en el camino masivo.
Reglas de negocio y postcondición. Reglas: Admin actualiza estados; precio e identidad se validan por separado; el nomenclador se limita por OOSS y fecha de prestación. Una aprobación tarifaria previa sólo se preserva ante cambios no económicos cuando permanecen idénticos Obra Social, práctica, fecha y vigencia, cantidad, precio aplicado y referencia oficial. Cualquier cambio de ese contexto exige nueva revisión. La capacidad de Finanzas/Administración para aprobar una excepción se hace bloqueante sólo con PROVIDER_PRICING_GUARD_MODE=enforce; en observe se registra la discrepancia y se conserva la autorización legada. Las claves de fuente e idempotencia son únicas; ninguna excepción documental habilita por sí sola factura, liquidación o pago. Post: orden cargada, corregida o pendiente con motivo y evidencia trazables.
Cobertura documental. Cubierto. Página: modulos/prestadores.md.
Evidencia visual. El panel general conserva su par escritorio/móvil. El modal
de corrección y su variante dentro de rendición requieren capturas sanitizadas;
la cola documental de backend continúa NO_UI.
EPIC-05UC-5.8 · Matrícula Digital
Actores y resumen. Actor: Colegiado. Resumen: Credencial App.
Precondición y disparador. Disp: Mi Matrícula.
Flujo principal.
- Ver Credencial (QR, Estado).
- Descargar PDF.
- Compartir enlace.
Flujos alternativos.
- Alt: "No vigente" impide descarga.
Reglas de negocio y postcondición. Reglas: Solo si al día. QR público seguro. Post: Credencial accedida.
Cobertura documental. Cubierto candidato. Página candidata: referencia/changelog.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-05UC-5.9 · Consultorio autónomo del profesional
Actores y resumen. Actor: Colegiado/Prestador/Sistema. Resumen: Hub del consultorio propio para operar pacientes, agenda, sesiones, recordatorios, cobros particulares, órdenes PSICOLE cuando corresponde y exportación de datos.
Precondición y disparador. Disp: Profesional ingresa a Consultorio o Mis Pacientes. Pre: usuario con perfil profesional activo y rol habilitado para consultorio.
Flujo principal.
- Abrir Consultorio.
- Consultar agenda semanal y pacientes.
- Crear o seleccionar paciente.
- Agendar, reprogramar o cancelar turno.
- Completar sesión.
- Registrar cobro particular o generar borrador de orden PSICOLE si es prestador con obra social.
- Consultar cobros y exportar agenda/datos.
Flujos alternativos.
- FA-5.9.1: Colegiado no prestador usa consultorio solo para agenda, pacientes y cobros particulares.
- FA-5.9.2: Prestador con OS genera orden desde sesión.
- FA-5.9.3: Paciente sin opt-in no recibe recordatorio.
- FA-5.9.4: Turno no programado no puede eliminarse físicamente; se cancela con motivo.
Reglas de negocio y postcondición. Reglas: Aislamiento por professionalId. Consultorio funciona sin ser prestador. Cobro particular crea operación PAY trazable e idempotente. Exportaciones solo de datos propios. Post: sesión, cobro, orden o agenda quedan trazables.
Cobertura documental. Cubierto candidato. Página candidata: modulos/consultorio.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-05UC-5.10 · Gestión de Pacientes de Consultorio
Actores y resumen. Actor: Colegiado/Prestador. Resumen: Libreta propia de pacientes para reutilizar datos clínico-administrativos en turnos, obras sociales, tratamientos y recordatorios.
Precondición y disparador. Disp: Profesional abre Mis Pacientes o necesita cargar paciente antes de un turno. Pre: perfil profesional activo.
Flujo principal.
- Listar o buscar pacientes propios.
- Crear paciente con datos personales, contacto, OS, credencial, tratamiento, notas y preferencia de recordatorios.
- Editar datos.
- Consultar ficha con próximos turnos e historial.
- Archivar paciente cuando deja de estar activo.
Flujos alternativos.
- FA-5.10.1: Paciente particular sin obra social.
- FA-5.10.2: Paciente con múltiples obras sociales activas.
- FA-5.10.3: Búsqueda por nombre, DNI, credencial o email.
- FA-5.10.4: Baja es lógica y conserva historial.
Reglas de negocio y postcondición. Reglas: Aislamiento por professionalId. No se exponen pacientes de otros profesionales. La credencial se sincroniza con affiliateNumber por compatibilidad. Post: paciente disponible para agenda, órdenes y cobros.
Cobertura documental. Cubierto candidato. Página candidata: modulos/consultorio.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-05UC-5.11 · Agenda y Recordatorios de Consultorio
Actores y resumen. Actor: Colegiado/Prestador/Sistema. Resumen: Gestión de turnos del consultorio con agenda, reprogramación, cancelación, completado, recordatorio manual/automático y exportación calendario.
Precondición y disparador. Disp: Profesional agenda o modifica un turno. Pre: paciente existente o nombre libre, fecha/hora y modalidad.
Flujo principal.
- Consultar turnos por rango, estado o paciente.
- Crear turno con duración, modalidad, tipo y notas.
- Reprogramar o editar.
- Enviar aviso si corresponde.
- Completar sesión.
- Cancelar con motivo o eliminar solo turnos programados.
- Exportar agenda .ics.
Flujos alternativos.
- FA-5.11.1: Paciente sin email u opt-in saltea envío.
- FA-5.11.2: Turno inexistente o de otro profesional devuelve no encontrado.
- FA-5.11.3: Recordatorio manual falla por paciente sin consentimiento.
- FA-5.11.4: Agenda personal agrega turnos próximos a badges.
Reglas de negocio y postcondición. Reglas: Solo propietario profesional opera el turno. Eliminación física limitada a SCHEDULED. Recordatorios se auditan por AppointmentReminder. Post: turno queda programado, completado, cancelado o exportado.
Cobertura documental. Cubierto candidato. Página candidata: modulos/prestadores.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-05UC-5.12 · Cobros Particulares de Consultorio
Actores y resumen. Actor: Colegiado/Prestador/Sistema. Resumen: Registro de cobros particulares al completar sesiones, con consulta de ingresos y operación PAY trazable.
Precondición y disparador. Disp: Profesional completa turno y declara cobro particular. Pre: turno propio con paciente e importe mayor a cero.
Flujo principal.
- Completar turno.
- Informar privatePayment con importe, método, notas y recibo opcional.
- Sistema crea o reutiliza PrivateAppointmentPayment.
- Sistema crea PaymentOperation idempotente.
- Profesional consulta cobros por rango.
- Exporta datos de consultorio en JSON.
Flujos alternativos.
- FA-5.12.1: Importe inválido bloquea registro.
- FA-5.12.2: Reintento idempotente reutiliza cobro/operación.
- FA-5.12.3: Métodos cash, transferencia, MercadoPago, tarjeta o manual se normalizan a canal PAY.
Reglas de negocio y postcondición. Reglas: La operación usa sourceType PRIVATE_APPOINTMENT_PAYMENT y counterparty PATIENT. No requiere sesión de caja del Colegio. Post: cobro particular trazable en dinero y exportable por el profesional.
Cobertura documental. Cubierto candidato. Página candidata: modulos/consultorio.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-05UC-5.13 · Directorio Público Profesional y Curaduría
Actores y resumen. Actor: Público/Colegiado/Admin/Sistema. Resumen: Perfil público profesional enriquecido, directorio consultable, curaduría admin, páginas hub, recomendaciones, analytics y bitácora colectiva.
Precondición y disparador. Disp: Público busca profesional, colegiado actualiza perfil público o admin curaduría directorio. Pre: profesional con matrícula aprobada/provisoria y perfil público activo cuando corresponde.
Flujo principal.
- Colegiado mantiene datos públicos, foto, bio, áreas, modalidades y consultorio.
- Público consulta directorio o perfil.
- Sistema registra analytics.
- Admin ve overview, completitud y perfiles.
- Admin recomienda o fuerza inactividad.
- Admin edita páginas hub. La revisión de bitácora y posts destacados está desactivada en la superficie vigente.
Flujos alternativos.
- FA-5.13.1: Perfil incompleto baja completitud.
- FA-5.13.2: Perfil inactivo no aparece públicamente.
- FA-5.13.3: Admin filtra por ciudad, recomendado, activo o búsqueda.
- FA-5.13.4: Hub se puede seedear con defaults.
Reglas de negocio y postcondición. Reglas: El directorio público no expone email privado; usa campos públicos elegidos. Admin requiere rol. Analytics agregadas por slug/evento. Post: perfil visible, curado, recomendado, inactivo o medido.
Decisión de producto vigente (2026-08-08). La subfunción de bitácora colectiva queda No aplica: se retiró de los perfiles y la navegación, y /bitacora y /bitacora/:slug ya no están registradas como rutas públicas. El resto del caso de uso continúa vigente.
Cobertura documental. Parcial candidato. Página candidata: modulos/directorio-publico.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-06
EPIC-06UC-6.1 · Gestión Tipos Cuotas
Actores y resumen. Actor: Admin General/Tesorería. Resumen: configuración de conceptos, códigos, categorías, periodicidad y vigencia de cuotas/aranceles.
Precondición y disparador. Disp: alta, baja o corrección de concepto. Pre: usuario autorizado y definición administrativa del concepto.
Flujo principal.
- Abrir Administración -> Tipos de Cuota.
- Crear/editar concepto.
- Definir código, categoría, periodicidad, vigencia, importe base y descuentos.
- Activar/inactivar.
- Para cuotas mensuales, validar que
CUOTA_MENSUALsea el unico concepto mensual oficial activo y que el valor del periodo este en Tarifario mensual.
Flujos alternativos.
- FA-6.1.1: Código mensual fuera de la política oficial se bloquea para generación mensual.
- FA-6.1.2: Concepto no mensual mantiene su importe propio.
- FA-6.1.3: Concepto histórico se inactiva cerrando vigencia sin borrar trazabilidad.
- FA-6.1.4: Si se intenta reactivar un concepto mensual historico, el sistema informa que el importe mensual se administra en Tarifario mensual.
Reglas de negocio y postcondición. Reglas: Tipos de Cuota/FeeType es fuente del concepto cobrable; para cuota mensual, el importe por periodo sale de MONTHLY_FEE_TARIFF_POLICY. Post: concepto disponible para generación/cobro según categoría y período, sin reactivar mensuales legacy.
Cobertura documental. Cubierto candidato. Página candidata: administracion/tipos-cuota.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-06UC-6.2 · Gestión Usuarios
Actores y resumen. Actor: Admin General. Resumen: ABM Personal.
Precondición y disparador. Disp: ABM.
Flujo principal.
- Crear/Editar usuario.
- Asignar Rol.
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: Permisos granulares. Post: Usuarios configurados.
Cobertura documental. Parcial candidato. Página candidata: referencia/matriz-permisos.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-06UC-6.3 · Config Parámetros
Actores y resumen. Actor: Admin General. Resumen: Ajustes globales.
Precondición y disparador. Disp: Cambio global.
Flujo principal.
- Editar parámetros (Datos inst, seguridad).
- Guardar.
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: Cambios auditados. Post: Config actualizada.
Cobertura documental. Parcial candidato. Página candidata: modulos/directorio-publico.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-06UC-6.4 · Auditoría Sistema
Actores y resumen. Actor: Admin General y Auditor. Resumen: revisar eventos y certificar que una lectura financiera sea coherente, repetible e inerte.
Precondición y disparador. Pre: permiso de auditoría y período definido. Disp: revisión, cierre mensual o diferencia entre vistas.
Flujo principal.
- Ver tabla de eventos y filtrar por módulo, entidad, actor y fecha.
- Abrir la trazabilidad de la operación o deuda de origen.
- Ejecutar el certificado financiero para los períodos bajo revisión.
- Comparar invariantes, hash funcional, paridad normalizada entre entornos y delta de efectos laterales.
- Para prestadores, certificar por separado cobertura documental, distribución, crédito OOSS y débito al prestador.
- Exportar logs y
certification.json.
Flujos alternativos.
- Hash distinto o delta no nulo: el corte falla sin corregir datos automáticamente.
- Inconsistencia económica: se envía a revisión de datos y se conserva el estado persistido.
- Coincidencia bancaria exacta sin vínculo persistente o aprobación: se registra como evidencia candidata, nunca como pago.
- Fuente documental marcada
DEPOSITADOsin fecha bancaria: no confirma pago. - Fuente marcada
RETENIDOcon débito exacto: contradicción bloqueante, sin corrección automática.
Reglas de negocio y postcondición. Reglas: log inmutable; el auditor de vistas usa un cálculo independiente; dos replays iguales son obligatorios; la paridad ignora únicamente identificadores técnicos sin valor económico; deudas, pagos, recibos, operaciones, banco, planes, prestadores, tickets y comunicaciones deben conservar sus contadores. Una promoción review-only exige respaldo identificado y revalida el snapshot económico dentro de la transacción antes de escribir; una diferencia aborta el lote completo. Post: auditoría reproducible con evidencia o falla diagnosticada.
Cobertura documental. Cubierto. Páginas: modulos/finanzas.md y modulos/liquidaciones.md.
Evidencia operativa. certification.json con invariantes, hash funcional y delta de efectos laterales. El oráculo OOSS/banco clasificó 17/30 cohortes exactas por $27.801.564,60 y 54/173 egresos exactos por $15.037.755,69. La segunda fuente de julio se importó en SANDBOX una sola vez (438 altas; replay 0). El gate OOSS produjo 18/18 candidatos humanos normalizados en SANDBOX y PSICOLE. El archivo general de liquidaciones 2026 produjo la misma clasificación funcional y los mismos 75 candidatos en ambos entornos; su replay creó 0 y dejó 75 sin cambios. Los dos gates conservaron cero mutaciones económicas o comunicaciones. No requieren pantalla nueva.
EPIC-06UC-6.5 · Gestión Prestadores
Actores y resumen. Actor: Operador de Prestadores, Administración y Finanzas. Resumen: consultar el padrón de prestadores y seguir órdenes, rendiciones, liquidaciones, facturas y pagos sin mezclarlos con la recaudación colegial.
Precondición y disparador. Pre: permiso de Prestadores y perfil profesional identificable. Disp: revisión de un perfil, cierre mensual o diferencia entre fuentes.
Flujo principal.
- Consultar prestadores registrados y distinguir activos e históricos.
- Abrir el perfil y revisar órdenes por fecha de prestación.
- Revisar rendiciones y liquidaciones por período y obra social.
- Consultar todas las facturas fiscales históricas de la persona y abrir su PDF privado.
- Distinguir factura vinculada exactamente de documento registrado sin vínculo.
- Revisar la operación
PAYcuando exista y exportar evidencia. - Desde el control de órdenes, filtrar y exportar por OOSS y período o rango completo sin modificar estados.
Flujos alternativos.
- Factura sin liquidación exacta: conservarla como
REGISTERED, visible y no pagable. - Identidad, período o importe ambiguos: enviar a normalización sin completar datos por inferencia.
- Prestador histórico: conservar su trazabilidad, sin incluirlo en el padrón activo.
- Egreso Galicia sin liquidación canónica: conservar la evidencia bancaria y regularizar el circuito antes de vincular una factura o pago.
- Archivo general con identidad no resuelta, diferencia económica o contradicción de estado: conservar el candidato bloqueado sin completar el perfil por inferencia.
- Documento de proveedor o gasto institucional dentro del archivo histórico: excluirlo del perfil profesional y enviarlo al circuito de proveedores del Colegio.
- Orden que ya pertenece a una rendición: abrirla desde esa rendición para corregirla y recalcular el total en la misma operación.
Reglas de negocio y postcondición. Reglas: received_invoices es la fuente canónica; el archivo es privado; el vínculo exige identidad, período e importe neto exactos; un CUIT individual sólo puede resolverse por su DNI embebido cuando ese DNI identifica a una única persona; nombre, carpeta o importe aislados no alcanzan. La exportación exige OOSS más período o rango completo, acepta hasta 366 días y 50.000 filas y es de sólo lectura. La evidencia de egreso exige extracto bancario y no se obtiene de cobranzas CBU/tarjeta; órdenes, liquidaciones y facturas no integran recaudación colegial sin movimiento externo trazable; logs y estados no se reescriben por inferencia. Post: perfil contrastable con pago trazable o bloqueo explícito.
Cobertura documental. Cubierto. Página: modulos/prestadores.md.
Evidencia visual. El contrato automatizado verifica el inventario canónico
paginado, la descarga privada, la ausencia de bruto/comisión para el prestador y
la denegación cruzada. No se ejecutó un navegador adicional en el cierre del
28/07/2026 por restricción explícita de RAM y privacidad. El cruce del archivo
general 2026 se conserva como evidencia privada NO_UI: identifica gaps por
prestador/período sin inventar facturas, liquidaciones ni estados visibles. La
ampliación documental certificó en ambos entornos 2.158/2.158 facturas y
archivos nuevos, 282 profesionales identificados, replay con 0 altas y cero
deltas económicos; 75 documentos institucionales o ambiguos permanecen fuera
de perfiles. Antes del release se mantiene un smoke visual acotado en SANDBOX,
sin datos personales.
EPIC-06UC-6.6 · Operadores especiales y módulos dinámicos
Actores y resumen. Actor: Admin/Super Admin. Resumen: Asignar capacidades por EPIC, módulo, sede y función.
Precondición y disparador. Disp: Alta o ajuste de operador.
Flujo principal.
- Crear usuario operador.
- Asignar módulos.
- Definir grupos o sedes.
- Guardar.
- Auditar acceso.
- Verificar ancla y ayuda contextual correspondiente.
Flujos alternativos.
- FA-6.6.1: Operador sin módulo no ve menú.
- FA-6.6.2: Super admin requerido para acciones críticas.
Reglas de negocio y postcondición. Reglas: Menor privilegio y auditoría. Post: Operador con alcance correcto y ayudas enlazadas al manual vigente.
Cobertura documental. Cubierto candidato. Página candidata: administracion/operadores-modulos.md.
Evidencia visual. Con par escritorio/móvil en página candidata; revisar vigencia visual.
EPIC-06UC-6.7 · Accesos reset y aviso de credenciales
Actores y resumen. Actor: Admin/Sistema/Usuario. Resumen: Enviar o regenerar acceso desde usuarios con compuertas de comunicación.
Precondición y disparador. Disp: Alta de usuario o solicitud de recuperación asistida.
Flujo principal.
- Generar contraseña temporal.
- Preparar aviso con URL.
- Registrar auditoría.
- Si el envío está bloqueado conservar clave anterior.
- Si el entorno es inerte, auditar sin entrega real.
Flujos alternativos.
- FA-6.7.1: Entorno inerte registra sin envío real.
- FA-6.7.2: Email inválido informa error amable.
Reglas de negocio y postcondición. Reglas: No perder clave vigente si falla el aviso. Post: Acceso entregado o rollback seguro con comunicación auditada.
Cobertura documental. Cubierto candidato. Página candidata: administracion/usuarios-roles.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-06UC-6.8 · Permisos de Edición de Perfil
Actores y resumen. Actor: Super Admin/Sistema. Resumen: Matriz para habilitar o revocar por rol la edición de secciones sensibles del perfil profesional.
Precondición y disparador. Disp: Super Admin abre Permisos de Perfil. Pre: permisos MATRÍCULAS/EDIT creados para recursos de perfil.
Flujo principal.
- Consultar matriz de roles y recursos.
- Activar o desactivar permiso por rol/sección.
- Sistema actualiza RolePermission.
- Sistema registra AuditLog con recurso, rol y estado.
- UI refleja permisos para edición de datos personales, profesionales, medios de pago, banco prestador, comunicaciones y perfil público.
Flujos alternativos.
- FA-6.8.1: Recurso inválido devuelve error.
- FA-6.8.2: Rol inexistente bloquea cambio.
- FA-6.8.3: Permiso base inexistente informa configuración incompleta.
Reglas de negocio y postcondición. Reglas: Solo Super Admin. Cambios auditados. No otorga acceso general, solo edición de secciones específicas. Post: roles quedan habilitados o bloqueados para editar cada sección.
Cobertura documental. Cubierto candidato. Página candidata: administracion/usuarios-roles.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-07
EPIC-07UC-7.1 · Autenticación (Login)
Actores y resumen. Actor: Todos. Resumen: acceso seguro con cookies de sesión y roles.
Precondición y disparador. Disp: Ingreso.
Flujo principal.
- Ingresar email y contraseña.
- Validar credenciales sin revelar si falló usuario o contraseña.
- Emitir access y refresh en cookies
httpOnlyy el token CSRF de doble envío. - Cargar rol, permisos y módulos asignados.
Flujos alternativos.
- Alt: olvido de contraseña, usuario inactivo u origen de navegador no permitido.
Reglas de negocio y postcondición. Reglas: hashing bcrypt, contraseña robusta, CORS_ORIGINS exacto por entorno y tokens no persistidos en localStorage. WordPress redirige al login PSICOLE y no comparte sesión. Post: login válido o error genérico sin enumeración.
Cobertura documental. Parcial candidato. Página candidata: modulos/autenticacion.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-07UC-7.2 · Gestión Sesiones
Actores y resumen. Actor: Sistema. Resumen: Tokens/Timeouts.
Precondición y disparador. Disp: Inactividad.
Flujo principal.
- Access JWT de vida corta en cookie
httpOnly. - Refresh rotativo persistido y cookie
httpOnly. - Mutaciones con cookie/header CSRF coincidentes.
- Logout individual, de todos los dispositivos o por vencimiento.
Flujos alternativos.
- Reuso de un refresh revocado: revocar sesiones activas y exigir nuevo login.
- Dos refresh simultáneos: el perdedor reintenta con la cookie rotada, sin cerrar una sesión válida.
Reglas de negocio y postcondición. Reglas: HTTPS, cookies Secure/SameSite en producción, vida útil limitada, rotación y revocación auditables. Los bypass CSRF preautenticación son rutas exactas. Post: sesión renovada, revocada o terminada de forma explícita.
Cobertura documental. Parcial candidato. Página candidata: modulos/autenticacion.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-08
EPIC-08UC-8.1 · Pasarelas Pago
Actores y resumen. Actor: Sistema. Resumen: Pago externo.
Precondición y disparador. Disp: Pagar.
Flujo principal.
- Request API.
- Webhook Respuesta.
- Update local.
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: No guardar tarjetas (PCI). Post: Transacción procesada.
Cobertura documental. Parcial candidato. Página candidata: modulos/pagos-online.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-08UC-8.2 · Integración LMS
Actores y resumen. Actor: Sistema/Operador Cursos/Colegiado. Resumen: integración opcional Moodle/LMS para cursos con lmsCourseId, sincronizando inscripciones confirmadas sin reemplazar el flujo de cursos de PSICOLE.
Precondición y disparador. Pre: curso con URL e-learning e ID Moodle/LMS, Moodle configurado e inscripción confirmada o pago aprobado. Disp: inscripción gratuita confirmada, pago de curso materializado o reintento administrativo de sincronización.
Flujo principal.
- Operador crea o edita curso y carga lmsCourseId.
- Colegiado se inscribe o paga el curso.
- PSICOLE confirma la inscripción y calcula estado LMS inicial.
- Servicio busca el usuario Moodle por email.
- Matricula al usuario en el curso externo.
- Actualiza estado SYNCED, FAILED, SKIPPED o NOT_REQUIRED y muestra el enlace/aula cuando corresponde.
Flujos alternativos.
- FA-8.2.1: curso sin lmsCourseId queda NOT_REQUIRED.
- FA-8.2.2: Moodle sin credenciales queda SKIPPED sin bloquear la inscripción.
- FA-8.2.3: usuario no existe o API falla queda FAILED con error auditable.
- FA-8.2.4: sincronización repetida es idempotente.
Reglas de negocio y postcondición. Reglas: PSICOLE sigue siendo fuente de verdad para cupos, pagos, inscripciones y certificados; Moodle sólo otorga acceso al aula externa. Post: inscripción preservada y estado LMS visible/auditable.
Cobertura documental. Cubierto candidato. Página candidata: modulos/cursos.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-08UC-8.3 · Notif. Multicanal
Actores y resumen. Actor: Sistema. Resumen: SMS/WPP/Mail.
Precondición y disparador. Disp: Evento.
Flujo principal.
- Activar evento.
- Selec canal.
- Enviar API.
- Log.
Flujos alternativos.
- No especificado o no aplica en la tabla total.
Reglas de negocio y postcondición. Reglas: los canales se habilitan de forma explícita. La alerta operativa de tickets está apagada por defecto, admite sólo eventos y hasta diez destinatarios internos válidos, y es independiente del aviso decidido para el solicitante. Post: enviado con trazabilidad u omitido por compuerta/configuración.
Cobertura documental. Parcial candidato. Página candidata: administracion/tickets-soporte.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-08UC-8.4 · Servicios AFIP
Actores y resumen. Actor: Sistema/Admin/Operador Facturación. Resumen: servicios AFIP/ARCA operados por cola fiscal post-pago, con validación de credenciales reales, reintentos y alertas; no hay CAE ficticio.
Precondición y disparador. Pre: AfipInvoiceJob generado desde recibo/pago y credenciales AFIP disponibles si se pretende autorizar. Disp: scheduler AFIP, botón Procesar AFIP o reintento por job pendiente.
Flujo principal.
- Tomar jobs QUEUED/RETRY.
- Verificar AFIP_CUIT, certificado y clave.
- Preparar autorización WSAA/WSFE cuando la integración real está configurada.
- Enviar solicitud y persistir respuesta.
- Marcar DONE sólo con autorización real o FAILED/RETRY con lastError explícito.
- Exponer cola y alertas en Gobernanza del dinero.
Flujos alternativos.
- FA-8.4.1: falta configuración AFIP, job falla sin CAE.
- FA-8.4.2: AFIP rechaza, se conserva error y requiere corrección.
- FA-8.4.3: caída temporal reintenta con backoff.
- FA-8.4.4: entorno sandbox/homologación valida cola y trazabilidad sin prometer factura fiscal productiva.
Reglas de negocio y postcondición. Reglas: CAE obligatorio sólo cuando AFIP lo autoriza; no se fabrica CAE; toda respuesta queda auditada; la operación fiscal depende de credenciales reales. Post: comprobante fiscal autorizado o incidencia fiscal trazable.
Cobertura documental. Cubierto candidato. Página candidata: modulos/dinero.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-08UC-8.5 · Avisos y Agenda Personal
Actores y resumen. Actor: Usuario autenticado/Admin/Sistema. Resumen: Avisos institucionales segmentados, acciones de lectura/posponer/descartar y agenda consolidada de pendientes.
Precondición y disparador. Disp: Admin publica aviso o usuario abre agenda/mensajes. Pre: usuario autenticado; para administración, rol o módulo de avisos.
Flujo principal.
- Admin crea aviso con segmento, prioridad, vigencia y acción.
- Usuario ve avisos activos según segmento.
- Sistema registra visto.
- Usuario marca leído, pospone o descarta.
- Agenda consolida mensajes, avisos, pagos, cursos, trámites, consultorio, órdenes y ética.
- Sidebar muestra contadores.
Flujos alternativos.
- FA-8.5.1: Aviso urgente con ack requerido no puede descartarse.
- FA-8.5.2: Snooze oculta hasta fecha futura.
- FA-8.5.3: Segmento custom filtra por estado de matrícula, prestador, jubilación o débito.
Reglas de negocio y postcondición. Reglas: Acks por usuario. Admin requiere acceso EPIC-12/ANUNCIOS o ADMIN. Agenda no duplica módulos, solo agrega pendientes. Post: comunicación visible, pospuesta, leída o descartada con trazabilidad.
Cobertura documental. Parcial candidato. Página candidata: administracion/tickets-soporte.md.
Evidencia visual. Con par escritorio/móvil en página candidata; revisar vigencia visual.
EPIC-09
EPIC-09UC-9.1 · Ticket Trámite
Actores y resumen. Actor: Múltiples. Resumen: Tracking tickets con triage directo y decisión humana.
Precondición y disparador. Disp: Inicio trámite o soporte.
Flujo principal.
- Generar ID único.
- Asignar cola.
- Dashboard Operador/Supervisor.
- Sugerencia local de triage.
- Decisión humana.
- Cierre y métricas.
- Si está habilitada la compuerta interna, emitir una alerta operativa sólo para eventos y destinatarios configurados.
Flujos alternativos.
- FA-9.1.1: Reasignar.
- FA-9.1.2: Escalar SLA.
- FA-9.1.3: Espera de usuario.
- FA-9.1.4: Pase a desarrollo.
- FA-9.1.5: Ticket o solicitud con archivo físico vinculado -> mostrar el adjunto en la pestaña Trámites del perfil y descargarlo sólo mediante endpoint autenticado.
- FA-9.1.6: Registro sin archivo físico -> mostrar ausencia documental sin sustituirlo por otro adjunto ni cambiar el estado del trámite.
- FA-9.1.7: Alerta interna deshabilitada, sin destinatarios válidos o con evento no admitido -> omitir el correo sin modificar el ticket.
Reglas de negocio y postcondición. Reglas: 1 trámite = 1 ticket. El soporte diario no depende de JSON manual. Las alertas operativas internas son default-off y no sustituyen el correo o aviso al solicitante. La ficha administrativa consulta todos los trámites del titular, conserva los estados originales y abre adjuntos por autorización del propietario o de un rol revisor; una descarga no aprueba el trámite. Post: trazabilidad completa en ticket, adjuntos y comunicaciones.
Cobertura documental. Cubierto candidato. Página candidata: administracion/tickets-soporte.md.
Evidencia visual. Con par escritorio/móvil en página candidata; la ficha profesional incorpora la columna Adjuntos y los documentos de la solicitud de matrícula en la misma pestaña Trámites. El auditor confirma 654/654 adjuntos históricos, 347/347 adjuntos de tickets y 23/23 documentos de matrícula físicamente presentes en PSICOLE. Falta renovar el par público de capturas porque la evidencia real contiene datos personales.
EPIC-09UC-9.2 · Certificado Ética
Actores y resumen. Actor: Colegiado. Resumen: Cert. Conducta.
Precondición y disparador. Pre: Vigente.
Flujo principal.
- Validar antecedentes.
- Pago.
- Revisión manual.
- Generar.
Flujos alternativos.
- FA-9.1.1: Con Sanción (Rechazo).
Reglas de negocio y postcondición. Reglas: Sin deuda ética. Post: Certificado OK.
Cobertura documental. Parcial candidato. Página candidata: referencia/glosario.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-09UC-9.3 · Constancia Libre Deuda
Actores y resumen. Actor: Colegiado. Resumen: constancia automática basada en la posición económica canónica.
Precondición y disparador. Pre: matrícula vigente. Disp: solicitud.
Flujo principal.
- Validar matrícula vigente y deuda abierta canónica igual a cero.
- Generar PDF inmediato.
- Descarga.
Flujos alternativos.
- FA-9.3.1: existe saldo pendiente, vencido o en plan; informa y no emite.
- FA-9.3.2: existe una obligación en revisión de datos; bloquea la emisión hasta auditarla.
Reglas de negocio y postcondición. Reglas: una por día; validez 30 días; pagadas, bonificadas y canceladas no integran deuda abierta; una fila en cuarentena no se asume cancelada ni pagada. Post: constancia emitida con posición certificable o solicitud bloqueada con motivo.
Cobertura documental. Cubierto. Páginas: modulos/autogestion.md y modulos/finanzas.md.
Evidencia. Pruebas de elegibilidad para pendiente sin vencer, deuda en plan, bonificación total y obligación en revisión; la interfaz vigente se conserva.
EPIC-09UC-9.4 · Alta x Transferencia
Actores y resumen. Actor: Aspirante. Resumen: Pago manual de inscripción por transferencia.
Precondición y disparador. Disp: Opción transferencia.
Flujo principal.
- Mostrar datos bancarios.
- Subir comprobante.
- Validación manual.
- Confirmar.
- Crear o vincular PAY correspondiente.
Flujos alternativos.
- FA-9.4.1: Comprobante inválido o ilegible.
- FA-9.4.2: Transferencia aún no conciliada.
Reglas de negocio y postcondición. Reglas: Validar <48hs y conservar trazabilidad con operación de dinero. Post: Pago OK o pendiente de revisión.
Cobertura documental. Cubierto candidato. Página candidata: modulos/dinero.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-09UC-9.5 · Beneficio Paternidad
Actores y resumen. Actor: Colegiado. Resumen: Subsidio cuota.
Precondición y disparador. Disp: Solicitud.
Flujo principal.
- Form + Docs.
- Validar ANSES.
- Revisión.
- Aplicar descuento.
Flujos alternativos.
- FA-9.4.1: Falta doc.
- FA-9.4.2: Denegado.
Reglas de negocio y postcondición. Reglas: Solo 1 beneficio activo. Post: Subsidio activo.
Cobertura documental. Parcial candidato. Página candidata: inicio-rapido/administrador.md.
Evidencia visual. Con captura en página candidata; falta confirmar par escritorio/móvil.
EPIC-09UC-9.6 · Baja Matrícula
Actores y resumen. Actor: Colegiado. Resumen: Baja formal.
Precondición y disparador. Disp: Solicitud.
Flujo principal.
- Form Motivos.
- Check Deudas.
- Resolución Operador.
- Efectivización.
Flujos alternativos.
- FA-9.5.1: Con Deuda (Bloquea).
Reglas de negocio y postcondición. Reglas: Deuda cero obligatorio. Post: Baja procesada.
Cobertura documental. Parcial candidato. Página candidata: referencia/faq.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-09UC-9.7 · Débito Automático
Actores y resumen. Actor: Colegiado/Admin/Tesorería/Operador Finanzas/Sistema. Resumen: adhesión por CBU, lote bancario desde deuda final, retorno bancario y gestión de rechazos sin borrar otros beneficios.
Precondición y disparador. Pre: adhesión BANK_DEBIT activa, CBU verificado, cuenta activa, deuda mensual generada para el período. Disp: solicitud de adhesión, ciclo mensual manual o CRON, envío de archivo COELSA y carga de devolución bancaria.
Flujo principal.
- Colegiado carga CBU.
- Operador valida y activa adhesión BANK_DEBIT.
- RUN mensual genera Debt con amount, discount y finalAmount.
- Admin/CRON genera lote CBU sólo con BANK_DEBIT activo, CBU verificado y deuda del período.
- El lote toma debitAmount desde Debt.finalAmount, no recalcula descuentos.
- Operador revisa total y descarga/envía COELSA.
- Banco devuelve aprobados/rechazados.
- Aprobados materializan PAY/pago/recibo/cuenta corriente.
- Rechazados revierten sólo el descuento por débito y mantienen beneficios no CBU vigentes.
Flujos alternativos.
- FA-9.7.1: Sin fondos o rechazo bancario deja deuda pendiente con descuento CBU revertido.
- FA-9.7.2: Tarjeta/PAYWAY no entra al lote CBU.
- FA-9.7.3: CBU no verificado, cuenta inactiva o sin deuda del período se omite con motivo.
- FA-9.7.4: Rechazos consecutivos pueden suspender adhesión según parámetro.
- FA-9.7.5: Un formulario histórico puede verse como antecedente con adjunto sólo si la identidad y el archivo físico son verificables; no activa ni modifica la adhesión.
- FA-9.7.6: Tarjeta sin vencimiento informado se persiste con sentinel técnico
01/2099y se muestra como ausencia del dato; no se interpreta como vigencia.
Reglas de negocio y postcondición. Reglas: Lote CBU manual y CRON usan la misma elegibilidad y Debt.finalAmount. CBU / Caja de ahorro aplica 20%; tarjeta de crédito aplica 30% pero no entra al lote COELSA. Una adhesión nueva de tarjeta valida número de 13 a 19 dígitos, titular y DNI; la ausencia de vencimiento no autoriza un cobro. Jubilación excluye CBU/tarjeta sobre la misma cuota mensual. El descuento total snapshot del lote es amount - finalAmount. Si el banco rechaza, sólo se revierte el porcentaje de débito directo; beneficio parental, ajustes aprobados u otros descuentos no CBU compatibles se conservan. El circuito CBU/COELSA y tarjetas/POS/pasarelas no se mezclan. Un antecedente histórico requiere identidad única y archivo con hash verificado; presentación, aprobación y adhesión activa son estados distintos. Post: débito aprobado, rechazado, suspendido o pendiente queda trazable contra deuda, lote, PAY y conciliación, y los antecedentes documentales permanecen de sólo lectura.
Cobertura documental. Cubierto. Página: modulos/debito-automatico.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-09UC-9.8 · Jubilación Auto
Actores y resumen. Actor: Sistema. Resumen: Descuento edad.
Precondición y disparador. Disp: Edad 60.
Flujo principal.
- Detectar edad.
- Notificar.
- Aplicar 50% desc.
- Confirmar.
Flujos alternativos.
- FA-9.7.1: Rechazo voluntario.
Reglas de negocio y postcondición. Reglas: Automático a los 60. Post: Beneficio activo.
Cobertura documental. Parcial candidato. Página candidata: inicio-rapido/operador-finanzas.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-09UC-9.9 · Op. Prestadores
Actores y resumen. Actor: Prestador/Op. Resumen: órdenes, rendición, liquidación, factura recibida y pago.
Precondición y disparador. Disp: Rendición.
Flujo principal.
- Carga Órdenes.
- Validación interna.
- Envío OS.
- Respuesta OS.
- Cálculo de comisión y liquidación neta.
- Presentación de factura del prestador sobre la liquidación.
- Revisión y aprobación de factura.
- Orden y registro de pago.
- Consulta posterior desde la pestaña Prestador del perfil, con archivo y vínculo económico trazables.
- Cuando corresponda, corregir una orden pendiente u observada desde su rendición y recalcular el total antes de continuar el circuito.
Flujos alternativos.
- FA-9.8.1: Incompleta.
- FA-9.8.2: Rechazo OS.
- FA-9.9.3: Factura duplicada, inconsistente o sin archivo -> revisión, sin pago.
- FA-9.9.4: Prestador dado de baja con liquidación pendiente -> auditoría de estado antes de pagar.
- FA-9.9.5: Factura recibida sin liquidación exacta -> conservar
REGISTEREDy visible en el perfil, sin inferir vínculo. - FA-9.9.6: Factura y liquidación coinciden exactamente -> vincular documentalmente en
LINKED_TO_SETTLEMENT, sin aprobar ni pagar. - FA-9.9.7: Débito bancario exacto sin liquidación del período -> conservarlo como evidencia pendiente y no construir una liquidación por monto aislado.
- FA-9.9.8: Línea documental sin orden única o sin lote -> mantener bloqueo explícito y reparar primero la trazabilidad orden -> lote; no inferir rechazo, factura o pago.
- FA-9.9.9: Liquidación sin factura recibida -> mostrar en el perfil una obligación Pendiente de presentación / No presentada, sin crear un comprobante fiscal ni habilitar pago.
- FA-9.9.10: Perfil prestador sin actividad en las fuentes -> mostrar estado vacío real; no crear una factura, orden o liquidación para completar visualmente el perfil.
- FA-9.9.11: Archivo general con débito exacto pero sin liquidación canónica -> conservar candidato humano y reconstruir la cadena antes de mostrarlo como pago.
- FA-9.9.12: Estado
DEPOSITADOsin fecha de depósito -> no marcar liquidación u operación como pagada. - FA-9.9.13: Archivo histórico emitido por proveedor institucional o sin identidad profesional única -> excluir del perfil y conservarlo en la cola documental correspondiente.
- FA-9.9.14: Orden
VALIDATEDoSUBMITTEDya vinculada a una rendición -> la UI actual no ofrece la corrección interna; mantener el caso bloqueado hasta cerrar esa brecha, sin editar por una ruta alternativa.
Reglas de negocio y postcondición. Reglas: calendario estricto; la rendición se cierra antes de la factura; una corrección interna disponible conserva el vínculo y recalcula el total transaccionalmente; pago contra validación OS y factura aprobada; received_invoices es fuente canónica y payment_settlements.invoice_* sólo espejo compatible; el egreso se acredita con extracto Galicia y operación PAY, nunca con reportes de débito automático entrante; el período de servicio se deriva de la fuente sin perder formatos MM/AAAA; no borrar registros ni archivos reemplazados; no pagar por inferencia de un RUN. Post: factura listada por prestador y liquidación, con estado auditable y pago trazable o bloqueo explícito.
Cobertura documental. Cubierto. Página: modulos/prestadores.md.
Evidencia visual. El gate anterior conserva 293 facturas 2023–2026 en 43 perfiles. La ampliación del archivo maestro agregó en SANDBOX y PSICOLE 2.158 facturas certificadas y verificó sus 2.158 archivos; el total documental quedó en 2.451 facturas por entorno. La cobertura clasifica 473 prestadores activos y perfiles históricos por separado: 71 tienen órdenes y archivo sin liquidación, 176 sólo archivo histórico, 173 no tienen actividad en las fuentes, 32 tienen órdenes sin liquidación, 59 requieren factura y 3 poseen documento exacto pendiente de aprobación. El replay produjo 2.158 NOOP y cero mutaciones; los 75 documentos institucionales o ambiguos quedaron excluidos. La promoción productiva se ejecutó con backup verificable, cruce fresco, dry-run, apply documental, replay, verificación y prueba autenticada del PDF privado.
EPIC-09UC-9.10 · Trámite Sin Categ.
Actores y resumen. Actor: Colegiado. Resumen: Trámite genérico con validación y resolución asistida.
Precondición y disparador. Disp: Opción genérica.
Flujo principal.
- Inicia.
- Valida auto (matrícula + deuda).
- Genera ticket.
- Puede resolverse automáticamente o pasar por triage humano.
- Descarga o respuesta.
Flujos alternativos.
- FA-9.10.1: No cumple -> informa.
- FA-9.10.2: Requiere desarrollo o intervención administrativa.
Reglas de negocio y postcondición. Reglas: Auto si cumple condiciones; si no, mantener ticket trazable. Post: Resuelto o derivado.
Cobertura documental. Cubierto candidato. Página candidata: referencia/changelog.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-09UC-9.11 · Alta de Prestador
Actores y resumen. Actor: Colegiado/Operador Matrículas/Admin/Sistema. Resumen: Trámite para que un colegiado solicite alta como prestador de servicios y, al aprobarse, active su perfil de prestador.
Precondición y disparador. Disp: Colegiado inicia solicitud de alta de prestador. Pre: matrícula aprobada o provisoria, no ser prestador activo y no tener solicitud pendiente.
Flujo principal.
- Colegiado carga motivación.
- Sistema valida matrícula y duplicados.
- Sistema crea ticket PREST-ALTA con SLA y asignación automática si hay operador disponible.
- Usuario consulta su solicitud.
- Operador lista solicitudes.
- Operador aprueba o rechaza.
- Aprobación activa isProvider y registra historial/notificación.
Flujos alternativos.
- FA-9.11.1: Ya es prestador bloquea trámite.
- FA-9.11.2: Existe ticket pendiente informa número.
- FA-9.11.3: Categoría PREST-ALTA no configurada informa error operativo.
- FA-9.11.4: Rechazo requiere motivo.
Reglas de negocio y postcondición. Reglas: Usa tickets y trazabilidad existente, no módulo paralelo. La misma bandeja permite consultar antecedentes históricos de inscripción con identidad fuerte; son sólo lectura y no activan isProvider, tickets, órdenes, liquidaciones ni comunicaciones. Los documentos declarados sólo se habilitan cuando el archivo físico y su identidad fueron verificados. Requiere roles de matrícula/finanzas/prestadores para administrar. Post: solicitud queda pendiente, asignada, aprobada o rechazada; si aprueba, profesional es prestador.
Cobertura documental. Cubierto candidato. Página candidata: referencia/changelog.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-09UC-9.12 · Baja como Prestador
Actores y resumen. Actor: Prestador/Operador Prestadores/Operador Matrículas/Operador Trámites/Supervisor. Resumen: Trámite para dejar de operar como prestador sin dar de baja la matrícula profesional.
Precondición y disparador. Disp: Prestador solicita baja de servicios. Pre: profesional autenticado con isProvider activo y sin solicitud PREST-BAJA en curso.
Flujo principal.
- Prestador carga motivo y fecha efectiva opcional.
- Sistema crea ticket PREST-BAJA con SLA y asignación automática.
- Prestador consulta sus solicitudes.
- Operador lista y revisa.
- Operador aprueba o rechaza con resolución.
- Aprobación desactiva isProvider y vínculos prestador/obra social activos.
Flujos alternativos.
- FA-9.12.1: Usuario no prestador no puede iniciar.
- FA-9.12.2: Solicitud activa bloquea duplicado e informa ticket.
- FA-9.12.3: Solicitud finalizada no puede reprocesarse.
- FA-9.12.4: Rechazo conserva perfil de prestador.
Reglas de negocio y postcondición. Reglas: No cancela matrícula ni deuda colegial. Usa tickets, historial y notificaciones existentes. Post: perfil queda prestador activo, baja aprobada o baja rechazada con trazabilidad.
Cobertura documental. Cubierto candidato. Página candidata: inicio-rapido/operador-finanzas.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
EPIC-10
EPIC-10UC-10.1 · Crear Convocatoria
Actores y resumen. Actor: Admin/Operador Académico. Resumen: flujo previsto de convocatorias de becas/descuentos, no implementado en la versión actual.
Precondición y disparador. Pre: módulo de becas no disponible en producción ni sandbox. Disp: decisión futura de producto para implementar convocatorias.
Flujo principal.
- No existe pantalla productiva de convocatorias.
- Registrar la necesidad como backlog si el Colegio decide activar becas.
- Usar cursos y circuitos financieros actuales hasta implementación formal.
- Actualizar UC, manual, permisos y pruebas antes de publicarlo.
Flujos alternativos.
- FA-10.1.1: ticket o consulta sobre becas se responde indicando que no hay módulo operativo y se deriva a gestión administrativa.
- FA-10.1.2: beneficio/descuento puntual se gestiona por circuito financiero autorizado, no por convocatoria automática.
Reglas de negocio y postcondición. Reglas: no prometer pantalla, cupos ni publicación automática de convocatorias; documentar como NOT_IMPLEMENTED. Post: flujo reconocido como backlog sin operación productiva.
Cobertura documental. No implementado documentado. Página candidata: modulos/cursos.md.
Evidencia visual. No aplica: flujo documentado como no operativo; no hay pantalla productiva para capturar.
EPIC-10UC-10.2 · Inscripción Beca
Actores y resumen. Actor: Colegiado/Admin. Resumen: postulación a beca prevista a futuro, no implementada como autoservicio productivo.
Precondición y disparador. Pre: no hay convocatoria activa ni endpoint/pantalla de inscripción a becas. Disp: eventual implementación futura del módulo EPIC-10.
Flujo principal.
- El colegiado no dispone de formulario productivo de inscripción a beca.
- La administración canaliza consultas por los medios vigentes.
- Si se implementa, deberá validar requisitos, cupos, duplicados y trazabilidad.
- Hasta entonces no se registra inscripción automática.
Flujos alternativos.
- FA-10.2.1: si el usuario consulta por becas, soporte deriva a administración y no indica una ruta inexistente.
- FA-10.2.2: descuentos o excepciones se cargan por flujo financiero vigente cuando corresponda.
Reglas de negocio y postcondición. Reglas: no hay inscripción a beca en PSICOLE actual; no crear expectativas de sorteo o cupo automático. Post: consulta atendida por circuito manual/backlog.
Cobertura documental. No implementado documentado. Página candidata: modulos/cursos.md.
Evidencia visual. No aplica: flujo documentado como no operativo; no hay pantalla productiva para capturar.
EPIC-10UC-10.3 · Sorteo Becas
Actores y resumen. Actor: Sistema/Admin. Resumen: sorteo/asignación de becas previsto a futuro, no implementado en la versión actual.
Precondición y disparador. Pre: no existen convocatorias ni postulaciones productivas de becas dentro de PSICOLE. Disp: cierre futuro de convocatoria sólo cuando el módulo sea construido.
Flujo principal.
- No se ejecuta sorteo automático de becas.
- No hay algoritmo ni pantalla productiva de asignación.
- Cualquier asignación actual debe resolverse por acto administrativo externo al módulo.
- Al implementar, deberá quedar auditable, reproducible y documentado.
Flujos alternativos.
- FA-10.3.1: si se solicita evidencia de sorteo, responder que el flujo no está operativo en PSICOLE.
- FA-10.3.2: asignaciones manuales se registran fuera del módulo hasta que exista implementación formal.
Reglas de negocio y postcondición. Reglas: no simular sorteos ni asignaciones automáticas; mantener EPIC-10 como NOT_IMPLEMENTED. Post: no hay beca asignada por el sistema actual.
Cobertura documental. No implementado documentado. Página candidata: modulos/cursos.md.
Evidencia visual. No aplica: flujo documentado como no operativo; no hay pantalla productiva para capturar.
EPIC-13
EPIC-13UC-13.1 · Gestión de Proveedores del Colegio
Actores y resumen. Actor: Admin/Operador Proveedores/Operador Finanzas/Sistema. Resumen: ABM de proveedores del Colegio, registro de compras, órdenes de pago, reportes y trazabilidad económica sin mezclarlo con prestadores de obra social.
Precondición y disparador. Disp: Alta de proveedor, compra institucional o pago a proveedor. Pre: usuario con módulo EPIC-13 de gestión o pagos.
Flujo principal.
- Listar y buscar proveedores.
- Crear o actualizar datos fiscales/bancarios.
- Consultar ficha de proveedor.
- Registrar compra o servicio recibido.
- Crear orden de pago.
- Actualizar estado de la orden.
- Consultar reportes y órdenes pendientes.
Flujos alternativos.
- FA-13.1.1: Proveedor duplicado por CUIT se bloquea o fusiona manualmente.
- FA-13.1.2: Orden sin autorización queda pendiente.
- FA-13.1.3: Pago rechazado conserva orden e historial.
- FA-13.1.4: Usuario sin módulo ve acceso denegado.
Reglas de negocio y postcondición. Reglas: Proveedor del Colegio no es prestador de obra social. Pagos deben quedar trazables en dinero/contabilidad cuando corresponda. Post: proveedor, compra u orden quedan activos, pagados, rechazados o pendientes con auditoría.
Cobertura documental. Cubierto candidato. Página candidata: referencia/changelog.md.
Evidencia visual. Pendiente: página candidata sin captura directa.
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 la pasarela es independiente. Si el pago fue completado, el sistema lo registra al recibir o consultar la confirmación. Iniciá sesión nuevamente y verificá la cuenta corriente antes de pagar otra vez.
¿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 los medios habilitados en la pasarela configurada: tarjeta, QR, billetera, transferencia u otros instrumentos disponibles según convenio.
¿Puedo pagar en cuotas con tarjeta de crédito? Depende de las promociones activas configuradas por el Colegio y el proveedor de pago. La pantalla de checkout mostrará las opciones de cuotas disponibles.
¿Cuánto tarda en reflejarse un pago realizado online? Los pagos por pasarela se acreditan cuando el proveedor confirma la operación. Las transferencias bancarias directas pueden tardar hasta 24 horas hábiles y requieren conciliación.
¿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 |
La pasarela rechazó la transacción o el proveedor no pudo procesarla | Intentar con otro medio de pago. El detalle operativo se consulta en la operación PAY |
PAGO_PROCESANDO |
La pasarela aún no confirmó el resultado | Esperar unos minutos y refrescar el estado. Si persiste, 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 |
Recibo de promoción y certificación — 12/08/2026
Este recibo registra la promoción ya realizada en Producción, sus canarios y los pendientes externos que no deben confundirse con fallas del runtime vigente.
Estado ejecutivo
| Bloque | Resultado comprobado | Estado |
|---|---|---|
| Migración financiera histórica | Se restauraron 491 revaluaciones legacy, se cancelaron 491 cargos internos espurios, se retiraron 385 descuentos derivados y se compensó el ledger en 50 profesionales por un neto de $45.366. Luego se pasaron 523 duplicados pendientes a revisión histórica. No quedan duplicados legacy PENDING. |
Aplicado y auditado en producción |
| Conciliación operativa | HISTORICAL_REVIEW queda fuera de cobro, mora y conciliación ordinaria. La revaluación mensual sólo puede operar sobre el período corriente de Mendoza y excluye claves legacy. |
Código integrado; reparación de datos aplicada |
| Producción | Backend/frontend promovidos desde el mismo release lógico a7dd9708, con migraciones alineadas, rollback por imagen y salud estable. |
Desplegado y certificado |
| Sandbox | El RC fue promovido y certificado. Perfil profesional, /auth/me, cuenta, agenda, documentos y categorías de soporte respondieron correctamente. SOPORTE_COLEGIADOS y SOPORTE_TECNICO quedaron bajo el área canónica SOPORTE; el correo real permanece bloqueado por diseño. |
Desplegado y certificado |
| Soporte desde ? | Las dos categorías quedaron bajo el área SOPORTE sin modificar ninguno de los 745 tickets. El canario profesional vio sólo Soporte Colegiados. |
Producción certificada |
| Perfil, dashboard y responsive | Mora roja exige deuda realmente vencida. El canario sin deuda mostró “Al día” en 390×844 y escritorio, sin overflow; el directorio móvil tampoco desbordó. | Producción certificada |
| QR público | La ficha expone la URL oficial y el QR persistido; /verificar/:code redirige a /verify/:code; perfiles sin slug usan matrícula sin fabricar una ruta. |
Integrado; nuevos DNS/TLS pendientes |
| Correo | SMTP autenticó y una muestra única llegó a Gmail con SPF, DKIM y DMARC válidos. Las alertas internas sólo admiten ticket nuevo, respuesta del emisor, adjunto y reapertura desde Producción. | Transporte y política certificados; correo general apagado |
Release promovido
- Commit y tag:
a7dd97089cd6c86be989b30892e9af61f0bc2269/rc-psicole-2026-08-12-a7dd9708. - Artefacto reproducible SHA-256:
3bf84b09e4860a7a6cf5be25405ecfb35731787cd1e26c600513019fe66137f0. - Imagen backend:
sha256:da7c674302ab22dde7a47258868174458beea9b5f05f25a4257548b2f2b47616. - Imagen frontend:
sha256:87f1623c75bb3a015216d6f1c4f42de40577dd6a051322a9875c6ce2cbc8171a. - Microparche backend final: commit
88add09c26df2100c99ba84ad50577733428b404, imagensha256:2fcc2b8bd9d0d3ba4f370db9247ee71a93078787658c29aa95f23522daa21104. Sólo corrige el rótulo visible de la alerta a Nueva respuesta del emisor; su fuente tiene SHA-256e2f2172ed1df24eb46b8ca71cee7f8eac3e14b710ab82b8635bd47e478b19db1. - Backend, frontend y MySQL quedaron
healthy, con cero reinicios. Prisma informa 135 migraciones y esquema actualizado. - La historia de seis migraciones ya presentes en Producción fue restaurada en Git con los mismos SQL y checksums; no se reaplicaron cambios físicos.
Canarios de Producción
- Salud/API/directorio/QR públicos:
200; alias/verificar→/verify:308; código inválido:404, sin5xx. - Acceso profesional sintético: login,
/auth/me, cuenta, agenda, documentos, categorías y tickets respondieron200; perfil completo, cero deuda y cero tickets; luego cuenta inactiva, contraseña aleatoria y sesiones revocadas. - UI: escritorio y 390×844 sin overflow; dashboard “Al día”, sin alerta roja; el signo ? abrió Soporte a Colegiados con adjuntos y Mis reportes. No se envió formulario.
- Soporte: 745 tickets preservados con digest
745cfa1cdb6df19ff07427c44bcc0f9932f49936327f2f4911ba1a554815e992; 611 continúan enSOPORTE_TECNICO;SOPORTE_COLEGIADOSnació vacío; tres auditorías exactas y cero emails derivados de la reparación. - Correo: autenticación SMTP sin mensaje y luego una única muestra a
santosma@gmail.com; recepción única, SPF/DKIM/DMARC válidos.
Certificaciones financieras ya concluidas
- Reparación 491:
491/491deudas restauradas;491/491operaciones internas canceladas;385aplicaciones de beneficio espurias retiradas;50compensaciones exactas; pagos y recibos reales afectados:0. - Cuarentena remanente:
523filas,73grupos y$1.244.563pasaron dePENDINGaHISTORICAL_REVIEW;523auditorías y sellosSTARTED/COMPLETEDexactos. - Digest del remanente aplicado:
72f9f36ecd094c42754bfa9195de5b31b3569e9beae7fb6e80f348622f80337e. - Auditorías posteriores confirmaron salud de backend/MySQL, ausencia de locks y cero evidencia económica propia en esas 523 filas.
No ejecutar nuevamente los reparadores 491/523.
Acceso temporal sin impacto heredado
Producción conserva 1.514 cuentas activas con la marca histórica
mustResetPassword=true (1.288 colegiados, 146 prestadores y 80
aspirantes). Esa marca por sí sola no activa el corte obligatorio del RC.
La migración agrega temporary_password_issued_at como columna nullable y no
hace backfill. Sólo Resetear y enviar acceso, después de una aceptación SMTP
real y un control CAS contra la clave vigente, completa el sello. Por eso:
- ninguna cuenta heredada queda bloqueada por desplegar la migración;
- una entrega bloqueada, simulada, redirigida o concurrente conserva la clave y las sesiones anteriores;
- una entrega aceptada habilita una única clave temporal y obliga a cambiarla;
- al definir o recuperar la contraseña propia se limpian ambas marcas.
Gates todavía externos
- Crear DNS, certificados y proxy para
psicole.colegiopsimza.org.arysandbox.colegiopsimza.org.ar; conservar el host vigente para QR físicos. - Abrir nuevos destinatarios/templates de correo sólo mediante canarios
independientes.
EMAIL_REDIRECT_TOpermanece vacío y los kill-switches generales siguen activos. - Liberar espacio del VPS antes de nuevos builds grandes: el volumen se encuentra alrededor de 99 %, aunque los servicios están saludables.
Alcance expresamente pendiente
CORREGIRFECHAVENCIMIENTOCUOTAS: política de último día real de cada mes y reparación histórica de fechas; quedó guardada, no se incluye en este RC.- Cambio definitivo de dominio: depende de DNS/TLS/proxy externos.
- Habilitación general de correo: no forma parte de este release. El transporte está certificado, pero sólo tickets internos y recuperación acotada pueden atravesar sus compuertas específicas.
Evidencia de Sandbox del RC
- Backend RC: commit
63c4e34918ee8f7c7ac5235abd2e82f426161c12, imagensha256:e64d5e1b43d56beb73ef3b483e5fe12f6e22501d8af485a8493799ef21fc34f5. - Frontend con cierre responsive: commit
4d7b9bbeb095c15452ca832eb0ad7d25f7406634, imagensha256:210d830e584e11b32792283ef5b7244fceb9e316677c4763aeabdd5561b1a9d2. - Migraciones activas: índice
transactions_reference_idx(reference)y columna nullableusers.temporary_password_issued_at;1.514marcas heredadas sin sello nuevo y0sellos inventados. - Canario de acceso: login
200,/auth/me200, navegación ordinaria bloqueada403 PASSWORD_CHANGE_REQUIRED, cambio de clave200, perfil, cuenta, agenda, documentos y tickets200; luego quedó inactivo, con0sesiones, deudas, pagos, tickets y documentos. - Directorio y QR: raíz, directorio, API y assets
200; alias/verificar/:coderedirige308a/verify/:code; QR inválido responde404, nunca5xx. - Responsive: dashboard profesional 390×844 sin overflow ni avisos rojos, panel de Soporte a Colegiados completamente dentro del viewport, botones táctiles y directorio sin desborde horizontal después del parche.
- Recibo de despliegue base SHA-256:
4095c595f0050ba0fa66fb9a75cc427a980bf3220fb87f96442bb7919821679d. - Recibo del parche frontend SHA-256:
74bdd6d62e3dea7473b4b69773c456603d8df5c09878ed5315a673e3c8c718ab.
No afirmar funcionamiento de los nuevos hosts hasta que resuelvan DNS/TLS. Hoy
colegiopsimza.org.ar sirve WordPress, pero los dos subdominios proyectados no
resuelven.
Changelog
2026-08-11 - Backlog financiero operativo e historia migrada
- Los indicadores de cuotas vencidas consideran sólo cuotas canónicas de profesionales activos, con saldo y vencimiento real. La historia importada se conserva consultable, pero ya no infla el trabajo diario.
- Tarjetas informa instrumentos reales pendientes; las filas legadas sin profesional se exponen por separado como inventario histórico.
- La ficha profesional presenta las operaciones
LEGACY-*con el período y la fecha efectiva del pago y la leyenda Histórico migrado, en lugar de usar la fecha de importación como si fuera la fecha de cobro. - Se incorporó un gate productivo de sólo lectura para detectar cuotas de agosto faltantes, vencimientos incorrectos, duplicados, pagos ya cubiertos, renovaciones activas duplicadas, documentos ficticios y conciliaciones revertidas sin reemplazo.
2026-08-10 - Cobranza operativa y generación de cuotas
- Todos los roles
OPERADOR_*existentes pueden consultar cuentas corrientes, previsualizar cobros y registrar pagos totales o parciales desde Cobranza. La capacidad es explícita y no hereda módulos dinámicos: no habilita generación de cuotas, configuración de mora, saldos a favor, anulaciones ni aprobación de descuentos. - La generación mensual vuelve a incluir profesionales activos con matrícula
PROVISIONAL, además deAPPROVED, conforme a la política documentada. Una cuota cuyo débito fue rechazado y cuyo descuento ya fue revertido no recupera ese descuento durante una revalorización posterior. - Los ajustes de deuda informados por tickets se gestionan por reconciliación auditable. El cobro ordinario no convierte sobrepagos ni descuentos manuales en créditos implícitos.
2026-08-09 - Hardening de lotes de Prestadores
- Las transiciones individuales y masivas para validar, observar o rechazar una
orden ligada reclaman el
MonthlyBatchparent en la misma transacción. Sólo un parentDRAFTpuede tocarse; el reclamo avanza su versión e invalida los PDF, mientrasREADYySENTrechazan la mutación sin cambiar la orden. El circuito propio de rendición conserva su entrada y sus controles existentes. - Los dos generadores del PDF de presentación publican normalmente sólo sobre la
misma versión
DRAFT. La generación masiva dejó de seleccionarREADY; el confirmador legado también exige unpdfUrlvigente. Confirmar congela el PDF: unREADYcon archivo y cualquierSENTno pueden reemplazarlo. Para no varar datos legados, unREADYconpdfUrlnulo admite una única recuperación manual mediante CAS, sin reabrir ni migrar el lote. Tarjeta, detalle y panel operativo muestran Recuperar PDF faltante sólo para ese caso y conservan la descarga cuando existe archivo. - La autorización de excepciones tarifarias por capacidad no se declara como
bloqueo universal:
PROVIDER_PRICING_GUARD_MODE=observeregistra la diferencia y conserva la decisión legada; sóloenforcerechaza la aprobación solicitada por un rol sin la capacidad de Finanzas/Administración.
2026-08-08 - Perfil, Prestadores, Dinero y controles operativos
- Perfil: se retiró la pestaña Bitácora del perfil propio y la sección Bitácora de la ficha pública del profesional; también se quitaron los accesos a
/bitacoraen la navegación del directorio y la navegación móvil. Las rutas públicas de bitácora quedaron desactivadas. - Mala praxis: el bloque "Póliza de Mala Praxis" dejó de mostrarse en el perfil permanente (incluso para prestadores) y se retiró como tipo de documento del panel de documentos. Sigue siendo parte del trámite de altas/renovaciones de prestadores.
- WhatsApp: el selector de notificaciones por WhatsApp se ocultó con el aviso "Disponibles próximamente"; la preferencia guardada se conserva.
Prestadores
- La corrección de órdenes usa un modal compartido y mantiene al operador en la grilla o rendición de origen. Permite corregir prestador, número, paciente, afiliado, Obra Social, fecha, práctica, cantidad y precio con motivo y auditoría.
- Una orden dentro de una rendición sólo se corrige desde esa rendición y el
total se recalcula en la misma operación. La acción interna está disponible
para
PENDING/OBSERVED; las vinculadasVALIDATED/SUBMITTEDcontinúan como brecha de UI. Fuera de una rendición, una corrección validada o presentada vuelve a observación. Los estados terminales no se editan. - El catálogo de prácticas se resuelve por Obra Social y fecha de prestación. Una aprobación tarifaria previa se conserva sólo ante cambios no económicos con Obra Social, práctica, fecha y vigencia, cantidad, precio aplicado y referencia oficial idénticos; cualquier modificación de ese contexto vuelve a revisión.
- El control y CSV de órdenes son de sólo lectura, muestran número de orden, práctica, cantidad, precios y trazabilidad, usan fecha calendario de Mendoza y exigen Obra Social más período o rango completo. El rango máximo es 366 días y el archivo se limita a 50.000 filas.
- La vista previa y la generación de lotes comparten rango, Obra Social y campo
de fecha (
createdAt,validatedAtoserviceDate). Sólo seleccionan órdenes validadas, con Obra Social y sin lote; el período del lote no reescribe la fecha de prestación. - La composición del lote es administrada sólo por el operador. Una edición de
una orden ligada en
DRAFTinvalida los artefactos y recalcula totales; al pasar aREADYqueda congelada y el envío reclama la misma versión/PDF.
Dinero y tarifario
- El tarifario incorpora agosto de 2026: general
$16.670, CBU$13.336, tarjeta$11.669y jubilado$8.335. Julio conserva los valores canónicos del repositorio ($16.357,44,$13.085,95,$11.450,21y$8.178,72) y no se recalcula con la política de agosto. - La revalorización actualiza la misma cuota mensual abierta y se detiene ante pago, débito aprobado, crédito aplicado, cuota pagada por plan u operación económica aprobada/conciliada. Julio se difiere mientras su conciliación no cierre sin bloqueos.
- El pago de una cuota de un plan
ACTIVEusa clave idempotente y cierre transaccional. El descuento especial parte del saldo pendiente persistido, exige monto positivo dentro de ese saldo y separa solicitante de aprobador. - Las tarjetas pueden registrarse sin vencimiento informado; el valor técnico
01/2099se muestra como tal ausencia y no como vigencia real. Todo cobro con monto cero o negativo se rechaza antes de escribir efectos financieros.
Seguridad y soporte
- Las alertas operativas de soporte son una capacidad interna desactivada por defecto. Sólo se envían con la compuerta explícita, destinatarios válidos y un evento admitido; no sustituyen el correo o aviso decidido para la persona solicitante.
CORS_ORIGINSadmite una lista exacta de orígenes y se configura por entorno: Sandbox conserva únicamente su dominio y no hereda dominios productivos. No se usa comodín con cookies.- Las mutaciones autenticadas por cookie usan CSRF de doble envío. Las excepciones preautenticación son rutas exactas; variantes sensibles no heredan el bypass.
- El acceso desde WordPress continúa como redirección al login de PSICOLE, no como SSO ni intercambio de tokens o sesión.
Trazabilidad y evidencia
- Una auditoría cruzada detectó que el manifiesto final del 06/08 asignó por posición nueve respuestas a números de ticket cuyo pedido original era otro. El estado y el comentario persistidos se conservan como hechos históricos, pero no se usan como mapping funcional ni como prueba de resolución.
- Según el pedido original:
TKT-458corresponde a edición posterior de una orden yTKT-467al desplazamiento de su fecha;TKT-466,TKT-511yTKT-520pertenecen a Dinero;TKT-460a habilitación de Prestadores;TKT-498yTKT-501a Matrículas; yTKT-521a la solicitud de copia de matrícula, capacidad que no está certificada en el runtime PSICOLE capturado. - Los pedidos originales de reportes, filtros y acciones de Prestadores se
trazan además en
TKT-468,TKT-474,TKT-475,TKT-506,TKT-509,TKT-519,TKT-528yTKT-529. Los cambios posterioresTKT-553,TKT-561,TKT-563yTKT-570conservan su asociación directa. - Esta corrección es documental: no reabre tickets, no inserta comentarios, no reaplica lotes y no reenvía correos. Los casos de datos se certifican por su evidencia propia, no por el texto de una respuesta desplazada.
- No se agregaron capturas en este pase documental. Los controles de backend son No aplica visual; los modales y filtros de Prestadores requieren un par sanitizado escritorio/móvil antes de declarar evidencia visual completa.
2026-08-07 - Soporte y cierres operativos
- Soporte: se incorporó la capacidad de alertas automáticas internas con la plantilla NUEVO TICKET SOPORTE PSICOLE. Permanece apagada por defecto y requiere compuerta y destinatarios configurados.
- Tickets: se cerraron administrativamente sin envío de correo los tickets legacy de altas ya gestionadas y los huérfanos con fix previo; cuatro tickets quedaron en espera de información del operador.
- Altas recuperadas: dos altas pendientes quedaron cargadas desde el padrón actualizado con sus trámites correspondientes.
2026-07-28 - Visibilidad canónica y ficha de sólo lectura
- El portal existente de Liquidaciones muestra el inventario completo de
facturas canónicas del prestador, incluidas las no vinculadas, sin depender
del
invoiceUrllegado de cada liquidación. - Lista, kanban y línea de tiempo comparten la misma evidencia canónica y distinguen factura registrada, archivo disponible y liquidación exacta.
GET /users/:id/full-profiledeja de generar QR y expone completitud explícita de sus colecciones; la lectura no ejecuta escrituras.- La ficha elimina truncamientos silenciosos de pagos, operaciones, órdenes, trámites, comunicaciones y auditoría.
- La autorización de la ficha queda segmentada por capacidades de identidad,
finanzas, prestadores, trámites, formación, comunicaciones, auditoría y roles.
AUTHZ_POLICY_MODE=observeconserva compatibilidad yenforceaplica el mínimo privilegio por sección. - El auditor OOSS/prestador incorpora la cobertura económica al resultado final:
cualquier liquidación sin factura, lote sin respuesta, pago de lote sin banco
o factura OOSS sin líneas produce
INCOMPLETEy salida no exitosa. - Se agrega una relación documental aditiva para facturas que cubren varias liquidaciones del mismo prestador y período. El gate exige suma exacta, identidad única, archivo fiscal verificable, ausencia de evidencia competidora e idempotencia; no modifica liquidaciones ni crea pagos, recibos u operaciones.
- No se crearon pantallas, pagos, recibos, liquidaciones, vínculos económicos, mensajes o comunicaciones. No aplica publicar capturas por contener evidencia fiscal privada.
Cierre técnico acotado para salida
- La navegación entre la ficha del profesional y una ficha
PAY/RECconserva el profesional y la pestaña de origen incluso después de recargar la página; los retornos externos o malformados se descartan. - Las fichas modales vuelven al inicio cuando cambia el profesional o la pestaña, y los filtros e indicadores de Profesionales usan densidad compacta sin crear una vista nueva.
- Las pantallas propias del prestador muestran únicamente el neto y el archivo que le corresponden. El bruto y la comisión del Colegio siguen disponibles para Finanzas, pero no se incluyen en el payload, tabla, línea de tiempo ni recibo descargable del prestador.
- La descarga de adjuntos privados valida el objeto y su propietario para trámites históricos, matrículas, tickets, facturas y evidencia financiera. Una URL conocida no reemplaza la autorización del titular o del operador.
- La verificación automatizada cerró
230suites backend aprobadas (3omitidas),1.344tests aprobados (18omitidos), build frontend de2.658módulos, lint sin errores, Prisma válido ygit diff --checklimpio. - Esta pasada no ejecutó navegador ni publicó capturas por la restricción explícita de RAM y privacidad. Los contratos de presentación se comprobaron por pruebas estáticas, controladores, servicios y build; permanece como gate previo al release un smoke visual acotado de escritorio y móvil con una cuenta de prueba sin datos personales.
- El software queda técnicamente verificable, pero la certificación económica
integral continúa en NO-GO:
11.935órdenes,130liquidaciones todavía pendientes, sólo2comprobantes de liquidación,21lotes OOSS sin respuesta,20pagos de lote sin movimiento bancario,418facturas OOSS sin líneas y sólo3/2.452facturas de prestador vinculadas exactamente a una liquidación. - El audit de dependencias backend no informa riesgos altos o críticos. Mantiene
cuatro avisos moderados transitivos. El frontend conserva el aviso RSC de
React Router
7.18.2; la aplicación desplegada es SPA con API Express y no utiliza RSC ni server actions, por lo que se registra como no aplicable a esta arquitectura y se monitorea sin forzar una versión incompatible. - Antes de activar
SAFE_RESPONSE_MODE=enforcese debe repetir el contrato de login y refresh: el modo estricto también redacta nombres de campos sensibles y no se habilita hasta comprobar que no elimina los tokens necesarios de la respuesta autenticada. - Persisten gates no técnicos: documentar residencia, retención y proveedores de datos personales; decidir CAPTCHA/Turnstile para formularios públicos; y ejecutar el smoke visual acotado. CORS, CSRF, Helmet, validación servidor, errores genéricos y límites de tasa ya cuentan con contratos automatizados.
2026-07-27 - Reciprocidad de documentos y liquidaciones en perfiles
- La ficha administrativa existente expone los adjuntos de tickets y de la solicitud de matrícula mediante descargas autenticadas; los trámites administrativos dejan de truncarse silenciosamente a diez filas.
- Operaciones recientes incorpora un acceso al historial completo de Dinero filtrado por el profesional, sin crear una pantalla nueva.
- El auditor de sólo lectura verifica archivo físico, propietario, registro
canónico, perfil y cadena OOSS → lote → liquidación → factura →
PAY. - PSICOLE conserva
654/654adjuntos históricos,347/347adjuntos de tickets y23/23documentos de matrícula. De estos últimos universos,114y16respectivamente pertenecen a perfiles profesionales y antes no se exponían en su ficha. - Las
2.451facturas de prestadores están asociadas a305perfiles sin huérfanos. Sólo3/130liquidaciones tienen factura canónica; no se infirió ninguna de las127restantes. - Se restauraron por hash las dos referencias físicas faltantes en PSICOLE; la
auditoría posterior informa
physicalMissingTotal = 0en ambos entornos. - El cruce vivo de julio relacionó
62/62prestadores,711prestaciones y los62renglones del libro general. El replay reprodujo el mismo hash funcional:31egresos exactos,11anteriores a factura,3identidades trianguladas,2ambiguos,5con diferencia y10sin banco. - El recálculo integral deja
72candidatos vigentes. En SANDBOX detectó40antecedentes abiertos acumulados por cruces anteriores que ya no aparecen en el universo actual; se conservaron comoSUPERSEDED, sin operación vinculada y sin alterar ninguna tabla económica. El replay informó0obsoletos. - La certificación económica continúa bloqueada por una distribución OOSS con
diferencia, ausencia de vínculos bancarios persistentes en pagos de lote y
152prestaciones con precio/nomenclador a revisar. No se modificaron pagos, recibos, liquidaciones, facturas, estados ni comunicaciones.
Cruce final del libro vivo de liquidaciones y cuentas
- El libro general vivo conserva
384filas,95prestadores y$94.443.978,40; dos replays reprodujeron los mismos hashes semántico y funcional con delta económico cero. - Las
16variantes de identidad pendientes se resolvieron sin aproximación libre: sólo segundo nombre omitido, apellido compuesto o una letra en un token largo, siempre con un único profesional y revisión humana obligatoria. La cola general quedó en0identidades bloqueadas y76candidatos. - Las cinco planillas mensuales vivas de enero a mayo aportaron
262filas. Todas tuvieron un vínculo único con el libro general;17cuentas confirmaron identidad,16filas tuvieron débito Galicia único,4explicaron bruto/neto por comisión del10%y hubo0conflictos de cuenta. - Continúan como brecha real
240filas sin liquidación sistémica,46diferencias de importe,19egresos anteriores a factura y3contradicciones retenido/débito. Ninguna se convirtió en pago, factura, liquidación o cambio de estado. - El gate es
NO_UI: alimenta las vistas existentes de Prestadores, Liquidaciones, Facturas recibidas y perfil. No requiere captura nueva,helpContent, onboarding o tour, y no expone cuentas bancarias completas.
2026-07-27 - Adjuntos históricos sin DNI con matrícula y nombre certificados
- Se incorporó una ruta cerrada para formularios históricos que no conservan DNI: matrícula y nombre completo deben coincidir en Forms, contenido del archivo y un único perfil. También deben coincidir trámite, campo, archivo único y hash físico.
- De
174candidatos nuevos,160archivos pudieron escanearse y sólo4formularios de débito automático superaron todas las guardas. Los156restantes permanecen en revisión; no se vincularon por aproximación. - SANDBOX creó cuatro antecedentes documentales y cuatro adjuntos. El replay
posterior importó
0, sin cambios económicos, administrativos o de comunicaciones. - La cobertura SANDBOX quedó en
3.505antecedentes sobre2.578profesionales y654adjuntos. Integridad física:654/654archivos, cero faltantes, cero huérfanos y hashes SHA-256 válidos. - La API de las cuatro fichas devuelve el antecedente, fecha, archivo privado,
tamaño y confianza
99; no modifica la adhesión operativa ni equivale a una aprobación. - Persisten brechas documentales reales:
323antecedentes de débito sin enlace físico exacto,370prestadores activos sin alta histórica,361perfiles jubilatorios sin solicitud histórica y facturas sin cadena canónica de liquidación. Por eso la migración completa todavía no se declara.
2026-07-26 - Triangulación documental estricta e integridad física
- Se incorporó una tercera ruta segura para adjuntos cuyo contenido fue escaneado sin DNI: Forms debe aportar DNI y matrícula, el archivo debe contener el nombre completo, coincidir trámite y campo, ser físicamente único y haber sido cargado dentro de las 24 horas, sin conflicto de identidad.
- SANDBOX y PSICOLE incorporaron los mismos
98adjuntos y quedaron con313archivos físicos certificados. El replay importó0en ambos entornos. - El verificador de integridad recalcula tamaño y SHA-256 para cada archivo, detecta faltantes y huérfanos y confirma que la auditoría no escribe datos.
- Una pieza permanece bloqueada por conflicto de identidad entre la matrícula fuente y el padrón actual. No se aplicó por nombre ni a un perfil alternativo.
- Los entornos mantienen
1.287antecedentes sobre1.114profesionales. Quedan1.086antecedentes con archivos declarados pendientes de vínculo exacto; esa brecha no autoriza a fabricar solicitudes o aprobaciones. - Se mantuvo la separación entre rol operativo y trámite histórico:
370prestadores activos,368reglas jubilatorias y3beneficios parentales no tienen un formulario histórico compatible en las fuentes disponibles. - Las
2.451facturas de prestador permanecen accesibles como evidencia fiscal; sólo3tienen vínculo exacto a una liquidación y las demás no se marcan como pagadas o liquidadas por inferencia. - El gate no creó pagos, recibos, tickets, mensajes ni correos y no modificó matrícula, vigencia, beneficios, órdenes, liquidaciones o estados económicos.
2026-07-25 - Antecedentes históricos de trámites verificables
- Se agregó la representación de respuestas históricas 2025-2026 en la pestaña Trámites del perfil administrativo, con vínculo sólo por matrícula y DNI.
- Las bandejas existentes de Altas de prestador, Beneficio parental y Jubilación pueden consultar sus antecedentes históricos sin mezclar esos registros con solicitudes aprobadas o reglas económicas vigentes.
- La importación de altas de prestador usa matrícula y correo o identidad normalizada exacta; registra origen y documentos declarados, pero no activa prestadores ni convierte enlaces de formulario en adjuntos verificados.
- La importación es aditiva e idempotente. No crea tickets, no altera matrícula, beneficios, cuotas ni comunicaciones.
- Los adjuntos declarados se diferencian de archivos físicos: quedan pendientes de enlace exacto si el ZIP histórico no conserva una referencia verificable.
- La auditoría de reciprocidad separa el antecedente presentado de la vigencia formal: una renovación aprobada o el padrón certificado son las únicas fuentes que pueden respaldar la fecha de vencimiento de la credencial.
Historial de cambios del sistema PSICOLE. Las versiones siguen el esquema Versionado Semántico: MAJOR.MINOR.PATCH.
v1.5.26 — 2026-07-24
Archivo maestro histórico de facturas de prestadores
- Inventario reproducible:
2.541archivos físicos se redujeron a2.360documentos únicos después de excluir181copias binarias. - Subconjunto certificado:
2.158facturas quedaron asociadas por identidad fiscal única;75documentos institucionales o ambiguos permanecen excluidos de perfiles profesionales. - Identidad segura: CUIT exacto o DNI único embebido en CUIT individual válido; no se asigna por nombre, carpeta o importe aislados.
- SANDBOX: se registraron
2.158facturas y2.158eventos de auditoría. El total documental quedó en2.451facturas sobre305perfiles. - Verificación:
2.158/2.158registros y archivos,0problemas, replay con2.158NOOP y cero deltas. - Inercia: no se crearon pagos, recibos, operaciones, órdenes, rendiciones, liquidaciones, mensajes, correos, avisos ni cambios de rol o estado.
- OOSS:
13.532prestaciones únicas y2.267líneas de liquidación se conservan como evidencia; una coincidencia económica no vincula ni paga automáticamente. - PSICOLE productivo: el mismo gate se promovió manualmente con respaldo restaurable y modo inerte. Creó
2.158facturasREGISTERED,2.158archivos privados y2.158auditorías; el total documental quedó en2.451facturas. - Replay productivo: la segunda ejecución resolvió
2.158NOOP. El verificador confirmó2.158/2.158registros y archivos,0problemas y cero cambios en pagos, recibos, operaciones, deudas, órdenes, rendiciones, liquidaciones o comunicaciones. - Acceso privado: la consulta autenticada del perfil y la descarga por
private-uploadsfueron verificadas en PSICOLE. Los archivos no quedan expuestos por la ruta pública/uploads. - UI: no se agregaron pantallas; se reutilizan Facturas recibidas y la pestaña Prestador. No se publican nuevas capturas por contener datos fiscales.
v1.5.25 — 2026-07-24
Vigencia oficial y cuatro fechas profesionales
- Modelo explícito: fecha de egreso, fecha de expedición,
Matrícula desdeyMatrícula hastase almacenan y exportan por separado;Fecha Ingresoqueda como dato histórico legado. - Credencial:
Vigente hastatoma el vencimiento oficial validado y no lo extiende durante la consulta. - Padrón histórico: si la fuente conserva un alta activa con vencimiento antiguo, el importador sólo propone el próximo ciclo quinquenal con confirmación explícita y evidencia de ambas fechas.
- Fuentes auditables: padrón oficial, alta aprobada, renovación aprobada y corrección administrativa registran origen, referencia y fecha de verificación.
- Cronología: expedición no puede anteceder al egreso y vencimiento no puede anteceder al inicio de la vigencia registrada.
- Ciclos: provisoria nueva a 18 meses; definitiva nueva al cumpleaños del quinto año calendario; renovación suma cinco años al vencimiento oficial anterior y registra un nuevo
Matrícula desde. - Provisorias: los avisos 90/30/0 llevan al pase a definitiva; una provisoria no puede iniciar el trámite quinquenal de renovación.
- Renovación: se habilita a 90 días; agenda normal hasta 31 días, alta desde 30 y urgente después del vencimiento.
- Fecha civil: el vencimiento se muestra sin desplazamientos de zona horaria; el día exacto indica
Vence hoyy sigue vigente. Los ciclos que parten de un 29 de febrero se ajustan al último día de febrero cuando corresponde. - Certificación residual: se cruzaron el padrón autoritativo, padrón junio, total junio, padrón de morosos y estado del sistema. Se aplicaron
596vigencias,54reactivaciones de matrícula,3estados no vigentes con evidencia expresa y43perfiles completos. - Guardas de identidad: sólo matrícula + DNI exactos permiten escritura. CUIT o correo ya vinculados, coincidencias parciales, cronologías inválidas y matrículas faltantes permanecen en revisión.
- Mora y acceso: la mora no implica baja y la ausencia de una planilla no implica baja. La activación de la cuenta de usuario se conserva independiente del estado profesional.
- Idempotencia: el replay en SANDBOX y PSICOLE produjo
0cambios y la cola residual normalizada fue idéntica en ambos entornos. - Inercia: el cambio no envía correos, avisos ni modifica estados económicos.
v1.5.24 — 2026-07-23
Archivo general de liquidaciones 2026
- Fuente incorporada: se auditó
ARCHIVO LIQUIDACIONES GENERAL.xlsx, con384filas 2026,95prestadores y$94.443.978,40, preservando su hash SHA-256. - Cruce exacto:
41filas tienen débito Galicia exacto e identidad suficiente;38por CUIT y nombre,1por DNI y nombre y2por CUIT. Ninguna coincidencia usa sólo el importe. - Cola auditable: SANDBOX y PSICOLE persistieron los mismos
75candidatos humanos:34liquidaciones documentales sin banco,3retenciones documentales sin banco,34egresos sin liquidación canónica,3diferencias de importe y1cadena exacta con liquidación. - Contradicciones excluidas: otras
3filasRETENIDOcon débito exacto quedaron bloqueadas y no se persistieron como candidatos. - Bloqueos conservados:
245filas sin liquidación,45diferencias contra el sistema y16identidades no resueltas no se completaron por inferencia. - Idempotencia: el primer apply creó
75candidatos en cada entorno; el replay creó0y devolvió75sin cambios. - Inercia: no se modificaron pagos, recibos, deudas, órdenes, liquidaciones, facturas, movimientos bancarios, estados o comunicaciones.
- NO_UI: el gate agrega evidencia privada a la cola existente; no crea pantallas, onboarding, tour ni capturas públicas.
v1.5.23 — 2026-07-23
Cierre financiero exacto y cobertura de prestadores
- Método de cobro: se aplicaron en PSICOLE
6resoluciones exactas por$69.600,00; operación, pago, recibo, deuda, vínculo bancario y cuenta corriente quedaron verificados. - Inferencias bloqueadas:
3filas por$37.476,00continúan en revisión por basarse sólo en importe; una contradice el método vigente. No se completó el 20%/30% por similitud. - Replay mensual: una operación cerrada se recupera desde cualquiera de sus snapshots realmente vinculados; un RUN no vinculado o un payload distinto falla cerrado.
- Idempotencia real: la suite MySQL ejecutó
13/13escenarios, incluidos replay, concurrencia, pago parcial, saldo a favor, conflicto de método y procedencia no confiable. - Prestadores: se verificaron
293/293facturas y archivos en43perfiles. La cobertura de473prestadores distingue ausencia real de fuente, órdenes sin liquidación, antecedentes sin vínculo y requerimientos pendientes. - Cola documental:
127liquidaciones por$20.966.558,50siguen sin factura aprobada; sólo3tienen documento exacto pendiente de aprobación humana. - Consistencia: mayo, junio y julio aprobaron
37/37controles cruzados por período; la auditoría integral conservó cero issues críticos. - Inercia: cero correos, avisos, mensajes, pagos bancarios o tareas programadas. No se crearon vínculos para completar perfiles sin evidencia.
- NO_UI: se reutilizan Conciliación y la pestaña Prestador; no se agregaron pantallas, onboarding, tour ni capturas.
v1.5.22 — 2026-07-23
Readiness OOSS con bruto y ajustes separados
- Criterio corregido: las órdenes se comparan con el bruto del lote; la diferencia entre bruto y aceptado se compara por separado con los ajustes de liquidación.
- OSTV cerrado:
$2.048.900,00brutos,$1.986.500,00aceptados y$62.400,00de ajustes producen gaps cero. - Replay: dos ejecuciones SANDBOX reprodujeron el hash funcional
007d7351a7e0e48bff1dce8f2b6480610fb0d51ef28f3fc995d06dc040dec7a5. - Alcance:
6/6lotes exactos quedaron listos sólo para aprobación humana explícita del cobro OOSS; no se aprobaron ni conciliaron. - Pago separado:
0/6pagos a prestadores quedaron habilitados; todos continúan bloqueados por facturas incompletas. - Cola intacta:
18/18candidatos siguen humanos, sin decisión, autoaplicación u operación económica vinculada. - Inercia: snapshots antes/después idénticos, sin mutaciones económicas ni comunicaciones. PSICOLE no fue modificado.
- NO_UI: no se agregaron pantallas, ayuda contextual, onboarding, tour ni capturas.
v1.5.21 — 2026-07-23
Corrección tarifaria histórica OSTV en SANDBOX
- Alcance exacto: se corrigieron cuatro órdenes históricas certificadas, de
$ 4.900,00a$ 16.600,00por sesión, preservando su estadoPAID. - Agregados intactos: lote, pago de lote, liquidación, comisión, neto, facturas, operaciones, pagos y recibos no cambiaron; la diferencia de
$ 187.200,00ya estaba representada en esos agregados. - Transacción e idempotencia: la aplicación creó cuatro auditorías y una clave de idempotencia. El replay devolvió
REPLAY_NOOPy cero escrituras. - Verificación posterior: dos previews clasificaron el estado como
ALREADY_CORRECTED_AND_CERTIFIED, con gaps cero y hash funcional4c00be52c845f19cfc9bcafc3b076b6d77b06af726e5a819e938bceb718f60c8. - Inercia: cero notificaciones, correos, mensajes, tickets, pagos, recibos o facturas creados.
- Entorno: la corrección se aplicó sólo en SANDBOX. PSICOLE no fue modificado.
- NO_UI: no se agregaron pantallas, ayuda contextual, onboarding, tour ni capturas.
v1.5.20 — 2026-07-23
Preview tarifario histórico OSTV
- Períodos separados: las cuatro órdenes observadas corresponden a prestaciones de mayo de 2025 aunque integren un lote operativo de mayo de 2026; la tarifa se resuelve por fecha de prestación.
- Causa cerrada: la tarifa persistida de
$ 4.900,00frente a$ 16.600,00documentales explica exactamente una diferencia total de$ 187.200,00. - Agregados preservados: lote, pago de lote, débitos, comisión, neto y liquidación ya contienen los importes documentales. La proyección cambia sólo ocho campos económicos y cuatro metadatos tarifarios de las órdenes.
- Paridad y replay: dos previews SANDBOX y dos PSICOLE produjeron el hash funcional
639811d405b1eeeeb974fff37a784d4a312d922e4ff572fb510ea512509a8044. - Inercia: cero órdenes modificadas, pagos, recibos, liquidaciones, facturas, notificaciones, correos o mensajes; todas las tablas observadas conservaron delta cero.
- Apply separado: el auditor no tiene capacidad de escritura y rechaza
--applyy--write. Una eventual reparación exige respaldo, hash e IDs exactos, autorización explícita para órdenesPAID, transacción, idempotency key y replay de cero escrituras. - NO_UI: no se agregaron pantallas, ayuda contextual, onboarding, tour ni capturas; la evidencia operativa permanece privada.
v1.5.19 — 2026-07-23
Candidatos persistentes de evidencia bancaria OOSS
- Cola de revisión, no pago: una evidencia bancaria exacta puede persistirse como
MoneyAssociationCandidate, siempre conhumanRequired=true,canAutoApply=falsey sin operación económica vinculada. - Destino conservador:
6filas apuntan a un pago de lote exacto y pendiente; otras12apuntan sólo a la cohorte OOSS/período porque falta un lote único compatible. - Fail closed comprobado: Poder Judicial julio permaneció bloqueado mientras faltó uno de los dos movimientos que componen el cobro. La fuente completa se importó por hash y clave de deduplicación; el replay del extracto agregó
0movimientos. - Paridad SANDBOX/PSICOLE: ambos previews produjeron
18/18filas y el mismo hash normalizado6bb318f111f8274b534c58b066f93c3498b064ff00990d0d20145bda1feb7203, excluyendo sólo UUID técnicos. - Apply y replay SANDBOX: el apply de paridad creó
2candidatos y conservó16; el replay creó0y devolvió18 NOOP, con hash funcional SANDBOX9bfa54008d9fb783e79bcb76e95158ad1f807dea6ebeafca953b6af415a60e95. - Promoción fail-closed: una escritura review-only en PSICOLE exige hash semántico, hash funcional, SHA-256 del respaldo y hash del snapshot económico. La transacción vuelve a medir el snapshot antes de la primera escritura; la prueba negativa SANDBOX abortó sin cambios y la positiva devolvió
18 NOOP. - Inercia certificada:
0pagos, recibos, deudas, movimientos bancarios, pagos de lote, liquidaciones, órdenes, notificaciones o correos modificados. - Promoción PSICOLE cerrada: con respaldo focalizado y los cuatro hashes confirmados se crearon
18candidatos; el replay creó0y devolvió18 NOOP. El snapshot amplio conservó el hash716f573558871606d3e8a7251c936d875923496de9a141ea486fb2dafcd78da6. - NO_UI: no se agregaron pantallas, ayuda contextual, onboarding, tour ni capturas. La evidencia contiene referencias bancarias privadas y se conserva fuera del manual público.
v1.5.18 — 2026-07-23
Cadena bancaria OOSS → Colegio → prestador
- Oráculo estricto de cobro OOSS: sólo acepta CUIT institucional exacto y una coincidencia única por importe o suma; no cruza por nombre, importe aislado o cercanía de fecha.
- Período económico separado del banco: la acreditación puede ocurrir fuera del mes de liquidación. El control conserva todas las fechas y evita el falso negativo de exigir mismo mes calendario.
- Resultado entrante:
17/30cohortes documentales tienen evidencia bancaria exacta por$27.801.564,60;10presentan diferencia de importe y3no tienen crédito del CUIT. Nueve créditos OOSS quedan sin cohorte inequívoca y ningún movimiento fue reutilizado. - Resultado saliente:
54/173períodos de prestador tienen débito exacto por identidad e importe, por$15.037.755,69. - Cadena todavía parcial: mayo, junio y julio permanecen
PARTIAL_EXACT_BANK_CHAIN; existen0vínculos bancarios persistidos de cobro OOSS y0de pago al prestador. - Gate económico cerrado: la clasificación pasa, pero aplicar pagos requiere aprobación explícita y vínculos persistentes idempotentes. No se marcaron lotes, facturas, liquidaciones u operaciones como pagados.
- Paridad, replay e inercia: SANDBOX y PSICOLE produjeron el mismo contenido normalizado; dos replays reprodujeron el hash
b2728fca0d68374cb6330d037c28a732cc837b9fbd2dc0b52042c9df5c390f6f, con0mutaciones económicas y0comunicaciones. - NO_UI: la evidencia privada se genera en JSON, CSV y README mediante
build:provider-ooss-bank-chain-evidence; no agrega pantalla, ayuda contextual, onboarding ni tour.
v1.5.17 — 2026-07-23
Evidencia bancaria y cobertura real de lotes OOSS
- Tres controles separados: cobertura de órdenes, distribución aritmética y evidencia bancaria ya no se interpretan como un único estado.
- Cobertura comprobada: los
9lotes de mayo/junio contienen984órdenes y todas tienen respaldo documental;8lotes son subconjuntos y dejan435líneas mensuales fuera, mientras Poder Judicial junio tiene cobertura exacta. - Distribución consistente: las
92liquidaciones no presentan diferencias económicas. Una diferencia agregada de$0,04en Swiss Medical corresponde al redondeo de63líneas y queda trazada como tolerancia. - Pagos no confirmados: los
9pagos siguenPENDING, provienen desandbox_provider_settlements_202606y tienen0movimientos bancarios vinculados tanto al cobro OOSS como al pago a prestadores. - Guardia de fuentes: los antecedentes de débito automático y tarjeta de colegiación no se utilizan como evidencia de egreso a prestadores.
- Paridad y replay: SANDBOX y PSICOLE produjeron el mismo detalle; dos ejecuciones reprodujeron el hash
152aebbe0db83ca041a53c07ff0ee9a365ed1b3e93bf903581498681d04ca4a9. - Modo inerte y NO_UI: cero pagos, operaciones, órdenes, liquidaciones, facturas, estados o comunicaciones modificados; no requiere pantalla, captura, ayuda contextual, onboarding ni tour.
v1.5.16 — 2026-07-23
Gate de órdenes y distribución de lotes de prestadores
- Diagnóstico por línea: los
7egresos pendientes de mayo/junio por$714.623,40se contrastan contra31líneas, órdenes, lotes, liquidaciones, facturas y Galicia. - Agregado mensual correcto: varias liquidaciones del mismo prestador y mes se conservan cuando pertenecen a distintas OOSS o lotes; la comparación financiera usa su suma mensual.
- Conjuntos equivalentes: tres líneas duplicadas indistinguibles se validan como conjunto
3 ↔ 3, sin elegir vínculos arbitrarios. - Lotes sin disponibilidad:
10líneas candidatas apuntan a lotes cuyo neto ya fue distribuido completamente;TARGET_BATCH_FULLY_ALLOCATED_REVIEWbloquea cualquier imputación que duplicaría dinero. - Sin reparación insegura: la cola final separa
1orden faltante,1posible desfase de período,1ambigüedad y los lotes ya distribuidos. No existe todavía unUPDATEeconómico idempotente. - Paridad y replay: SANDBOX y PSICOLE coincidieron en casos, líneas y
9lotes. Dos ejecuciones reprodujeron el hash2328f4e17a324cd800df6f067d326af03996e49fbe6d6c3f608094e3934048e8. - Modo inerte y NO_UI: cero pagos, operaciones, liquidaciones, facturas, estados o comunicaciones modificados; el gate amplía la auditoría administrativa sin crear pantallas.
v1.5.15 — 2026-07-22
Preview seguro de regularización de prestadores
- Períodos documentales reparados: los formatos
MM/AAAA,AAAA-MMy títulos mensuales se normalizan sin perder el período económico; las173rendiciones y sus2.267líneas quedan fechadas. - Cola accionable:
52egresos Galicia por$14.818.981,89se clasifican como42con órdenes faltantes,3ambiguos,4con vínculo a lote incompleto y3con fuente bancaria todavía no persistida. - Sin altas inseguras: ninguna fila alcanza condiciones para crear una liquidación; no se infieren rechazos OOSS, facturas, operaciones
PAYni pagos a partir del importe. - Paridad e idempotencia: SANDBOX y PSICOLE devolvieron el mismo hash de consulta y el mismo detalle. Dos reportes consecutivos reprodujeron el hash semántico
586c8ef4b5c46db49254fbba0cfb277d883456a44434faed21d907a916050669. - Modo inerte: el gate usa tablas temporales y consultas; produjo cero mutaciones económicas, comunicaciones o uso de débitos automáticos de colegiación como evidencia de pago al prestador.
- NO_UI: la auditoría alimenta las pantallas existentes de Liquidaciones, Facturas recibidas y perfil del prestador; no agrega pantalla, ayuda, onboarding, tour ni capturas con datos fiscales.
v1.5.14 — 2026-07-22
Débitos Galicia y rendición a prestadores
- Fuentes separadas: los débitos automáticos y tarjetas de colegiación son cobros entrantes y no se usan para probar pagos a prestadores; las instrucciones bancarias tampoco prueban ejecución.
- Cruce documental: cinco extractos Galicia contrastados contra
173netos por prestador/período produjeron54egresos exactos por$15.037.755,69. - Estado en PSICOLE:
51/54movimientos están persistidos;2coinciden con una liquidación relacional,47no tienen liquidación del período y5tienen otro importe. - Cero cierres inferidos: una liquidación exacta tiene factura vinculada y la otra no; ambas operaciones siguen pendientes. Ninguna cadena factura + liquidación + banco +
PAYquedó cerrada. - Identidad estricta: las nueve filas documentales sin matrícula fueron resueltas por nombre completo sólo porque cada una tenía un único perfil; no hubo ambigüedades.
- Repetibilidad: los replays canónico y con archivos duplicados conservaron el hash económico
8d04f54274004fe19d811d401c1ec21c4ed310b850bcf544fb401f61a51877aey cero mutaciones o comunicaciones; un hash separado registra el inventario exacto de fuentes. - Cola auditable: el informe privado distingue liquidación faltante, diferencia de importe y coincidencia exacta. Una diferencia no se convierte en rechazo OOSS sin una fuente explícita.
v1.5.14 — 2026-07-23
Facturas presentadas y pendientes visibles en el perfil
- Dos universos explícitos: la pestaña existente Prestador separa los comprobantes fiscales efectivamente recibidos de las liquidaciones que todavía requieren factura.
- Sin comprobantes inventados: una liquidación sin archivo aparece como Pendiente de presentación / No presentada y no crea una fila en
received_invoices. - Historial completo: los requerimientos se derivan de todas las liquidaciones operativas del perfil, no sólo de las diez más recientes.
- Vacío preciso: un prestador sin factura ni liquidación muestra que no existen comprobantes presentados ni obligaciones documentales.
- Auditor de cobertura: el control de sólo lectura informa perfiles, liquidaciones, facturas presentadas y requerimientos pendientes, y exige delta cero en tablas económicas y comunicaciones.
v1.5.13 — 2026-07-22
Historia completa de facturas de prestadores
- Alcance histórico:
293facturas fiscales de43profesionales quedaron disponibles en SANDBOX y PSICOLE:4de 2023,74de 2024,143de 2025 y72de 2026. - Fuentes depuradas: de
297archivos se excluyeron3copias duplicadas y1documento no fiscal; el inventario y la evidencia económica tienen el mismo SHA-256 en ambos entornos. - Vínculo conservador:
3facturas preservan vínculo relacional exacto;19tienen evidencia documental de neto exacto sin liquidación canónica y271quedan registradas sin evidencia de liquidación. - Sin inferir rechazos: una diferencia de monto o período no se transforma en rechazo OOSS, pago ni liquidación; requiere una fuente explícita.
- Perfil y panel existentes: el historial completo se consulta en Liquidaciones de pagos → Facturas recibidas y en la pestaña Prestador de cada perfil, con PDF privado autenticado.
- Idempotencia e inercia: el replay resolvió
293 NOOP; pagos, recibos, operaciones, órdenes, rendiciones, liquidaciones, roles, estados y comunicaciones conservaron delta cero. - Certificación cruzada: el verificador obtuvo
293/293registros y archivos,0extras y0problemas en SANDBOX y PSICOLE; escritorio, móvil y apertura del PDF pasaron sin errores de consola.
v1.5.12 — 2026-07-22
Facturas 2026 trazables en el perfil del prestador
- Universo documental completo: las
72facturas fiscales 2026 recibidas de prestadores están importadas y disponibles en SANDBOX y PSICOLE. - Perfil existente: la pestaña Prestador muestra número, fecha, período, importe, liquidación exacta si existe, estado y acceso autenticado al PDF; no se creó una pantalla paralela.
- Vínculo estricto: sólo
3facturas coincidieron inequívocamente por prestador, período e importe neto y quedaronLINKED_TO_SETTLEMENTsobre liquidacionesPENDING. - Cola explícita:
69permanecenREGISTERED:41sin liquidación exacta,9a la espera de normalización y19con conflicto de período de fuente. - Idempotencia: el apply produjo
3vínculos y el replay0mutaciones /3NOOP con el mismo hash funcional. - Cobertura OOSS: se activaron
132relaciones prestador–obra social certificadas; el replay produjo0mutaciones /132NOOP. - Modo inerte: no se crearon pagos, recibos, operaciones, órdenes, avisos, correos o mensajes; ninguna factura quedó aprobada o pagada por inferencia.
- Responsive: escritorio y móvil fueron verificados en ambos entornos; el desplazamiento horizontal queda contenido dentro de las tablas del perfil.
v1.5.11 — 2026-07-22
Facturación institucional OOSS trazable
- Separación fiscal: las facturas del Colegio a las OOSS se distinguen de las facturas que los prestadores presentan al Colegio.
- UI existente: la consulta quedó integrada en Dinero → Configuración → Facturación OOSS, con detalle, período, CUIT receptor, CAE y PDF privado.
- Gate SANDBOX y PSICOLE 2026:
81/82facturas institucionales con evidencia exacta quedaron representadas;50se crearon como Enviadas y31completaron registros existentes sin cambiar su estado. - Faltante bloqueado: UNIMED abril 2026 por
$55.000permanece sin alta porque falta el PDF fiscal. - Pago no inferido: una factura respaldada por fuente no puede marcarse pagada sin operación económica vinculada;
37estados históricos incompatibles continúan en revisión. - Idempotencia productiva: el replay posterior detectó
81 NOOP, conservó el mismo hash funcional y produjo cero pagos, recibos, operaciones, archivos adicionales o comunicaciones. - Alcance: el corte documental fue aplicado y verificado en PSICOLE con respaldo restaurable y modo inerte; no se ejecutaron el crosswalk económico, liquidaciones ni inferencias de cobro.
v1.5.10 — 2026-07-21
Cierre total de conciliacion y control Prestadores/OOSS
- Extracto Galicia idempotente: se incorporaron
438movimientos del segundo parcial de julio; el replay insertó0y no hubo superposición con el parcial anterior. - Un RUN operativo por período: mayo, junio y julio conservan una única referencia operativa y los previews anteriores quedan como historial no aplicable.
- Guardas estrictas: dos movimientos no pueden reclamar la misma deuda y un movimiento con historial económico no vuelve a ser autoaplicable.
- Resultado consolidado:
9.670eventos,6.130cerrados,1.958excluidos y1.582manuales;0autoaplicaciones y0bloqueados. - Repetibilidad: dos replays por período reprodujeron hashes idénticos y delta cero en
20familias económicas y operativas. - Prestadores sin inferencias: la liquidación integral de julio fue auditada, pero no importada. Hay
600altas candidatas con número,108identidades sintéticas únicas sin colisiones,1línea reutilizable y2posibles duplicados que siguen en revisión. - Identidad separada de precio: sólo
36de las 108 identidades sintéticas tienen tarifa oficial exacta;71difieren y1carece de nomenclador. En las candidatas con número,520/600tienen tarifa exacta y las otras80permanecen en 12 grupos documentales. - Gate repetible: dos replays en cada entorno compartieron el mismo hash semántico, delta cero en 15 familias y rechazo explícito de
--apply/--write. - Preview integral Prestadores/OOSS: las
711líneas quedan totalmente representadas como708altas potenciales,1reutilizable y2en revisión, sin colisiones. De17lotes,8quedan listos,8bloqueados por tarifa y1por duplicación; de10facturas,2quedan listas,7bloqueadas por tarifa y1por duplicación. - Promoción cerrada:
556líneas tienen tarifa exacta y152permanecen agrupadas en13decisiones documentales. El preview pasa, pero la aplicación económica, parcial y automática continúa bloqueada. - Cola documental certificada: las excepciones se separaron en
11tarifas que requieren segunda evidencia,2conflictos Swiss Medical que requieren política de vigencia/plan y2posibles reemisiones de Poder Judicial que requieren confirmación humana. Dos replays por entorno produjeron el mismo hash y cero efectos. - Facturas reales de prestadores 2026:
297/297archivos fueron contrastados con el formulario de Drive;72comprobantes fiscales 2026 quedaron registrados en SANDBOX con archivo privado y sin duplicados. - Registro antes de vincular: el nuevo estado
REGISTEREDpreserva la factura cuando todavía no existe una liquidación compatible. La UI existente muestra motivo, candidato y archivo, pero no ofrece aprobar ni pagar. - Gate económico cerrado:
3facturas tienen liquidación candidata exacta pero pago OOSS pendiente;46no tienen liquidación,18presentan conflicto de período,4diferencia de importe y1período a revisar. No se materializó ningún vínculo o pago. - Replay posterior al despliegue: las
72facturas fueron detectadas como existentes, con0nuevas filas y delta cero en pagos, recibos, operaciones, órdenes, rendiciones, liquidaciones y comunicaciones. La vista pasó escritorio, móvil, apertura privada de PDF y consola sin errores. - Promoción documental a PSICOLE: respaldo restaurable, auditor y dry-run reprodujeron los hashes certificados; se registraron sólo
72facturasREGISTERED,72auditorías y72archivos privados. El replay inmediato creó0, el dashboard autenticado devolvió las72y no se vinculó o aprobó ninguna factura. - Operación inerte: no se generaron pagos, recibos, saldos, mensajes, correos, tickets ni transacciones bancarias reales.
v1.5.9 — 2026-07-20
Verdad financiera certificable
- Estado económico común: Reportes, Operaciones, Profesionales y comandos de cobro comparten la misma clasificación de pendiente, vencida, en plan, pagada, bonificada, cancelada y revisión de datos.
- Cero saldo protegido: una bonificación total no se presenta como mora; un cero sin cierre explicable queda en cuarentena y fuera de cobro, matching, débito y planes.
- Oráculo independiente: la auditoría recalcula directamente el libro y contrasta cada vista sin reutilizar el clasificador de producción.
- Repetibilidad e inercia: dos replays deben producir el mismo hash y cero variación en deudas, pagos, recibos, operaciones, planes, banco, prestadores, tickets o comunicaciones.
- Corte SANDBOX certificado: mayo, junio y julio pasan
37controles cruzados, conservan el mismo hash en dos replays y dejan en cero las variaciones de20tablas económicas y operativas. - Vistas operativas verificadas: Reportes, Cuotas, Profesionales y Prestadores pasan escritorio y celular sin desborde horizontal ni errores de consola; el filtro de junio reproduce exactamente
4.767obligaciones,1.710abiertas,3.050pagadas,6bonificadas y0en revisión. - Poblaciones explícitas: Prestadores informa
473perfiles registrados en el corte y el certificado separa los459activos; ninguna de esas cantidades se suma a la recaudación colegial. - Manual sin cifras congeladas: los números de capturas son ejemplos; la evidencia operativa vigente es
certification.jsongenerado para el período consultado.
v1.5.8 — 2026-07-20
Consistencia financiera entre vistas
- Un contrato de cifras: Reportes separa recaudación por fecha efectiva, obligaciones por período económico, padrón facturable y cartera histórica.
- Deuda sin doble conteo: pendientes sin vencer y vencidas son categorías excluyentes; las cuotas en plan se agregan una sola vez y sólo descuentan asignaciones trazables.
- Cruce integral:
28invariantes pasan para abril, mayo, junio y julio en SANDBOX y PSICOLE contra Reportes, Operaciones, Profesionales y Prestadores. - Procedencia limpia: pagos test, aplicaciones internas y correcciones no monetarias quedan fuera de recaudación; las reversas reducen caja sólo con evidencia externa.
- Responsive: los importes largos conservan lectura completa en móvil sin desborde horizontal.
- Prestadores separados: órdenes, liquidaciones y facturas pendientes permanecen como cola operativa y no se confunden con recaudación colegial.
- Consulta mensual fiable: el botón de la pestaña Deudas conserva el período económico y el estado seleccionados; ya no sustituye mayo o junio por el total histórico al recibir el evento de clic.
v1.5.7 — 2026-07-19
Cierre global de cuotas julio/agosto
- Resumen global fiable: el libro de cuotas calcula estados e importes sobre todo el resultado filtrado y ya no sobre la página visible.
- Pendiente y vencida sin contradicción: toda deuda impaga sigue siendo pendiente; la UI separa pendientes abiertas, sin vencer y pendientes vencidas.
- Backlog explicado: Dinero muestra el total abierto de todos los períodos y su desglose mensual.
- Datos operativos limpios: las deudas test quedan fuera de los totales y las canceladas no aportan saldo.
- Agosto protegido: PREVIEW y generación se bloquean mientras agosto no tenga una entrada oficial en el tarifario mensual; julio no se reutiliza como valor implícito.
- Auditoría julio:
4.776cuotas reales, claves idempotentes únicas, cobertura completa de los4.722profesionales actualmente elegibles y cero duplicados activos.
v1.5.6 — 2026-07-18
Estabilización gradual para producción
- Tres guardas reversibles: autorización, precios de prestadores y respuestas sensibles se activan primero en
observey luego por módulo enenforce. - Sesiones preservadas: no se resetean contraseñas, secretos JWT ni cuentas aprobadas que participan de la prueba.
- Capacidades explícitas: tickets, deuda, Finanzas e impersonación dejan de depender de coincidencias parciales en el nombre del rol.
- Precio de órdenes: las órdenes nuevas usan nomenclador oficial; sin precio confiable quedan en revisión y no habilitan nuevas facturas o liquidaciones.
- Idempotencia visible: el RUN mensual repite el PREVIEW y compara hashes y efectos; la ficha única verifica huella, vínculos y duplicados del mismo origen.
- Procesos históricos intactos: RUNs, tickets, órdenes, facturas y liquidaciones previas no se reescriben ni cancelan automáticamente.
- Pruebas inertes: durante QA permanecen bloqueados correos, avisos, scheduler, débitos y pagos reales.
v1.5.5 — 2026-07-14
Conciliación mensual por método de cobro
- Resolución auditada 20%/30%: una deuda heredada puede reclasificarse sólo cuando identidad, período, tarifario e importe determinan una alternativa única entre CBU 20% y tarjeta 30%; la adhesión maestra no cambia.
- Selección de deuda por período: dentro del RUN, la UI marca la única deuda del mismo mes. Una decisión estricta auditada conserva prioridad y los duplicados exigen elección explícita.
- Lote controlado inicial: se resolvieron 10 casos por
$120.218,00con trazabilidad completa y sin correos, notificaciones ni saldos laterales. El caso explícito restante por$12.492,00se mantuvo bloqueado hasta completar su revisión documental. - Idempotencia y repetibilidad: dos proyecciones finales produjeron el mismo hash y no modificaron contadores económicos.
- Cierre documental del caso residual: Galicia y recibo bancario confirmaron CBU 20% para mayo; la tarjeta encontrada correspondía a junio y estaba rechazada. Se actualizó sólo la deuda mensual, sin cambiar adhesión ni meses posteriores.
- Guardas de importación: respuestas rechazadas ya no pueden activar medios, borrar rechazos, revaluar cuotas ni crear lotes; los conflictos entre métodos aceptados para el mismo período se bloquean.
- Cierre del piloto: 11 casos por
$132.710,00, cero remanentes y dos proyecciones finales idénticas sin efectos económicos durante PREVIEW. - Promoción manual a PSICOLE: backend y frontend se desplegaron sobre el entorno activo con backup y rollback verificables. Dos proyecciones inertes y dos PREVIEW por mayo, junio y julio reprodujeron hashes estables; la auditoría terminó con cero críticos y no aplicó pagos ni envió comunicaciones.
v1.5.4 — 2026-06-29
Beneficios y conceptos externos para SANDBOX
- Reglas persistentes de beneficios: se agrega una capa comun para jubilacion, maternidad/paternidad, primera matricula, debito y descuentos manuales, con snapshot por deuda generada.
- Primera matricula bonificada: el sistema puede aplicar 100% de bonificacion durante el mes de emision y el/los meses siguientes segun dia de emision.
- Planes de pago trazables: los profesionales pueden filtrarse por plan activo, pendiente, completado, cancelado, cuotas pendientes o cuotas marcadas pagadas por planilla sin operacion.
- Conceptos externos: se incorporan ingresos esperados para curso nacional u otros conceptos no necesariamente asociados al padron local.
- Re-run mayo/junio: el preview sandbox reconoce destinos de plan de pago y conceptos externos para medir mejora de trazabilidad sin aplicar pagos.
- Filtros operativos: Profesionales y Dinero exponen filtros para aislar beneficios, planes y conceptos externos desde las listas operativas.
v1.5.3 — 2026-06-24
Conciliacion mensual auditable
- RUN mensual auditable: se agrega la base de
MonthlyReconciliationRun, fuentes y decisiones para organizar cierres mensuales por periodo sin aplicar pagos por inferencia debil. - Panel integrado: el RUN mensual queda disponible dentro de Dinero -> Operaciones -> Conciliacion -> RUN mensual, con creacion
PREVIEW, registro de extractos del periodo, simulacionPREVIEW, metricas, fuentes y decisiones auditadas. - Re-runs incorporados al PREVIEW: la simulacion mensual reconoce
PaymentOperationaprobadas de re-runs previos cuando hay evidencia unica por periodo, archivo, referencia y monto, clasificandolas comoALREADY_CLOSEDsin crear pagos nuevos. - Clasificacion previa de extractos generales: Galicia y otras fuentes auxiliares se rutean antes del match como cuota mensual, ajuste/periodo anterior, tramite/arancel, curso, liquidacion institucional, transferencia a clasificar o movimiento no acreditado.
- Ajustes sin hardcode: el motor de candidatos lee los ajustes aprobados desde
MONTHLY_FEE_RECONCILIATION_ADJUSTMENTSen Configuracion del dinero. - Sincronizacion CBU segura: la sincronizacion desde extracto queda en modo previsualizacion por defecto; aplicar cambios requiere motivo y guard operativo.
- Documentacion: se actualizan DINERO, Conciliacion Bancaria, casos de uso y ayuda contextual con el nuevo criterio de cierre mensual.
v1.5.2 — 2026-06-23
Certificacion SANDBOX
- Conciliacion mayo/junio 2026: se certifico el RUN de cuotas contra fuentes primarias de tarjeta aceptada y CBU cobrado, con contraste de recibos, padron, caja, profesionales y prestadores.
- Tasa de cierre estricta: 5.697 de 5.986 eventos aceptados/cobrados quedaron conciliados con destino seguro, equivalente a 95,17% por eventos y 94,99% por monto.
- Tratamiento del remanente: los 360 eventos sueltos originales quedaron tratados al 100%: 71 aplicados en SANDBOX, 123 ya cerrados/no-PENDING, 152 manuales por identidad o destino insuficiente, 6 sin deuda PENDING compatible y 8 bloqueados por regla bancaria estricta.
- Seguridad operativa: la aplicacion se hizo solo en SANDBOX, con marker, replay idempotente, verificacion de deuda/pago/recibo/banco/cuenta corriente/asiento y cero correos/notificaciones.
Documentacion
- Actualizadas las paginas de DINERO, Conciliacion Bancaria, Tarifario Mensual y Guia de Operador Finanzas con el procedimiento de auditoria cruzada, criterio de denominador estricto, regla segura de CBU y resultados certificados.
v1.5.1 — 2026-06-19
Correcciones
- Lote CBU consistente con deuda final: la generación manual y la tarea programada de débitos por CBU usan
Debt.finalAmountcomo importe a debitar, evitando recalcular descuentos sobre el importe original. - Rechazos CBU sin borrar otros beneficios compatibles: ante rechazo bancario, PSICOLE revierte solo el descuento por débito directo y conserva beneficios no CBU compatibles como beneficio parental o ajustes aprobados.
- Descuentos por método de cobro: CBU / Caja de ahorro aplica 20% y tarjeta de crédito aplica 30% sólo con adhesión
ACTIVE. Jubilación aplica 50% y excluye CBU/tarjeta en la misma cuota mensual. - Redondeo operativo de cuotas: los importes finales de cuotas se normalizan al múltiplo de $0,50 más cercano.
- Certificación sandbox de cuotas: se validó definición de cuota mensual por
MONTHLY_FEE_TARIFF_POLICY+CUOTA_MENSUAL, generación RUN, lote CBU, devolución bancaria y conciliación con pruebas focalizadas de flujo de dinero.
Documentación
- Actualizado el flujo mensual de DINERO, débito automático, conciliación bancaria, tipos de cuota y guías rápidas de Administración/Finanzas para reflejar el circuito RUN → lote CBU → devolución bancaria → conciliación.
v1.4.0 — 2026-04-15
Nuevas funcionalidades
- Onboarding interactivo por rol: modal slideshow didáctico que se muestra al iniciar sesión, adaptado al rol del usuario. Los administradores ven un tour de los 17 módulos del sistema. Los operadores ven solo los módulos de sus EPICs asignados. Configurable per-usuario (activar/desactivar desde el perfil) y globalmente por el administrador.
- Módulo de Beneficios — Jubilación: detección automática de profesionales elegibles (60+ años), notificación por email, flujo de aplicación/rechazo/reactivación con panel administrativo completo. Los beneficiarios reciben un 50% de descuento en sus cuotas.
- Módulo de Beneficios — Maternidad/Adopción: solicitud digital con adjunto de documentación, flujo de revisión por operador, descuento configurable durante el período de licencia.
- Renovación de Matrícula digital (UC-1.4): flujo wizard completo para que los colegiados renueven su matrícula cada 5 años. Incluye firma de Declaración Jurada, adjunto de documentos y panel de revisión para operadores.
- Débito Automático: registro de CBU, adhesión bancaria, activación por operador y aplicación automática del descuento de débito vigente en ese momento. La política vigente actualizada se documenta en v1.5.1.
- Certificados de Ética Profesional (UC-9.2): solicitud digital, pago de arancel por transferencia con confirmación de referencia, revisión por operador, generación y descarga de certificado PDF con QR de verificación.
- Operadores Dinámicos (OPER-001): sistema de asignación de módulos operativos (EPICs) por operador. 5 EPICs disponibles: Onboarding y Matrículas, Gestión Financiera, Formación Continua, Prestadores y Trámites Administrativos. Cada operador ve solo los menús de sus módulos asignados.
- Grupos de Usuarios (OPER-002): organización de operadores por sede/ciudad con excepciones INCLUDE/EXCLUDE por profesional. Permite que cada sede gestione solo los matriculados de su zona geográfica.
- Super Administradores (UC-6.7): capa de seguridad adicional sobre el rol ADMIN. Las promociones y degradaciones requieren confirmación con código de 6 dígitos enviado por email. Los códigos expiran en 10 minutos y bloquean al operador por 30 minutos tras 3 intentos fallidos.
Mejoras
- Tabla de datos inteligente (useSmartTable): refactor del sistema de tablas del frontend. Todas las tablas del sistema ahora soportan búsqueda en tiempo real, filtros múltiples combinables, paginación configurable y estado persistente entre navegaciones.
- Menú lateral del sistema adaptado por módulos: los operadores con módulos asignados ven exclusivamente las secciones habilitadas para su rol + EPICs.
- El tour de onboarding se adapta dinámicamente a los EPICs del operador, mostrando solo las pantallas relevantes.
- Mejoras de rendimiento en carga del dashboard administrativo: reducción del 35% en tiempo de carga mediante paginación lazy.
Correcciones
- Corregido error en la detección automática de jubilación que no consideraba años bisiestos en el cálculo de elegibilidad.
- Corregido el cálculo de nueva fecha de vencimiento en Renovación de Matrícula: ahora toma como base la fecha de vencimiento anterior (no la fecha de aprobación).
v1.5.0 — 2026-05-20
Nuevas funcionalidades
- DINERO trazable de punta a punta: consolidación de operación única
PAY-*, conciliación por fuentes, gap ledger, replay idempotente y vínculo operativo con libro diario. - Triage directo de soporte: la mesa de soporte ya opera desde la propia pantalla
/admin/support-tickets, con sugerencia local, decisión humana por ticket y trazabilidad en comunicaciones. - Declaración jurada compartida editable: Solicitud de Matrícula y Renovación usan términos administrables desde operación interna, sin depender de cambios de código.
Mejoras
PAYWAYqueda documentado y tratado como compatibilidad técnica de POS físico presencial, no como checkout online activo.- La ruta administrativa de cursos queda unificada en
/admin/courses, incluyendo su alias legacy desde/admin/entities/courses. - Los límites documentales de matrícula se alinean con el límite operativo compartido de 13 MB donde corresponde.
Correcciones
- Corregida una ancla rota del manual usada por las ayudas contextuales del sistema para Operadores y Módulos.
- Corregida la documentación de pasarelas para evitar mostrar
Mercado PagooPAYWAYcomo medios online activos cuando no corresponde. - Corregida la documentación operativa del soporte para reflejar el flujo vigente sin dependencia diaria de lotes JSON.
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 por pasarela: integración con proveedores externos para que los profesionales puedan abonar desde el portal. Incluye operación trazable, confirmación, recibo y recuperación de pagos.
- 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 y descuento para jubilados (50%), aplicados automáticamente al generar las cuotas. La política vigente actualizada se documenta en v1.5.1.
- 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 |
Postmortem — Tormenta de Emails 2026-04-27
Resumen del incidente de envío masivo de correos electrónicos ocurrido el lunes 27 de abril de 2026, su causa raíz, consecuencias y medidas correctivas implementadas.
Cronología
Todos los horarios en ART (UTC-3).
| Hora | Evento |
|---|---|
| 10:00 | El cron overdueNotices (0 10 * * 1) se dispara simultáneamente en los 3 entornos (sandbox, preprod, prod) |
| 10:00–10:55 | ~17,000 conexiones SMTP desde los contenedores Docker hacia Postfix local |
| 10:55 | Gmail comienza a rate-limitar: errores 4.7.28 (unusual rate) y 4.7.30 (DKIM did not pass) |
| 10:55 | Hotmail/Outlook rate-limitan: error 4.7.651 (IP reputation) |
| 11:00–11:28 | Últimos intentos de entrega; Gmail bloquea varios con 5.7.1 (unsolicited mail) |
| 11:30 | Postfix detenido manualmente para frenar la salida de correo |
| 12:45 | postsuper purga 3,277 mensajes remanentes de la cola |
| 12:02 | Se prepara lista de 2,351 destinatarios para email de disculpa |
Volumen del incidente
| Métrica | Cantidad |
|---|---|
| Destinatarios reales externos | 2,351 |
Destinatarios @migrado.local (fantasma) |
1,587 |
| Emails entregados efectivamente | 579 |
| Emails diferidos (rate-limited) | 7,355 |
| Emails rebotados | 696 |
Total mensajes desde hola@umdev.com.ar |
15,750 |
| Mensajes purgados de la cola | 3,277 |
Distribución por dominio de destino
| Dominio | Cantidad |
|---|---|
@migrado.local |
1,587 |
@gmail.com |
615 |
@hotmail.com |
590 |
@yahoo.com.ar |
35 |
@hotmail.com.ar |
30 |
| Otros (live, outlook, etc.) | ~54 |
Causa raíz
El cron job scheduleOverdueNotices definido en backend/src/jobs/scheduler.js:349, con expresión 0 10 * * 1 (lunes 10:00 AM), ejecuta la función getProfessionalsWithOverdueDebts() que:
- Consulta todos los profesionales con deudas vencidas
- Itera sobre cada uno en un loop secuencial sin throttling
- Envía un email individual por profesional mediante
sendOverdueNoticeEmail()
El lunes 27 de abril, el job encontró deudas vencidas para la mayoría de los ~4,900 profesionales del sistema, incluyendo los registros legacy migrados cuyos emails son legajo_XXXX@migrado.local.
Fallas contribuyentes
1. Sin rate limiting en la capa de aplicación
El loop en scheduleOverdueNotices envía emails uno tras otro sin pausas. Con ~2,350 destinatarios reales × 3 entornos, se generaron ~17,000 conexiones SMTP en menos de una hora.
Archivo: backend/src/jobs/scheduler.js:360-411
2. DKIM no resuelve públicamente
OpenDKIM firma los mensajes correctamente en el servidor, pero el registro DKIM en DNS no es visible desde Internet porque DonWeb aún controla los servidores NS del dominio umdev.com.ar.
Esto provocó que Gmail rechazara los emails con 4.7.30 DKIM did not pass, clasificándolos como bulk mail no autenticado.
3. Emails @migrado.local sin limpiar
La migración histórica desde el sistema legacy CPM generó registros de profesionales con emails artificiales legajo_XXXX@migrado.local. Estos 1,587 registros nunca fueron depurados de la base de datos.
El dominio migrado.local no existe en DNS público, por lo que Postfix intentó resolverlo repetidamente, generando tráfico adicional y bounces.
4. Sin aislamiento entre entornos
Los entornos preprod y prod no tenían configurada la variable EMAIL_REDIRECT_TO. Solo sandbox la tenía (=santosma@gmail.com). Esto significó que los 3 entornos enviaron emails reales simultáneamente al mismo servidor Postfix.
Archivo: docker-compose.prod.yml, docker-compose.yml
5. Bounce handling roto
Los avisos de no-entrega (bounces) de Postfix se dirigen al remitente hola@umdev.com.ar, pero ese usuario no existe localmente en el VPS. Esto provocó un doble bounce: el bounce mismo rebotaba porque Postfix no podía entregarlo localmente.
postfix/local: to=<hola@umdev.com.ar>, status=bounced (unknown user: "hola")
Consecuencias
- Reputación de IP dañada: Gmail y Microsoft rate-limitaron la IP
168.181.185.221por spam - Dominio señalado:
umdev.com.arfue clasificado como remitente de bulk mail no solicitado - 2,351 profesionales recibieron un correo no deseado con el asunto "Aviso importante: Tiene deudas vencidas"
- 1,587 emails fantasma a
@migrado.localgeneraron tráfico DNS y bounces en cascada - Se envió un email de disculpa a los 2,351 destinatarios afectados
- Postfix estuvo detenido ~1 hora mientras se purgaba la cola
Acciones correctivas
Inmediatas (27-abr)
- [x] Postfix detenido y cola purgada (
postsuper -d ALL) - [x] Email de disculpa enviado a los 2,351 destinatarios afectados
- [ ] Desactivar cron
overdueNoticesen sandbox y preprod
Corto plazo
- [ ] Agregar
EMAIL_REDIRECT_TOen preprod y verificar en prod - [ ] Limpiar emails
@migrado.localde la base de datos (cambiar aNULLo marcar como inválidos) - [ ] Crear alias local
hola@umdev.com.arpara capturar bounces - [ ] Agregar rate limiting al
emailService.js: máximo N emails por minuto
Mediano plazo
- [ ] Completar el cambio de NS en DonWeb para que DKIM/SPF/DMARC resuelvan públicamente
- [ ] Implementar un flag
email_verifieden la tabla de usuarios para no enviar a emails no verificados - [ ] Agregar un mecanismo de "circuit breaker" que detenga el envío si la tasa de error supera un umbral
- [ ] Separar las colas de email por entorno (o usar un servicio de email transaccional externo)
Lecciones aprendidas
- Nunca confiar en datos legacy sin validar. Los emails
@migrado.localeran un artefacto de migración que debió limpiarse al finalizar la importación. - Los entornos no-productivos deben ser inertes. Preprod y sandbox NUNCA deben poder enviar emails a destinatarios reales.
- Todo envío masivo necesita throttling. Un loop sin pausas sobre 2,000+ destinatarios satura cualquier infraestructura de correo.
- DKIM/SPF/DMARC son requisitos obligatorios para enviar correo. Sin ellos, los proveedores de email (Gmail, Microsoft) rechazan o rate-limitan inevitablemente.