Skip to main content

Fluxo de Dados

Introdução

 O fluxo de dados descreve como as informações e valores circulam entre os diferentes atores (agricultores, investidores e administradores), os serviços internos da plataforma e os sistemas externos integrados (ex.: gateways de pagamento, registradoras de CPR, bureaus de crédito).

 Esses fluxos desenvolvidos pensados personas João(Agricultor) e Mariana(Investidora) para garantir que o sistema opere de forma consistente, segura e transparente, evitando falhas de comunicação e assegurando a rastreabilidade de cada operação.

 Para representar essas interações, foram elaborados seis fluxos principais: Solicitação e Aprovação de Crédito, Realização de Investimento, Pagamento de Parcela e Distribuição (Assíncrono), Venda no Mercado Secundário, Saque de Fundos (Off-Ramp) e Gestão de Inadimplência, cada um detalhando as etapas críticas de dados e integrações que sustentam a operação da plataforma.

Fluxo de Solicitação e Aprovação de Crédito

 Este fluxo descreve a jornada do agricultor João desde o cadastro até ter sua proposta listada no marketplace. Ele demonstra a interação entre o usuário, o sistema automatizado e o "humano no loop" (Analista de Crédito).

Fluxo de Solicitação e Aprovação de Crédito

Fluxo de Solicitação e Aprovação de Crédito

Fonte: Produzido pelos autores (2025).

Nota: Para melhor visualização:

https://www.canva.com/design/DAG0UzRCy5Q/w-yq85d-KYoxx_jXFQzDFA/edit?ui=e30

Fluxo de Solicitação e Aprovação de Crédito
sequenceDiagram
participant João as Agricultor (Browser)
participant FE as Frontend
participant GW as API Gateway
participant Contas as Serviço de Contas
participant Analise as Serviço de Análise de Crédito
participant Backoffice as Interface do Analista
participant Analista as Analista de Crédito

João->>FE: 1. Preenche cadastro e solicitação
FE->>GW: 2. Envia dados e documentos
GW->>Contas: 3. Cria/Autentica usuário
GW->>Analise: 4. Inicia análise de crédito

activate Analise
Analise-->>GW: 5. Responde que a análise foi iniciada
GW-->>FE: 6. Exibe "Análise em andamento"
FE-->>João: Exibe "Análise em andamento"

Analise->>Bureaus Externos: 7. Consulta score de mercado (API)
Bureaus Externos-->>Analise: 8. Retorna score
Analise->>Analise: 9. Combina dados e gera Score Peerseed (ML)
Analise->>Backoffice: 10. Cria tarefa de validação para o Analista
deactivate Analise

Note right of Analista: -- Processo Manual Paralelo (horas) --
Analista->>Backoffice: 11. Acessa fila de tarefas
Analista->>Backoffice: 12. Valida documentos e dados
Analista->>Backoffice: 13. Clica em "Aprovar Crédito"

Backoffice->>GW: 14. Notifica sistema sobre a aprovação
GW->>Analise: 15. Finaliza o status da análise

activate Analise
Analise->>Contas: 16. Envia notificação de "Crédito Aprovado" para o usuário
deactivate Analise

Note over João, FE: -- Assinatura e Lançamento --
FE->>João: 17. Exibe proposta e solicita assinatura da CPR
João->>FE: 18. Assina a CPR com e-CPF
FE->>GW: 19. Envia CPR assinada
GW->>Serviço de Contratos: 20. Valida e envia para registradora (API)
Serviço de Contratos-->>GW: 21. Confirma registro
GW->>Serviço de Marketplace: 22. Lista a oportunidade de investimento

Fluxo de Realização de Investimento

 Este fluxo mostra a jornada da investidora Marina, desde o depósito de fundos (via Pix) até a alocação em uma oportunidade de crédito.

Fluxo de Realização de Investimento

Fluxo de Solicitação e Aprovação de Crédito

Fonte: Produzido pelos autores (2025).

Nota: Para melhor visualização:

https://www.canva.com/design/DAG0UzRCy5Q/w-yq85d-KYoxx_jXFQzDFA/edit?ui=e30

