Skip to main content
Comfaca Créditos en Línea integra la plataforma FirmaPlus para la firma electrónica de los documentos de solicitud de crédito. Una vez que el administrador genera el PDF de la solicitud e inicia el proceso, FirmaPlus envía un enlace OTP a cada firmante. El estado de cada firma es monitoreado en tiempo real desde el panel administrativo y, en segundo plano, por un daemon independiente que consulta FirmaPlus en ciclos de 5 minutos.

Flujo de Firma

1

Administrador inicia el firmado

Desde el detalle de la solicitud en el panel admin, el administrador hace clic en Iniciar firmado. Esto invoca:
El servidor construye el payload FirmaPlusRequest con los firmantes (solicitante y, si aplica, cónyuge y representante del convenio) y lo envía al endpoint signer de FirmaPlus.
2

Solicitud pasa a PENDIENTE_FIRMADO

Si FirmaPlus retorna Code: "1", el backend actualiza el estado de la solicitud a PENDIENTE_FIRMADO y almacena el NroSolicitud devuelto por FirmaPlus como transaccion_id del proceso de firmado.
3

FirmaPlus notifica a los firmantes

FirmaPlus envía automáticamente un correo electrónico (y/o SMS, según la configuración) a cada firmante con el enlace único de firma y un código OTP de validación.
4

Afiliado accede a la página pública de firma

El firmante recibe un enlace del tipo /firma/:token. Esta página pública no requiere autenticación en la aplicación; el token identifica el proceso y la identidad del firmante ante FirmaPlus.
5

Firmante ingresa el OTP y firma el documento

En la interfaz de FirmaPlus, el firmante valida su identidad con el OTP recibido, revisa el documento y aplica su firma electrónica.
6

Estado actualizado a FIRMADO

Cuando todos los firmantes completan el proceso, FirmaPlus notifica el cambio (vía webhook o consulta activa del daemon). El estado de la solicitud se actualiza a FIRMADO y queda lista para continuar el proceso de aprobación.

Composable useFirmadoDigital

El composable useFirmadoDigital encapsula toda la lógica de interacción con los endpoints de firma desde el lado del cliente.

Estado reactivo

Propiedades computadas

Métodos principales


API FirmaPlus

El servicio server/services/api-firmaplus.ts abstrae la comunicación con la plataforma FirmaPlus. Soporta autenticación Basic y por token Bearer, y en entorno dev (API_FIRMA_ENV=dev) retorna respuestas mock sin hacer llamadas reales.

Endpoints expuestos por FirmaPlus

Autenticación

Ejemplo — Enviar solicitud al endpoint signer

Respuesta de FirmaPlus


Monitoreo de Firmas

El composable useMonitoreoFirmasRealTime es usado en la página /admin/firmas/monitor para seguir el estado de todas las solicitudes en proceso de firma desde el panel administrativo.

Polling automático

El monitor realiza polling cada 30 segundos de forma silenciosa (sin mostrar indicador de carga):

Detección de cambios de estado

En cada ciclo, el composable compara el estado anterior con el nuevo y registra los cambios en cambiosRecientes (máximo 10 entradas):

Estadísticas en tiempo real

Filtros de estado disponibles


Daemon nohup

El daemon es un proceso independiente del servidor Nuxt que consulta de forma recurrente el estado de las solicitudes enviadas a FirmaPlus.

Arquitectura

Ciclo de trabajo

  1. Arranque → log nohup: daemon de consulta FirmaPlus iniciado
  2. Consulta solicitudes con estado = "PENDIENTE_FIRMADO" en base de datos
  3. Por cada solicitud lanza un worker con numero_solicitud y firmantesCount
  4. Espera a que finalice el worker antes de procesar la siguiente (ejecución secuencial)
  5. Pausa 5 minutos
  6. Repite desde el paso 2

Ejecución

Detener con Ctrl+C. El proceso cierra el cliente Prisma limpiamente ante SIGINT o SIGTERM.

Logs

Ejemplos de entradas en app.log:
El nivel de log es configurable con la variable de entorno LOG_LEVEL (DEBUG, INFO, WARN, ERROR).

Página Pública de Firma

La ruta /firma/:token es accesible sin autenticación en la aplicación y está destinada al afiliado o firmante que recibe el enlace por correo electrónico.
Este endpoint valida el token, recupera los datos del proceso de firma asociado y retorna la información necesaria para que la página muestre el estado actual y el enlace directo a la interfaz de firma de FirmaPlus.

El daemon nohup requiere que el cliente Prisma esté generado (pnpm db:generate) y que el archivo .env contenga las variables DATABASE_URL_DEV / DATABASE_URL_PRO y todas las variables API_FIRMA_* correctamente configuradas. Sin estas variables, el proceso falla al arrancar. En entorno API_FIRMA_ENV=dev, FirmaPlus responde con datos mock definidos en server/services/api-firmaplus.ts y no realiza llamadas reales a la plataforma.