Manual de Usuario · v2026

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.

9 Roles Matrículas Online Pagos Integrados Portal Móvil Autogestión
psicole.org  ›  administrador
Panel administrativo PSICOLE
PSICOLE móvil

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
Panel de administración general del sistema
🖥 Escritorio Panel de administración general del sistema
Panel de administración general del sistema — móvil
📱 Móvil Panel de administración general del sistema

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.

Dashboard del administrador con KPIs de solicitudes, tickets, beneficios, mensajes y agenda

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.

Dashboard administrativo en escritorio

Dashboard administrativo en celular

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.

  1. Ingresá a Administración → Usuarios.
  2. Hacé clic en + Nuevo usuario.
  3. Completá nombre, correo electrónico institucional y rol. No se ingresa ni se muestra una contraseña en el alta.
  4. Asigná los permisos específicos si el rol lo requiere (los permisos se expresan como triplets modulo/accion/recurso, por ejemplo FINANZAS/CREATE/PAYMENT).
  5. 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.

Super Admins en escritorio

Super Admins en celular

2. Configurar parámetros globales del sistema

  1. Ingresá a Administración → Configuración.
  2. Desde allí podés ajustar:
  3. Tarifario mensual de cuotas, manteniendo CUOTA_MENSUAL como concepto oficial y cargando importes por periodo en Dinero -> Configuración -> Tarifario mensual.
  4. Pasarelas de pago: actualizá credenciales, modo sandbox/producción y URLs de retorno o webhook.
  5. CRON jobs: habilitá o deshabilitá las tareas automáticas (generación mensual de cuotas, envío de notificaciones de vencimiento, conciliación automática).
  6. Parámetros de PDF: logotipo, datos del Colegio que aparecen en recibos y certificados.
  7. Antes de ejecutar o habilitar la generación mensual, verificá que CUOTA_MENSUAL sea el único concepto mensual activo y que el período esté cargado en el Tarifario mensual.
  8. Si está habilitado el CRON de lote CBU, verificá que use la misma regla que la generación manual: solo adhesiones BANK_DEBIT con CBU verificado y Debt.finalAmount como importe a debitar.
  9. 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

  1. Ingresá a Administración → Auditoría.
  2. Filtrá por fecha, usuario o módulo para ver el registro de acciones.
  3. Cada entrada muestra: fecha/hora, usuario, acción realizada (CREATE, UPDATE, DELETE), módulo afectado y detalle del objeto modificado.
  4. Podés exportar los logs en formato CSV para reportes de auditoría interna.

4. Supervisar los CRON jobs automáticos

  1. Ingresá a Administración → Tareas Automáticas.
  2. Verás el estado de cada job: último tiempo de ejecución, próxima ejecución, cantidad de registros procesados y si hubo errores.
  3. Si un job falló, podés relanzarlo manualmente con el botón Ejecutar ahora.
  4. Los jobs críticos incluyen: generación de cuotas mensuales, recordatorios de vencimiento por e-mail y conciliación bancaria nocturna.
  5. 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

  1. El jefe administrativo solicita dar de alta a un nuevo empleado para el área de finanzas.
  2. Ingresás a Administración → Usuarios → + Nuevo usuario.
  3. Asignás el rol OPERADOR_FINANZAS y los permisos FINANZAS/CREATE/PAYMENT, FINANZAS/READ/RECEIPT, FINANZAS/UPDATE/CUOTA.
  4. Guardás el usuario y ejecutás Resetear y enviar acceso.
  5. 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

  1. El proveedor notifica el vencimiento de credenciales.
  2. Ingresás a Dinero → Configuración o Parámetros del Sistema, según el parámetro.
  3. Reemplazás las credenciales con los nuevos valores obtenidos del panel del proveedor.
  4. Guardás y reiniciás el servicio de pagos online desde Administración → Servicios.
  5. 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
Bandeja de solicitudes de matrícula
🖥 Escritorio Bandeja de solicitudes de matrícula
Bandeja de solicitudes de matrícula — móvil
📱 Móvil Bandeja de solicitudes de matrícula

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.

  1. Ingresá a Matrículas → Solicitudes Pendientes.
  2. La lista muestra cada solicitud con: nombre del aspirante, fecha de solicitud, estado de la documentación y días en cola.
  3. Hacé clic en una solicitud para abrir el expediente digital.
  4. Revisá cada documento adjunto (título universitario, DNI, foto, constancia de CUIL, comprobante de pago del arancel de inscripción):
  5. Tildá cada documento como Verificado si es legible y válido.
  6. Si un documento está incompleto o ilegible, usá Solicitar corrección para enviar un mensaje automático al aspirante indicando qué debe reenviar.
  7. Una vez que todos los documentos estén verificados, habilitá el botón Aprobar solicitud.
  8. Al aprobar, el sistema genera automáticamente:
  9. Número de matrícula (correlativo).
  10. Credencial digital con código QR.
  11. Notificación por e-mail al nuevo colegiado.
  12. Primera cuota de matrícula anual (en coordinación con el módulo de Finanzas).

2. Gestionar el padrón de colegiados activos

  1. Ingresá a Matrículas → Padrón de Colegiados.
  2. Podés buscar por nombre, apellido, número de matrícula o DNI.
  3. Desde la ficha de cada colegiado podés:
  4. Actualizar datos personales (domicilio, teléfono, e-mail) a pedido del profesional.
  5. Registrar un cambio de categoría (por ejemplo, de matrícula provisoria a definitiva).
  6. Suspender o dar de baja una matrícula por resolución del Colegio (requiere ingresar el número de expediente resolutivo).
  7. Emitir una nueva credencial si la anterior fue extraviada o venció.

3. Controlar vencimientos y renovaciones

  1. Ingresá a Matrículas → Vencimientos.
  2. El sistema muestra un calendario con las matrículas que vencen en los próximos 30, 60 y 90 días.
  3. Podés lanzar un envío masivo de notificaciones a todos los colegiados con vencimiento próximo desde el botón Notificar seleccionados.
  4. 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

  1. Recibís una notificación en el dashboard: "Nueva solicitud de matrícula — García, María José".
  2. Abrís el expediente en Matrículas → Solicitudes Pendientes.
  3. Revisás los 5 documentos requeridos. El título universitario está escaneado con baja resolución.
  4. 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)".
  5. El aspirante recibe el correo, reenvía el documento actualizado y la solicitud vuelve a tu cola.
  6. Verificás el nuevo documento, tildás todos como válidos y hacés clic en Aprobar solicitud.
  7. El sistema genera la matrícula N° 4821 y envía la credencial digital a la aspirante.

Escenario 2: Colegiado solicita duplicado de credencial

  1. El colegiado llama indicando que perdió su credencial.
  2. Buscás la matrícula en Matrículas → Padrón de Colegiados.
  3. Verificás que la matrícula esté vigente y sin deudas.
  4. Hacés clic en Emitir duplicado de credencial.
  5. 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
Panel de cobro de cuotas y deudas
🖥 Escritorio Panel de cobro de cuotas y deudas
Panel de cobro de cuotas y deudas — móvil
📱 Móvil Panel de cobro de cuotas y deudas

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 host psicole.umdev.com.ar queda 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:

  1. Ingresá a Finanzas → Pagos → Registrar pago manual.
  2. Buscá al colegiado por nombre, DNI o número de matrícula.
  3. El sistema mostrará automáticamente las cuotas adeudadas ordenadas por vencimiento.
  4. Seleccioná la/s cuota/s que el colegiado está pagando.
  5. Completá:
  6. Monto recibido (puede incluir intereses por mora si corresponde).
  7. Medio de pago (efectivo, transferencia, cheque).
  8. Número de comprobante (si aplica, ej: número de transferencia bancaria).
  9. Fecha de pago (por defecto es hoy, pero podés retroceder si el pago fue procesado con demora).
  10. Hacé clic en Confirmar pago. El sistema imputará el pago a las cuotas seleccionadas y generará automáticamente el recibo.
  11. 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

  1. Ingresá a Dinero → Operaciones → Cuotas.
  2. Podés filtrar por: colegiado, período, estado (pagada/vencida/pendiente/en mora).
  3. Antes del RUN mensual, verificá que el tipo mensual oficial CUOTA_MENSUAL esté activo y que el período tenga el importe aprobado en el Tarifario mensual.
  4. Usá Previsualizar para revisar cantidad de profesionales, cuotas a generar, importe base, descuentos por método de pago y monto total.
  5. 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.
  6. Si vas a operar debito automatico, revisá que las deudas del período tengan finalAmount correcto antes de generar o enviar el lote CBU.
  7. 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).
  8. 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

  1. Ingresá a Matrículas -> Profesionales y buscá por nombre, DNI o matrícula.
  2. Abrí la ficha y entrá en Cuenta Corriente para revisar cuotas, estado, recibos, pagos y saldos a favor.
  3. 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.
  4. Entrá en Planes para revisar acuerdos activos e históricos, avance de cuotas, próximo vencimiento y mora.
  5. 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.
  6. Si un plan histórico está cancelado o completado, se conserva como antecedente y no debe interpretarse como plan operativo.
  7. 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.
  8. Un descuento especial se calcula sobre el saldo pendiente del servidor y requiere aprobación de otra persona; quien lo solicita no puede aprobarlo.
  9. Si existen más de 12 cuotas mensuales vencidas, usá Solicitar descuento por pago único. La solicitud incluye todas las MONTHLY_FEE vencidas; 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

  1. Ingresá a Dinero → Operaciones → Débito automático.
  2. Revisá adhesiones BANK_DEBIT activas, CBU verificado y cuenta activa.
  3. Generá el lote del período o abrí el lote creado por CRON.
  4. Controlá que el total del lote sea la suma de Debt.finalAmount de las cuotas incluidas.
  5. Si el total no cuadra, no descargues ni envíes el COELSA: revisá descuentos, beneficios, método de cobro y deudas del período.
  6. Descargá el archivo y envialo al banco por el canal operativo acordado.
  7. 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.

  1. Ingresá a Finanzas → Conciliación Bancaria.
  2. Importá el extracto bancario en formato CSV o TXT (según el formato del banco).
  3. El sistema intentará matchear automáticamente cada movimiento bancario con un pago registrado, usando el monto, la fecha y el número de referencia.
  4. Para cuotas mensuales, revisá que el movimiento coincida con la deuda final generada o con un ajuste contable aprobado por aumento mensual.
  5. Los movimientos no identificados aparecen en la sección Pendientes de conciliación.
  6. Para cada pendiente: buscá manualmente el pago correspondiente usando el buscador lateral o marcalo como Ingreso no identificado para revisión posterior.
  7. 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.

  1. Separá rechazos bancarios de cobros reales.
  2. Validá que cada cobro tenga deuda del periodo, operación PAY, recibo y cuenta corriente.
  3. Para CBU, aplicá solo si hay una transacción bancaria exacta y no vinculada a otra operación.
  4. Si el match depende solo de nombre, monto parecido o padrón histórico, dejalo en cola manual.
  5. 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

  1. Ingresá a Finanzas → Recibos.
  2. Podés buscar recibos por colegiado, número de recibo, período o fecha.
  3. 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".
  4. 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

  1. 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.
  2. Si una orden guardada tiene un error, abrí Corregir, elegí la práctica del nomenclador y ajustá los campos necesarios. Indicá siempre el motivo.
  3. Si la orden ya forma parte de una rendición y está PENDING u OBSERVED, corregila desde el detalle de esa rendición; la grilla general la bloquea para evitar totales divergentes.
  4. 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.
  5. 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.
  6. 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

  1. El colegiado se presenta en la sede y entrega $15.000 en efectivo por 2 cuotas adeudadas.
  2. Ingresás a Finanzas → Pagos → Registrar pago manual.
  3. Buscás al colegiado por DNI: "28.741.963".
  4. El sistema muestra 3 cuotas vencidas. Seleccionás las primeras 2 (las más antiguas, por orden de vencimiento).
  5. Ingresás monto $15.000, medio "Efectivo", fecha de hoy.
  6. El sistema calcula que las 2 cuotas suman $14.200 y el excedente de $800 se registra como adelanto para la próxima cuota.
  7. 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

  1. Al importar el extracto bancario del viernes, el sistema deja 3 movimientos sin identificar.
  2. Ingresás a Finanzas → Conciliación Bancaria → Pendientes.
  3. Uno de los movimientos de $7.500 no matchea. Revisás la descripción: "TRANSFERENCIA GONZALEZ PEDRO".
  4. Buscás en operaciones y encontrás un pago por pasarela de ese colegiado por el mismo monto registrado el mismo día.
  5. Asociás el movimiento bancario a la operación PAY y lo marcás como conciliado.
  6. 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
Gestión de cursos de capacitación
🖥 Escritorio Gestión de cursos de capacitación
Gestión de cursos de capacitación — móvil
📱 Móvil Gestión de cursos de capacitación

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

  1. Ingresá a Cursos → Gestión de Cursos → + Nuevo curso.
  2. Completá el formulario:
  3. Nombre del curso y descripción detallada.
  4. Modalidad: presencial, virtual o híbrida.
  5. Fechas: fecha de inicio, fecha de fin y fechas de cada clase si es un curso con múltiples encuentros.
  6. Cupo máximo: cantidad de inscriptos permitidos.
  7. 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).
  8. Instructor/Disertante: nombre y datos del responsable del curso.
  9. Puntaje de actualización: si el curso otorga créditos de formación continua, ingresá la cantidad de horas o puntos.
  10. Subí el material de difusión (imagen de portada, programa del curso en PDF).
  11. Hacé clic en Guardar como borrador para revisarlo antes de publicar.
  12. Una vez conforme, hacé clic en Publicar. El curso aparecerá disponible en el portal de autogestión de los colegiados.

2. Gestionar inscripciones

  1. Ingresá a Cursos → Inscripciones.
  2. Seleccioná el curso para ver su lista de inscriptos.
  3. Las inscripciones pueden venir de dos fuentes:
  4. Online: el colegiado se inscribió desde su portal de autogestión. Aparece con estado "Pendiente de confirmación".
  5. Manual: un colegiado solicitó inscripción por teléfono o presencialmente. Usá + Inscribir manualmente, buscá al colegiado por matrícula o DNI y confirmá.
  6. 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.
  7. 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.
  8. 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:

  1. Ingresá a Cursos → Asistencia.
  2. Seleccioná el curso y la fecha del encuentro.
  3. Para cada participante de la lista, marcá Presente, Ausente o Tardanza.
  4. Guardá la asistencia. El sistema acumula el porcentaje de asistencia por participante.

Emisión de certificados:

  1. Una vez finalizado el curso, ingresá a Cursos → Certificados.
  2. El sistema lista a todos los inscriptos con su porcentaje de asistencia.
  3. Marcá como Aprobados a quienes cumplieron el mínimo de asistencia requerido (configurable por curso, generalmente 75%).
  4. Hacé clic en Generar certificados masivos. El sistema crea un PDF personalizado para cada aprobado, firmado digitalmente con el logo y datos del Colegio.
  5. 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

  1. El área académica confirma que se dictará "Terapia Cognitivo Conductual — Módulo Avanzado", 4 sábados, arancel $8.000, cupo 20 personas.
  2. Creás el curso en Cursos → + Nuevo curso con todos los datos, configurás el cobro por pasarela o deuda y publicás.
  3. En los siguientes días, llegán 18 inscripciones online. Revisás que cada una tenga el pago confirmado desde Cursos → Inscripciones.
  4. Dos inscripciones están sin pago; enviás un recordatorio automático con el botón Notificar pago pendiente.
  5. Al completarse el primer encuentro, registrás asistencia: 17 presentes, 1 ausente justificado.
  6. 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

  1. Publicás un webinar gratuito con cupo de 50 personas.
  2. En 2 horas se completa el cupo. Activás la lista de espera desde Cursos → Configuración del curso.
  3. 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.
  4. 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
Bandeja de tickets y trámites asignados
🖥 Escritorio Bandeja de tickets y trámites asignados
Bandeja de tickets y trámites asignados — móvil
📱 Móvil Bandeja de tickets y trámites asignados

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.

Dashboard personal del operador con encabezado de bienvenida y KPIs

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ó

KPIs del dashboard con contadores por estado

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

Grupos de tickets por urgencia con semáforo SLA

Vista en mobile:

Dashboard del operador en celular


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).

Kanban de tickets del operador en desktop

Vista mobile:

Kanban en celular


Detalle de un Ticket

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

Detalle de ticket en desktop

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:

Detalle de ticket en celular


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.

Panel de notificaciones con ticket asignado

Vista mobile:

Notificaciones en celular


Flujo diario típico

  1. Entrás al sistema → aterrizás en Mi Dashboard
  2. Revisás el banner rojo (si hay tickets vencidos, atendelós primero)
  3. Revisás el grupo En Advertencia (naranja) — son los que están por vencerse
  4. Trabajás los tickets En Progreso
  5. Tomás tickets Pendientes según disponibilidad
  6. 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
Panel de supervisión de trámites y SLA
🖥 Escritorio Panel de supervisión de trámites y SLA
Panel de supervisión de trámites y SLA — móvil
📱 Móvil Panel de supervisión de trámites y SLA

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.

Dashboard de métricas del supervisor en desktop

Vista mobile:

