Desembolsos (Disbursements)
Requisitos previos de acceso
- Permiso (módulo):
creditDisburse(ejecutar/operar desembolsos). - Licencia/Feature:
CREDIT_INVESTMENTShabilitada en la licencia del tenant (Vault). - Contenedor del menú: TOKENIZACIÓN → grupo Crédito Tokenizado
Qué es / cuándo usar
La pantalla de Desembolsos hace seguimiento del repaso del valor neto de un Deal al originador (cedente) — el momento en que la anticipación efectivamente "paga" al cliente. El desembolso se ejecuta contra la cuenta BaaS del originador (generando un baasTransferId) o, en la modalidad tokenizada, vía transferencia de token.
Use esta pantalla para monitorear el estado de los desembolsos (pendiente, procesando, completado, falla), verificar el monto transferido por deal y rastrear la transferencia BaaS correspondiente.
Requisitos previos
- Permiso:
creditDisburse(permiso doble — enum CPM + módulo dinámico en la BD). - Licencia/Feature:
CREDIT_INVESTMENTShabilitada. Sin ella el grupo ni siquiera aparece en el menú. - Dependencias de otras pantallas: el Deal debe estar aprobado/financiado; el originador (Partes) debe tener cuenta BaaS activa y estado compatible (APPROVED).
Paso a paso
- Acceda al menú Crédito Tokenizado → Desembolsos.
- Filtre por Estado.
- Haga seguimiento de cada fila: deal, valor, estado, ID de transferencia BaaS y fecha.
- La ejecución del desembolso es disparada por el flujo del deal (
executeDisbursement/disbursementViaToken); esta pantalla es de seguimiento.
Filtros y columnas
| Filtro/Columna | Qué muestra | Origen del dato |
|---|---|---|
| Deal | Operación cuyo valor neto fue transferido | disbursement.dealId |
| Valor | Monto desembolsado al originador | disbursement.amount (BigNumber) |
| Estado | PENDING, PROCESSING, COMPLETED, FAILED (y equivalentes del backend) | disbursement.status (filtro statusFilter) |
| ID Transferencia BaaS | Identificador de la transferencia bancaria en el proveedor | disbursement.baasTransferId |
| Creado en | Fecha del desembolso | disbursement.createdAt |
Acciones y modales
Esta pantalla es principalmente de monitoreo. La ejecución ocurre en los flujos de servicio:
- Desembolso fiat (BaaS):
executeDisbursement({ dealId, amount, idempotencyKey })— transfiere el neto a la cuenta BaaS del originador y grababaasTransferId. - Desembolso vía token:
disbursementViaToken({ dealId, originatorUserId, tokenId, amount })— transferencia representada por una transferencia de token (walletTransaction).
La ejecución de desembolso es una acción financiera sensible y puede requerir step-up (contraseña + MFA, X-Step-Up-Token, ventana de 5 min) según el entorno.
Reglas de negocio / consideraciones
Atención
- El originador debe estar habilitado. La transferencia exige que la Parte originadora tenga cuenta BaaS activa y estado aprobado; sin esto el desembolso falla (
FAILED). baasTransferIdes el ancla de conciliación. Úselo para hacer coincidir el desembolso con el extracto del proveedor BaaS.- Valor neto, no bruto. Lo que se desembolsa es el
netDisbursementdel deal (bruto − descuento − comisiones), no el valor nominal de las cuentas por cobrar.
Irreversible
- Un desembolso ejecutado no tiene rollback. Una vez que la transferencia BaaS/token sale, el dinero está con el originador; las correcciones requieren un nuevo evento financiero (reversión/recompra).
- Valores financieros:
amountes BigNumber en el backend; no redondee al verificar la transferencia. - Idempotencia: el desembolso acepta
idempotencyKeyy pasa por FinLib — idempotente por externalId. En reprocesamiento,E00021("already processed") es éxito (ya desembolsado), no falla. Ver [[reference_finlib_idempotency]]. - Estado APPROVED: el originador destinatario debe estar aprobado para recibir la transferencia.
Ejemplos
Escenario 1 — Desembolso fiat completado
- Deal aprobado y financiado; originador con cuenta BaaS activa.
- El flujo ejecuta
executeDisbursementcon elnetDisbursement. - La fila aparece como
COMPLETEDconbaasTransferIdcompleto — concilie con el extracto del proveedor.
Escenario 2 — Reprocesamiento seguro tras un crash
- El proceso cayó justo después de que la transferencia salió, pero antes de confirmar.
- El reproceso usa el mismo
idempotencyKey; FinLib respondeE00021. - Trátelo como éxito — no hay doble desembolso.