Skip to content

Recompras (Buybacks)

Pré-requisitos de acesso

  • Permissão (módulo): repurchaseTokens (executar recompra). Visualizar requer o acesso ao grupo (viewCredits).
  • Licença/Feature: CREDIT_INVESTMENTS habilitada na licença do tenant (Vault).
  • Contêiner do menu: TOKENIZAÇÃO → grupo Crédito Tokenizado

O que é / quando usar

A tela de Recompras trata os pedidos de buyback — quando o originador (ou a casa) precisa recomprar a posição de um Deal, devolvendo o capital ao investidor. Recompras nascem de eventos como violação de contrato, fraude, recebíveis inválidos ou liquidação antecipada.

Use esta tela para localizar um deal, listar suas solicitações de recompra e executar as que estão aprovadas/pendentes, disparando a devolução financeira ao investidor e a baixa da posição (incluindo a queima das unidades tokenizadas, quando houver).

Pré-condições

  • Permissão: repurchaseTokens (permissão dupla — enum CPM + módulo dinâmico no DB).
  • Licença/Feature: CREDIT_INVESTMENTS habilitada. Sem ela o grupo nem aparece no menu.
  • Dependências de outras telas: é preciso selecionar um Deal existente; a solicitação de recompra precisa existir (originada pelo fluxo do deal/recebível).

Passo a passo

  1. Acesse o menu Crédito Tokenizado → Recompras.
  2. Pesquise e selecione um Deal no campo de busca (a lista carrega os deals; filtra por número/ID).
  3. As solicitações de recompra daquele deal são carregadas.
  4. Para uma solicitação executável, use Executar → confirme no bottom-sheet.

Filtros e colunas

Filtro/ColunaO que mostraOrigem do dado
Deal (seletor)Deal selecionado para listar suas recomprasbusca sobre getDeals(); obrigatório
Deal (coluna)Número/ID do deal da solicitaçãoBuybackRequest.dealId (resolvido via dealMap)
OriginadorCedente associadoBuybackRequest.originatorId (resolvido via originatorMap)
ValorMontante a recomprarBuybackRequest.buybackAmount (BigNumber)
MotivoCONTRACT_VIOLATION, FRAUD, INVALID_RECEIVABLES, EARLY_SETTLEMENT, OTHERBuybackRequest.reason (+ reasonDetails)
StatusREQUESTED, PENDING, APPROVED, EXECUTED, REJECTED, FAILEDBuybackRequest.status
Criado emData da solicitaçãoBuybackRequest.createdAt

Ações e modais

  • Selecionar deal / Limpar: define o dealId que filtra as solicitações; sem deal selecionado a tela avisa que é obrigatório.
  • Executar: executeBuyback(requestId, approvedBy) após confirmação (bottom-sheet). O approvedBy é o ID do operador logado (ou system). Move a solicitação para EXECUTED, devolvendo o capital ao investidor e baixando a posição.

Por ser uma operação financeira sensível (devolução + queima de posição), a execução pode disparar step-up (senha + MFA, X-Step-Up-Token, janela 5 min) conforme o ambiente — reconfirmação de identidade, não 4-eyes.

Regras de negócio / cuidados

Atenção

  • Deal obrigatório. A lista de recompras só carrega após selecionar um deal; não há visão global de todas as recompras nesta tela.
  • Motivo importa para auditoria. reason/reasonDetails explicam a recompra (fraude, violação etc.) e devem bater com o eventual Cancelamento do deal.

Irreversível

  • Executar recompra é definitivo. Dispara a devolução financeira ao investidor e a baixa/queima das unidades tokenizadas da posição. Não há rollback — uma recompra equivocada exige um novo evento financeiro compensatório.
  • Valores financeiros: buybackAmount é BigNumber no backend; confira casas decimais antes de confirmar.
  • Idempotência: a devolução financeira passa pela FinLib e é idempotente por externalId — se reprocessada, o erro E00021 ("already processed") significa sucesso (já liquidado), não falha. Ver [[reference_finlib_idempotency]].

Telas relacionadas