Métricas del supervisor en celular

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.

Kanban agrupado por operador con semáforo SLA

Reasignar un ticket

  1. Abrís el detalle del ticket
  2. Clic en Reasignar
  3. Seleccionás el nuevo operador disponible
  4. 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
Portal de autogestión del profesional
🖥 Escritorio Portal de autogestión del profesional
Portal de autogestión del profesional — móvil
📱 Móvil Portal de autogestión del profesional

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/login permanece 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

  1. Ingresá a Mi cuenta → Cuotas y pagos.
  2. 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.
  3. Para pagar online, seleccioná la/s cuota/s que querés abonar (podés seleccionar varias a la vez).
  4. Hacé clic en Pagar deuda. Serás redirigido al checkout de la pasarela habilitada.
  5. Elegí el medio disponible en el proveedor: tarjeta, QR, billetera u otro instrumento configurado.
  6. 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).
  7. El recibo digital quedará disponible inmediatamente en Mi cuenta → Mis recibos.

2. Descargar recibos y comprobantes

  1. Ingresá a Mi cuenta → Mis recibos.
  2. Los recibos se muestran ordenados por fecha. Podés filtrar por año o período.
  3. 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.
  4. 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 con psicole.umdev.com.ar siguen funcionando, y el alias histórico /verificar/<código> redirige a /verify/<código> sin cambiar el código.

3. Solicitar un trámite

  1. Ingresá a Trámites → Nueva solicitud.
  2. 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").
  3. 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).
  4. Si el trámite tiene arancel, el sistema te solicitará el pago antes de confirmar la solicitud.
  5. Hacé clic en Enviar solicitud. Recibirás un número de expediente y un correo de confirmación.
  6. 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

  1. Ingresá a Cursos → Oferta de cursos.
  2. Explorá los cursos disponibles. Podés filtrar por modalidad, fecha o temática.
  3. Hacé clic en un curso para ver el detalle: descripción, programa, disertante, fechas, cupo disponible y arancel.
  4. Si querés inscribirte, hacé clic en Inscribirme.
  5. Si el curso es gratuito, la inscripción se confirma de inmediato.
  6. Si el curso es arancelado, el sistema te redirigirá a la pasarela habilitada. Una vez confirmado el pago, tu inscripción queda registrada.
  7. 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

  1. Ingresá a Mi cuenta → Mis datos.
  2. Podés actualizar: domicilio particular, domicilio profesional, teléfono de contacto y e-mail.
  3. Importante: algunos cambios (como el cambio de nombre por razones legales) requieren documentación respaldatoria y se procesan como un trámite formal.
  4. Guardá los cambios. Los datos actualizados se reflejan en los próximos certificados y constancias que solicites.

6. Pedir ayuda al Colegio

  1. Hacé clic en el signo ? visible dentro de PSICOLE.
  2. Para un colegiado o prestador se abre Soporte a Colegiados: describí la consulta y, si hace falta, adjuntá hasta cinco archivos.
  3. Al enviar se muestra un número de ticket. Podés seguirlo desde Mis reportes, agregar documentación y consultar la respuesta.
  4. 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

  1. Tu obra social requiere una constancia de matrícula vigente y de estar al día con las cuotas del Colegio.
  2. Ingresás a Mi cuenta → Cuotas y pagos: tenés 2 cuotas vencidas.
  3. Seleccionás ambas cuotas y pagás online con tu tarjeta a través de la pasarela habilitada.
  4. Una vez confirmado el pago, ingresás a Trámites → Nueva solicitud → "Constancia de matrícula vigente".
  5. Enviás la solicitud. En minutos recibís el PDF por e-mail y también está disponible en Trámites → Mis trámites.
  6. 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

  1. Ves publicado el curso "Neuropsicología Clínica" con solo 5 lugares disponibles.
  2. Ingresás a Cursos → Oferta de cursos, buscás el curso y hacés clic en Inscribirme.
  3. El curso tiene arancel de $5.000. Pagás con tu tarjeta a través de la pasarela habilitada.
  4. Recibís la confirmación: "Tu inscripción al curso Neuropsicología Clínica fue confirmada. Fecha de inicio: 15 de abril."
  5. 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
Portal de carga de órdenes de obra social
🖥 Escritorio Portal de carga de órdenes de obra social
Portal de carga de órdenes de obra social — móvil
📱 Móvil Portal de carga de órdenes de obra social

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.

  1. Ir a Mis Órdenes → Consultorio.
  2. Hacé clic en + Nuevo turno.
  3. Completá los datos:
  4. Paciente (autocomplete desde tu libreta — o ingresá el nombre libremente).
  5. Obra social (se autocompleta si el paciente tiene OOSS en la libreta).
  6. Fecha y hora, duración (default: 50 min), modalidad (Presencial / Virtual) y notas.
  7. 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.
  8. Exportá tu agenda a Google Calendar con el botón Exportar .ics (cabecera de la página).

2. Cargar órdenes de atención

  1. Ir a Mis Órdenes → Mis Órdenes+ Nueva Orden.
  2. El campo Paciente tiene autocomplete desde tu libreta: al seleccionar un paciente se auto-completan DNI, obra social y número de afiliado.
  3. 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).
  4. Adjuntá la orden física (JPG, PNG o PDF).
  5. 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.

  1. Ir a Configuración → Pacientes.
  2. Buscar por nombre, apellido o DNI (campo de búsqueda con resultados en tiempo real).
  3. Nuevo paciente → formulario con:
  4. Nombre, apellido, DNI.
  5. Obras sociales (podés agregar múltiples): obra social + Nº afiliado + plan (opcional).
  6. Datos de contacto: teléfono, email, fecha de nacimiento, dirección, notas.
  7. 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:

  1. 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."
  2. Hacé clic en Generar rendición.
  3. Revisá el resumen por obra social (cantidad de órdenes y subtotal por cada una).
  4. Hacé clic en Enviar rendición al Colegio.
  5. 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

  1. Ir a Liquidaciones.
  2. Cada liquidación muestra: período, estado, cantidad de órdenes, monto neto, factura y comprobante.
  3. 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.
  4. 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

  1. Ir a Configuración → Obras Sociales para ver y gestionar las obras sociales habilitadas.
  2. Ir a Configuración → Datos Bancarios para actualizar tu CBU de acreditación.
  3. 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

  1. Durante el mes cargaste los turnos en Consultorio.
  2. Al marcar cada turno como "Completado", el sistema te propone crear la orden de prestación con los datos pre-llenados.
  3. Al fin del mes ves el banner verde en Mis Órdenes: "Tenés 28 órdenes validadas listas para rendir."
  4. 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

  1. Ingresás al sistema por primera vez con historial de órdenes.
  2. En Configuración → Pacientes aparece un banner: "Importar pacientes desde tus órdenes históricas".
  3. Hacés clic en Ver preview — el sistema te muestra 35 pacientes únicos detectados en tus órdenes.
  4. 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

  1. El Colegio procesó tu liquidación de marzo 2026 por $99.750 neto.
  2. En Liquidaciones ves el aviso: "Factura pendiente de subir".
  3. Informás el número, fecha e importe y subís el PDF de la factura.
  4. El operador la revisa desde Facturas recibidas. La aprobación no ejecuta el pago ni envía mensajes.
  5. 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
Formulario de solicitud de matrícula
🖥 Escritorio Formulario de solicitud de matrícula
Formulario de solicitud de matrícula — móvil
📱 Móvil Formulario de solicitud de matrícula

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:

  1. Ingresá a https://psicole.app/registro.
  2. Completá el formulario de registro inicial:
  3. Nombre completo (tal como figura en tu DNI).
  4. Número de DNI.
  5. Número de CUIL.
  6. Correo electrónico (será tu medio de comunicación con el Colegio durante todo el proceso).
  7. Contraseña (mínimo 8 caracteres, al menos una mayúscula y un número).
  8. Recibirás un correo de verificación. Hacé clic en el link para activar tu cuenta.
  9. Una vez activada, ingresás con tu e-mail y contraseña.
  10. 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) PDF Impresión del sitio de AFIP
Certificado analítico de materias PDF 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

  1. Una vez completadas las secciones anteriores, el sistema mostrará el monto del arancel de inscripción.
  2. Hacé clic en Pagar arancel de inscripción para ser redirigido al checkout de la pasarela habilitada.
  3. Podés pagar con los medios que el proveedor tenga configurados para el Colegio.
  4. Una vez confirmado el pago, quedará registrado automáticamente en tu solicitud.

Envío final:

  1. Revisá que todas las secciones estén completas (el sistema señalará en rojo las incompletas).
  2. Hacé clic en Enviar solicitud. Recibirás un número de expediente y un correo de confirmación.

3. Hacer seguimiento de tu solicitud

  1. Ingresá al portal con tu e-mail y contraseña.
  2. En el dashboard verás el estado actual de tu expediente:
  3. Recibida: el Colegio recibió tu solicitud, está en cola de revisión.
  4. En revisión: un operador está verificando tu documentación.
  5. Documentación incompleta: el operador te solicita que corrijas o reenvíes algún documento. Recibirás un correo con el detalle.
  6. 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.
  7. 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:

  1. Recibirás un e-mail con el asunto: "Solicitud de corrección — Expediente N° XXXX".
  2. Ingresá al portal y en tu dashboard aparecerá un aviso naranja con el detalle de lo que debés corregir.
  3. Hacé clic en Ver solicitud de corrección para leer el mensaje del operador.
  4. Reemplazá el documento observado: hacé clic en Reenviar documento al lado del documento indicado y adjuntá el nuevo archivo.
  5. 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

  1. Te graduaste en marzo 2026 y querés matricularte.
  2. Ingresás a https://psicole.app/registro, creás tu cuenta y activás el e-mail.
  3. Completás el formulario: datos personales, datos de la UBA (tu universidad), subís los 5 documentos requeridos.
  4. Pagás el arancel de $12.000 con tu tarjeta de crédito.
  5. Enviás la solicitud. Recibís el correo: "Solicitud recibida — Expediente N° 2026-0847".
  6. A los 3 días hábiles, el operador detecta que el título subido está en baja resolución.
  7. Recibís el correo de corrección. Reescaneás el título a 300 DPI y lo reenvíás desde el portal.
  8. A los 2 días hábiles siguientes recibís: "Tu matrícula N° 5312 fue aprobada. Bienvenido/a al Colegio de Psicólogos."
  9. 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

  1. Enviaste la solicitud hace 10 días hábiles y no recibiste novedades.
  2. Ingresás al portal: el estado dice "En revisión". No hay alertas de corrección pendiente.
  3. Revisás si llegó algún correo a la carpeta de spam — no hay ninguno.
  4. Usás el botón Contactar área de Matrículas (disponible en tu dashboard) para enviar un mensaje interno al Colegio preguntando el estado.
  5. 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
Pantalla de inicio de sesión en PSICOLE
🖥 Escritorio Pantalla de inicio de sesión en PSICOLE
Pantalla de inicio de sesión en PSICOLE — móvil
📱 Móvil Pantalla de inicio de sesión en PSICOLE

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

  1. El usuario ingresa su email (normalizado a minúsculas) y contraseña en el formulario de login (POST /api/v1/auth/login).
  2. El sistema busca el usuario en la base de datos e incluye el rol con todos sus permisos y los módulos operador asignados.
  3. Si el usuario no existe o la contraseña no coincide (verificada con bcrypt.compare), devuelve 401 Credenciales inválidas sin revelar cuál campo es incorrecto.
  4. Si el usuario existe pero está inactivo (isActive = false), devuelve 403 Usuario inactivo.
  5. 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_tokens con fecha de expiración y ambos tokens se entregan al navegador en cookies httpOnly.
  6. Se actualiza lastLogin del usuario y se incrementan las métricas de Prometheus correspondientes.
  7. La respuesta conserva tokens en el cuerpo sólo por compatibilidad con clientes legados. El frontend vigente los ignora, usa withCredentials y guarda únicamente el objeto user para presentar la sesión.

Pantalla de login con campos email y contraseña

Renovación de token (Refresh)

  1. El cliente (frontend con Axios) detecta una respuesta 401 con el access token expirado.
  2. El interceptor de Axios llama automáticamente a POST /api/v1/auth/refresh; la cookie httpOnly viaja con withCredentials, sin leer el token desde JavaScript.
  3. El backend verifica firma, persistencia, vencimiento, revocación y estado del usuario.
  4. 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.
  5. 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

  1. El usuario hace clic en Cerrar Sesión en el menú de usuario.
  2. El frontend envía POST /api/v1/auth/logout con las cookies de sesión.
  3. El backend marca el refresh token como revocado y conserva su trazabilidad; repetir el logout no falla.
  4. El frontend borra el estado de autenticación en Zustand (authStore) y redirige al login.

Menú desplegable con opción Cerrar Sesión

Prueba asistida de usuario

  1. El operador autorizado navega a Usuarios → [usuario objetivo] → Iniciar Vista Como.
  2. El frontend llama a POST /api/v1/auth/impersonate/:userId.
  3. 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.
  4. Se genera un access token especial con isImpersonating, impersonatedBy, canWriteWhileImpersonating e impersonationMode. No se emite refresh token para esta sesión.
  5. El audit log registra la acción IMPERSONATE_USER con IP y User-Agent.
  6. El frontend muestra un banner visual de advertencia ("Estás viendo como [nombre del usuario]") durante toda la sesión.
  7. Las escrituras sólo se admiten donde la ruta y las capacidades del operador las autorizan. Las rutas protegidas con blockIfImpersonating() responden 403 read-only incluso durante una prueba asistida.
  8. 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 registra STOP_IMPERSONATION.

Banner de impersonación activo con nombre del usuario y botón Volver

Cambio de contraseña

  1. El usuario autenticado navega a Mi Perfil → Cambiar Contraseña.
  2. Ingresa la contraseña actual y la nueva contraseña (mínimo 8 caracteres).
  3. El sistema verifica la contraseña actual con bcrypt.compare antes de actualizar.
  4. 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.

Formulario de cambio de contraseña con validaciones

Recuperación de contraseña

  1. En el login, el usuario abre Olvidé mi contraseña e informa su email.
  2. PSICOLE responde siempre con el mismo mensaje, exista o no una cuenta activa, para evitar la enumeración de usuarios.
  3. Si la compuerta dedicada de correo y el destinatario están habilitados en producción, se envía un enlace a /reset-password válido por una hora.
  4. 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
email string (email) Normalizado a minúsculas; unicidad validada en DB
password string 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 Origin pueden 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.

Formulario multi-paso de solicitud de matrícula
🖥 Escritorio Formulario multi-paso de solicitud de matrícula
Formulario multi-paso de solicitud de matrícula — móvil
📱 Móvil Formulario multi-paso 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

  1. El aspirante accede a la URL pública de registro (/registro) e ingresa email, contraseña (mínimo 8 caracteres), nombre y apellido.
  2. El sistema crea el usuario con rol ASPIRANTE y la solicitud en estado DRAFT en paso 1.
  3. Se envía un email con un enlace de verificación válido por 24 horas.
  4. El aspirante hace clic en el enlace (GET /api/v1/enrollment-application/verify-email/:token).
  5. El sistema marca emailVerified = true y emite tokens de acceso (access + refresh) para que el aspirante continúe directamente al formulario.
  6. Si el enlace venció, el aspirante puede solicitar uno nuevo desde la pantalla de login con "Reenviar verificación".

Pantalla de registro con campos nombre, apellido, email y contraseña

Paso 1 — Datos personales

  1. 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).
  2. El sistema valida el dígito verificador del CUIT/CUIL con el algoritmo oficial argentino.
  3. Se verifica la unicidad de DNI y CUIT/CUIL contra todos los usuarios existentes.
  4. El aspirante puede declarar el tipo de solicitud: PROVISORIA (título en trámite de legalización) o DEFINITIVA (título ya legalizado).
  5. Al guardar, el paso avanza a 2 y los datos quedan persistidos aunque el aspirante cierre la sesión.

Formulario de datos personales con validación de CUIT en tiempo real

Paso 2 — Datos académicos

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

Formulario de datos académicos con selector de especialidades

Paso 3 — Carga de documentos

  1. El aspirante sube los archivos requeridos. Formatos aceptados: PDF, JPEG, PNG. Tamaño máximo operativo compartido: 13 MB por archivo.
  2. Documentos obligatorios (sin estos no se puede enviar la solicitud):
    • DNI_FRONT — Frente del DNI
    • DNI_BACK — Dorso del DNI
    • UNIVERSITY_DEGREE — Título universitario o constancia de tramitación
    • ACADEMIC_TRANSCRIPT — Analítico de materias aprobadas
  3. Documentos opcionales:
    • CRIMINAL_RECORD — Certificado de antecedentes penales
    • GOOD_CONDUCT — Certificado de buena conducta
    • PHOTO — Foto tipo carnet
    • OTHER — Documentación adicional
  4. Cada documento subido queda asociado a la solicitud con su tipo, nombre original, tamaño y fecha de carga.
  5. La pantalla muestra el estado de cada documento requerido (subido / pendiente) y resalta los faltantes.

Panel de carga de documentos con indicadores de estado por tipo

Paso 4 — Declaración jurada y consentimiento

  1. El sistema muestra el texto vigente de la declaración jurada de veracidad de datos y la política de privacidad.
  2. El aspirante debe tildar explícitamente los checkboxes de aceptación antes de continuar.
  3. 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.

