Project Story
Inspiration
Managing shared expenses in a group is always messy. Whether it's a trip, rent, or just everyday spending with friends, people constantly have to calculate who owes what. Existing solutions either rely on manual tracking or require trust that someone will settle the balance later.
We wanted to remove this friction entirely by creating a system where payments are automatically split in real time — no debts, no reminders, no awkward conversations.
How We Built It
Our solution is based on PSD2 Open Banking APIs, which allow secure access to users’ bank accounts (with their consent).
Here’s how it works:
- Each user connects their bank account via PSD2 authorization
- We create a virtual shared account that represents a group wallet
- Every participant is linked to this shared account
- When a payment is made:
- The system splits the total amount equally between all participants
- It sends payment requests to each connected bank account
- Each user pays their share instantly from their own account
- The system splits the total amount equally between all participants
Example:
If a purchase costs €40 and there are 4 users, each user automatically pays €10 from their own bank account.
Additionally:
- Each user gets a virtual payment card linked to the shared account
- Any purchase made with this card triggers the automatic split mechanism
What We Learned
- How PSD2 and Open Banking ecosystems work in practice
- Secure authentication flows (OAuth-like bank authorization)
- Handling distributed payments across multiple accounts
- Designing a system that balances security, usability, and trust
- Working with financial APIs and real-world constraints
Challenges
PSD2 Restrictions
Real bank APIs require certification and strict compliance, so we had to rely on sandbox environmentsSynchronization of Payments
Ensuring that all partial payments succeed together was tricky — we had to think about rollback and failure handlingUser Experience
Making complex financial logic feel simple and intuitive for users was a major challengeSecurity Concerns
Handling sensitive financial data required careful design decisions around tokens, permissions, and data storage
Final Result
We built a prototype that demonstrates a fully automated shared payment system, where users can:
- Connect their bank accounts securely
- Join a shared balance group
- Pay seamlessly with automatic expense splitting
Our project shows how PSD2 can be used to create next-generation financial tools that eliminate manual expense management and make group finances effortless.
Built With
- bcrypt
- docker
- java-jwt
- jetpack
- kotlin
- ktor
- mailhog
- postgresql
- redis
- simple-java-mail
Log in or sign up for Devpost to join the conversation.