Skip to content

Internal Synchronizations (Journal)

Access prerequisites

  • Permission (module): viewSyncJournal
  • License/Feature: None
  • Menu container: GENERAL → group Transaction journalsInternal Synchronizations (/manage-sync)

What it is / when to use

Lists the internal financial transaction synchronizations with the blockchain (blockchain_sync_journal). Each entry represents a financial transaction (FMS) that needs to be reflected/synchronized on-chain by the ExternalBlockchainProvider. The operator uses this screen to monitor the synchronization status and, when an entry becomes stuck, mark it for reprocessing — prompting the watcher to push the transaction to the network again.

Prerequisites

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

Step by step

  1. Go to Transaction journals → Internal Synchronizations.
  2. The list loads paginated from the server (DESC order).
  3. Search by customer ID in the search field.
  4. Click the receipt icon to view the details of an entry.
  5. For a stuck entry, click the sync icon to mark it for reprocessing. A visual confirmation (snackbar) indicates success or error.

Filters and columns

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

Actions and modals

  • Details (receipt): opens DetailsViewSyncComponent, read-only, with all fields of the entry (source, destination, financial transaction, fee, synchronization status).
  • Reprocess (sync): calls updateSyncJournal(entryId) → API-Gateway /financial-internal/updateSyncJournal → FMS (fin-lib). The entry is marked as not synchronized again, and the ExternalBlockchainProvider watcher resumes processing it on the next sweep. This is not an instantaneous action: it schedules the reprocessing.

Business rules / considerations

Attention

  • Reprocessing does not resend money: it re-enables the attempt to synchronize an already existing financial transaction with the blockchain. Use it only on entries that are provably stuck (no on-chain confirmation after a reasonable amount of time).
  • The external_blockchain_synchronized / ..._at / ..._started_at fields of the entry indicate the actual synchronization state — check the detail view before reprocessing.

Caution with repeated reprocessing

  • Reprocessing is idempotent by design (externalId/groupId): the financial pipeline does not duplicate the ledger entry. If the reprocessing finds the transaction already settled, the return code E00021 ("already processed") is success, not an error. Even so, avoid bulk reprocessing without investigating the cause of the stuck — it may mask a provider/network issue.
  • Financial amounts: principalAmount and taxAmount are BigNumber (ColumnBignumber entity column) — no rounding.