Pantalla de declaración jurada con checkboxes de consentimiento

Paso 5 — Pago del arancel y envío

  1. 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).
  2. El aspirante puede abonar online mediante la pasarela habilitada o presencialmente; en ese caso un operador confirmará el pago manualmente.
  3. Una vez confirmado el pago, el estado de la solicitud cambia a PENDING_REVIEW y el aspirante recibe un email de confirmación con el número de solicitud.
  4. La solicitud queda disponible en la bandeja de trabajo de los operadores de matrículas.

Resumen final de la solicitud con monto del arancel y opciones de pago

Consulta de estado (vista del aspirante)

  1. El aspirante autenticado accede a Mi Solicitud desde su panel.
  2. 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.
  3. Si el estado es REQUIRES_CHANGES, puede ver las observaciones del operador y subir los documentos corregidos.

Vista de seguimiento de solicitud con timeline de estados

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
email string (email) Único en el sistema; usado como credencial de acceso
password string Mínimo 8 caracteres
firstName string Nombre del aspirante
lastName string 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 y revisión de solicitudes de matrícula
🖥 Escritorio Gestión y revisión de solicitudes de matrícula
Gestión y revisión de solicitudes de matrícula — móvil
📱 Móvil Gestión y revisión de solicitudes de matrícula

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)

  1. El operador accede a Matrículas → Solicitudes Pendientes. La bandeja muestra todas las solicitudes en estado PENDING_REVIEW y UNDER_REVIEW, ordenadas por fecha de envío.
  2. Cada fila muestra: número de solicitud, nombre del aspirante, tipo de solicitud (PROVISORIA / DEFINITIVA), fecha de envío y días transcurridos.
  3. 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.
  4. 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.
  5. Si toma la solicitud para revisión, el estado cambia a UNDER_REVIEW y queda asociada a ese operador.
  6. El operador visualiza cada documento en el visor integrado (PDF inline o previsualización de imagen).

Bandeja de solicitudes pendientes con filtros por estado y tipo

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.

Solicitudes de matrícula en escritorio

Solicitudes de matrícula en celular

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)

  1. Luego de revisar la documentación, el operador hace clic en Aprobar Internamente.
  2. El sistema genera automáticamente un número de matrícula provisoria (provisionalNumber) con formato correlativo.
  3. El estado de la solicitud pasa a INTERNALLY_APPROVED y el estado del profesional a PROVISIONAL.
  4. 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.
  5. El operador descarga el PDF ministerial para presentarlo ante el organismo correspondiente.
  6. Se envía un email al aspirante notificando que su solicitud fue aprobada internamente y que se encuentra en trámite ante el Ministerio.

Modal de aprobación interna con vista previa del PDF ministerial

Solicitud de correcciones

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

Formulario de solicitud de correcciones con campo de observaciones

Rechazo de solicitud

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

Modal de rechazo con campo de motivo obligatorio

Aprobación definitiva — Matrícula Definitiva (Fase 2 — respuesta del Ministerio)

  1. Una vez recibida la resolución ministerial de aprobación, el operador registra la respuesta en el sistema.
  2. Ingresa el número de matrícula definitivo asignado por el Ministerio de Salud.
  3. El sistema actualiza el estado de la solicitud a APPROVED y el estado del profesional a APPROVED.
  4. 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.
  5. El profesional recibe un email con el enlace para descargar su credencial y con acceso a su portal de colegiado.
  6. El rol del usuario cambia de ASPIRANTE a COLEGIADO y se habilita su acceso completo al sistema.

Pantalla de aprobación definitiva con campo de número ministerial y previsualización de credencial

Verificación pública de credencial (QR)

  1. Cualquier persona puede escanear el QR de la credencial del profesional con su teléfono.
  2. Es redirigido a la URL pública {FRONTEND_URL}/verificar/{qrCode} (no requiere autenticación).
  3. 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.

Página pública de verificación de credencial con datos del profesional

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

  1. El operador accede a Matrículas → Profesionales para ver el padrón completo.
  2. 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.
  3. 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.

Ficha del profesional con panel de acciones y historial de estados

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.

Profesionales en escritorio

Profesionales en celular

Aprobación de solicitudes de modificación de datos

  1. 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.
  2. El operador revisa los datos actuales vs. los datos propuestos.
  3. Puede aprobar (los datos se actualizan en el sistema) o rechazar con un comentario.
  4. El colegiado recibe un email con la resolución.

Vista comparativa de datos actuales vs. propuestos en una solicitud de modificació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).

  1. 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.
  2. 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.
  3. Si existe la solicitud correspondiente, el archivo se asocia a ese trámite; si no existe, puede quedar como documento privado OTHER del profesional con el origen histórico claramente indicado.
  4. 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.
  5. 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

Panel administrativo de renovación de matrícula

El colegiado debe:

  1. Leer el texto vigente de la Declaración Jurada.
  2. Marcar el checkbox "Leí y acepto la Declaración Jurada".
  3. 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

Panel administrativo de renovación de matrícula

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).

Panel administrativo con lista de solicitudes de renovación y estadísticas

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:

Panel de detalle con datos de la solicitud y botones de acción

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

  1. Abrir la renovación desde Matrículas → Renovaciones de Matrícula.
  2. Revisar cada archivo digital existente y marcarlo como aprobado u observado.
  3. Si faltan archivos porque los originales se presentaron en sede, elegir Constatar originales presenciales.
  4. Describir qué originales se comprobaron, dónde y cuándo; agregar una referencia de expediente, libro o ticket cuando exista.
  5. Confirmar la declaración con el usuario operador.
  6. 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).

Panel de débito automático administrativo con estadísticas y lista de adhesiones

Vista en dispositivo móvil:

Panel de débito automático en celular

Adherirse al débito automático

  1. Ingresar en "Mi Cuenta → Débito Automático".
  2. Hacer clic en "Solicitar adhesión".
  3. Completar el formulario:
Campo Requerido Descripción
CBU 22 dígitos. Se valida el dígito verificador automáticamente
Titular de la cuenta Nombre exacto del titular tal como figura en el banco
Banco Selección del banco correspondiente al CBU
  1. Confirmar los datos y enviar.
  2. 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).

Panel administrativo con lista de adhesiones al débito automático

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:

  1. Revisar adhesiones CBU / COELSA activas con cuenta verificada.
  2. Confirmar que las cuotas del periodo ya fueron generadas y estan pendientes o vencidas.
  3. Crear el lote del período manualmente o revisar el lote creado por la tarea programada.
  4. Revisar cantidad de transacciones y total del lote antes de descargar.
  5. Descargar el archivo COELSA desde Lotes de Débito.
  6. Enviar el archivo al banco por el canal operativo acordado.
  7. Cargar la devolución del banco.
  8. 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

  1. Colegiado solicita adhesión → estado PENDING.
  2. Operador descarga el archivo de adhesiones pendientes para el banco.
  3. Banco procesa el archivo.
  4. Operador recibe confirmación del banco.
  5. Operador activa las adhesiones en PSICOLE → estado ACTIVE.
  6. 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.

Operaciones de dinero con trazabilidad única
🖥 Escritorio Operaciones de dinero con trazabilidad única
Operaciones de dinero con trazabilidad única — móvil
📱 Móvil Operaciones de dinero con trazabilidad única

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 de operaciones de dinero con filtros y submódulos

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.

Operaciones de dinero en escritorio

Operaciones de dinero en celular


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

  1. Un pago queda aprobado y se materializa operación, pago y recibo.
  2. PSICOLE encola un trabajo AfipInvoiceJob asociado al recibo o pago correspondiente.
  3. La tarea programada o el botón Procesar AFIP toma trabajos QUEUED.
  4. Si AFIP está configurado y disponible, el trabajo intenta obtener autorización fiscal.
  5. Si falta configuración o AFIP no responde, el trabajo queda en reintento o FAILED con error visible.
  6. 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.

Panel de operaciones de dinero


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.

  1. Definir el valor vigente. El administrador valida que CUOTA_MENSUAL este 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 de MONTHLY_FEE_TARIFF_POLICY.
  2. 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.
  3. Ejecutar el RUN mensual. La generacion crea una deuda por profesional, periodo y tipo. Esa deuda queda con amount, discount y finalAmount; tambien se registra el cargo en cuenta corriente. Esta accion no representa dinero cobrado todavia.
  4. 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.finalAmount como importe a debitar. Las tarjetas no entran al archivo COELSA.
  5. 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_STRICT requiere 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 75 registros 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, marker e idempotencyKey para 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, BLOCKED o EXCLUDED. No crea PaymentOperation, no emite recibos y no cambia Debt.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 PaymentOperation aprobadas por re-runs anteriores pueden cerrar un evento como ALREADY_CLOSED si existe evidencia unica por periodo, archivo, referencia y monto. Si hay ambiguedad, el evento queda BLOCKED.
  • En la pantalla, Eventos tratados incluye tambien los EXCLUDED. La tasa de exito se calcula sobre eventos elegibles, es decir, tratados menos excluidos. Pendiente auditable corresponde 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:

  • --apply en este script significa aplicar fuentes y decisiones auditables al RUN mensual. No crea PaymentOperation, 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_MISSING queda 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 PAY trazable, 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 PAID con 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 en REVIEW no 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 PAY en 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 APPROVED o ACTIVE con 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:

  1. Abrir https://psicole.colegiopsimza.org.ar/admin/dinero/operaciones?tool=planes.
  2. Dejar Estado y Tipo en todos para ver los planes reales completos.
  3. Elegir Estado de cuotas -> Con atraso para aislar planes activos demorados.
  4. Abrir un plan para contrastar cuotas pagadas, abiertas, importe y vencimiento más antiguo.
  5. Exportar el listado filtrado cuando Tesorería necesite seguimiento. La exportación incluye cuotas pagadas, pendientes, vencidas y próximo vencimiento.
  6. 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.

  1. En Cobro de Cuotas, buscar al profesional y elegir Solicitar descuento por pago único.
  2. Informar monto y fundamento. La solicitud queda PENDING y todavía no cambia deuda, cuenta corriente ni recibos.
  3. Otra persona con autoridad FINANCE_WRITE revisa y aprueba o rechaza. El solicitante no puede autoaprobar.
  4. 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 medio CASH permanece 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.

  1. Buscar al profesional por nombre, DNI o matrícula y abrir su ficha.
  2. Entrar en Planes para consultar acuerdos activos e históricos.
  3. Revisar Planes activos, Con atraso, avance pagado/total y cantidad de históricos.
  4. En cada acuerdo, contrastar estado administrativo, salud operativa, importe acordado, total pagado, próximo vencimiento y detalle de cuotas.
  5. Volver a Cuenta Corriente para contrastar las obligaciones ordinarias, recibos y operaciones PAY vinculadas.

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:

  1. En Profesionales, filtrar beneficios vencidos o en revision para detectar reglas que no deben impactar mayo/junio.
  2. En Dinero, revisar Planilla pagada sin operacion para separar cuotas canceladas por fuente externa de pagos ya materializados.
  3. En Dinero, revisar Conceptos externos esperados y Conceptos externos en revision antes de aceptar nuevos autos del preview.
  4. 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.
  5. Abrir cada operacion PAY materializada 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.
  6. Ejecutar el re-run como PREVIEW y 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:

  1. Entrar a Dinero -> Operaciones.
  2. Abrir la ficha de la operacion PAY aprobada.
  3. En la seccion Trazabilidad, usar Vincular extracto.
  4. Informar el UUID del movimiento bancario pendiente y una nota de aprobacion.
  5. Confirmar solo si el importe, signo y movimiento corresponden a la operacion.

Validaciones del sistema:

  • La operacion debe estar APPROVED o RECONCILED, 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 queda MANUAL_MATCHED y 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:

  1. Buscar al profesional.
  2. Abrir la acción de cobro/caja desde la fila o ficha.
  3. 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_CENTRAL del operador.
  4. Registrar el pago.
  5. 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.

Single de operación con trazabilidad y eventos

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:

  1. Aplicar los filtros necesarios en Dinero → Operaciones.
  2. Revisar el total de resultados.
  3. Si el total supera 10.000, acotar período u otros filtros antes de exportar.
  4. Exportar a Excel o CSV.
  5. 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 deuda y Sin 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 Aplicado no 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í:

  1. El usuario inicia un pago desde Pagar deuda.
  2. La pasarela crea una solicitud externa con referencia única.
  3. PSICOLE registra o actualiza la operación PAY.
  4. Cuando la pasarela aprueba, PSICOLE materializa pago, recibo y eventos.
  5. Luego la pasarela liquida el dinero en una cuenta bancaria.
  6. 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.
Módulo de cobro de cuotas y finanzas
🖥 Escritorio Módulo de cobro de cuotas y finanzas
Módulo de cobro de cuotas y finanzas — móvil
📱 Móvil Módulo de cobro de cuotas y finanzas

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 REC y es el documento autoritativo.
  • Caja, transferencias y pasarelas deben conciliarse sin duplicar ingresos.
  • Los estados se muestran en español amable.

Listado financiero con deudas y pagos


Cobranza

La cobranza permite registrar pagos manuales o revisar obligaciones pendientes. Cuando se registra un cobro:

  1. Se selecciona profesional y deuda.
  2. Se informa canal: efectivo, transferencia, caja, débito, NAVE u otro.
  3. Se valida que no exista una operación equivalente.
  4. Se crea la operación de dinero.
  5. Se emite recibo cuando corresponde.

Registro de pago financiero


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

  1. Abrir una sesión de caja con responsable, caja física y saldo inicial.
  2. Registrar ingresos o egresos indicando concepto, importe, medio y profesional cuando corresponda.
  3. Imputar pagos contra deudas abiertas o dejar el movimiento como operación de caja identificada.
  4. Emitir recibo cuando el movimiento documenta un cobro.
  5. 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

Registro de pago financiero

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:

  1. Operaciones internas de PSICOLE.
  2. Liquidaciones de pasarelas o lotes de débito.
  3. 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

  1. Elegir período o rango de fechas.
  2. Seleccionar vista: recaudación, métodos de pago, evolución mensual, caja o balance.
  3. Revisar totales y desgloses.
  4. Comparar contra caja, pasarelas y conciliación cuando haya diferencias.
  5. 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
Pendiente vencida Saldo positivo, fuera de plan y vencimiento pasado
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

  1. En Reportes, seleccionar el mes y anotar cobros externos, obligaciones y total abierto.
  2. En Operaciones → Cuotas, comprobar que pendientes directas más cuotas en plan coincidan con la posición global del libro.
  3. En Profesionales, comprobar que la cantidad de profesionales y la deuda abierta correspondan al padrón facturable, no a la cartera histórica.
  4. 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.
  5. 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.
  6. Ejecutar el certificado de verdad financiera para los períodos revisados y conservar certification.json como 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 PASS sólo si todos los invariantes pasan, los hashes coinciden y sideEffectDelta es 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.

Reporte financiero consistente en escritorio

Reporte financiero consistente en celular

Listado financiero con deudas y pagos

Panel de pagos online del colegiado
🖥 Escritorio Panel de pagos online del colegiado
Panel de pagos online del colegiado — móvil
📱 Móvil Panel de pagos online del colegiado

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

  1. El usuario ingresa a Pagar deuda.
  2. Selecciona una o más cuotas, cursos, trámites u obligaciones pendientes.
  3. Confirma el total.
  4. PSICOLE crea una solicitud en la pasarela habilitada.
  5. El usuario completa el pago en el checkout externo.
  6. Al volver o al refrescar estado, PSICOLE consulta la pasarela.
  7. Si el pago fue aprobado, se materializan operación, pago, recibo y eventos de auditoría.

Selección de deuda y confirmación de pago

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.

Pagos en escritorio

Pagos en celular


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-NNNNNN cuando 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 y matching de pagos
🖥 Escritorio Conciliación bancaria y matching de pagos
Conciliación bancaria y matching de pagos — móvil
📱 Móvil Conciliación bancaria y matching de pagos

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

  1. Ir a Finanzas → Conciliación Bancaria → Nueva Sesión.
  2. Seleccionar el banco de origen en el desplegable (ej. Banco Nación, Santander, Galicia).
  3. Hacer clic en Subir Archivo y seleccionar el archivo .csv o .xlsx exportado desde el homebanking.
  4. El sistema valida el formato del archivo; si hay errores de estructura, se muestra el detalle de las filas con problemas.
  5. Confirmar el período del extracto (fecha desde / fecha hasta) y hacer clic en Importar.
  6. El sistema crea la sesión de conciliación con estado ABIERTA y lista todas las transacciones importadas.

Pantalla de carga de archivo con preview de primeras 5 filas del extracto

2. Matching automático

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

