3x
100k
UK
FinTech
About the client
Challenge
The application for managing all recurring payments had to combine several essential features. First, it had to collect the user data, correctly classify the payments and finally present all the subscriptions in an easy-to-analyze way. Our client searched for a company that could tackle the development challenges and build an algorithm that would become the base of the future app. EVNE Developers became the perfect fit for this task with our strong development skills and product mindset.

Solution

The first part of the project was building an MVP for subscription management. Here’s how it works. The user’s consent is needed for ApTap to use their personal data, so the user logs in to their bank and provides the app with access. Once the access is granted, the app analyzes all transactions, identifying those that are recurring, such as Netflix or Spotify subscriptions. It also includes all types of suppliers, from water to mobile connection and insurance providers.


Budget planning
The app lets users plan their budget by overviewing their past payments as well as upcoming ones.


The list of subscriptions
With access to payment data, ApTap displays all subscriptions on one screen, facilitating their management.


Switching between providers
Finally, through ApTap the users can see different options for subscriptions, compare prices and choose the most cost-saving deals.
But once the app was developed, a major issue arose. During the development phase, law regulations have changed and as result our client couldn’t get access to the payment data as it was planned.
The Open Banking system in the EU provides two different levels of access:
- C1 Access (Read-Only Access) allows companies to retrieve and view a customer’s account information from their bank. This includes details such as account balances, transaction history, and standing orders.
- C2 Access (Read/Write Access) allows licensed companies to not only retrieve account information but also initiate transactions on behalf of the customer. This can include making payments, transferring funds, and setting up direct debits.
ApTap needed C1 Access to be able to collect user data and identify payments as subscriptions, but there was no possibility to gain it without direct cooperation with the banks. Due to this fact, the project had to be stopped. But for ApTap it wasn’t the end. Even though the lack of access to Open Banking prevented the app from being launched, the product still had room for further development.
Our client returned to us in two weeks and asked to extract the core algorithm that identifies and analyzes payments. Happy to continue our collaboration, we started the second part of the project and moved to work with the search core.

Leveraging Swagger to build an independent system
The algorithm we developed during the first phase was connected to the Open Banking system that had its own endpoints. This time it had to be independent of the system, allowing scalability and further development.
To implement it, we used Swagger, an open-source framework for developing and describing RESTful APIs. Using the CSV files with the user data about bank transactions, provided by our client, we developed an algorithm that didn’t need the Open Banking system. In other words, we found a way to work directly with banks which meant a new start for ApTap. Now the algorithm could be used not only in an app for managing subscriptions but also as part of a mobile banking solution, providing users with analytics of their subscriptions.
Improving the accuracy of subscription detection with three categories of credibility
After the product got back on track, we had to ensure that its core feature would function as intended. The main challenge in automatically identifying subscriptions is accuracy. To avoid mistakes, we implemented 3 categories of accuracy to define if a payment refers to a subscription or not:
- 30-50% of credibility,
- 50-75% of credibility,
- And more than 80% of credibility.
The percentage of credibility depends on several factors:
1. If the sum of the payment,
2. its regularity,
3. the recipient.
If the sum doesn’t change and it’s a monthly payment, then the algorithm automatically defines it as almost certainly a subscription. The chances are low if the sum varies or some months are skipped, because it may not be a subscription but some irregular payments. After the analysis is completed, the algorithm shows the suggestions and the user can approve them or not. By implementing 3 categories, we helped users better understand how the algorithm works and improved the accuracy of results overall.
Optimizing the algorithm to reach the utmost accuracy
To identify payments, the algorithm also analyzes keywords such as, for example, Netflix, to define the exact type of subscription. We faced several challenges and went through many iterations to develop this feature. For example, some suppliers shared similar keywords, making it difficult to accurately identify the intended recipient. To solve it, we had to increase the number of the analyzed keywords, while not overpassing the limit of symbols as it could affect the time spent on analysis and result efficiency.
Through multiple iterations, we managed to achieve a high level of accuracy, delivering an algorithm that automatically defines the type, frequency, and recipient of the payment.
Independent from the Open Banking system, the solution can be developed further, avoiding the difficulties that we faced when first launched an MVP.
Value Delivered
Core algorithm
We built a foundation for the future product, successfully turning our client’s idea into reality.
Instant performance
The algorithm we built is able to perform real-time analysis of 100K transactions in 10 seconds.
Scalability
We assured scalability of the product by applying engineering patterns and database structure.
EVNE Developers has the right expertise to build and deliver products that change the world for the better. Tell us your idea and we’ll find a way to successfully implement it.



