Saltar al contenido principal
Version: Siguiente

Configuración de Políticas de Aprobación

Este documento describe cómo configurar las políticas que rigen los procesos de aprobación en el sistema de gobernanza.

Concepto de Política

Una política define las reglas y condiciones bajo las cuales se puede aprobar una operación:

  • Tipo de proceso: Categoría de operación
  • Umbrales: Límites para diferentes niveles de aprobación
  • Reglas de escalamiento: Cuándo escalar a comités superiores

Arquitectura de Políticas

┌─────────────────────────────────────────────────────────────────┐
│ SISTEMA DE POLÍTICAS │
│ │
│ ┌─────────────────┐ │
│ │ ApprovalPolicy │ │
│ │ ┌─────────────┐ │ │
│ │ │ ProcessType │ │ │
│ │ └─────────────┘ │ │
│ │ ┌─────────────┐ │ │
│ │ │ Thresholds │ │ │
│ │ │ - Low │ │ │
│ │ │ - Medium │ │ │
│ │ │ - High │ │ │
│ │ └─────────────┘ │ │
│ │ ┌─────────────┐ │ │
│ │ │ Committees │ │ │
│ │ └─────────────┘ │ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Tipos de Políticas

Política de Líneas de Crédito

Define reglas para aprobar propuestas de crédito:

NivelMontoAprobación Requerida
Bajo< $10,0001 aprobador
Medio$10,000 - $100,0002 aprobadores
Alto> $100,000Comité completo

Política de Desembolsos

Define reglas para aprobar desembolsos:

NivelMontoAprobación Requerida
Bajo< $5,000Automático
Medio$5,000 - $50,0001 aprobador
Alto> $50,0002 aprobadores

Política de Retiros

Define reglas para aprobar retiros:

NivelMontoAprobación Requerida
Bajo< $1,000Automático
Medio$1,000 - $10,0001 aprobador
Alto> $10,000Comité de operaciones

Configuración de Políticas

Crear una Política

Via API GraphQL

mutation CreateApprovalPolicy($input: ApprovalPolicyCreateInput!) {
approvalPolicyCreate(input: $input) {
policy {
id
processType
thresholds {
level
amount
requiredApprovals
}
}
}
}

Definir Umbrales

mutation UpdatePolicyThresholds($input: PolicyThresholdUpdateInput!) {
policyThresholdUpdate(input: $input) {
policy {
id
thresholds {
level
amount
requiredApprovals
committeeId
}
}
}
}

Reglas de Escalamiento

Flujo de Escalamiento

┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ Nivel 1 │───▶│ Nivel 2 │───▶│ Nivel 3 │
│ (Auto) │ │ (Aprobador) │ │ (Comité) │
└──────────────┘ └──────────────┘ └──────────────┘

Condiciones de Escalamiento

CondiciónAcción
Monto excede umbralEscalar al siguiente nivel
Tiempo excedidoNotificar y escalar
Rechazado en nivel inferiorEscalar para revisión

Validaciones de Política

Pre-condiciones

Antes de iniciar un proceso de aprobación:

  1. Verificar elegibilidad: El cliente cumple requisitos
  2. Validar límites: La operación está dentro de límites permitidos
  3. Confirmar documentación: Documentos requeridos están disponibles

Durante el Proceso

  1. Verificar quórum: Suficientes aprobadores disponibles
  2. Validar votos: Los votos son de miembros autorizados
  3. Controlar tiempo: El proceso no ha expirado

Integración con Dominio

Líneas de Crédito

┌─────────────────────────────────────────────────────────────────┐
│ INTEGRACIÓN CON CRÉDITO │
│ │
│ CreditFacility.propose() ───▶ GovernanceSystem.startProcess() │
│ │ │
│ ▼ │
│ ApprovalPolicy.evaluate() │
│ │ │
│ ▼ │
│ Committee.requestVotes() │
│ │ │
│ ▼ │
│ CreditFacility.approve() ◀─── GovernanceSystem.complete() │
└─────────────────────────────────────────────────────────────────┘

Depósitos y Retiros

┌─────────────────────────────────────────────────────────────────┐
│ INTEGRACIÓN CON DEPÓSITOS │
│ │
│ Withdrawal.initiate() ───▶ GovernanceSystem.startProcess() │
│ │ │
│ ▼ │
│ ApprovalPolicy.evaluate() │
│ │ │
│ ▼ │
│ Committee.requestVotes() │
│ │ │
│ ▼ │
│ Withdrawal.approve() ◀─── GovernanceSystem.complete() │
└─────────────────────────────────────────────────────────────────┘

Ejecución Basada en Jobs

El sistema de gobernanza utiliza jobs para ejecutar las decisiones:

┌─────────────────────────────────────────────────────────────────┐
│ JOBS DE GOBERNANZA │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Process │ │ Execute │ │
│ │ Approval Job │───▶│ Decision Job │ │
│ └─────────────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Notify │ │
│ │ Stakeholders │ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Consultas de Políticas

Listar Políticas

query ListApprovalPolicies {
approvalPolicies {
edges {
node {
id
processType
isActive
thresholds {
level
amount
}
}
}
}
}

Detalle de Política

query GetApprovalPolicy($id: ID!) {
approvalPolicy(id: $id) {
id
processType
thresholds {
level
amount
requiredApprovals
committee {
id
name
}
}
createdAt
updatedAt
}
}

Permisos Requeridos

OperaciónPermiso
Crear políticaPOLICY_CREATE
Ver políticasPOLICY_READ
Modificar políticaPOLICY_UPDATE
Eliminar políticaPOLICY_DELETE

Auditoría de Políticas

Todas las modificaciones a políticas se registran en el sistema de auditoría:

  • Quién realizó el cambio
  • Qué se modificó
  • Cuándo se realizó
  • Valores anteriores y nuevos

Recorrido en Panel de Administración: Asignar Comité y Resolver Acciones

1) Asignar comité a política

Paso 12. Abre la página de políticas.

Visitar página de políticas

Paso 13. Selecciona una política.

Seleccionar política

Paso 14. Asigna comité y umbral.

Asignar comité a política

Paso 15. Verifica éxito de asignación.

Verificar comité asignado

2) Revisar acciones pendientes

Paso 16. Abre la cola de acciones.

Página de acciones

Paso 17. Confirma que la solicitud pendiente aparece.

Retiro pendiente visible

3) Aprobar o rechazar proceso

Paso 18. Abre el detalle de la solicitud.

Detalle retiro para aprobación

Paso 19. Haz clic en Aprobar.

Clic en aprobar

Paso 20. Verifica éxito y transición de estado.

Éxito de aprobación

Paso 21. Abre solicitud para flujo de rechazo.

Visitar retiro para rechazo

Paso 22. Haz clic en Rechazar e ingresa motivo.

Clic en rechazar

Paso 23. Verifica éxito del rechazo y estado terminal.

Éxito de rechazo