Resultado del matching automático con barra de progreso y estadísticas

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 finalAmount de 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:

  1. Identidad oficial fuerte.
  2. Deuda mensual PENDING del periodo y monto compatible.
  3. Una unica BankTransaction exacta por referencia, CBU, credito aceptado, importe y estado PENDING.
  4. Marker de SANDBOX e idempotency key por deuda + transaccion bancaria.
  5. 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:

  1. Declarar fuentes primarias y auxiliares del periodo.
  2. Registrar hash, cantidad y monto por archivo o fuente.
  3. Ejecutar una simulacion PREVIEW sobre fuentes registradas ya procesadas, incluyendo auxiliares como extractos Galicia.
  4. Clasificar eventos en AUTO_APPLY_STRICT, ALREADY_CLOSED, MANUAL_REVIEW, BLOCKED o EXCLUDED.
  5. Medir tasa de exito por eventos y por monto, separando evidencia auxiliar del denominador.
  6. 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:

  1. Seleccionar el periodo mensual.
  2. Crear un RUN en modo PREVIEW.
  3. Registrar los extractos procesados del periodo como fuentes del RUN.
  4. Usar Simular PREVIEW para generar decisiones auditadas sin aplicar pagos.
  5. Recalcular metricas para ver fuentes, eventos tratados, monto aplicado/cerrado, cola manual y bloqueos.
  6. 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:

  1. Revisar que el RUN elegido incluya el conjunto final de extractos, lotes y fuentes del período.
  2. Pulsar Usar como operativo y documentar el criterio en una nota de al menos 20 caracteres.
  3. El RUN elegido queda identificado con la insignia RUN operativo.
  4. Los previews DRAFT o PREVIEWED anteriores pasan a CANCELLED como históricos de sólo lectura. No se borran fuentes, decisiones ni métricas.
  5. 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:

  1. Inventariar las fuentes con nombre, rol, período, cantidad de eventos y SHA-256. Marcar salidas derivadas como EXCLUDED; nunca reingestarlas.
  2. Guardar un snapshot recuperable y conteos de deudas, pagos, operaciones, recibos, saldos, matches, facturas y comunicaciones.
  3. Elegir un baseline y congelar su universo por period + eventKey y por extracto procesado. Un archivo nuevo exige un baseline nuevo; no se compara como si fuera la misma prueba.
  4. Ejecutar únicamente PREVIEW. Comparar cada transición de estado y cualquier cambio de profesional.
  5. Desglosar cada AUTO_APPLY_STRICT por regla: deuda exacta, CBU 20%, tarjeta 30%, ajuste de aumento u otra regla aprobada. Un match sin regla atribuible no certifica.
  6. Auditar los ALREADY_CLOSED: operación, pago, deuda, recibo, reversas, medio y asignación total del importe.
  7. Repetir los conteos. Fuera de RUN, fuentes y decisiones, la diferencia debe ser cero.
  8. 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:

  1. Generar un plan read-only con repair:payment-plan-debt-status para el entorno y períodos correctos.
  2. Exigir cero filas bloqueadas y revisar profesional, deuda, plan, cuota pagada y operación aprobada de cada fila.
  3. Aplicar únicamente el archivo congelado, con su SHA-256 y cantidad exacta autorizada, manteniendo correos, scheduler y pagos online deshabilitados.
  4. Repetir el mismo apply: debe informar cero actualizaciones nuevas y todos los casos como ya aplicados.
  5. 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,56 quedó 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 apply devolvió los 62 casos como alreadyApplied, 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:

  1. Hacer backup de base y artefactos, con SHA-256 y ruta de rollback.
  2. Ejecutar el plan de fuentes y descuentos sin --apply; debe informar cero cambios no explicados.
  3. Ejecutar la auditoría estricta; criticalTotal debe ser cero.
  4. Repetir dos PREVIEW por cada RUN operativo y exigir hashes iguales y economicStateStable=true.
  5. Desplegar backend y frontend sin ejecutar generación de cuotas, matching económico ni envío de lotes.
  6. Repetir auditoría, hashes, healthcheck, logs y prueba visual escritorio/móvil.
  7. 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:

  1. Entrar a Dinero -> Operaciones -> Conciliacion -> RUN mensual.
  2. Seleccionar el periodo, por ejemplo 2026-06.
  3. Elegir el RUN del historial, por ejemplo MRC-2026-06-A0C2CA4F.
  4. En Decisiones auditadas, cambiar el filtro a Bloqueadas.
  5. Usar Exportar CSV para descargar el listado completo del filtro activo, no solo los primeros eventos visibles. El archivo incluye operationalRoute, operationalBucket y operationalDisposition para depurar por naturaleza del movimiento.
  6. 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 dice Multiples operaciones aprobadas compatibles, requiere desempate humano antes de cerrar.
  7. 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

  1. En la sesión, filtrar por estado PENDIENTE para ver las transacciones sin match automático.
  2. Seleccionar una transacción del extracto; el panel derecho mostrará los pagos candidatos sugeridos por similitud.
  3. 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.
  4. Si el importe no coincide, usar la opción que corresponda dentro de la misma fila:
  5. Aplicar + saldo: cancela la deuda y registra el excedente como saldo a favor disponible.
  6. Pago parcial: aplica el ingreso a una sola deuda y conserva el remanente pendiente.
  7. Ignorar / Excluir: excluye la transacción cuando no corresponde a un profesional.
  8. Las diferencias requieren una nota de aprobación de al menos 10 caracteres.
  9. 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:

  1. Abrir el movimiento desde el RUN operativo del mes y comprobar período, titular, profesional y matrícula.
  2. 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.
  3. Si la evidencia es correcta, pulsar Aplicar 20% o Aplicar 30% e ingresar una nota de al menos 10 caracteres.
  4. 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.
  5. 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:

  1. Abrir el movimiento desde el RUN del período y verificar titular, DNI/CUIT, matrícula e importe.
  2. Revisar la evidencia del rechazo: fecha, medio, código o motivo y fuente primaria.
  3. Confirmar que Base, descuento a revertir y deuda exigible correspondan a una única cuota.
  4. Pulsar Aplicar cuota completa e ingresar una nota que explique el rechazo y la transferencia posterior.
  5. Verificar la operación PAY, el recibo, la cuota PAID y 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.

  1. Abrir el movimiento desde Dinero -> Operaciones -> Conciliación -> RUN mensual -> Manual -> Abrir matching.
  2. 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.
  3. 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.
  4. Pulsar Registrar pago anticipado y confirmar que el ingreso no sea un duplicado ni un reintegro. La nota de aprobación es obligatoria.
  5. El movimiento queda MANUAL_MATCHED, la decisión del RUN queda ALREADY_CLOSED y se crea un Saldo a favor abierto por el importe total recibido.
  6. 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, eventUniverseHash y decisionHash. 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, MOCK o SYNTHETIC;
  • 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 PRIMARY o AUXILIARY NORMALIZED para 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_manifest y safeForSimulation=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:

  1. Actualizar la fila y verificar que desaparezca el bloqueo de fuente.
  2. Revisar profesional, deuda, regla de descuento e importe.
  3. Aplicar Match, Aplicar + saldo o Pago parcial según el hecho económico.
  4. 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.

Ubicación del RUN mensual auditable en escritorio

RUN mensual auditable en vista móvil

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:

  1. Trabajar un periodo por vez desde RUN mensual -> Manual -> Abrir matching.
  2. Confirmar identidad por DNI, matricula, CBU o nombre completo consistente; nunca por monto aislado.
  3. Elegir la deuda o las deudas efectivamente cubiertas. Para una diferencia, usar Aplicar + saldo o Pago parcial con nota.
  4. Registrar como ruido todo egreso, liquidacion institucional, gasto interno o movimiento ajeno a un colegiado.
  5. Recalcular el PREVIEW y verificar que el movimiento resuelto pase a cerrado y que futuros movimientos comparables mejoren su candidato.
  6. 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:

  1. La deuda recibe sólo el importe que la cancela.
  2. El excedente se registra como Saldo a favor, con monto original y disponible, vinculado a banco, PAY, pago a cuenta y recibo.
  3. 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.
  4. El saldo queda visible en Cuenta Corriente del perfil administrativo y del profesional.
  5. 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:

  1. El movimiento bancario que originó el excedente permanece cerrado en su mes de origen.
  2. El saldo disponible permanece en la cuenta corriente hasta que exista una aplicación aprobada.
  3. Si la cuota del mes siguiente ya está pagada, no se modifica y el saldo continúa disponible.
  4. Si existe una deuda abierta, el operador puede aplicarle hasta el menor valor entre saldo disponible y deuda.
  5. 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.

Panel de matching manual con transacción a la izquierda y candidatos de pago a la derecha

4. Cerrar sesión de conciliación

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

Pantalla de resumen de cierre de sesión con totales y botón de confirmación

5. Consultar auditoría

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

Log de auditoría con columnas de usuario, fecha, acción y justificación

Campos y validaciones

Campo Tipo Requerido Descripción
Banco Selección Entidad bancaria del extracto importado
Archivo Archivo (.csv/.xlsx) Extracto exportado desde homebanking
Fecha desde Fecha Inicio del período del extracto
Fecha hasta Fecha Fin del período del extracto
Justificación (match manual) Texto libre 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, pacientes y agenda del profesional
🖥 Escritorio Consultorio, pacientes y agenda del profesional
Consultorio, pacientes y agenda del profesional — móvil
📱 Móvil Consultorio, pacientes y agenda del profesional

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.

Dashboard del consultorio con estado activo, turnos y pacientes


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

  1. Crear o elegir paciente.
  2. Agendar turno con fecha, hora, modalidad y notas internas.
  3. Configurar recordatorios y, si corresponde, exportar agenda .ics.
  4. Completar sesión.
  5. Generar orden de obra social o cobro particular.

Agenda de turnos del consultorio y acceso a pacientes


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

  1. Ir a Cursos → Gestión de Cursos (/admin/courses) y usar Nuevo Curso.
  2. 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).
  3. En la sección Encuentros, agregar cada sesión con fecha, hora, duración y aula o link de videoconferencia.
  4. En Prerequisitos, seleccionar los cursos previos requeridos y/o marcar si se requiere matrícula activa.
  5. En Aranceles, configurar si el pago es único o en cuotas, ingresando monto, cantidad de cuotas y fecha de cada vencimiento.
  6. En Materiales, subir los archivos que serán accesibles a los inscriptos (PDF, video, enlace externo).
  7. Hacer clic en Guardar como Borrador o Publicar para que quede visible en el catálogo del colegiado.

Formulario de alta de curso con secciones colapsables

2. Gestionar inscripciones

  1. Ir a Cursos → Gestión de Cursos (/admin/courses) y abrir el curso correspondiente.
  2. La lista muestra todos los inscriptos con estado (Confirmado, Pendiente de Pago, Lista de Espera, Baja).
  3. Para inscribir manualmente a un colegiado: clic en Agregar Inscripto, buscar por apellido o número de matrícula, seleccionar y confirmar.
  4. El sistema verifica automáticamente los prerequisitos y rechaza la inscripción si no se cumplen, indicando el motivo.
  5. Si el cupo está completo, el sistema ofrece agregar al interesado a la lista de espera.
  6. Para dar de baja a un inscripto: seleccionarlo, clic en Dar de Baja, indicar el motivo y si aplica reembolso.

Lista de inscriptos con filtros de estado y botón de agregar

3. Administrar lista de espera

  1. En la pestaña Lista de Espera del curso, se visualizan los interesados en orden de anotación (posición 1, 2, 3…).
  2. 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.
  3. El interesado tiene un plazo configurable (por defecto 48 horas) para confirmar su inscripción y abonar.
  4. Si no confirma en el plazo, pasa al final de la lista y se notifica al siguiente.
  5. El operador puede mover manualmente a un interesado dentro de la lista ingresando justificación.

Vista de lista de espera con posición, fecha de anotación y estado de notificación

4. Registrar asistencia

  1. En Cursos → Gestión de Cursos (/admin/courses), abrir el curso y seleccionar Asistencia para el encuentro del día.
  2. La lista muestra todos los inscriptos confirmados con checkbox de presente/ausente.
  3. Marcar la asistencia y hacer clic en Guardar Asistencia.
  4. El sistema calcula automáticamente el porcentaje de asistencia acumulado de cada participante.
  5. Al alcanzar la asistencia mínima configurada (ej. 75%), el participante queda habilitado para recibir su certificado.

Planilla de asistencia con porcentaje acumulado por participante

5. Emitir certificados digitales con QR

  1. Ir a Cursos → Gestión de Cursos (/admin/courses), abrir el curso y seleccionar Certificados.
  2. El sistema lista los participantes que cumplen los requisitos de asistencia y pago.
  3. Hacer clic en Emitir Certificados para procesarlos en lote, o en Emitir en la fila de un participante específico.
  4. 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.
  5. El QR apunta a una URL pública de verificación donde cualquier persona puede confirmar la autenticidad del certificado.
  6. El certificado queda disponible en el portal de autogestión del colegiado para su descarga.

Certificado generado con diseño institucional y código QR visible

6. Cargar y gestionar materiales

  1. En Cursos → Gestión de Cursos (/admin/courses), abrir el curso y seleccionar Materiales.
  2. Elegir el tipo: archivo subido (PDF, DOCX, PPTX, video) o enlace externo.
  3. Ingresar el nombre del material y, opcionalmente, el número de encuentro al que corresponde.
  4. Configurar la visibilidad: Libre (visible antes de inscribirse) o Solo Inscriptos.
  5. Los inscriptos confirmados con pago al día pueden descargar los materiales desde su portal de autogestión.

Listado de materiales de un curso con tipo, visibilidad y acciones

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.

Detalle de curso con acción de desinscripción

Campos y validaciones

Campo Tipo Requerido Descripción
Nombre del curso Texto (máx. 200 car.) Nombre público que aparece en el catálogo
Modalidad Selección Presencial, Virtual o Híbrido
Cupo máximo Entero positivo 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 Porcentaje requerido para certificar (por defecto 75)
Prerequisitos Múltiple selección No Cursos previos requeridos
Fecha de inicio Fecha No puede ser anterior a la fecha de publicación
Fecha de fin Fecha 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.

Portal de prestadores y órdenes de obra social
🖥 Escritorio Portal de prestadores y órdenes de obra social
Portal de prestadores y órdenes de obra social — móvil
📱 Móvil Portal de prestadores y órdenes de obra social

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:

  1. Hacé clic en + Nuevo turno.
  2. Seleccioná el paciente con autocomplete desde la libreta (o ingresá el nombre libremente).
  3. Completá fecha y hora, duración (default 50 min), modalidad (Presencial / Virtual) y notas.
  4. Si el paciente tiene obras sociales en la libreta, el campo OOSS se muestra automáticamente.
  5. 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:

  1. 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.
  2. Si el resultado es correcto, hacé clic en Confirmar importación.
  3. 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

  1. Ir a Mis Órdenes → + Nueva Orden.
  2. Campo Paciente con autocomplete desde la libreta.
  3. Completar datos clínicos: fecha, sesiones, diagnóstico, tratamiento, adjunto (JPG/PNG/PDF).
  4. 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:

  1. Hacer clic en Generar rendición.
  2. Revisar el resumen por obra social: cantidad de órdenes y subtotal por cada una.
  3. Hacer clic en Enviar rendición al Colegio.
  4. Esperar a que el Colegio genere la liquidación con el neto definitivo.
  5. 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.

  1. Tabla de rendiciones pendientes con: prestador, período, cantidad de órdenes, monto, fecha de envío y link a la factura.
  2. Acciones por rendición:
  3. Aprobar — cambia estado a APROBADA y dispara el proceso de liquidación.
  4. Observar — abre un modal para ingresar una nota; el prestador ve la observación en su portal.
  5. 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.

  1. Abrir el detalle de la orden y elegir Corregir.
  2. 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.
  3. Ajustar cantidad o precio. El sistema recalcula cantidad × valor unitario; el total no se edita como un campo independiente.
  4. Escribir el motivo y guardar.
  5. Si la orden estaba VALIDATED o SUBMITTED, vuelve a OBSERVED para que un operador la valide otra vez. Una orden OBSERVED vuelve a PENDING.

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.

Panel de prestadores operador en escritorio

Panel de prestadores operador en celular


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_invoices y 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:

  1. Los reportes de débito automático y tarjeta son cobranzas entrantes de cuotas colegiales. No prueban una transferencia al prestador.
  2. El archivo de transferencias bancarias es una instrucción. No prueba que el banco la haya ejecutado.
  3. 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.
  4. El cierre operativo exige liquidación canónica, factura vinculada y aprobada, movimiento bancario persistido y operación PAY aprobada 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:

  1. Abrir Prestadores → Liquidaciones de pagos y seleccionar el período.
  2. Buscar al prestador por matrícula o nombre y comparar el neto con el CSV de revisión.
  3. Si falta la liquidación, reconstruirla sólo desde órdenes y lote aprobados.
  4. Si el importe difiere, revisar la fuente que declara rechazos o ajustes. La diferencia no se etiqueta automáticamente como rechazo OOSS.
  5. Revisar la factura en Facturas recibidas o en Profesionales → perfil → Prestador.
  6. 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:

  1. lote y factura institucional de la Obra Social;
  2. crédito acreditado en los extractos Galicia del Colegio;
  3. liquidaciones y facturas recibidas de prestadores;
  4. 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:

  1. importe de cada orden afectada;
  2. bruto aceptado del lote;
  3. comisión del Colegio;
  4. neto de cada liquidación;
  5. 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:

  • 600 líneas con número de orden son candidatas nuevas y 1 línea ya está representada inequívocamente;
  • 108 líneas sin número tienen afiliado y firma económica únicos. El preview propone para cada una un número LEGACY-AAAAMM-<hash> derivado del hash de fuente y la firma completa de línea;
  • los 108 números, trace codes, claves canónicas e idempotency keys son únicos y no colisionan con órdenes de SANDBOX ni PSICOLE;
  • 2 lí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 10 facturas institucionales todavía no existen en el registro canónico;
  • las diferencias de liquidación detectadas son únicamente de redondeo, entre $0,01 y $0,08 por 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.

  • 11 grupos quedan AWAITING_SECONDARY_TARIFF_EVIDENCE: requieren arancel oficial o una segunda fuente independiente del mismo período;
  • 2 grupos Swiss Medical quedan AWAITING_EFFECTIVE_DATE_POLICY: existen precios fuente incompatibles y debe definirse vigencia o diferencia de plan;
  • 2 líneas Poder Judicial quedan REUSE_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=enforce se 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.

