Sincronismos Externos (Jornal)
Pré-requisitos de acesso
- Permissão (módulo):
viewWithdrawJournal - Licença/Feature: Nenhuma
- Contêiner do menu: GERAL → grupo Jornais de transações → Sincronismos Externos (
/manage-withdraw)
O que é / quando usar
Lista os sincronismos de saída/saque on-chain (blockchain_withdraw_journal) — transações financeiras que envolvem envio externo de fundos para uma carteira fora da plataforma e precisam ser efetivadas/sincronizadas na blockchain. O operador acompanha o estado do envio e, quando uma entrada de saque fica travada, marca-a para reprocessamento, fazendo o watcher tentar reenviar/sincronizar a transação on-chain.
Apesar do rótulo "Sincronismos Externos", o domínio é o withdraw journal: o complemento externo do jornal de Sincronismos Internos.
Pré-condições
- Permissão:
viewWithdrawJournal(permissão dupla — enum CPM + módulo dinâmico no DB). A ação de reprocessar é sensível e pode exigir re-autenticação (step-up senha+MFA) conforme política do tenant. - Licença/Feature: nenhuma.
- Dependências de outras telas: Nenhuma. As entradas são geradas pelo fluxo de saque (FMS-Withdrawal/ExternalBlockchainProvider).
Passo a passo
- Acesse Jornais de transações → Sincronismos Externos.
- A listagem carrega paginada do servidor (ordem
DESC). - Pesquise por ID do cliente.
- Clique no ícone de recibo para ver os detalhes.
- Para uma entrada travada, clique no ícone de sync para marcá-la para reprocessamento (snackbar confirma sucesso/erro).
Filtros e colunas
| Filtro / Coluna | O que mostra / faz | Origem do dado |
|---|---|---|
| Busca por cliente | Filtra pelas entradas de um customerId. | Parâmetro customerId. |
Data (date) | Quando o sincronismo de saque foi registrado. | when. |
Cliente de origem (customerIdFrom) | Cliente que solicitou o saque. | customer_id_from. |
ID da transação (transactionId) | Transação financeira ligada ao saque. | financeTransactionId. |
Valor (amount) | Valor principal + unidade monetária. | principalAmount (BigNumber) + unitOfMoney. |
| Detalhes (ação) | Abre o modal de detalhe. | openDetails(element). |
| Reprocessar (ação) | Marca a entrada para nova tentativa de envio/sincronização on-chain. | updateWithdrawJournal(id). |
Ações e modais
- Detalhes (recibo): abre
DetailsViewWithdrawComponent, somente leitura, com os campos completos do saque (origem, carteira de destino externa, transação financeira, taxa, status). - Reprocessar (sync): chama
updateWithdrawJournal(entryId)→ API-Gateway/financial-internal/updateWithdrawJournal→ FMS (fin-lib). A entrada é reabilitada e o watcher volta a processá-la na próxima varredura. É um agendamento de reprocessamento, não um envio imediato.
Regras de negócio / cuidados
Saque é envio real de fundos
- Diferente do reprocessamento de Sincronismos Internos, aqui há movimento de saída de valor para uma carteira externa. Reprocessar uma entrada de saque deve ser feito apenas após confirmar que o envio não foi efetivado (consultar o hash/estado no detalhe e, se possível, no explorer da rede). Reprocessar um saque já enviado é o cenário a evitar.
- A proteção contra duplicidade é a idempotência por
externalId: o pipeline financeiro não envia duas vezes a mesma transação. Se o reprocessamento encontrar o saque já efetivado, o retornoE00021("already processed") é sucesso, não erro.
Atenção
- Antes de reprocessar, valide o status de sincronização no detalhe. Saques travados costumam aguardar confirmação on-chain, nonce/gas, ou indisponibilidade do provedor — nesses casos o reprocessamento ajuda; em caso de erro de validação de carteira, não.
- Valores financeiros:
principalAmount/taxAmountsão BigNumber — sem arredondamento.