case study SlimPay
How we helped to leverage SlimPay API in order to support creation of a brand new dashboard
case study SlimPay
A Single Page Application to manage subscriptions and subscribers as well as mandates and payments for SlimPay's clients
SlimPay, a European payment processing giant, hired XSolve to build a front-end application based on the existing API that was improved on this occasion. Moreover, XSolve helped with new APIs creation while SlimPay designed microservices architecture, supported & bug-fixed by XSolve.
Development hours performed
Front-end unit tests coverage
Size of the development team at XSolve
Slimpay’s team is extraordinarily energizing. The Product Owner is motivating the whole dev team and thanks to great communication we are able to develop a product with the latest technologies.
What we did
“XSolve contribution to leverage our API was a success. We all enjoyed our collaboration with Xsolve that we consider as part of our team”
VP Engineering SlimPay
Founded in 2009, SlimPay is the European leader for payments for subscriptions via direct debit. In addition to processing payments in both EURO and GBP for fixed and variable payment plans, SlimPay provides value-added technologies and services to enable merchants to effortlessly onboard customers, increase customer lifetime value and maximise collected revenue. The company employs over 60 payment specialists spread over 6 international offices and more than 2000 customers (including Deezer, Nespresso, and Unicef) in 34 countries.
The Client’s business is based on automation of regular Direct Debit payments; for example, subscriptions. The process includes acquiring the mandate, that is, the consent to charge the subscriber’s bank account, and ordering the payment. Customers are able to use direct debits, credit transfers and card payments. Additionally, the app was equipped with a dashboard, which allowed users to manage their payment orders.
"Slimpay provides Product Owners passionate about their work and hungry for feedback - all to raise efficiency in product development and make our daily work more enjoyable." - Bartłomiej Til, Scrum Master at XSolve
The team consisted of back-end and front-end specialists supported by a Scrum Master and Customer Success Manager (the person at XSolve who knows the Client’s requirements and principles best).
The collaboration with SlimPay was a pleasure. Interesting technology stack, clear business goals, and the Client’s agile approach allowed our collaboration to be 110% successful.
Customer Success Manager at XSolve
When it came to the back-end, the REST API was based on Java 8 and Spring 4. The front-end used React.js + Redux.
SlimPay exposes its public API for its payment services. It's a REST API which does not only expose the data as such, but also includes a layer of metadata called hypermedia controls describing how to transition from one state to another. This kind of hypermedia API sits at the top of the Richardson Maturity Model a model evaluating the maturity of web APIs.
The team was engaged to support the existing application, and then to gradually create separate microservices with particular functionalities. The microservices are based on SpringBoot. The new applications were covered by integration tests using SpringBootTest.
The front-end team works remotely from Warsaw and directed by a lead front developer in Paris.
We developed a single page application with the technical stack ReactJS / Redux (which is an evolution of Flux without the complexity) developed by Facebook and using a REST API, which additionally meets the HATEOAS principle.
ReactJS is a view library, the main benefit is to be able to split a large SPA in multiples tiny stateless components. The main benefit are to avoid business logic in the component and to be able to test each components.
Redux is a dispatcher that sends actions to the data store, and updates the view. It's an overall data flow architecture, where updates only go one way.
As a state is immutable, all states are stored in Redux, so it is possible to isolate the action that caused the state change, and go back and forth at any time.
In order to facilitate debug in production, each user action is tracked with all needed informations like user agent, page referer (all sensitive informations are obfuscated) so each developer are able to reproduce the case in development and fix the bug.
The developers made sure that the code is optimized so that the users’ computers need to work only when necessary. That was made possible by the thunk pattern, known for compiler optimization. This approach delays the calculations until the moment the user needs the results.
"This is my best experience with a distributed team so far. Slimpay's developers have always been kind, helpful and open to our ideas. It's great to be a part of a team with real professionals!"
Java Developer at XSolve
After working on the project for a few weeks, the Team visited the Client’s office in Paris for a face to face get-together.
This meeting improved communication by increasing the mutual understanding of how the two companies work and allowing us all to get to know each other better. Remote communication was based on Jira, Hangout, and Slack, which made it smooth and transparent.
Why we did it
Reach out to us...
...and find out how XSolve can help!
When a company is growing it needs larger teams who can reach high performance quickly. Contact us and let’s discuss your needs.