Building better applications with Adyen API Libraries
2020 has brought us a new world, a completely different path than many would have foreseen. Individual lives were changed big and small, and businesses began to accommodate the impact of COVID-19 to their environment.
But while a lot has changed, some things have stayed the same. We at Adyen kept on working full-throttle, adding new features and following our game plan for releases without slowing down the hiring process.
In the light of the new world, and as part of providing the most suitable in-store payment acceptance for our merchants and their shoppers, we have explored various solutions where the shopper does not have to touch the POS terminal during the entire transaction process. We found the solution together with another product we have developed for ecommerce, Pay By Link, where the shopper gets a link from the merchant which redirects to a page hosted by Adyen to complete the payment.
The solution can be summarized as follows: Using their mobile devices, the shopper can obtain the URL through scanning the QR code. From that point on, the shopper can proceed by using their favorite payment method. The Adyen backend will handle the rest, while informing the Adyen terminal about the status. Once the terminal gets the notification that a payment is successful, it can continue with the rest of the operation such as printing receipts and communicating with the cash register. This allows the merchant to keep the typical payment experience business-as-usual.
Pay By Link interactions flow from the shopper to Adyen backend, to the Adyen terminal, to the cash register.
In a nutshell, this solution provides a check for all our goals for contactless payments:
So how did we manage to develop and deploy such a large feature that requires involvement from a lot of different teams within a very short period of time?
The answer lies in the Adyen formula and the Adyen way of developing.
During the design phase of the feature, we have selected a few key merchants that fit the right profile for us to gather the requirements as well as interest. Thanks to their insight, we were able to prioritize certain parts of the solution.
Once we have figured out how the feature is defined, we have started exploring the terminal architecture as well as the existing Pay By Link solution to see how we can create the optimum synergy. We have involved many who have worked with either or both of the solutions, to sharpen our ideas and to think about edge cases.
One of the key points of Adyen development is to expose the work early. Previously named “Push early, pull often”, the rewording actually gives us a wider meaning, encouraging our team to expose the code as early as possible to other developers, test environments, beta merchants. In turn, any bugs or alignment issues between different parties can be detected early on, leading to a faster stability cycle.
For the development of the Pay By Link in-store solution, we had to create a super team containing members from multiple streams as well as experts on multiple domains. This was necessary since there were a lot of moving parts which have to be aligned at every step. To be able to work efficiently, we started with:
Each week we not only tracked development progress through the meetings, but we also tried to come up with a newer prototype as soon as possible, where the new code was exposed and tested together with the rest. We were able to quickly identify the potential misalignments and successfully managed to follow up the challenging timelines set.
What we have achieved through this approach is a high-quality solution, already proven under many sunny and edge cases, tested through the scope of our “early adopter” merchants.
Contactless payments through Pay By Link in-store is now available for our merchants.
We are on the lookout for talented engineers and technical people to help us build the infrastructure of global commerce!Check out developer vacancies
By submitting this form, you acknowledge that you have reviewed the terms of our Privacy Statement and consent to the use of data in accordance therewith.