Panel de liquidaciones y comisiones a prestadores
🖥 Escritorio Panel de liquidaciones y comisiones a prestadores
Panel de liquidaciones y comisiones a prestadores — móvil
📱 Móvil Panel de liquidaciones y comisiones a prestadores

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

  1. Ir a Administración → Liquidaciones → Configuración de Comisiones.
  2. Seleccionar la obra social para la cual se define la comisión.
  3. Hacer clic en Nueva Regla de Comisión.
  4. Configurar los parámetros:
  5. Tipo de aplicación: porcentaje sobre el monto de la orden o monto fijo por orden.
  6. Tipo de prestación: aplicar a todas las prestaciones o a un tipo específico (consulta, evaluación, informe, etc.).
  7. Vigencia desde: fecha a partir de la cual aplica esta regla.
  8. Vigencia hasta: opcional; si no se especifica, la regla rige indefinidamente.
  9. Guardar. El sistema muestra el historial de reglas con sus vigencias para auditoría.
  10. 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.

Tabla de configuración de comisiones con columnas de tipo, valor y vigencias

2. Revisión automática de liquidaciones generadas

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

Vista de liquidación con detalle de comisiones por orden y estado

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:

  1. Validar las órdenes del período.
  2. Generar o asociar la liquidación del prestador.
  3. El prestador carga la factura real desde Liquidaciones, informando número, fecha, importe y archivo.
  4. 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.
  5. El operador la encuentra en Prestadores → Liquidaciones de pagos → Facturas recibidas, verifica archivo, identidad e importe neto y la aprueba u observa.
  6. Recién con estado APPROVED_FOR_PAYMENT se 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.158 facturas certificadas para perfiles profesionales;
  • 3 duplicados fiscales internos y 3 comprobantes ya registrados en el gate anterior;
  • 117 documentos cuyo destinatario no certifica una factura de prestador al Colegio;
  • 4 documentos que requieren revisión;
  • 75 candidatos 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:

  1. cada liquidación debe tener factura canónica;
  2. cada lote mensual OOSS debe conservar una respuesta;
  3. cada pago de lote debe tener movimiento bancario vinculado;
  4. 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:

  • 37 filas documentales con liquidación para revisar;
  • 3 retenciones documentales con liquidación pero sin banco probado;
  • 35 egresos exactos sin liquidación canónica del período;
  • 3 egresos exactos con diferencia contra el importe persistido;
  • 1 cadena 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: 21 lotes mensuales y 20 pagos de lote registrados. Ninguno tiene todavía un movimiento bancario vinculado; por lo tanto el lote distribuido no prueba cobro.
  • Colegio → prestador: 130 liquidaciones, 125 con operación económica asociada y sólo 3 con factura canónica. Todas continúan PENDING; una operación relacionada no equivale a pago aprobado o conciliado.
  • Prestador → Colegio: 2.451 facturas físicas preservadas en 305 perfiles. Sólo los tres vínculos exactos forman parte hoy de una liquidación canónica; las demás conservan valor documental.
  • Colegio → OOSS: 418 facturas institucionales registradas, 81 con 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:

  1. Cobertura documental: cada orden del lote debe corresponder a una línea de la respuesta o liquidación de la OOSS.
  2. Distribución aritmética: el aceptado, los débitos explícitos, la comisión y el neto distribuido deben cerrar por lote y prestador.
  3. 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:

  • 8 lotes son subconjuntos de la documentación mensual: existen 435 líneas fuente que no integran esos lotes;
  • sólo Poder Judicial junio tiene cobertura documental exacta;
  • los 9 pagos de lote fueron cargados con procedencia sandbox_provider_settlements_202606, siguen PENDING y declaran que no confirman extracto bancario;
  • no existe un movimiento bancario vinculado al cobro OOSS ni a las 92 liquidaciones.

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.

Facturas documentales agrupadas dentro de Liquidaciones de pagos en escritorio

Facturas recibidas con búsqueda, filtro y tabla desplazable en móvil

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

  1. Ir a Liquidaciones → Lotes de Pago → Nuevo Lote.
  2. 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).
  3. El sistema muestra el resumen del lote: cantidad de liquidaciones, monto total a transferir, detalle por prestador con CBU/CVU destino.
  4. Revisar y hacer clic en Generar Lote.
  5. El lote queda en estado GENERADO. Descargar el archivo de transferencias bancarias en el formato requerido por el banco (SEPA, TXT Bancario, etc.).
  6. Procesar la transferencia desde el homebanking. Una vez acreditada, regresar al lote y hacer clic en Marcar como Pagado, adjuntando el comprobante bancario.
  7. El lote pasa a estado PAGADO y cada liquidación incluida queda en estado LIQUIDADA.

Pantalla de generación de lote con tabla de beneficiarios y montos

4. Conciliación mensual de liquidaciones

  1. Ir a Liquidaciones → Conciliación Mensual.
  2. Seleccionar el mes a conciliar.
  3. 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).
  4. Las transferencias que coincidan quedan marcadas como CONCILIADA. Las que no coincidan quedan como PENDIENTE_CONCILIACION.
  5. Resolver manualmente las pendientes, adjuntando evidencia del pago si es necesario.
  6. Al cerrar la conciliación mensual, se genera el informe de cierre con los totales por obra social.

Tabla de conciliación mensual con estado por liquidación y totales

5. Consulta del historial de liquidaciones

  1. En Liquidaciones → Historial, filtrar por período, prestador, obra social o estado.
  2. 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.
  3. Descargar el comprobante de liquidación en PDF (disponible también para el prestador en su portal).
  4. El historial es permanente e inmutable: las liquidaciones cerradas no pueden editarse, solo anularse con nota de crédito si corresponde.

Detalle de liquidación individual con tabla de órdenes y totales

Campos y validaciones

Campo Tipo Requerido Descripción
Tipo de comisión Selección (% / monto fijo) Define si la comisión es proporcional o un valor fijo
Valor de comisión Decimal ≥ 0 Porcentaje (0-100) o monto en pesos
Tipo de prestación Selección o "Todas" A qué tipo de órdenes aplica la regla
Vigencia desde Fecha 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 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 Identificador único por prestador
Fecha de factura Fecha No puede ser futura
Importe de factura Decimal mayor que cero Debe coincidir con el neto liquidado, tolerancia $ 1,00
Archivo de factura PDF/JPG/PNG 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.

Portal de autogestión: cuenta corriente y credencial
🖥 Escritorio Portal de autogestión: cuenta corriente y credencial
Portal de autogestión: cuenta corriente y credencial — móvil
📱 Móvil Portal de autogestión: cuenta corriente y credencial

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

  1. Al iniciar sesión, el panel principal muestra un resumen de la cuenta corriente: saldo deudor, próximo vencimiento y últimos movimientos.
  2. Ir a Mi Cuenta → Estado de Cuenta para ver el detalle completo.
  3. La vista lista todas las cuotas y conceptos adeudados con fecha de vencimiento, monto original, recargos por mora acumulados y total a pagar.
  4. Usar los filtros por período, tipo de cuota o estado (vigente, vencida, pagada) para acotar la consulta.
  5. Las cuotas próximas a vencer (dentro de los 7 días configurables) se destacan con una alerta visual.

Panel principal con resumen de deuda y próximo vencimiento

2. Pagar online por pasarela habilitada

  1. Desde el estado de cuenta, marcar las cuotas o conceptos a pagar con el checkbox correspondiente.
  2. Hacer clic en Pagar Seleccionados. El sistema muestra el resumen del pago con el total que se procesará.
  3. Confirmar y continuar hacia la pasarela habilitada, por ejemplo NAVE.
  4. Completar los datos de pago en la interfaz externa del proveedor. PSICOLE no almacena datos de tarjeta.
  5. Al recibir o consultar la confirmación aprobada, el sistema registra la operación PAY, imputa la deuda y genera el recibo REC.
  6. El colegiado es redirigido al portal de PSICOLE con la confirmación del pago y el enlace para descargar el recibo.

Pantalla de selección de cuotas a pagar y resumen previo al checkout

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

  1. Ir a Mi Cuenta → Mis Recibos.
  2. Se lista el historial de todos los pagos realizados, con fecha, concepto, monto y número de recibo.
  3. Hacer clic en Descargar en el recibo deseado para obtener el PDF oficial con membrete del Colegio y firma digital del sistema.
  4. El recibo incluye un código de verificación que permite confirmar su autenticidad en el portal público del Colegio.
  5. Los recibos están disponibles para descarga indefinidamente desde el historial.

Listado de recibos con filtro por período y botón de descarga

4. Descargar certificados

  1. Ir a Mi Cuenta → Mis Certificados.
  2. El sistema lista los certificados disponibles por tipo:
  3. Certificado de Matrícula Vigente: acredita que la matrícula está activa al día de la fecha.
  4. Certificado de Libre Deuda: acredita que no existen deudas pendientes con el Colegio.
  5. Certificados de Cursos: emitidos al completar los cursos de capacitación (con QR verificable).
  6. 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.
  7. Descargar el PDF. El certificado tiene validez de 30 días (configurable) y muestra la fecha de emisión.

Panel de certificados con tipos disponibles y botón de generació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).

  1. 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).

Modal de credencial digital abierto desde el dashboard con QR ampliado y acciones rápidas

  1. Para la vista completa, ir a Mi Cuenta → Mi Credencial Digital (/credential).
  2. 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.
  3. Desde la barra de acciones se puede Descargar PDF, Exhibir (modo pantalla completa), Copiar enlace de verificación, Email o Compartir por redes/WhatsApp.
  4. 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.

Página completa de la credencial digital con barra de acciones y panel de verificación pública

6. Solicitar modificación de datos personales

  1. Ir a Mi Perfil → Editar Datos.
  2. Visualizar los datos actuales registrados en el sistema: domicilio, teléfono, email, CUIT, especialidades declaradas, banco y CBU para liquidaciones.
  3. 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.
  4. 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).
  5. Hacer clic en Enviar Solicitud de Modificación. La solicitud queda en estado PENDIENTE.
  6. Un operador de matrículas revisará la solicitud y la aprobará o rechazará con un comentario.
  7. 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.

Formulario de edición de datos con campos habilitados e indicación de documentación requerida

7. Consultar el historial de solicitudes

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

Historial de solicitudes con estado y detalle expandible

8. Consultar antecedentes históricos y adjuntos verificados

  1. Ir a Mis Trámites → Historial.
  2. Además de los trámites recientes, el listado muestra los antecedentes históricos asociados con identidad exacta al perfil.
  3. Abrir el detalle para contrastar la fecha, el tipo de trámite, la planilla de origen y la cantidad de adjuntos declarada.
  4. 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.
  5. 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.
  6. 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 Domicilio profesional o particular según tipo
Teléfono Texto (formato +54 …) Número de contacto con código de área
Email Email válido Dirección de correo para notificaciones
CUIT CUIT válido (XX-XXXXXXXX-X) 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.

Avisos, emails y outbox transaccional
🖥 Escritorio Avisos, emails y outbox transaccional
Avisos, emails y outbox transaccional — móvil
📱 Móvil Avisos, emails y outbox transaccional

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
Email 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.

Auditoría de comunicaciones en escritorio

Auditoría de comunicaciones en celular

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.

Mensajes internos en escritorio

Mensajes internos en celular

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).

Panel administrativo de beneficios de jubilación

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).

Panel administrativo con lista de beneficios y estadísticas

Vista en dispositivo móvil:

Panel de jubilación en celular

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:

  1. Hacer clic en "Ejecutar detección manual".
  2. El sistema busca profesionales que cumplan 60 años y no tengan beneficio registrado.
  3. Envía email de notificación automático.
  4. 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

Panel administrativo de beneficios de jubilación


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:

  1. Verificar elegibilidad — el sistema valida que no exista una solicitud activa.
  2. Completar formulario — tipo de licencia (maternidad / adopción), fecha de inicio y fin estimada, descripción.
  3. Adjuntar documentación — certificado médico o documentación de adopción.
  4. Enviar al Colegio — queda en estado PENDING_REVIEW.

Panel administrativo de beneficios parentales

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).

Panel administrativo de maternidad con lista de solicitudes

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

Panel de certificados de ética

  1. Completar el campo "Motivo / uso del certificado" (opcional — ej.: concurso docente, presentación en obra social).
  2. Hacer clic en "Solicitar certificado".
  3. El sistema muestra el arancel vigente y las instrucciones de pago por transferencia.

Confirmar pago

Una vez realizada la transferencia bancaria:

  1. Hacer clic en "Confirmar pago".
  2. Ingresar el número de referencia / comprobante de la transferencia.
  3. El estado pasa a PENDING_REVIEW y el Colegio recibe una notificación.

Panel de certificados de ética con estado de pago

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).

Panel administrativo con listado de solicitudes y filtros

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:

Panel de detalle con información del profesional y estado del pago

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.

Dashboard personal del operador con KPIs y grupos por urgencia

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.

Dashboard de métricas del supervisor

Kanban por operador con semáforo SLA

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 de mis trámites del colegiado

Formulario de nuevo ticket

Vista mobile:

Mis trámites en celular

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.

Pantalla de seguimiento público de ticket

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:

  1. Convertir a minúsculas
  2. Normalizar caracteres Unicode (NFD) y eliminar diacríticos: á→a, ñ→n, ü→u
  3. Eliminar todo lo que no sea letra, número, espacio o guión
  4. Recortar espacios extremos
  5. Reemplazar espacios por guiones
  6. 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 /info refleja 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 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).

Página Mi Perfil Público con PhotoUploader en la cabecera, formulario de datos de directorio y tarjeta de Vista previa en el sidebar


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"
}
Gestión de usuarios y asignación de roles
🖥 Escritorio Gestión de usuarios y asignación de roles
Gestión de usuarios y asignación de roles — móvil
📱 Móvil Gestión de usuarios y asignación de roles

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

  1. Ir a Administración → Usuarios y Roles → Nuevo usuario.
  2. Completar el formulario:
Campo Tipo Requerido Descripción
Nombre completo Texto Nombre visible en el sistema
Email Email Se usa como credencial de login y para notificaciones
DNI Numérico Documento Nacional de Identidad
Rol Select Ver tabla de roles disponibles
Activo Toggle Habilitado por defecto
  1. Hacer clic en Guardar. El usuario queda creado con el acceso pendiente.
  2. 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.
  3. 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.

Formulario de creación de usuario con todos los campos


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:

  1. El administrador confirma el reset.
  2. El sistema genera una contraseña temporal.
  3. Se intenta enviar el aviso con la URL del sistema y los datos de acceso.
  4. Si el aviso falla, se bloquea o queda simulado, la contraseña anterior se conserva y no se revocan sesiones.
  5. Si SMTP acepta el aviso, PSICOLE activa la clave temporal con control de concurrencia, revoca las sesiones anteriores y registra la operación.
  6. 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.

Lista de usuarios con columnas de estado, rol y acciones


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:

  1. En la lista de usuarios, hacer clic en el ícono "Ver como este usuario" (ícono de ojo).
  2. Se abre una nueva pestaña con la sesión del usuario en modo solo-lectura.
  3. Un banner naranja en la parte superior indica: "Estás viendo el sistema como [Nombre del usuario] — Modo solo-lectura".
  4. 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.

Banner de impersonación activa con nombre del usuario y botón de salida


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.

Tabla de auditoría con filtros activos

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)

Panel de operadores con distribución de EPICs y listado de operadores

Vista en dispositivo móvil:

Panel de operadores en celular

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

  1. Hacer clic en "Editar módulos" en la fila del operador.
  2. Se abre el panel de asignación con los 5 EPICs.
  3. Seleccionar o deseleccionar los módulos necesarios.

Panel de asignación de módulos con EPICs y funciones

  1. Opcionalmente, dentro de cada EPIC, seleccionar funciones específicas (granularidad fina):
  2. EPIC-02 → Operaciones, caja, conciliación, planes, débito, transferencias, reintegros.
  3. EPIC-06 → Usuarios, reset de accesos, grupos/sedes, super admins, auditoría.
  4. EPIC-08 → Pasarelas, comunicaciones, outbox y webhooks.
  5. 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)

Vista de grupos con panel de lista y detalle lateral

