Skip to content

Recompras (Buybacks)

Requisitos previos de acceso

  • Permiso (módulo): repurchaseTokens (ejecutar recompra). Visualizar requiere acceso al grupo (viewCredits).
  • Licencia/Feature: CREDIT_INVESTMENTS habilitada en la licencia del tenant (Vault).
  • Contenedor del menú: TOKENIZACIÓN → grupo Crédito Tokenizado

Qué es / cuándo usar

La pantalla de Recompras gestiona las solicitudes de buyback — cuando el originador (o la casa) necesita recomprar la posición en un Deal, devolviendo el capital al inversor. Las recompras surgen de eventos como violación de contrato, fraude, cuentas por cobrar inválidas o liquidación anticipada.

Use esta pantalla para localizar un deal, listar sus solicitudes de recompra y ejecutar las que están aprobadas/pendientes, disparando la devolución financiera al inversor y la baja de la posición (incluyendo la quema de las unidades tokenizadas, cuando corresponda).

Requisitos previos

  • Permiso: repurchaseTokens (permiso doble — enum CPM + módulo dinámico en la BD).
  • Licencia/Feature: CREDIT_INVESTMENTS habilitada. Sin ella el grupo ni siquiera aparece en el menú.
  • Dependencias de otras pantallas: es necesario seleccionar un Deal existente; la solicitud de recompra debe existir (originada por el flujo del deal/cuenta por cobrar).

Paso a paso

  1. Acceda al menú Crédito Tokenizado → Recompras.
  2. Busque y seleccione un Deal en el campo de búsqueda (la lista carga los deals; filtra por número/ID).
  3. Las solicitudes de recompra de ese deal se cargan.
  4. Para una solicitud ejecutable, use Ejecutar → confirme en el bottom-sheet.

Filtros y columnas

Filtro/ColumnaQué muestraOrigen del dato
Deal (selector)Deal seleccionado para listar sus recomprasbúsqueda sobre getDeals(); obligatorio
Deal (columna)Número/ID del deal de la solicitudBuybackRequest.dealId (resuelto via dealMap)
OriginadorCedente asociadoBuybackRequest.originatorId (resuelto via originatorMap)
ValorMonto a recomprarBuybackRequest.buybackAmount (BigNumber)
MotivoCONTRACT_VIOLATION, FRAUD, INVALID_RECEIVABLES, EARLY_SETTLEMENT, OTHERBuybackRequest.reason (+ reasonDetails)
EstadoREQUESTED, PENDING, APPROVED, EXECUTED, REJECTED, FAILEDBuybackRequest.status
Creado enFecha de la solicitudBuybackRequest.createdAt

Acciones y modales

  • Seleccionar deal / Limpiar: define el dealId que filtra las solicitudes; sin deal seleccionado la pantalla advierte que es obligatorio.
  • Ejecutar: executeBuyback(requestId, approvedBy) tras confirmación (bottom-sheet). El approvedBy es el ID del operador logueado (o system). Mueve la solicitud a EXECUTED, devolviendo el capital al inversor y dando de baja la posición.

Por ser una operación financiera sensible (devolución + quema de posición), la ejecución puede disparar step-up (contraseña + MFA, X-Step-Up-Token, ventana de 5 min) según el entorno — reconfirmación de identidad, no aprobación 4-eyes.

Reglas de negocio / consideraciones

Atención

  • Deal obligatorio. La lista de recompras solo carga después de seleccionar un deal; no existe vista global de todas las recompras en esta pantalla.
  • El motivo importa para la auditoría. reason/reasonDetails explican la recompra (fraude, violación, etc.) y deben coincidir con el eventual Cancelamiento del deal.

Irreversible

  • Ejecutar una recompra es definitivo. Dispara la devolución financiera al inversor y la baja/quema de las unidades tokenizadas de la posición. No existe rollback — una recompra equivocada requiere un nuevo evento financiero compensatorio.
  • Valores financieros: buybackAmount es BigNumber en el backend; verifique los decimales antes de confirmar.
  • Idempotencia: la devolución financiera pasa por FinLib y es idempotente por externalId — si se reprocesa, el error E00021 ("already processed") significa éxito (ya liquidado), no falla. Ver [[reference_finlib_idempotency]].

Pantallas relacionadas