Skip to content

Sincronizaciones Externas (Diario)

Requisitos previos de acceso

  • Permiso (módulo): viewWithdrawJournal
  • Licencia/Feature: Ninguna
  • Contenedor del menú: GENERAL → grupo Diarios de transaccionesSincronizaciones Externas (/manage-withdraw)

Qué es / cuándo usar

Lista las sincronizaciones de retiro on-chain (blockchain_withdraw_journal) — transacciones financieras que implican el envío externo de fondos a una billetera fuera de la plataforma y que necesitan ser confirmadas/sincronizadas en la blockchain. El operador hace seguimiento del estado del envío y, cuando una entrada de retiro queda bloqueada, la marca para reprocesamiento, haciendo que el watcher intente reenviar/sincronizar la transacción on-chain.

A pesar de la etiqueta "Sincronizaciones Externas", el dominio es el withdraw journal: el complemento externo del diario de Sincronizaciones Internas.

Requisitos previos

  • Permiso: viewWithdrawJournal (permiso doble — enum CPM + módulo dinámico en la BD). La acción de reprocesar es sensible y puede requerir re-autenticación (step-up contraseña+MFA) según la política del tenant.
  • Licencia/Feature: ninguna.
  • Dependencias de otras pantallas: Ninguna. Las entradas son generadas por el flujo de retiro (FMS-Withdrawal/ExternalBlockchainProvider).

Paso a paso

  1. Acceda a Diarios de transacciones → Sincronizaciones Externas.
  2. El listado carga paginado desde el servidor (orden DESC).
  3. Busque por ID del cliente.
  4. Haga clic en el ícono de recibo para ver los detalles.
  5. Para una entrada bloqueada, haga clic en el ícono de sync para marcarla para reprocesamiento (un snackbar confirma éxito/error).

Filtros y columnas

Filtro / ColumnaQué muestra / haceOrigen del dato
Búsqueda por clienteFiltra las entradas de un customerId.Parámetro customerId.
Fecha (date)Cuándo se registró la sincronización de retiro.when.
Cliente de origen (customerIdFrom)Cliente que solicitó el retiro.customer_id_from.
ID de transacción (transactionId)Transacción financiera vinculada al retiro.financeTransactionId.
Monto (amount)Monto principal + unidad monetaria.principalAmount (BigNumber) + unitOfMoney.
Detalles (acción)Abre el modal de detalle.openDetails(element).
Reprocesar (acción)Marca la entrada para un nuevo intento de envío/sincronización on-chain.updateWithdrawJournal(id).

Acciones y modales

  • Detalles (recibo): abre DetailsViewWithdrawComponent, solo lectura, con los campos completos del retiro (origen, billetera de destino externa, transacción financiera, tasa, estado).
  • Reprocesar (sync): llama a updateWithdrawJournal(entryId) → API-Gateway /financial-internal/updateWithdrawJournal → FMS (fin-lib). La entrada se rehabilita y el watcher volverá a procesarla en el próximo barrido. Es una programación de reprocesamiento, no un envío inmediato.

Reglas de negocio / consideraciones

El retiro es una transferencia real de fondos

  • A diferencia del reprocesamiento de Sincronizaciones Internas, aquí hay un movimiento de salida de valor hacia una billetera externa. Reprocesar una entrada de retiro debe hacerse solo después de confirmar que el envío no fue completado (consultar el hash/estado en el detalle y, de ser posible, en el explorador de la red). Reprocesar un retiro ya enviado es el escenario a evitar.
  • La protección contra duplicidad es la idempotencia por externalId: el pipeline financiero no envía la misma transacción dos veces. Si el reprocesamiento encuentra el retiro ya completado, el retorno E00021 ("already processed") es éxito, no error.

Atención

  • Antes de reprocesar, valide el estado de sincronización en el detalle. Los retiros bloqueados suelen estar esperando confirmación on-chain, nonce/gas, o indisponibilidad del proveedor — en esos casos el reprocesamiento ayuda; en caso de error de validación de billetera, no.
  • Valores financieros: principalAmount/taxAmount son BigNumber — sin redondeo.

Pantallas relacionadas