Crear un grupo

  1. Hacer clic en "Nuevo grupo".
  2. Ingresar nombre del grupo (ej.: "Sede Mendoza", "Delegación Sur").
  3. 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

  1. Hacer clic en "Promover usuario".
  2. Buscar el usuario por nombre o email.
  3. Seleccionar el usuario.
  4. El sistema envía un código de verificación de 6 dígitos al email del Super Admin actual.
  5. Ingresar el código en el modal de confirmación.
  6. La operación queda registrada en el log de auditoría.

Degradar a un Super Admin

  1. En la fila del Super Admin, hacer clic en "Degradar".
  2. Confirmar la intención.
  3. El sistema envía un código de verificación por email.
  4. 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
Configuración de parámetros del sistema
🖥 Escritorio Configuración de parámetros del sistema
Configuración de parámetros del sistema — móvil
📱 Móvil Configuración de parámetros del sistema

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

Formulario de datos institucionales con todos los campos completos


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.

Panel de carga de logo con previsualización en tiempo real


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:

  1. Escanear la firma en papel blanco con buena resolución (300 DPI mínimo).
  2. Recortar la imagen para que solo incluya la firma (sin márgenes excesivos).
  3. Guardar como PNG con fondo transparente.
  4. En Parámetros del Sistema → Firma escaneada, hacer clic en Subir firma.
  5. Vista previa: el sistema muestra cómo quedará la firma en una credencial de ejemplo.
  6. 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.

Previsualización de firma sobre credencial de ejemplo


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

  1. Tesoreria define el valor general del periodo y los importes finales aprobados para CBU, tarjeta y jubilacion.
  2. Super Admin o Finanzas actualiza el Tarifario mensual.
  3. El operador previsualiza el RUN en Dinero -> Operaciones -> Cuotas.
  4. Al ejecutar el RUN, el sistema genera una deuda por profesional, periodo y concepto CUOTA_MENSUAL.
  5. La deuda queda congelada con amount, discount, finalAmount y un cargo interno idempotente debt-charge:<debtId>.
  6. El lote CBU toma Debt.finalAmount; no vuelve a calcular descuentos.
  7. La conciliacion bancaria corrobora el dinero ingresado o rechazado contra la deuda y la operacion trazable.

Configuracion de dinero

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 finalAmount explí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,95 y $11.450,21; el RUN no vuelve a redondearlos ni infiere otro importe.
  • Agosto conserva $16.670,00 como cuota general, $13.336,00 para CBU y $11.669,00 para 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 PAY de 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.

Tabla de tipos de cuota

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.finalAmount incluidos;
  • 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.

Conciliacion bancaria

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_POLICY tenga el periodo a generar.
  • Si el período falta, detener el flujo y solicitar el importe oficial: no usar el último FeeType como reemplazo.
  • Confirmar que CUOTA_MENSUAL este 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, SUSPENDED o CANCELLED no 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.

Definición de tipos de cuota y aranceles
🖥 Escritorio Definición de tipos de cuota y aranceles
Definición de tipos de cuota y aranceles — móvil
📱 Móvil Definición de tipos de cuota y aranceles

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

Tabla de tipos de cuota con columnas de configuración


Crear un tipo de cuota

  1. Hacer clic en Nuevo tipo de cuota.
  2. Completar el formulario:
Campo Tipo Requerido Descripción
Nombre Texto Nombre descriptivo que aparecerá en el recibo. Ej.: "Cuota Mensual Plena"
Código interno Texto Identificador único sin espacios. Ej.: MENSUAL_PLENA
Descripción Textarea No Detalle adicional para uso interno
Importe base Decimal Monto en pesos sin descuentos. Ej.: 8500.00
Periodicidad Select MENSUAL, BIMESTRAL, TRIMESTRAL, SEMESTRAL, ANUAL, ÚNICA
Admite descuento por débito directo Toggle Si aplica el descuento configurado globalmente
Admite descuento por jubilación Toggle Si aplica el descuento para jubilados
Admite beneficio parental Toggle Si aplica el descuento por maternidad, paternidad, adopción o guarda cuando el beneficio está aprobado
Admite recargo por mora Toggle Si aplica recargos por pago tardío
Vigente desde Fecha 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 Habilitado por defecto. Solo los tipos activos se incluyen en el CRON
  1. 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.

Formulario de nuevo tipo de cuota con campos de descuentos desplegados


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

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
Jubilación No
Beneficio parental Sí, si existe beneficio aprobado
Mora

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
Beneficio parental No
Mora

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.

Panel de configuración de descuento por débito directo

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

Configuración de descuento por pago anticipado con porcentaje y fecha límite


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

  1. Ir a Administración → Descuentos y Recargos → Recargos por mora.
  2. La tabla muestra los tramos actuales. Hacer clic en Editar tramos.
  3. 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
  1. Usar + Agregar tramo para incluir nuevos rangos.
  2. 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.

Editor de tramos de mora con rangos de días y porcentajes

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:

  1. Se toma el importe base del tipo de cuota.
  2. Si corresponde jubilacion, se aplica 50% sobre el importe base y no se aplica CBU/tarjeta.
  3. Si no corresponde jubilacion, se aplica el descuento por metodo de cobro si la adhesion esta ACTIVE: CBU 20% o tarjeta de credito 30%.
  4. Se aplica beneficio parental si existe beneficio aprobado para el periodo.
  5. 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.

Panel de tareas programadas con estado activo/inactivo de cada job


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.

Historial de ejecuciones con estado y detalle de resultados

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:

  1. Ir a myaccount.google.com → Seguridad → Verificación en dos pasos (debe estar activa).
  2. En la misma sección: Contraseñas de aplicaciones → Crear nueva → tipo "Correo".
  3. Copiar la contraseña de 16 caracteres generada.
  4. Usarla como valor de SMTP_PASS en 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).

Panel de prueba SMTP con campo de email destino y resultado de conexión


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:

  1. Ir a Administración → Notificaciones → Templates.
  2. Hacer clic en el template a editar.
  3. El editor muestra el HTML del email con variables disponibles (ej.: {{nombre}}, {{importe}}, {{fechaVencimiento}}).
  4. Previsualizar el resultado con Vista previa.
  5. 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.

Editor de template con panel de variables disponibles y previsualización


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

Vista previa de credencial PDF con todos los elementos indicados


Vigencia mostrada

La leyenda Vigente hasta usa exclusivamente el vencimiento oficial verificado. El sistema conserva por separado:

  1. fecha de egreso;
  2. fecha de expedición del título;
  3. inicio oficial de matrícula;
  4. 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

  1. Ir a Administración → Credenciales Digitales.
  2. Buscar al colegiado por nombre, DNI o número de matrícula.
  3. Hacer clic en Generar / Regenerar credencial.
  4. El sistema genera el PDF y lo guarda. El colegiado recibe un email de notificación automáticamente (si las notificaciones están activas).
  5. Para descargar el PDF desde el panel: hacer clic en Descargar PDF.

Búsqueda de colegiado y botón de regeneración de credencial


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:

  1. Ir a Administración → Credenciales Digitales → Regeneración masiva.
  2. Seleccionar el alcance: Todos los activos o Solo los generados antes de [fecha].
  3. Opcionalmente, marcar Notificar a los colegiados por email.
  4. Hacer clic en Iniciar regeneración.
  5. Monitorear el progreso en el panel.

Panel de regeneración masiva con barra de progreso y log de resultados


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.

Página pública de verificación de credencial con datos del profesional y credencial digital embebida

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.

Sistema de tickets y soporte interno
🖥 Escritorio Sistema de tickets y soporte interno
Sistema de tickets y soporte interno — móvil
📱 Móvil Sistema de tickets y soporte interno

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.

Lista de categorías con columnas Nombre, Código, Área, Origen y Estado

Crear / Editar categoría

Formulario de nueva categoría con todos los campos visibles

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:

Categorías en pantalla de celular


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.

Lista de áreas de trabajo con contador de operadores

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

Panel expandible mostrando operadores del área con toggle de disponibilidad

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.

Modal de asignación con selector de operadores staff

Vista mobile:

Áreas de trabajo en mobile


Parámetros del Sistema — Sección TICKETS

Ruta: ⚡ Super Admin → Parámetros del Sistema (/admin/system-parameters)

Sección TICKETS en los parámetros del sistema con los 3 parámetros configurables

Parámetro Clave Valor por defecto Descripción
Período de gracia TICKET_GRACE_PERIOD_MINUTES 30 min Minutos antes de que el SLA empiece a contar
Inactividad TICKET_INACTIVITY_HOURS 24 hs Horas sin actividad antes de alerta al supervisor
Auto-cierre TICKET_AUTO_CLOSE_DAYS 7 días Días tras resolución para cierre automático

Dashboard Global — Admin

Ruta: Administración → Tickets → Dashboard (/admin/ticket-dashboard)

Vista ejecutiva con indicadores globales del sistema de trámites.

Dashboard global de tickets con KPIs por estado y área


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.

Kanban de Soporte Técnico del Admin con columnas Sin Asignar, Asignado, En Proceso, En Espera y Resuelto y KPIs en la cabecera


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.

Vista desktop del triage directo con filtros, lista y panel lateral

Vista mobile del triage directo

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.

Triage directo de soporte en escritorio auditado

Triage directo de soporte en celular auditado

Flujo operativo

  1. Abrir un ticket desde la lista o el kanban.
  2. Revisar captura, descripción, adjuntos, URL, usuario y sugerencia de triage local.
  3. Elegir una decisión: Solo revisar, Responder consulta, Pedir información, Bug / desarrollo o Resolver con aviso.
  4. Completar el mensaje visible para el usuario cuando corresponda.
  5. Guardar la decisión humana desde el panel lateral.
  6. 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.

Dashboard de métricas del supervisor con KPIs globales y tabla de tickets

Vista mobile:

Métricas del supervisor en celular


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.

