Desembolsos (Disbursements)
Pré-requisitos de acesso
- Permissão (módulo):
creditDisburse(executar/operar desembolsos). - Licença/Feature:
CREDIT_INVESTMENTShabilitada na licença do tenant (Vault). - Contêiner do menu: TOKENIZAÇÃO → grupo Crédito Tokenizado
O que é / quando usar
A tela de Desembolsos acompanha o repasse do valor líquido de um Deal ao originador (cedente) — o momento em que a antecipação efetivamente "paga" o cliente. O desembolso é executado contra a conta BaaS do originador (gerando um baasTransferId) ou, na modalidade tokenizada, via transferência de token.
Use esta tela para monitorar o estado dos desembolsos (pendente, processando, concluído, falha), conferir o valor repassado por deal e rastrear a transferência BaaS correspondente.
Pré-condições
- Permissão:
creditDisburse(permissão dupla — enum CPM + módulo dinâmico no DB). - Licença/Feature:
CREDIT_INVESTMENTShabilitada. Sem ela o grupo nem aparece no menu. - Dependências de outras telas: o Deal precisa estar aprovado/financiado; o originador (Partes) precisa ter conta BaaS ativa e status compatível (APPROVED).
Passo a passo
- Acesse o menu Crédito Tokenizado → Desembolsos.
- Filtre por Status.
- Acompanhe cada linha: deal, valor, status, ID da transferência BaaS e data.
- A execução do desembolso é disparada pelo fluxo do deal (
executeDisbursement/disbursementViaToken); esta tela é o acompanhamento.
Filtros e colunas
| Filtro/Coluna | O que mostra | Origem do dado |
|---|---|---|
| Deal | Operação cujo valor líquido foi repassado | disbursement.dealId |
| Valor | Montante desembolsado ao originador | disbursement.amount (BigNumber) |
| Status | PENDING, PROCESSING, COMPLETED, FAILED (e equivalentes do backend) | disbursement.status (filtro statusFilter) |
| ID Transferência BaaS | Identificador da transferência bancária no provedor | disbursement.baasTransferId |
| Criado em | Data do desembolso | disbursement.createdAt |
Ações e modais
Esta tela é primariamente de monitoramento. A execução acontece nos fluxos de serviço:
- Desembolso fiat (BaaS):
executeDisbursement({ dealId, amount, idempotencyKey })— transfere o líquido à conta BaaS do originador e gravabaasTransferId. - Desembolso via token:
disbursementViaToken({ dealId, originatorUserId, tokenId, amount })— repasse representado por transferência de token (walletTransaction).
A execução de desembolso é ação financeira sensível e pode exigir step-up (senha + MFA, X-Step-Up-Token, janela 5 min) conforme o ambiente.
Regras de negócio / cuidados
Atenção
- Originador precisa estar apto. O repasse exige a Parte originadora com conta BaaS ativa e status aprovado; sem isso o desembolso falha (
FAILED). baasTransferIdé a âncora de conciliação. Use-o para casar o desembolso com o extrato do provedor BaaS.- Valor líquido, não bruto. O que se desembolsa é o
netDisbursementdo deal (bruto − desconto − taxas), não o valor de face dos recebíveis.
Irreversível
- Desembolso executado não tem rollback. Uma vez que a transferência BaaS/token sai, o dinheiro está com o originador; correções exigem novo evento financeiro (estorno/recompra).
- Valores financeiros:
amounté BigNumber no backend; não arredonde ao conferir o repasse. - Idempotência: o desembolso aceita
idempotencyKeye passa pela FinLib — idempotente por externalId. Em reprocessamento,E00021("already processed") é sucesso (já desembolsado), não falha. Ver [[reference_finlib_idempotency]]. - Status APPROVED: o originador-alvo deve estar aprovado para receber o repasse.
Exemplos
Cenário 1 — Desembolso fiat concluído
- Deal aprovado e financiado; originador com conta BaaS ativa.
- O fluxo executa
executeDisbursementcom onetDisbursement. - A linha aparece como
COMPLETEDcombaasTransferIdpreenchido — concilie com o extrato do provedor.
Cenário 2 — Reprocessamento seguro após crash
- O processo caiu logo após a transferência sair, mas antes de confirmar.
- O reprocesso usa o mesmo
idempotencyKey; a FinLib respondeE00021. - Trate como sucesso — não há duplo desembolso.