# Cuentas y Validación

Flujos de registro, validación de correo, roles, aprobación IEA y relaciones entre actores.

# Registro del Profesional Responsable

El Profesional Responsable es el primer actor del flujo. Desde el portal crea una cuenta, valida su correo y queda habilitado en Lirion cuando se asigna su rol y el registro queda público.

## Validaciones del formulario

<table id="bkmrk-campovalidaci%C3%B3nnombr" style="width: 100%; border-collapse: collapse; margin: 12px 0 20px 0;"><thead><tr><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Campo</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Validación</th></tr></thead><tbody><tr><td style="border: 1px solid #d8dee9; padding: 12px;">Nombre completo</td><td style="border: 1px solid #d8dee9; padding: 12px;">Obligatorio, se normaliza a mayúsculas y sin acentos.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">Tipo de documento</td><td style="border: 1px solid #d8dee9; padding: 12px;">Cédula o pasaporte. Para cédula se usa formato panameño validado por expresión regular.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">Teléfono</td><td style="border: 1px solid #d8dee9; padding: 12px;">Debe tener mínimo 7 dígitos locales.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">Dirección</td><td style="border: 1px solid #d8dee9; padding: 12px;">Obligatoria.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">Correo electrónico</td><td style="border: 1px solid #d8dee9; padding: 12px;">Formato válido, repetición exacta y correo único en `AD_User`.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">Contraseña</td><td style="border: 1px solid #d8dee9; padding: 12px;">Mínimo 8 caracteres, una mayúscula, una minúscula y repetición exacta.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">Confirmación</td><td style="border: 1px solid #d8dee9; padding: 12px;">Debe confirmar que los datos suministrados son verídicos.</td></tr></tbody></table>

## Registros creados

1. Se valida que el correo no exista.
2. Se valida que el documento no esté asociado a otro tercero.
3. Se crea `C_BPartner` con nombre, documento y tipo de identificación natural.
4. Se crea `C_Location` y `C_BPartner_Location` cuando hay dirección.
5. Se crea `AD_User` con nombre, teléfono, correo y vínculo al tercero.
6. Se ejecuta `setpassword` para asignar contraseña.
7. Se crea `CDS_Professional` con `C_Job_ID = Profesional Responsable`.
8. Se muestra mensaje indicando que debe validar su correo.