Kanban agrupado por operador con semáforo SLA por ticket


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.X en 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.

  1. Registro cuenta (email/pass).
  2. Carga Datos (Personales, Académicos).
  3. Carga Docs (DNI, Título, Analítico).
  4. Aceptación Declaración Jurada.
  5. Generación Boleta Pago Inicial.
  6. 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.

  1. Revisión docs.
  2. Aprobación interna -> Matrícula Provisoria -> PDF p/ Ministerio.
  3. Recepción OK Ministerio.
  4. Confirmación Alta Definitiva.
  5. 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.

  1. Buscar (Nombre/Matrícula) o Escanear.
  2. 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.

  1. Verificar elegibilidad.
  2. Crear solicitud de renovación.
  3. Firmar declaración jurada.
  4. Actualizar contacto personal y datos de consultorio.
  5. 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.
  6. Generar la boleta con el arancel explícito de renovación, sin vencimiento.
  7. Transferir y adjuntar evidencia del pago.
  8. Enviar solicitud.
  9. Finanzas acredita el importe exacto y el sistema emite el recibo de renovación.
  10. Operador revisa, aprueba o solicita cambios.
  11. 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 APPROVED o 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.

  1. Revisar que CUOTA_MENSUAL este activo y que el periodo exista en Tarifario mensual.
  2. Previsualizar generación en Dinero -> Operaciones -> Cuotas.
  3. Generar Debt única por profesional/período/tipo sin avisos si no fueron autorizados.
  4. Registrar cargo en cuenta corriente con generationKey idempotente.
  5. Cobrar por canal real: caja, transferencia, débito, POS o checkout.
  6. Emitir/vincular recibo y cuenta corriente.
  7. 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_MENSUAL vigente o sin una entrada explícita del período en MONTHLY_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_WRITE lo 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.

  1. Seleccionar deuda.
  2. Crear operación PAY idempotente.
  3. Redirección a NAVE.
  4. Pago externo.
  5. Retorno o refresh estado.
  6. 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.

  1. Importar extracto.
  2. Clasificar origen.
  3. Matching automático sugerido.
  4. Confirmación manual o ajuste.
  5. Cierre de sesión.
  6. Revisión de pendientes y evidencia.
  7. Promoción de una única versión como RUN operativo; previews reemplazados quedan históricos de sólo lectura.
  8. Certificación SHA-256 de extractos reales espejados que conserven una marca técnica de SANDBOX.
  9. Ejecución de los gates de PREVIEW seguro y certificado para aplicar, comparando universo, identidad, medio, monto, asignación contable y efectos colaterales.
  10. Repetición del mismo PREVIEW y comparación exacta de sourceUniverseHash, eventUniverseHash y decisionHash.
  11. Auditoría inerte de deudas, pagos, recibos, operaciones, saldos, beneficios, planes, prestadores y comunicaciones antes de promover.
  12. 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.
  13. 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.
  14. 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 isTestAccount o pago isTestRun no 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-run de 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.

  1. Materializar pago y recibo desde una operación PAY.
  2. Encolar AfipInvoiceJob vinculado al recibo/pago.
  3. Procesar cola por scheduler o botón administrativo.
  4. Validar configuración WSAA/WSFE.
  5. Autorizar comprobante sólo si AFIP responde correctamente.
  6. 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.

  1. Crear operación PAY.
  2. Vincular deuda, pago, recibo, profesional y origen.
  3. Registrar eventos e idempotencia.
  4. Exponer single canónica.
  5. 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 PAY de un excedente muestra saldo original, disponible y aplicaciones posteriores.
  • FA-2.5.4: Una aplicación de saldo abre otro PAY interno 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.

  1. Abrir operación original.
  2. Seleccionar reversa o reintegro.
  3. Informar motivo.
  4. Crear operación compensatoria.
  5. 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.

  1. Importar lote o extracto.
  2. Crear o seleccionar RUN mensual PREVIEW desde Dinero -> Operaciones -> Conciliacion -> RUN mensual.
  3. Registrar fuentes procesadas del periodo.
  4. Simular decisiones PREVIEW con clave idempotente por evento.
  5. Proponer matches y asociaciones.
  6. Para cobros OOSS certificados, registrar sólo candidatos de revisión contra el pago de lote exacto o la cohorte del período.
  7. Separar ALREADY_CLOSED, AUTO_APPLY_STRICT, cola manual, bloqueos y excluidos.
  8. Confirmar conciliación cuando cumple reglas estrictas.
  9. Marcar gaps.
  10. Alimentar ledger de diferencias.
  11. 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.

  1. Verificar elegibilidad.
  2. Calcular deuda, descuento y opciones de cuotas.
  3. Crear plan automático o personalizado.
  4. Revisar plan si requiere operador.
  5. Pagar cuota del plan.
  6. Generar operación PAY, recibo, transacción de cuenta corriente y job AFIP.
  7. Consultar mis planes, el panel de Dinero o la pestaña Planes de la ficha profesional con avance y mora.
  8. 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.

  1. Abrir Administración -> Tarifario Mensual de Cuotas.
  2. Crear o actualizar el periodo con importe base, finales por metodo, beneficios y redondeo.
  3. Confirmar que Tipos de Cuota mantenga CUOTA_MENSUAL activo y mensuales legacy inactivos.
  4. Previsualizar generación en Dinero -> Operaciones -> Cuotas.
  5. Ejecutar RUN mensual autorizado.
  6. Generar Debt y Transaction con amount, discount, finalAmount y generationKey idempotente.
  7. 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_MENSUAL no esta activo, el PREVIEW y el RUN fallan sin crear deuda y sin heredar el último importe de FeeType.
  • 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 REVIEW se 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.

  1. Inventariar y clasificar la fuente real, excluyendo salidas derivadas y maquetas.
  2. Resolver identidad por DNI, CUIT, matrícula o match curado; un nombre ambiguo queda en revisión.
  3. Crear o actualizar la regla, plan, concepto externo o snapshot de deuda con fuente y vigencia.
  4. Ejecutar el RUN en PREVIEW contra extractos, CBU, tarjetas y referencias auxiliares.
  5. Revisar filtros de Profesionales/Dinero y exportar la cola manual con/sin profesional.
  6. 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 PENDING sin 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.

  1. Carga Datos (Nombre, Fechas, Disertantes, Costos).
  2. Carga Materiales.
  3. 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.

  1. Verificar requisitos (matrícula/cupo).
  2. Inscripción.
  3. Crear deuda o checkout según política.
  4. Confirmación.
  5. 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.

  1. Detectar estado "Aprobado".
  2. Generar PDF plantilla.
  3. Generar CUV y QR.
  4. 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.

  1. Abrir Mis Cursos.
  2. Ver detalle.
  3. Solicitar desinscripción.
  4. Evaluar política.
  5. Cancelar deuda o crear reversa/reintegro.
  6. 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.

  1. Seleccionar período económico y vista.
  2. Consultar cobros por fecha efectiva y obligaciones por período sin mezclarlos.
  3. Revisar la partición canónica: pendiente sin vencer, vencida, en plan, pagada, bonificada, cancelada y revisión de datos.
  4. Contrastar el libro de Operaciones, la agrupación por Profesional y el circuito separado de Prestadores.
  5. Exportar el reporte cuando corresponda.
  6. 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.

  1. Apertura.
  2. Reg. Cobros/Pagos.
  3. Cierre (Arqueo).
  4. 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.

  1. Consultar plan de cuentas.
  2. Crear, editar o desactivar cuentas según reglas.
  3. Consultar libro diario.
  4. Crear asiento manual o recibir asiento desde operación PAY.
  5. Postear asiento cuando cuadra débito/crédito.
  6. Anular asiento con reverso auditado.
  7. 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.

  1. Ver datos.
  2. Editar permitidos.
  3. Enviar solicitud.
  4. 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.

  1. Carga datos.
  2. Valida consistencia.
  3. 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.

  1. Seleccionar obra social y período.
  2. Elegir rango opcional y campo de fecha (createdAt, validatedAt o serviceDate), y previsualizar todas las líneas fuente.
  3. Validar identidad, tarifa, aritmética, claves canónicas e idempotencia.
  4. Comprobar que ninguna factura o lote quede parcial.
  5. Ejecutar dos previews y exigir hashes equivalentes y delta cero.
  6. Resolver la cola documental de tarifas y posibles reemisiones con evidencia externa.
  7. Repetir el preview y comprobar que todos los bloqueos del lote y sus facturas estén cerrados.
  8. Crear el lote en DRAFT, generar allí el PDF de presentación, confirmarlo a READY para congelar el artefacto revisado y enviarlo sólo cuando no existan bloqueos.
  9. Emitir la factura real manualmente en ARCA.
  10. Registrar número, período, OOSS, CUIT receptor, importe, CAE, vencimientos y PDF privado en Dinero → Configuración → Facturación OOSS.
  11. Contrastar el crédito Galicia por CUIT exacto e importe único o suma única, sin exigir el mismo mes calendario.
  12. 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 READY con PDF o cualquier SENT rechaza reemplazarlo. Un READY legado con pdfUrl nulo permite una única recuperación manual por CAS, sin reabrir el lote; la acción masiva sólo selecciona lotes DRAFT sin 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.

  1. Seleccionar Lote.
  2. Cargar Pago.
  3. Calc. Comisión y Neto.
  4. Generar una liquidación por prestador.
  5. El prestador presenta número, fecha, importe y archivo de factura sobre la liquidación.
  6. El operador revisa la factura en Prestadores → Liquidaciones de pagos → Facturas recibidas.
  7. Aprobar la factura para pago.
  8. 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 REGISTERED y 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_ALLOCATED como 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 - aceptado contra los ajustes; bloquear si cualquiera de los dos gaps queda sin explicar.
  • FA-5.4.22: Archivo general declara DEPOSITADO sin fecha bancaria -> conservar como evidencia documental; no interpretar el estado como pago ejecutado.
  • FA-5.4.23: Archivo general declara RETENIDO pero 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 REGISTERED y 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 emitir PASS parcial.

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.

  1. Ver deudas y pagos con descripción mensual canónica.
  2. Abrir o descargar recibos y operaciones vinculadas.
  3. Consultar saldos a favor y planes activos o históricos.
  4. Aplicar filtros.
  5. Desde una ficha económica, volver al mismo profesional y pestaña de origen.
  6. 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, PAY o REC antes 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.

  1. Listar cursos.
  2. 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.

  1. Cargar datos y escaneo.
  2. Enviar.
  3. Consultar estado.
  4. Si corresponde, el operador abre Corregir, ajusta prestador, orden, paciente, afiliado, OOSS, fecha, práctica, cantidad o precio y registra el motivo.
  5. 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 PENDING y OBSERVED; las vinculadas VALIDATED/SUBMITTED son 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 DRAFT en la misma transacción e invalida sus artefactos. Un parent READY o SENT rechaza 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.

  1. Ver Credencial (QR, Estado).
  2. Descargar PDF.
  3. 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.

  1. Abrir Consultorio.
  2. Consultar agenda semanal y pacientes.
  3. Crear o seleccionar paciente.
  4. Agendar, reprogramar o cancelar turno.
  5. Completar sesión.
  6. Registrar cobro particular o generar borrador de orden PSICOLE si es prestador con obra social.
  7. 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.

  1. Listar o buscar pacientes propios.
  2. Crear paciente con datos personales, contacto, OS, credencial, tratamiento, notas y preferencia de recordatorios.
  3. Editar datos.
  4. Consultar ficha con próximos turnos e historial.
  5. 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.

  1. Consultar turnos por rango, estado o paciente.
  2. Crear turno con duración, modalidad, tipo y notas.
  3. Reprogramar o editar.
  4. Enviar aviso si corresponde.
  5. Completar sesión.
  6. Cancelar con motivo o eliminar solo turnos programados.
  7. 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.

  1. Completar turno.
  2. Informar privatePayment con importe, método, notas y recibo opcional.
  3. Sistema crea o reutiliza PrivateAppointmentPayment.
  4. Sistema crea PaymentOperation idempotente.
  5. Profesional consulta cobros por rango.
  6. 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.

  1. Colegiado mantiene datos públicos, foto, bio, áreas, modalidades y consultorio.
  2. Público consulta directorio o perfil.
  3. Sistema registra analytics.
  4. Admin ve overview, completitud y perfiles.
  5. Admin recomienda o fuerza inactividad.
  6. 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.

  1. Abrir Administración -> Tipos de Cuota.
  2. Crear/editar concepto.
  3. Definir código, categoría, periodicidad, vigencia, importe base y descuentos.
  4. Activar/inactivar.
  5. Para cuotas mensuales, validar que CUOTA_MENSUAL sea 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.

  1. Crear/Editar usuario.
  2. 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.

  1. Editar parámetros (Datos inst, seguridad).
  2. 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.

  1. Ver tabla de eventos y filtrar por módulo, entidad, actor y fecha.
  2. Abrir la trazabilidad de la operación o deuda de origen.
  3. Ejecutar el certificado financiero para los períodos bajo revisión.
  4. Comparar invariantes, hash funcional, paridad normalizada entre entornos y delta de efectos laterales.
  5. Para prestadores, certificar por separado cobertura documental, distribución, crédito OOSS y débito al prestador.
  6. 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 DEPOSITADO sin fecha bancaria: no confirma pago.
  • Fuente marcada RETENIDO con 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.

  1. Consultar prestadores registrados y distinguir activos e históricos.
  2. Abrir el perfil y revisar órdenes por fecha de prestación.
  3. Revisar rendiciones y liquidaciones por período y obra social.
  4. Consultar todas las facturas fiscales históricas de la persona y abrir su PDF privado.
  5. Distinguir factura vinculada exactamente de documento registrado sin vínculo.
  6. Revisar la operación PAY cuando exista y exportar evidencia.
  7. 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.

  1. Crear usuario operador.
  2. Asignar módulos.
  3. Definir grupos o sedes.
  4. Guardar.
  5. Auditar acceso.
  6. 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.

  1. Generar contraseña temporal.
  2. Preparar aviso con URL.
  3. Registrar auditoría.
  4. Si el envío está bloqueado conservar clave anterior.
  5. 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.

  1. Consultar matriz de roles y recursos.
  2. Activar o desactivar permiso por rol/sección.
  3. Sistema actualiza RolePermission.
  4. Sistema registra AuditLog con recurso, rol y estado.
  5. 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.

  1. Ingresar email y contraseña.
  2. Validar credenciales sin revelar si falló usuario o contraseña.
  3. Emitir access y refresh en cookies httpOnly y el token CSRF de doble envío.
  4. 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.

  1. Access JWT de vida corta en cookie httpOnly.
  2. Refresh rotativo persistido y cookie httpOnly.
  3. Mutaciones con cookie/header CSRF coincidentes.
  4. 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.

  1. Request API.
  2. Webhook Respuesta.
  3. 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.

  1. Operador crea o edita curso y carga lmsCourseId.
  2. Colegiado se inscribe o paga el curso.
  3. PSICOLE confirma la inscripción y calcula estado LMS inicial.
  4. Servicio busca el usuario Moodle por email.
  5. Matricula al usuario en el curso externo.
  6. 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.

  1. Activar evento.
  2. Selec canal.
  3. Enviar API.
  4. 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.

  1. Tomar jobs QUEUED/RETRY.
  2. Verificar AFIP_CUIT, certificado y clave.
  3. Preparar autorización WSAA/WSFE cuando la integración real está configurada.
  4. Enviar solicitud y persistir respuesta.
  5. Marcar DONE sólo con autorización real o FAILED/RETRY con lastError explícito.
  6. 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.

  1. Admin crea aviso con segmento, prioridad, vigencia y acción.
  2. Usuario ve avisos activos según segmento.
  3. Sistema registra visto.
  4. Usuario marca leído, pospone o descarta.
  5. Agenda consolida mensajes, avisos, pagos, cursos, trámites, consultorio, órdenes y ética.
  6. 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.

  1. Generar ID único.
  2. Asignar cola.
  3. Dashboard Operador/Supervisor.
  4. Sugerencia local de triage.
  5. Decisión humana.
  6. Cierre y métricas.
  7. 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.

  1. Validar antecedentes.
  2. Pago.
  3. Revisión manual.
  4. 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.

  1. Validar matrícula vigente y deuda abierta canónica igual a cero.
  2. Generar PDF inmediato.
  3. 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.

  1. Mostrar datos bancarios.
  2. Subir comprobante.
  3. Validación manual.
  4. Confirmar.
  5. 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.

  1. Form + Docs.
  2. Validar ANSES.
  3. Revisión.
  4. 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.

  1. Form Motivos.
  2. Check Deudas.
  3. Resolución Operador.
  4. 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.

  1. Colegiado carga CBU.
  2. Operador valida y activa adhesión BANK_DEBIT.
  3. RUN mensual genera Debt con amount, discount y finalAmount.
  4. Admin/CRON genera lote CBU sólo con BANK_DEBIT activo, CBU verificado y deuda del período.
  5. El lote toma debitAmount desde Debt.finalAmount, no recalcula descuentos.
  6. Operador revisa total y descarga/envía COELSA.
  7. Banco devuelve aprobados/rechazados.
  8. Aprobados materializan PAY/pago/recibo/cuenta corriente.
  9. 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/2099 y 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.

  1. Detectar edad.
  2. Notificar.
  3. Aplicar 50% desc.
  4. 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.

  1. Carga Órdenes.
  2. Validación interna.
  3. Envío OS.
  4. Respuesta OS.
  5. Cálculo de comisión y liquidación neta.
  6. Presentación de factura del prestador sobre la liquidación.
  7. Revisión y aprobación de factura.
  8. Orden y registro de pago.
  9. Consulta posterior desde la pestaña Prestador del perfil, con archivo y vínculo económico trazables.
  10. 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 REGISTERED y 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 DEPOSITADO sin 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 VALIDATED o SUBMITTED ya 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.

  1. Inicia.
  2. Valida auto (matrícula + deuda).
  3. Genera ticket.
  4. Puede resolverse automáticamente o pasar por triage humano.
  5. 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.

  1. Colegiado carga motivación.
  2. Sistema valida matrícula y duplicados.
  3. Sistema crea ticket PREST-ALTA con SLA y asignación automática si hay operador disponible.
  4. Usuario consulta su solicitud.
  5. Operador lista solicitudes.
  6. Operador aprueba o rechaza.
  7. 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.

  1. Prestador carga motivo y fecha efectiva opcional.
  2. Sistema crea ticket PREST-BAJA con SLA y asignación automática.
  3. Prestador consulta sus solicitudes.
  4. Operador lista y revisa.
  5. Operador aprueba o rechaza con resolución.
  6. 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.

  1. No existe pantalla productiva de convocatorias.
  2. Registrar la necesidad como backlog si el Colegio decide activar becas.
  3. Usar cursos y circuitos financieros actuales hasta implementación formal.
  4. 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.

  1. El colegiado no dispone de formulario productivo de inscripción a beca.
  2. La administración canaliza consultas por los medios vigentes.
  3. Si se implementa, deberá validar requisitos, cupos, duplicados y trazabilidad.
  4. 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.

  1. No se ejecuta sorteo automático de becas.
  2. No hay algoritmo ni pantalla productiva de asignación.
  3. Cualquier asignación actual debe resolverse por acto administrativo externo al módulo.
  4. 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.

  1. Listar y buscar proveedores.
  2. Crear o actualizar datos fiscales/bancarios.
  3. Consultar ficha de proveedor.
  4. Registrar compra o servicio recibido.
  5. Crear orden de pago.
  6. Actualizar estado de la orden.
  7. 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

Índice de Tags

Esta página es generada automáticamente por MkDocs Material a partir de los tags definidos en el frontmatter de cada página.

Usá los tags para filtrar el contenido del manual por rol y acceder rápidamente a las secciones relevantes para tu función.


Cómo usar los tags

Cada página del manual tiene uno o más tags en su encabezado que indican a qué roles es relevante. Al hacer clic en un tag, verás todas las páginas etiquetadas con ese rol.

Los tags disponibles son:

Tag Rol en el sistema Descripción
Administrador ADMIN Acceso completo al sistema. Configuración, auditoría y operaciones de alto impacto
Operador Matrículas OPERADOR_MATRICULAS Gestión del ciclo de vida de las matrículas y trámites de aspirantes
Operador Finanzas OPERADOR_FINANZAS Finanzas, pagos, conciliación bancaria, prestadores y liquidaciones
Operador Cursos OPERADOR_CURSOS Creación y gestión de cursos, inscripciones, asistencia y certificados
Operador Trámites OPERADOR_TRAMITES Gestión de trámites internos y atención de solicitudes de colegiados
Supervisor Trámites SUPERVISOR_TRAMITES Supervisión y escalamiento de trámites; acceso a reportes de gestión
Colegiado COLEGIADO Portal de autogestión del profesional matriculado
Prestador PRESTADOR Portal de prestador: órdenes de servicio, liquidaciones y comprobantes
Aspirante ASPIRANTE Portal de solicitud de matrícula y seguimiento del trámite de matriculación

Índice de tags

