Skip to content

External Synchronizations (Journal)

Access prerequisites

  • Permission (module): viewWithdrawJournal
  • License/Feature: None
  • Menu container: GENERAL → group Transaction journalsExternal Synchronizations (/manage-withdraw)

What it is / when to use

Lists the on-chain withdrawal synchronizations (blockchain_withdraw_journal) — financial transactions that involve external fund transfers to a wallet outside the platform and need to be confirmed/synchronized on the blockchain. The operator monitors the transfer status and, when a withdrawal entry becomes stuck, marks it for reprocessing, prompting the watcher to retry sending/synchronizing the transaction on-chain.

Despite the label "External Synchronizations", the domain is the withdraw journal: the external counterpart of the Internal Synchronizations journal.

Prerequisites

  • Permission: viewWithdrawJournal (dual permission — CPM enum + dynamic module in the DB). The reprocessing action is sensitive and may require re-authentication (step-up password+MFA) depending on tenant policy.
  • License/Feature: none.
  • Dependencies on other screens: None. Entries are generated by the withdrawal flow (FMS-Withdrawal/ExternalBlockchainProvider).

Step by step

  1. Go to Transaction journals → External Synchronizations.
  2. The list loads paginated from the server (order DESC).
  3. Search by customer ID.
  4. Click the receipt icon to view the details.
  5. For a stuck entry, click the sync icon to mark it for reprocessing (a snackbar confirms success/error).

Filters and columns

Filter / ColumnWhat it shows / doesData source
Customer searchFilters entries by customerId.customerId parameter.
Date (date)When the withdrawal synchronization was recorded.when.
Source customer (customerIdFrom)Customer who requested the withdrawal.customer_id_from.
Transaction ID (transactionId)Financial transaction linked to the withdrawal.financeTransactionId.
Amount (amount)Principal amount + monetary unit.principalAmount (BigNumber) + unitOfMoney.
Details (action)Opens the detail modal.openDetails(element).
Reprocess (action)Marks the entry for a new on-chain send/synchronization attempt.updateWithdrawJournal(id).

Actions and modals

  • Details (receipt): opens DetailsViewWithdrawComponent, read-only, with the full withdrawal fields (origin, external destination wallet, financial transaction, fee, status).
  • Reprocess (sync): calls updateWithdrawJournal(entryId) → API-Gateway /financial-internal/updateWithdrawJournal → FMS (fin-lib). The entry is re-enabled and the watcher will process it again on the next scan. This is a scheduling of reprocessing, not an immediate send.

Business rules / considerations

Withdrawal is a real fund transfer

  • Unlike reprocessing of Internal Synchronizations, here there is an outgoing transfer of value to an external wallet. Reprocessing a withdrawal entry should only be done after confirming that the transfer was not completed (check the hash/status in the detail and, if possible, on the network explorer). Reprocessing an already-sent withdrawal is the scenario to avoid.
  • Protection against duplication is idempotency by externalId: the financial pipeline does not send the same transaction twice. If reprocessing finds the withdrawal already completed, the return E00021 ("already processed") is success, not an error.

Attention

  • Before reprocessing, validate the synchronization status in the detail. Stuck withdrawals typically await on-chain confirmation, nonce/gas, or provider unavailability — in these cases reprocessing helps; in the case of a wallet validation error, it does not.
  • Financial values: principalAmount/taxAmount are BigNumber — no rounding.