[![Crear Cuenta.png](https://docs.primware.net/uploads/images/gallery/2026-05/scaled-1680-/W5FoR49kz1TkqpaI-crear-cuenta.png)](https://docs.primware.net/uploads/images/gallery/2026-05/W5FoR49kz1TkqpaI-crear-cuenta.png)

## Flujo

<div drawio-diagram="100"><img src="https://docs.primware.net/uploads/images/drawio/2026-05/J4bFDqAs9g3piRqA-drawing-1-1778728987.png" alt=""/></div>

# Empresa, Titular y Asistente

Luego de contar con un Profesional Responsable, el portal permite registrar empresas, titulares y asistentes. Estas relaciones definen quién puede crear trámites, quién representa legalmente a la empresa y quién puede operar en apoyo del profesional.

> **Idea clave:** las relaciones no solo identifican personas. También delimitan quién puede crear, autorizar o trabajar una solicitud dentro del portal.

## Empresa

El registro de Empresa se realiza por pasos. El portal puede crear un nuevo tercero o reutilizar una empresa existente si ya fue localizada por RUC/DV.

1. Se capturan datos de empresa: nombre, RUC, DV, correo, teléfono, país, dirección y tipo de identificación jurídica.
2. Se valida que el correo de empresa no esté usado si la empresa no existe.
3. Se valida que el correo del representante legal no esté usado.
4. Se crea o reutiliza el tercero de la empresa.
5. Se crea `CDS_Company` con la posición Empresa.
6. Se crea el Representante Legal como tercero/contacto y relación de tercero.
7. Se registra la relación en `CDS_CompanyDetails` con `C_Job_ID = Representante Legal` y aprobado.
8. Se crea relación de tercero con el Profesional Responsable.
9. Se registra la relación Profesional - Empresa en `CDS_CompanyDetails`.
10. Se adjunta autorización del Profesional Responsable sobre `CDS_Company`.
11. Se indica que la empresa debe validar el correo y luego esperar validación del IEA.

<p class="callout warning">**Importante:** la empresa queda dependiente de validación de correo y de aprobación del IEA antes de operar completamente.</p>

[![Empresas.png](https://docs.primware.net/uploads/images/gallery/2026-05/scaled-1680-/HBFk4dLYo2kjcAZn-empresas.png)](https://docs.primware.net/uploads/images/gallery/2026-05/HBFk4dLYo2kjcAZn-empresas.png)

[![Buscar Empresa.png](https://docs.primware.net/uploads/images/gallery/2026-05/scaled-1680-/A3ujH4vTUWJzjlCT-buscar-empresa.png)](https://docs.primware.net/uploads/images/gallery/2026-05/A3ujH4vTUWJzjlCT-buscar-empresa.png)

## Titular

El Titular se registra asociado a una empresa y representa la autorización principal sobre esa empresa.

- Valida nombre, correo, documento, teléfono, país, dirección y adjunto.
- El correo debe ser único.
- Crea tercero/contacto con `C_BPartner` y `AD_User`.
- Crea relación en `CDS_CompanyDetails` con `C_Job_ID = Titular`.
- Adjunta el poder o documento de representación sobre `CDS_Company`.

## Asistente

El Asistente se registra desde el contexto del Profesional Responsable.

- Debe seleccionar empresa representante.
- Valida nombre, documento, teléfono, dirección, correo y adjunto.
- El correo debe ser único.
- Crea tercero/contacto.
- Crea relación de tercero con el Profesional Responsable.
- Crea relación en `CDS_ProfessionalDetails` entre asistente, profesional y empresa.
- Crea registro base `CDS_Assistant`.
- Adjunta autorización sobre `CDS_Assistant`.

## Baja de Profesional asociado a Empresa

Cuando un Profesional Responsable está asociado a una empresa, la empresa puede solicitar o registrar su baja desde el portal. Este flujo evita que una solicitud activa quede vinculada a un profesional que ya no trabajará con la empresa.

1. La empresa inicia sesión en el portal.
2. Ingresa al menú de profesionales.
3. Selecciona el profesional que desea dar de baja.
4. Marca o deshabilita la relación del profesional con la empresa.
5. Adjunta un documento con el motivo de la baja.
6. Guarda el cambio.

<p class="callout warning">**Regla obligatoria:** si el profesional tiene una solicitud activa asociada, la empresa debe reasignar primero esa solicitud a otro Profesional Responsable antes de completar la baja.</p>

<table id="bkmrk-situaci%C3%B3n-qu%C3%A9-debe-h" style="width:100%;border-collapse:collapse;margin:12px 0 20px 0;"><thead><tr><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Situación</th><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Qué debe hacer la empresa</th></tr></thead><tbody><tr><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">El profesional no tiene solicitudes activas asociadas.</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Puede deshabilitarlo directamente, adjuntando el documento con el motivo de la baja.</td></tr><tr><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">El profesional tiene una o más solicitudes activas.</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Debe reasignar esas solicitudes a otro profesional asociado a la empresa. Después puede completar la baja y adjuntar el motivo.</td></tr></tbody></table>

\[Imagen sugerida: menú de profesionales de la empresa con la acción de deshabilitar profesional y campo para adjuntar motivo de baja\]

## Limitaciones por rol

<table id="bkmrk-rol-puede-hacer-limi" style="width:100%;border-collapse:collapse;margin:12px 0 20px 0;"><thead><tr><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Rol</th><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Puede hacer</th><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Limitación principal</th></tr></thead><tbody><tr><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">**Profesional Responsable**</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Crear solicitudes y trabajar trámites para empresas donde esté relacionado y autorizado.</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Necesita estar relacionado y aprobado por una empresa antes de crear solicitudes para esa empresa. Puede tener múltiples trámites y trabajar con varias empresas.</td></tr><tr><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">**Empresa**</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Ser el contexto jurídico/comercial de los trámites y administrar profesionales relacionados.</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Debe estar relacionada y autorizada por un Titular, completar validación de correo y aprobación IEA. Para dar de baja a un profesional con solicitudes activas, primero debe reasignarlas.</td></tr><tr><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">**Titular**</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Autorizar o representar la relación de la empresa.</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Su función habilita la relación de la empresa; no reemplaza al Profesional Responsable para la creación técnica de solicitudes.</td></tr><tr><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">**Asistente**</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Trabajar solicitudes después de estar relacionado y aprobado por el Profesional Responsable.</td><td style="border:1px solid #d8dee9;padding:12px;vertical-align:top;">Solo puede operar en una empresa y bajo un solo Profesional Responsable. Puede tener múltiples trámites, pero todos dentro de esa misma relación.</td></tr></tbody></table>

<p class="callout info">**Regla operativa:** el Profesional Responsable puede participar en varias empresas; el Asistente queda restringido a una sola empresa y un solo profesional responsable.</p>

## Mapa de relaciones

<div drawio-diagram="112"><img src="https://docs.primware.net/uploads/images/drawio/2026-05/8QvREiX6avEldcwR-drawing-1-1778772512.png" alt="8QvREiX6avEldcwR-drawing-1-1778772512.png"/></div>

# Validación de Correo, Roles y Aprobación IEA

La validación combina una acción del usuario desde el portal, procesos REST de Lirion y revisión administrativa por parte del IEA.

> **Idea clave:** el usuario llega a una URL del portal desde un correo. Esa URL incluye un parámetro que identifica el registro a validar y el portal ejecuta el flujo correspondiente según el rol.

## URL de validación en el portal

Las rutas de validación son secciones del portal web. Cada ruta recibe un parámetro en la URL, normalmente asociado al registro que se debe validar. El portal usa ese parámetro para buscar el registro correcto, aplicar la validación y continuar con la asignación de contraseña o rol cuando corresponde.

<p class="callout info">**Nota:** esta página describe el comportamiento del portal al abrir el enlace. Los correos y workflows que generan esos enlaces se documentan en la página de backend y workflows.</p>

## Rutas de validación

<table id="bkmrk-ruta-del-portal-par%C3%A1" style="width:100%;border-collapse:collapse;margin:12px 0 20px 0;"><thead><tr><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Ruta del portal</th><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Parámetro</th><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Registro buscado</th><th style="border:1px solid #d8dee9;padding:12px;background:#eef2f7;text-align:left;">Resultado</th></tr></thead><tbody><tr><td style="border:1px solid #d8dee9;padding:12px;">`/validate-professional/:uuid`</td><td style="border:1px solid #d8dee9;padding:12px;">`:uuid`</td><td style="border:1px solid #d8dee9;padding:12px;">`CDS_Professional`</td><td style="border:1px solid #d8dee9;padding:12px;">Marca `IsVerified`, ejecuta `cds_authuser` y asigna rol si corresponde.</td></tr><tr><td style="border:1px solid #d8dee9;padding:12px;">`/validate-company/:uuid`</td><td style="border:1px solid #d8dee9;padding:12px;">`:uuid`</td><td style="border:1px solid #d8dee9;padding:12px;">`CDS_Company`</td><td style="border:1px solid #d8dee9;padding:12px;">Marca `IsVerified` y solicita definir contraseña. El acceso final depende de validación IEA.</td></tr><tr><td style="border:1px solid #d8dee9;padding:12px;">`/validate-assistant/:uuid`</td><td style="border:1px solid #d8dee9;padding:12px;">`:uuid`</td><td style="border:1px solid #d8dee9;padding:12px;">`CDS_Assistant`</td><td style="border:1px solid #d8dee9;padding:12px;">Marca `IsVerified`, ejecuta `cds_authuser` y luego solicita definir contraseña.</td></tr></tbody></table>

## Campos de control

- `IsVerified`: indica que el usuario validó el correo desde el portal.
- `IsPublic`: indica que el registro ya está habilitado para uso público/login según rol.
- `C_Job_ID`: posición funcional usada para determinar el rol a asignar.
- `IEA_AuthConfig`: configuración que relaciona posición con rol de Lirion.

## Proceso de asignación de rol

El proceso `cds_authuser` valida que el registro esté verificado, lee `C_Job_ID`, busca una configuración activa en `IEA_AuthConfig`, crea `AD_User_Roles` si el usuario no tiene el rol y marca `IsPublic = true` cuando la columna existe.

<div drawio-diagram="106"><img src="https://docs.primware.net/uploads/images/drawio/2026-05/Gty2kRN2AAC5XY2A-drawing-1-1778729573.png" alt="Gty2kRN2AAC5XY2A-drawing-1-1778729573.png"/></div>