[TAGS]

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, imagen sha256:2fcc2b8bd9d0d3ba4f370db9247ee71a93078787658c29aa95f23522daa21104. Sólo corrige el rótulo visible de la alerta a Nueva respuesta del emisor; su fuente tiene SHA-256 e2f2172ed1df24eb46b8ca71cee7f8eac3e14b710ab82b8635bd47e478b19db1.
  • 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, sin 5xx.
  • Acceso profesional sintético: login, /auth/me, cuenta, agenda, documentos, categorías y tickets respondieron 200; 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 en SOPORTE_TECNICO; SOPORTE_COLEGIADOS nació 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/491 deudas restauradas; 491/491 operaciones internas canceladas; 385 aplicaciones de beneficio espurias retiradas; 50 compensaciones exactas; pagos y recibos reales afectados: 0.
  • Cuarentena remanente: 523 filas, 73 grupos y $1.244.563 pasaron de PENDING a HISTORICAL_REVIEW; 523 auditorías y sellos STARTED/COMPLETED exactos.
  • 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

  1. Crear DNS, certificados y proxy para psicole.colegiopsimza.org.ar y sandbox.colegiopsimza.org.ar; conservar el host vigente para QR físicos.
  2. Abrir nuevos destinatarios/templates de correo sólo mediante canarios independientes. EMAIL_REDIRECT_TO permanece vacío y los kill-switches generales siguen activos.
  3. 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, imagen sha256:e64d5e1b43d56beb73ef3b483e5fe12f6e22501d8af485a8493799ef21fc34f5.
  • Frontend con cierre responsive: commit 4d7b9bbeb095c15452ca832eb0ad7d25f7406634, imagen sha256:210d830e584e11b32792283ef5b7244fceb9e316677c4763aeabdd5561b1a9d2.
  • Migraciones activas: índice transactions_reference_idx(reference) y columna nullable users.temporary_password_issued_at; 1.514 marcas heredadas sin sello nuevo y 0 sellos inventados.
  • Canario de acceso: login 200, /auth/me 200, navegación ordinaria bloqueada 403 PASSWORD_CHANGE_REQUIRED, cambio de clave 200, perfil, cuenta, agenda, documentos y tickets 200; luego quedó inactivo, con 0 sesiones, deudas, pagos, tickets y documentos.
  • Directorio y QR: raíz, directorio, API y assets 200; alias /verificar/:code redirige 308 a /verify/:code; QR inválido responde 404, nunca 5xx.
  • 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 de APPROVED, 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 MonthlyBatch parent en la misma transacción. Sólo un parent DRAFT puede tocarse; el reclamo avanza su versión e invalida los PDF, mientras READY y SENT rechazan 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 seleccionar READY; el confirmador legado también exige un pdfUrl vigente. Confirmar congela el PDF: un READY con archivo y cualquier SENT no pueden reemplazarlo. Para no varar datos legados, un READY con pdfUrl nulo 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=observe registra la diferencia y conserva la decisión legada; sólo enforce rechaza 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 /bitacora en 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 vinculadas VALIDATED/SUBMITTED continú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, validatedAt o serviceDate). 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 DRAFT invalida los artefactos y recalcula totales; al pasar a READY queda 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.669 y jubilado $8.335. Julio conserva los valores canónicos del repositorio ($16.357,44, $13.085,95, $11.450,21 y $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 ACTIVE usa 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/2099 se 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_ORIGINS admite 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-458 corresponde a edición posterior de una orden y TKT-467 al desplazamiento de su fecha; TKT-466, TKT-511 y TKT-520 pertenecen a Dinero; TKT-460 a habilitación de Prestadores; TKT-498 y TKT-501 a Matrículas; y TKT-521 a 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-528 y TKT-529. Los cambios posteriores TKT-553, TKT-561, TKT-563 y TKT-570 conservan 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 invoiceUrl legado 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-profile deja 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=observe conserva compatibilidad y enforce aplica 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 INCOMPLETE y 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/REC conserva 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ó 230 suites backend aprobadas (3 omitidas), 1.344 tests aprobados (18 omitidos), build frontend de 2.658 módulos, lint sin errores, Prisma válido y git diff --check limpio.
  • 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, 130 liquidaciones todavía pendientes, sólo 2 comprobantes de liquidación, 21 lotes OOSS sin respuesta, 20 pagos de lote sin movimiento bancario, 418 facturas OOSS sin líneas y sólo 3/2.452 facturas 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=enforce se 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/654 adjuntos históricos, 347/347 adjuntos de tickets y 23/23 documentos de matrícula. De estos últimos universos, 114 y 16 respectivamente pertenecen a perfiles profesionales y antes no se exponían en su ficha.
  • Las 2.451 facturas de prestadores están asociadas a 305 perfiles sin huérfanos. Sólo 3/130 liquidaciones tienen factura canónica; no se infirió ninguna de las 127 restantes.
  • Se restauraron por hash las dos referencias físicas faltantes en PSICOLE; la auditoría posterior informa physicalMissingTotal = 0 en ambos entornos.
  • El cruce vivo de julio relacionó 62/62 prestadores, 711 prestaciones y los 62 renglones del libro general. El replay reprodujo el mismo hash funcional: 31 egresos exactos, 11 anteriores a factura, 3 identidades trianguladas, 2 ambiguos, 5 con diferencia y 10 sin banco.
  • El recálculo integral deja 72 candidatos vigentes. En SANDBOX detectó 40 antecedentes abiertos acumulados por cruces anteriores que ya no aparecen en el universo actual; se conservaron como SUPERSEDED, sin operación vinculada y sin alterar ninguna tabla económica. El replay informó 0 obsoletos.
  • 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 152 prestaciones 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 384 filas, 95 prestadores y $94.443.978,40; dos replays reprodujeron los mismos hashes semántico y funcional con delta económico cero.
  • Las 16 variantes 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ó en 0 identidades bloqueadas y 76 candidatos.
  • Las cinco planillas mensuales vivas de enero a mayo aportaron 262 filas. Todas tuvieron un vínculo único con el libro general; 17 cuentas confirmaron identidad, 16 filas tuvieron débito Galicia único, 4 explicaron bruto/neto por comisión del 10% y hubo 0 conflictos de cuenta.
  • Continúan como brecha real 240 filas sin liquidación sistémica, 46 diferencias de importe, 19 egresos anteriores a factura y 3 contradicciones 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 174 candidatos nuevos, 160 archivos pudieron escanearse y sólo 4 formularios de débito automático superaron todas las guardas. Los 156 restantes 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.505 antecedentes sobre 2.578 profesionales y 654 adjuntos. Integridad física: 654/654 archivos, 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: 323 antecedentes de débito sin enlace físico exacto, 370 prestadores activos sin alta histórica, 361 perfiles 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 98 adjuntos y quedaron con 313 archivos físicos certificados. El replay importó 0 en 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.287 antecedentes sobre 1.114 profesionales. Quedan 1.086 antecedentes 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: 370 prestadores activos, 368 reglas jubilatorias y 3 beneficios parentales no tienen un formulario histórico compatible en las fuentes disponibles.
  • Las 2.451 facturas de prestador permanecen accesibles como evidencia fiscal; sólo 3 tienen 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.541 archivos físicos se redujeron a 2.360 documentos únicos después de excluir 181 copias binarias.
  • Subconjunto certificado: 2.158 facturas quedaron asociadas por identidad fiscal única; 75 documentos 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.158 facturas y 2.158 eventos de auditoría. El total documental quedó en 2.451 facturas sobre 305 perfiles.
  • Verificación: 2.158/2.158 registros y archivos, 0 problemas, replay con 2.158 NOOP y cero deltas.
  • Inercia: no se crearon pagos, recibos, operaciones, órdenes, rendiciones, liquidaciones, mensajes, correos, avisos ni cambios de rol o estado.
  • OOSS: 13.532 prestaciones únicas y 2.267 lí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.158 facturas REGISTERED, 2.158 archivos privados y 2.158 auditorías; el total documental quedó en 2.451 facturas.
  • Replay productivo: la segunda ejecución resolvió 2.158 NOOP. El verificador confirmó 2.158/2.158 registros y archivos, 0 problemas 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-uploads fueron 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 desde y Matrícula hasta se almacenan y exportan por separado; Fecha Ingreso queda como dato histórico legado.
  • Credencial: Vigente hasta toma 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 hoy y 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 596 vigencias, 54 reactivaciones de matrícula, 3 estados no vigentes con evidencia expresa y 43 perfiles 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 0 cambios 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, con 384 filas 2026, 95 prestadores y $94.443.978,40, preservando su hash SHA-256.
  • Cruce exacto: 41 filas tienen débito Galicia exacto e identidad suficiente; 38 por CUIT y nombre, 1 por DNI y nombre y 2 por CUIT. Ninguna coincidencia usa sólo el importe.
  • Cola auditable: SANDBOX y PSICOLE persistieron los mismos 75 candidatos humanos: 34 liquidaciones documentales sin banco, 3 retenciones documentales sin banco, 34 egresos sin liquidación canónica, 3 diferencias de importe y 1 cadena exacta con liquidación.
  • Contradicciones excluidas: otras 3 filas RETENIDO con débito exacto quedaron bloqueadas y no se persistieron como candidatos.
  • Bloqueos conservados: 245 filas sin liquidación, 45 diferencias contra el sistema y 16 identidades no resueltas no se completaron por inferencia.
  • Idempotencia: el primer apply creó 75 candidatos en cada entorno; el replay creó 0 y devolvió 75 sin 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 6 resoluciones exactas por $69.600,00; operación, pago, recibo, deuda, vínculo bancario y cuenta corriente quedaron verificados.
  • Inferencias bloqueadas: 3 filas por $37.476,00 continú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/13 escenarios, incluidos replay, concurrencia, pago parcial, saldo a favor, conflicto de método y procedencia no confiable.
  • Prestadores: se verificaron 293/293 facturas y archivos en 43 perfiles. La cobertura de 473 prestadores distingue ausencia real de fuente, órdenes sin liquidación, antecedentes sin vínculo y requerimientos pendientes.
  • Cola documental: 127 liquidaciones por $20.966.558,50 siguen sin factura aprobada; sólo 3 tienen documento exacto pendiente de aprobación humana.
  • Consistencia: mayo, junio y julio aprobaron 37/37 controles 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,00 brutos, $1.986.500,00 aceptados y $62.400,00 de ajustes producen gaps cero.
  • Replay: dos ejecuciones SANDBOX reprodujeron el hash funcional 007d7351a7e0e48bff1dce8f2b6480610fb0d51ef28f3fc995d06dc040dec7a5.
  • Alcance: 6/6 lotes exactos quedaron listos sólo para aprobación humana explícita del cobro OOSS; no se aprobaron ni conciliaron.
  • Pago separado: 0/6 pagos a prestadores quedaron habilitados; todos continúan bloqueados por facturas incompletas.
  • Cola intacta: 18/18 candidatos 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,00 a $ 16.600,00 por sesión, preservando su estado PAID.
  • Agregados intactos: lote, pago de lote, liquidación, comisión, neto, facturas, operaciones, pagos y recibos no cambiaron; la diferencia de $ 187.200,00 ya 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_NOOP y cero escrituras.
  • Verificación posterior: dos previews clasificaron el estado como ALREADY_CORRECTED_AND_CERTIFIED, con gaps cero y hash funcional 4c00be52c845f19cfc9bcafc3b076b6d77b06af726e5a819e938bceb718f60c8.
  • 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,00 frente a $ 16.600,00 documentales 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 --apply y --write. Una eventual reparación exige respaldo, hash e IDs exactos, autorización explícita para órdenes PAID, 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 con humanRequired=true, canAutoApply=false y sin operación económica vinculada.
  • Destino conservador: 6 filas apuntan a un pago de lote exacto y pendiente; otras 12 apuntan 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ó 0 movimientos.
  • Paridad SANDBOX/PSICOLE: ambos previews produjeron 18/18 filas y el mismo hash normalizado 6bb318f111f8274b534c58b066f93c3498b064ff00990d0d20145bda1feb7203, excluyendo sólo UUID técnicos.
  • Apply y replay SANDBOX: el apply de paridad creó 2 candidatos y conservó 16; el replay creó 0 y devolvió 18 NOOP, con hash funcional SANDBOX 9bfa54008d9fb783e79bcb76e95158ad1f807dea6ebeafca953b6af415a60e95.
  • 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: 0 pagos, 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 18 candidatos; el replay creó 0 y devolvió 18 NOOP. El snapshot amplio conservó el hash 716f573558871606d3e8a7251c936d875923496de9a141ea486fb2dafcd78da6.
  • 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/30 cohortes documentales tienen evidencia bancaria exacta por $27.801.564,60; 10 presentan diferencia de importe y 3 no tienen crédito del CUIT. Nueve créditos OOSS quedan sin cohorte inequívoca y ningún movimiento fue reutilizado.
  • Resultado saliente: 54/173 perí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; existen 0 vínculos bancarios persistidos de cobro OOSS y 0 de 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, con 0 mutaciones económicas y 0 comunicaciones.
  • 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 9 lotes de mayo/junio contienen 984 órdenes y todas tienen respaldo documental; 8 lotes son subconjuntos y dejan 435 líneas mensuales fuera, mientras Poder Judicial junio tiene cobertura exacta.
  • Distribución consistente: las 92 liquidaciones no presentan diferencias económicas. Una diferencia agregada de $0,04 en Swiss Medical corresponde al redondeo de 63 líneas y queda trazada como tolerancia.
  • Pagos no confirmados: los 9 pagos siguen PENDING, provienen de sandbox_provider_settlements_202606 y tienen 0 movimientos 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 7 egresos pendientes de mayo/junio por $714.623,40 se contrastan contra 31 lí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: 10 líneas candidatas apuntan a lotes cuyo neto ya fue distribuido completamente; TARGET_BATCH_FULLY_ALLOCATED_REVIEW bloquea cualquier imputación que duplicaría dinero.
  • Sin reparación insegura: la cola final separa 1 orden faltante, 1 posible desfase de período, 1 ambigüedad y los lotes ya distribuidos. No existe todavía un UPDATE económico idempotente.
  • Paridad y replay: SANDBOX y PSICOLE coincidieron en casos, líneas y 9 lotes. Dos ejecuciones reprodujeron el hash 2328f4e17a324cd800df6f067d326af03996e49fbe6d6c3f608094e3934048e8.
  • 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-MM y títulos mensuales se normalizan sin perder el período económico; las 173 rendiciones y sus 2.267 líneas quedan fechadas.
  • Cola accionable: 52 egresos Galicia por $14.818.981,89 se clasifican como 42 con órdenes faltantes, 3 ambiguos, 4 con vínculo a lote incompleto y 3 con 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 PAY ni 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 173 netos por prestador/período produjeron 54 egresos exactos por $15.037.755,69.
  • Estado en PSICOLE: 51/54 movimientos están persistidos; 2 coinciden con una liquidación relacional, 47 no tienen liquidación del período y 5 tienen 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 + PAY quedó 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 8d04f54274004fe19d811d401c1ec21c4ed310b850bcf544fb401f61a51877ae y 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: 293 facturas fiscales de 43 profesionales quedaron disponibles en SANDBOX y PSICOLE: 4 de 2023, 74 de 2024, 143 de 2025 y 72 de 2026.
  • Fuentes depuradas: de 297 archivos se excluyeron 3 copias duplicadas y 1 documento no fiscal; el inventario y la evidencia económica tienen el mismo SHA-256 en ambos entornos.
  • Vínculo conservador: 3 facturas preservan vínculo relacional exacto; 19 tienen evidencia documental de neto exacto sin liquidación canónica y 271 quedan 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/293 registros y archivos, 0 extras y 0 problemas 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 72 facturas 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 3 facturas coincidieron inequívocamente por prestador, período e importe neto y quedaron LINKED_TO_SETTLEMENT sobre liquidaciones PENDING.
  • Cola explícita: 69 permanecen REGISTERED: 41 sin liquidación exacta, 9 a la espera de normalización y 19 con conflicto de período de fuente.
  • Idempotencia: el apply produjo 3 vínculos y el replay 0 mutaciones / 3 NOOP con el mismo hash funcional.
  • Cobertura OOSS: se activaron 132 relaciones prestador–obra social certificadas; el replay produjo 0 mutaciones / 132 NOOP.
  • 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/82 facturas institucionales con evidencia exacta quedaron representadas; 50 se crearon como Enviadas y 31 completaron registros existentes sin cambiar su estado.
  • Faltante bloqueado: UNIMED abril 2026 por $55.000 permanece 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; 37 estados 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 438 movimientos del segundo parcial de julio; el replay insertó 0 y 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.670 eventos, 6.130 cerrados, 1.958 excluidos y 1.582 manuales; 0 autoaplicaciones y 0 bloqueados.
  • Repetibilidad: dos replays por período reprodujeron hashes idénticos y delta cero en 20 familias económicas y operativas.
  • Prestadores sin inferencias: la liquidación integral de julio fue auditada, pero no importada. Hay 600 altas candidatas con número, 108 identidades sintéticas únicas sin colisiones, 1 línea reutilizable y 2 posibles duplicados que siguen en revisión.
  • Identidad separada de precio: sólo 36 de las 108 identidades sintéticas tienen tarifa oficial exacta; 71 difieren y 1 carece de nomenclador. En las candidatas con número, 520/600 tienen tarifa exacta y las otras 80 permanecen 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 711 líneas quedan totalmente representadas como 708 altas potenciales, 1 reutilizable y 2 en revisión, sin colisiones. De 17 lotes, 8 quedan listos, 8 bloqueados por tarifa y 1 por duplicación; de 10 facturas, 2 quedan listas, 7 bloqueadas por tarifa y 1 por duplicación.
  • Promoción cerrada: 556 líneas tienen tarifa exacta y 152 permanecen agrupadas en 13 decisiones 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 11 tarifas que requieren segunda evidencia, 2 conflictos Swiss Medical que requieren política de vigencia/plan y 2 posibles 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/297 archivos fueron contrastados con el formulario de Drive; 72 comprobantes fiscales 2026 quedaron registrados en SANDBOX con archivo privado y sin duplicados.
  • Registro antes de vincular: el nuevo estado REGISTERED preserva 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: 3 facturas tienen liquidación candidata exacta pero pago OOSS pendiente; 46 no tienen liquidación, 18 presentan conflicto de período, 4 diferencia de importe y 1 período a revisar. No se materializó ningún vínculo o pago.
  • Replay posterior al despliegue: las 72 facturas fueron detectadas como existentes, con 0 nuevas 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 72 facturas REGISTERED, 72 auditorías y 72 archivos privados. El replay inmediato creó 0, el dashboard autenticado devolvió las 72 y 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 37 controles cruzados, conservan el mismo hash en dos replays y dejan en cero las variaciones de 20 tablas 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.767 obligaciones, 1.710 abiertas, 3.050 pagadas, 6 bonificadas y 0 en revisión.
  • Poblaciones explícitas: Prestadores informa 473 perfiles registrados en el corte y el certificado separa los 459 activos; 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.json generado 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: 28 invariantes 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.776 cuotas reales, claves idempotentes únicas, cobertura completa de los 4.722 profesionales 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 observe y luego por módulo en enforce.
  • 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,00 con trazabilidad completa y sin correos, notificaciones ni saldos laterales. El caso explícito restante por $12.492,00 se 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, simulacion PREVIEW, metricas, fuentes y decisiones auditadas.
  • Re-runs incorporados al PREVIEW: la simulacion mensual reconoce PaymentOperation aprobadas de re-runs previos cuando hay evidencia unica por periodo, archivo, referencia y monto, clasificandolas como ALREADY_CLOSED sin 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_ADJUSTMENTS en 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.finalAmount como 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

  • PAYWAY queda 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 Pago o PAYWAY como 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 /track para 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 ADMIN pueden 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:

  1. Consulta todos los profesionales con deudas vencidas
  2. Itera sobre cada uno en un loop secuencial sin throttling
  3. 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.221 por spam
  • Dominio señalado: umdev.com.ar fue 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.local generaron 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 overdueNotices en sandbox y preprod

Corto plazo

  • [ ] Agregar EMAIL_REDIRECT_TO en preprod y verificar en prod
  • [ ] Limpiar emails @migrado.local de la base de datos (cambiar a NULL o marcar como inválidos)
  • [ ] Crear alias local hola@umdev.com.ar para 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_verified en 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

  1. Nunca confiar en datos legacy sin validar. Los emails @migrado.local eran un artefacto de migración que debió limpiarse al finalizar la importación.
  2. Los entornos no-productivos deben ser inertes. Preprod y sandbox NUNCA deben poder enviar emails a destinatarios reales.
  3. Todo envío masivo necesita throttling. Un loop sin pausas sobre 2,000+ destinatarios satura cualquier infraestructura de correo.
  4. DKIM/SPF/DMARC son requisitos obligatorios para enviar correo. Sin ellos, los proveedores de email (Gmail, Microsoft) rechazan o rate-limitan inevitablemente.

Referencias