Index / Cases / Mokka

Developing a Fintech Product for the International Market

Mokka, a popular BNPL service, collaborates with us to enhance its offerings, including virtual cards and a financial management system. Our contributions span from backend services, such as card transfers and microservices for virtual cards, to frontend development and establishing a unified platform across different markets.

May 2024

Mokka is one of the most popular BNPL services, with a customer base of over 16 million users. It was founded in 2012 to provide customers with the ability to make purchases and pay for them in equal parts according to a convenient schedule. The consumer BNPL service Mokka works with more than 7,500 retailers.

Previously, the Mokka service operated under the brand "Revo Technologies". Evrone has been providing outstaff development services to the company for over five years. We have previously talked about our experience here and here. Since then, the project's geography has expanded, and our specialists continue to develop the service as part of the internal teams of the international group of companies.

Throughout our collaboration, the service has evolved a lot. In addition to installment payments for loyal service users, a virtual Mokka card is available, which can be used to pay in parts in any online and offline stores. With Mokka, users can top up their phone balance, make purchases using the "Gift Certificates" service, transfer the available limit to any card, and much more. All this is provided within a single renewable limit.

The service also offers various opportunities for businesses: online and offline operations, apps for merchant services, apps for consultants and store administrators to track conversions, and support for different CMS and APIs for easy service integration.

Below, we will talk about the teams our specialists work in and the benefits they bring to the project.

DevOps

Updating infrastructure is a crucial step for large services, with new approaches appearing every year that offer more possibilities. In the case of Mokka, this was a planned step, but due to some unexpected circumstances, the infrastructure had to be rebuilt very quickly and from scratch.

Previously, the infrastructure of international services was stored in the capacity of a small provider. But it was attacked, resulting in long-term unavailability of client clouds. Therefore, it was decided to urgently change the cloud service provider. The team made incredible efforts to organize the transfer of infrastructure to the new cloud, as the servers of the old provider were very unstable.

The new cloud was completely empty, and it was possible to either build a copy of the old infrastructure or make an updated version that was planned. So, we created a new stateful architecture in Kubernetes, which helped slightly accelerate the process.

We used the GitOps methodology and Flux CD to speed up application deployment in Kubernetes, which helped deploy stateful applications (databases, message brokers) very quickly for each stand. We set up Continuous Integration, and now deployment happens fully automatically, eliminating human error. Before production, the code is tested in a test environment.

Frontend

Evrone's frontend specialists participated in the development of new apps for mobile commerce. Previously, a mobile merchant app for business consultants in offline stores allowed them to send a registration request to the service and get quick approval. Then, it was decided to discontinue it, and we are now working with the client's team on a PWA that will replace it. We also participated in developing web applications for retail point administrators, allowing them to generate reports and monitor installment numbers.

Almost all frontend was initially written in JavaScript and React, but over time, most applications and landings were rewritten with the team in TypeScript. Now, the frontend of client applications communicates with the backend through a BFF pattern, which forces them to go to a proxy service instead of directly to the microservice to which the request is directed. This is necessary to protect confidential data.

Currently, the Mokka frontend consists of a group of unified applications, most of which have already been rewritten in TypeScript. The team's idea is to create a universal frontend for all platforms so that one application is deployed in all countries of presence, depending on the environment variables at build time.

The project is gradually preparing to switch to Feature-Sliced Design (FSD), a code organization methodology that helps keep the code in order under regular changes in business requirements. With this approach, three levels of abstraction are used instead of standard components: layers, slices, and segments. This will standardize the architecture of frontend apps.

There is also a service for generating landings for partners. It can be displayed simply as a form and embedded via an iFrame. This application works on Headless CMS—a system that allows creating universal content for any platform: a website, web, or mobile application. It is an API with a convenient interface that can be quickly configured. This is very convenient for projects operating in different markets—there is no need to maintain different versions of sites separately; new landings can be easily and quickly generated. The admin panel of the service is implemented on Strapi.

Backend

B2C

Mokka is now a full-fledged financial service that allows clients to transfer the available limit to any bank card and track spending history. In their personal accounts, clients can access all services that allow them to manage their funds effectively.

Evrone specialists perform various tasks in the B2C team, which deals with services for users. We solve tasks related to support, bug fixes, adding gems, and updating product versions. Our specialists also helped update the authentication service. Now, it works using a scenario mechanism, which has made adding and removing new steps in this process more flexible and made the authorization more understandable. The client just needs to enter a phone number, and the service will determine whether this is a new or existing client. Existing clients will be taken to their personal accounts, while new ones will be offered to supplement their information.

Evrone participated in launching the card transfer service, connecting a new personal account for clients, and a mobile application. We helped in writing APIs through which they communicate with the main backend. Together with the client's team, we worked on implementing a microservice for virtual cards.

We also helped Mokka change the payment operator. Previously, Mokka worked with one operator, but now there are several, and we helped set up the system so that it could easily switch between them depending on the tasks. Similarly, we assist providers who handle sending notifications.

Our team is developing a service for the referral program that will allow clients to share codes and receive bonuses. The service is currently being tested, and its logic will become more complex to track clients' actions necessary to receive the bonus.

As mentioned above, the service infrastructure is being prepared for relocation to Kubernetes clusters. The backend team works with DevOps specialists, prepares services for migration, and reports errors. The project's backend is a monolith surrounded by services. All new features are tested to be implemented as a separate service communicating with the rest through an API or Kafka.

B2B

The team that works with the business is responsible for integrating stores and online platforms that offer clients a way to pay for purchases in parts from Mokka and for integration with third-party operators that provide billing and scoring services (assessing the borrower's reliability). We also helped integrate new personal accounts for B2B and B2C and set up their data exchange with the backend. The partner stores' account will become an autonomous merchant service.

The issue of correct calculations is critically important for financial applications. This concerns both the amount and the terms of payment. Errors lead not only to customer dissatisfaction but also to claims from the regulator. The Mokka project has a lot of business logic for calculating loan tariffs and payment dates. Our specialists helped solve the problem of the negative amount of the last payment for small loans, which was caused by incorrect rounding of the amount. Thanks to this, we have significantly reduced the number of support requests.

For scoring, Mokka cooperates with one of the largest services in Europe, which aggregates data from millions of borrowers from different countries. Our backend exchanges data with its system and receives the necessary information to calculate the amount available to issue. Mokka makes the final decision independently, based on its own data and information from partner systems.

Conclusion

As part of an international team, we continue to support the service's development and ensure that everything works correctly, providing Mokka service clients a pleasant user experience.

Do you need to expand the team urgently? At Evrone, we have specialists in all major technologies ready to join the work quickly. Send us a message, and we will find experts with the necessary experience for you.

We have been working with Evrone for a very long time, and we have their specialists in each of our teams. We are impressed with their expertise and the quality of work. If we need new people, we always know where to find them!
Timofey Shagun
CEO, Mokka
Let’s talk about you
Attach file
Files must be less than 8 MB.
Allowed file types: jpg jpeg png txt rtf pdf doc docx ppt pptx.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.