Murmaid Fluxo de Realização de Investimento
sequenceDiagram
participant Marina as Investidora (Browser)
participant FE as Frontend
participant GW as API Gateway
participant Marketplace as Serviço de Marketplace
participant Carteira as Serviço de Carteira Digital
participant Pagamentos as Gateway de Pagamento

Marina->>FE: 1. Acessa marketplace e escolhe oportunidade
FE->>GW: 2. Solicita detalhes da oportunidade
GW->>Marketplace: 3. Busca dados
Marketplace-->>GW: 4. Retorna dados
GW-->>FE: 5. Exibe detalhes para Marina

Marina->>FE: 6. Clica em "Investir" e define valor
FE->>GW: 7. Tenta alocar investimento
GW->>Carteira: 8. Verifica saldo de USDC

alt Saldo Insuficiente
Carteira-->>GW: 9a. Saldo insuficiente
GW-->>FE: 10a. Informa saldo insuficiente
FE->>Marina: 11a. Sugere depósito

Marina->>FE: 12a. Solicita depósito via Pix
FE->>GW: 13a. Gera cobrança Pix
GW->>Pagamentos: 14a. Cria QR Code Pix
Pagamentos-->>GW: 15a. Retorna QR Code
GW-->>FE: 16a. Exibe QR Code
FE->>Marina: 17a. Marina paga o Pix

Pagamentos-->>GW: 18a. Webhook: Pagamento Confirmado!
GW->>Carteira: 19a. Credita USDC na carteira da Marina
end

Note over Marina, FE: Marina agora tenta investir novamente com saldo
FE->>GW: 9b. Tenta alocar investimento
GW->>Carteira: 10b. Verifica saldo (agora suficiente)
Carteira-->>GW: 11b. Saldo OK. Bloqueia valor.
GW->>Marketplace: 12b. Confirma investimento na oportunidade
Marketplace-->>GW: 13b. Investimento registrado
GW-->>FE: 14b. Sucesso!
FE-->>Marina: 15b. Exibe confirmação do investimento

Fluxo de Pagamento de Parcela e Distribuição (Assíncrono)

 Este é o fluxo mais crítico do ponto de vista financeiro. Ele mostra como o pagamento de uma parcela pelo agricultor dispara um processo assíncrono para calcular taxas/impostos e distribuir o valor líquido para os investidores de forma segura e escalável.

Fluxo de Pagamento de Parcela e Distribuição

Fluxo de Solicitação e Aprovação de Crédito

Fonte: Produzido pelos autores (2025).

Nota: Para melhor visualização:

https://www.canva.com/design/DAG0UzRCy5Q/w-yq85d-KYoxx_jXFQzDFA/edit?ui=e30

Murmaid Fluxo de Pagamento de Parcela e Distribuição (Assíncrono)
sequenceDiagram
participant João as Agricultor (Browser)
participant FE as Frontend
participant GW as API Gateway
participant Pagamentos as Gateway de Pagamento
participant Broker as Message Broker (Fila)
participant Distribuidor as Serviço de Distribuição
participant Carteira as Serviço de Carteira Digital

João->>FE: 1. Acessa painel e clica em "Pagar Parcela"
FE->>GW: 2. Solicita dados de pagamento
GW->>Serviço de Contratos: 3. Gera cobrança (Pix/Boleto)
Serviço de Contratos-->>GW: 4. Retorna dados
GW-->>FE: 5. Exibe QR Code / Linha digitável

Note right of João: João efetua o pagamento no seu banco...

Pagamentos-->>GW: 6. Webhook: Pagamento Confirmado!

activate GW
GW->>Broker: 7. Publica evento "PagamentoRealizado" com os dados da transação
GW-->>Pagamentos: 8. Confirma recebimento do webhook (HTTP 200 OK)
deactivate GW

Note over Broker, Distribuidor: -- Processamento em Background --

Broker-->>Distribuidor: 9. Entrega o evento "PagamentoRealizado"

