Multi-currency payment services
The client is a provider of currency exchange services. Already successful in this area, the client has a suitable IT system and know-how. However, the client decided to obtain the relevant authorisations and offer customers a portfolio of broadly defined payment services. The first step was to offer multi-currency payment accounts with the possibility of making domestic and international transfers.
Project in a nutshell
Industry
Financial
Technologies
Java, Kotlin, Spring Boot, PostgreSQL, Angular, PHP, Kubernetes, Docker, Liquibase
Duration
18 months
Team
1 Team Lead
7 Backend Developers
2 Frontend Developers
2 Android Developers
2 iOS Developers
1 UI Designer
1 UX designer
1 Project Manager
2 Business Analysts
Form of cooperation
Agile, Time & Material
Scope
Consulting - business
Consulting - legal & regulations
Product workshops & analysis
UI/UX design
Technical stack assessment
API architecture
Frontend development
Backend development
Website development
Native mobile apps
Multiple internal integrations
QA
SLA & maintenance
Innovations and challenges
The innovation in this project was the large-scale use of microservices and asynchronous communication, despite the need to implement the project in the environment of an extensive monolithic central system. It was interesting to introduce a unique model for transfers carried out also on the phone and by email, including to people who do not yet have an account with the client's service.
The main challenge was to build a complete transaction system for the National Payment Institution (Krajowa Instytucja Płatnicza - KIP) from scratch. Not only did we have to create all the IT systems and fit them into the client's already existing infrastructure, but we also had to take care of all legal and regulatory issues. The system design itself was demanding, as it involved providing services based on payment accounts in multiple currencies for the user. In addition, one of the client's main objectives was to ensure that the system could be developed and expanded as easily as possible to include new payment services. It was also necessary to ensure high performance and scalability due to the client's already large customer base and ambitious growth plans. Facilitating this was not the need to tightly integrate the new systems with the client's existing systems so that the existing customer base could start using the new services immediately.