Multi-currency payment cards
The client already operates a financial portal offering various services, including currency exchange. To meet the users' expectations, the client decided to launch a new product - multi-currency payment cards. By doing so, the client wanted to allow customers to conveniently use the funds accumulated in the currency accounts already available on the portal.
Project in a nutshell
Industry
Financial
Technologies
Java, Kotlin, Spring Boot, PostgreSQL, Angular, PHP, Kubernetes, Docker, Liquibase,
Duration
8 months
Team
3 Team Lead
1 Architect
11 Backend Developers
3 Frontend Developers
2 Android Developers
2 iOS Developers
1 UI Designer
1 UX Designer
2 Project Managers
3 Business Analysts
Form of cooperation
Agile, Time & Material
Scope
Consulting - legal & regulations
Product workshops & analysis
UI/UX design
Technical stack assessment
API architecture
Frontend development
Backend development
Website development
Native mobile apps
Cloud technologies
Multiple internal & external integrations
QA
SLA & maintenance
Innovations and challenges
The innovative aspect of this product was its actual multi-currency operation. Payments with these cards are always made in the currency of the transaction, without currency conversion to the card's main currency - unlike most similar products on the market. As a result, it is always up to the user to decide when and at what exchange rate to exchange the currency. At the same time, if there are insufficient funds in a currency, the system can match the appropriate balance in another currency itself to prepare the right amount of currency for the payment. What's more, settlement with the payment organisation is also carried out in the currency of the transaction rather than in one chosen currency at the organisation's exchange rate.
The challenge in this project was to ensure that the transaction was authorised in a very time-constrained manner by the business partner, particularly when there were no funds in the account in a particular currency. At that point, it was necessary to verify the customer's balances in other currencies, select the most appropriate one for the transaction, and then exchange the corresponding amount into the currency of the transaction even before the transaction itself was authorised. This required integration with the client's existing system responsible for currency exchange and optimising some existing processes linked to handling the client's currency accounts. Another challenge was the correct interpretation of hundreds of pages of technical documentation, integration with various vendor APIs and the correct interpretation of legal and regulatory requirements. In addition, the innovative approach to multi-currency on the card itself, different from the market standard, was a challenge both on the side of interacting with providers, building the transaction and settlement engine on the client side and building the user interface.