activate Distribuidor
Distribuidor->>Serviço de Contratos: 10. Busca detalhes do contrato e investidores
Serviço de Contratos-->>Distribuidor: 11. Retorna lista de investidores e % de participação

Distribuidor->>Distribuidor: 12. Calcula taxas da plataforma e impostos (IR)

loop Para cada Investidor
Distribuidor->>Distribuidor: 13. Calcula valor líquido a ser creditado
Distribuidor->>Carteira: 14. Credita USDC na carteira do Investidor
end

Distribuidor->>Servipço de Notificações: 15. Envia notificações para os investidores
deactivate Distribuidor

Fluxo de Venda no Mercado Secundário

 Este fluxo detalha como uma investidora (Marina, a vendedora) pode vender sua cota de investimento (Token de Crédito) para outro investidor (Carlos, o comprador) antes do vencimento do contrato. É um processo de troca dentro da plataforma que garante a transferência segura e atômica tanto da cota quanto do valor em USDC.

Fluxo de Venda no Mercado Secundário

Fluxo de Solicitação e Aprovação de Crédito

Fonte: Produzido pelos autores (2025).

Nota: Para melhor visualização:

https://www.canva.com/design/DAG0UzRCy5Q/w-yq85d-KYoxx_jXFQzDFA/edit?ui=e30

Murmaid Fluxo de Venda no Mercado Secundário
sequenceDiagram
participant Marina as Vendedora (Browser)
participant Carlos as Comprador (Browser)
participant FE as Frontend
participant GW as API Gateway
participant Marketplace as Serviço de Marketplace
participant Carteira as Serviço de Carteira Digital

Note over Marina, FE: -- Etapa de Venda --
Marina->>FE: 1. Acessa portfólio e seleciona token para vender
FE->>GW: 2. Solicita sugestão de preço justo
GW->>Marketplace: 3. Calcula preço justo (baseado no risco/tempo)
Marketplace-->>GW: 4. Retorna sugestão
GW-->>FE: 5. Exibe sugestão para Marina

Marina->>FE: 6. Define o preço de venda e clica em "Ofertar"
FE->>GW: 7. Envia ordem de venda
GW->>Marketplace: 8. Lista o token no mercado secundário
GW->>Carteira: 9. Marca o token de Marina como "Ofertado" (bloqueado para outras ações)

Note over Carlos, FE: -- Etapa de Compra --
Carlos->>FE: 10. Navega no mercado secundário e vê a oferta de Marina
Carlos->>FE: 11. Clica em "Comprar"
FE->>GW: 12. Envia ordem de compra

GW->>Carteira: 13. Verifica se Carlos tem saldo em USDC suficiente
alt Saldo Suficiente
Carteira-->>GW: 14. Saldo OK. Inicia transação atômica.

activate Carteira
Carteira->>Carteira: 15. Debita USDC da carteira de Carlos
Carteira->>Carteira: 16. Credita USDC na carteira de Marina
Carteira->>Carteira: 17. Transfere propriedade do Token de Crédito de Marina para Carlos
deactivate Carteira

Carteira-->>GW: 18. Confirma que a troca foi concluída
GW->>Marketplace: 19. Remove a oferta do mercado
GW-->>FE: 20. Confirma a compra para Carlos
FE-->>Carlos: 21. Exibe "Compra realizada com sucesso!"

Note right of GW: Notificações são enviadas para Marina e Carlos em background
else Saldo Insuficiente
Carteira-->>GW: 14b. Saldo insuficiente
GW-->>FE: 15b. Informa erro
FE-->>Carlos: 16b. Exibe "Saldo insuficiente para realizar a compra."
end

Fluxo de Saque de Fundos (Off-Ramp)

Fluxo de Saque de Fundos

Fluxo de Solicitação e Aprovação de Crédito

Fonte: Produzido pelos autores (2025).

 Este fluxo mostra os dois caminhos que um investidor pode seguir para retirar seu saldo em USDC da plataforma: convertendo para Reais (BRL) e recebendo via Pix, ou transferindo diretamente para uma carteira de criptomoedas externa.

Nota: Para melhor visualização:

