API backend que simula o processamento de transações financeiras com análise de risco antifraude.
Este projeto foi desenvolvido como parte do meu processo de aprendizado em backend com Java e Spring Boot, simulando um cenário próximo ao utilizado por bancos digitais e fintechs para autorizar transações.
O sistema representa um motor de decisão para transações financeiras, responsável por:
- Receber solicitações de pagamento\
- Executar análise de risco baseada em regras\
- Classificar a transação\
- Permitir decisão automática ou manual\
- Controlar o fluxo de estados da transação
O objetivo foi simular os dois lados do processo:
- 👤 Cliente → cria pagamentos\
- 🕵️ Analista → acompanha, analisa e decide
Permite criar novos pagamentos informando valor e descrição.
Permite visualizar transações, acompanhar logs, executar análise manual e aprovar ou rejeitar pagamentos.
Obs: Fiz desta maneira porque inicialmente estava tudo no arquivo index.hmtl porém precisei simular um cliente/usuário fazendo uma transação e o analista com o papel de verificar os valores entrando no sistema e posteriormente realizar a decisão de aprovar ou rejeitar(dependendo da análise dele) tem um terceiro botão de decisão automática caso seja valores menores(nada suspeito) porém futuramente pretendo automatizar essa posição do analista( o que seria ideal em um cenário de transação onde tudo precisa ser rápido e validado sem interferência humana)
O sistema simula o fluxo interno de autorização de uma transação financeira, como:
- PIX\
- Transferência bancária\
- Pagamento online
- Cliente cria uma transação\
- O sistema calcula um score de risco\
- Se o risco for alto, a transação vai para revisão\
- O analista pode aprovar ou rejeitar\
- Se o risco for baixo, a aprovação pode ser automática
Regra Pontuação
Valor maior que 5000 +50 Transação entre 22h e 6h +40 Palavra "urgente" na descrição +20
- Se score >= 70 → REJECTED\
- Caso contrário → APPROVED
- PENDING → transação criada\
- UNDER_REVIEW → análise executada\
- APPROVED → autorizada\
- REJECTED → bloqueada
controller → service → repository → domain → dto
- Controller → Camada HTTP\
- Service → Regras de negócio\
- Repository → Persistência\
- Domain → Entidades e enums\
- DTO → Comunicação externa
- Java 17\
- Spring Boot\
- Spring Data JPA\
- H2 Database\
- Maven\
- JUnit 5\
- Lombok
- Java 17\
- Maven
git clone https://github.com/Lucasdeo1/distributed-payment-system.git\ cd distributed-payment-system/payment-service-java
Windows: mvnw.cmd spring-boot:run
Linux/Mac: ./mvnw spring-boot:run
Aplicação disponível em:
mvn test
Este projeto foi desenvolvido com o objetivo de:
- Consolidar conhecimentos em Spring Boot\
- Estruturar aplicações backend em camadas\
- Modelar workflow de estados\
- Implementar regras de negócio\
- Escrever testes automatizados\
- Simular um cenário próximo ao mercado financeiro
- Dockerização\
- Swagger\
- Spring Security\
- PostgreSQL\
- CI/CD
Lucas Deodato
https://github.com/Lucasdeo1