https://www.canva.com/design/DAG0UzRCy5Q/w-yq85d-KYoxx_jXFQzDFA/edit?ui=e30

Murmaid Fluxo de Venda no Mercado Secundário
sequenceDiagram
participant Investidor as Investidor(a) (Browser)
participant FE as Frontend
participant GW as API Gateway
participant Contas as Serviço de Contas
participant Carteira as Serviço de Carteira Digital
participant Pagamentos as Gateway de Pagamento

Investidor->>FE: 1. Solicita saque e escolhe o método

alt Método: Saque para Conta Bancária (Pix)
Investidor->>FE: 2a. Informa valor do saque em USDC
FE->>GW: 3a. Inicia saque para BRL

GW->>Contas: 4a. Busca dados da conta bancária (mesma titularidade)
Contas-->>GW: 5a. Retorna dados bancários

GW->>Carteira: 6a. Solicita bloqueio do saldo em USDC
Carteira-->>GW: 7a. Saldo verificado e bloqueado

GW->>Pagamentos: 8a. Requisita conversão USDC -> BRL e envio de Pix
Pagamentos-->>GW: 9a. Confirma recebimento da ordem de saque

Note right of Pagamentos: Processo de conversão e PIX leva alguns minutos...

Pagamentos-->>GW: 10a. Webhook: Transferência Pix concluída!
GW->>Carteira: 11a. Debita o saldo em USDC que estava bloqueado
GW->>Serviço de Notificações: 12a. Envia notificação de sucesso
end

alt Método: Saque para Carteira Cripto
Investidor->>FE: 2b. Informa valor do saque e endereço da carteira externa
FE->>GW: 3b. Inicia saque de cripto

GW->>Carteira: 4b. Solicita transação de saque para endereço externo

activate Carteira
Carteira->>Carteira: 5b. Verifica saldo e bloqueia valor
Carteira->>Carteira: 6b. Constrói e assina a transação (com chaves seguras)
Carteira->>Blockchain: 7b. Transmite a transação para a rede (ex: Polygon)
deactivate Carteira

Note right of Blockchain: Transação sendo confirmada na rede...

Blockchain-->>Carteira: 8b. Evento: Transação confirmada!
Carteira->>Carteira: 9b. Debita o saldo que estava bloqueado
Carteira->>Serviço de Notificações: 10b. Envia notificação de sucesso
end

Fluxo de Gestão de Inadimplência

 Este é um fluxo de sistema, que não é iniciado diretamente por um usuário. Ele descreve o processo automático que a plataforma executa diariamente para identificar parcelas em atraso, aplicar as devidas penalidades e notificar todas as partes envolvidas, garantindo a gestão de risco do portfólio.

Fluxo de Gestão de Inadimplência

Fluxo de Solicitação e Aprovação de Crédito

Fonte: Produzido pelos autores (2025).

Nota: Para melhor visualização:

https://www.canva.com/design/DAG0UzRCy5Q/w-yq85d-KYoxx_jXFQzDFA/edit?ui=e30

Murmaid Fluxo de Gestão de Inadimplência

sequenceDiagram
participant Scheduler as Agendador (Cron Job)
participant Contratos as Serviço de Contratos
participant Notificacoes as Serviço de Notificações
participant Backoffice as Interface do Admin

Scheduler->>Contratos: 1. Gatilho diário: "Verificar parcelas vencidas"

activate Contratos
Contratos->>Contratos: 2. Busca no DB por parcelas com data_vencimento < hoje E status != "Paga"

loop Para cada Parcela em Atraso encontrada
Contratos->>Contratos: 3. Atualiza status da parcela para "Em Atraso"
Contratos->>Contratos: 4. Calcula multa (2%) e juros de mora (1%/mês)
Contratos->>Contratos: 5. Salva o novo valor atualizado da parcela

Contratos->>Notificacoes: 6. Envia notificação de atraso para o Agricultor
Contratos->>Notificacoes: 7. Envia notificação de inadimplência para os Investidores daquela CPR

Contratos->>Backoffice: 8. Cria um alerta no painel de risco do administrador
end
deactivate Contratos