Implementing payments with Android
Tags: android, kotlin, jetpackcompose, payments
Published: 2022-02-22 12:25:45

[Android at Adyen](https://www.adyen.com/press-and-media/2022/adyen-launches-android-pos-terminals) is not your typical Android role. Normally, most application development is tightly coupled to Google Play; So to understand the payments app development space, it requires a shift in who the potential customers are, and what the marketplace looks like.


This article will provide you with an insight into **how Adyen leverages Android** to implement a fully fledged payment solution.

Let’s begin with answering a question to provide a reference point:

_“How is Adyen using Android to assist merchants in processing payments in their stores?”_

To gain context (pun intended) we have to briefly zoom out and look at the current landscape, assess what Android is bringing to this space, and finally focus on how Adyen is enabling better Android-based solutions for merchants.


## The current landscape
A cashier rings an order through their till, then presents you with a device to take a payment. Think [contactless](https://www.adyen.com/blog/4-ways-to-offer-contactless-payments), chip and pin, and swipe.

That device is known as a POS ([point of sale](https://en.wikipedia.org/wiki/Payment_terminal)) terminal, and is a piece of hardware that runs a Unix-like OS that has been modified — hardened and then certified — to perform transactions. This means manufacturers ([OEMs](https://en.wikipedia.org/wiki/Original_equipment_manufacturer)) control and ship both the hardware and software for their devices.


## A natural evolution to Android
The similarities with the current state of POS devices and where mobile phones were in the early 2000s is striking; You had OEMs of mobile phones all making proprietary software for their devices. As these phones were becoming more powerful they began to blur the boundaries of what they could do.

In exactly the same fashion, POS device hardware has become both cost effective and more powerful, inturn increasing the possibilities in what a single device could do. So manufacturers began forking the [Android Open Source Project](https://source.android.com/) — again hardening the source code and certifying it for payments. Leaving us with Android-based multipurpose payment devices.

It’s important to note that these Android forks do not contain any of Google’s proprietary software, due to both licensing and certifications, which then means no access or distribution via the popular app store.

This poses some interesting challenges with both scalability and deployment. How do you integrate with different OEMs to take a payment? And how do you get your application onto a device with no application store?

---
## Helping merchants
The sweet spot where Adyen operates has two functions.

**We build an Android payments based solution** that integrates the APIs from the OEMs to read card data and securely communicate with the Adyen platform for payment processing. This standardizes the payment experience for merchants who want to integrate with the platform and simplify process payments.

Keeping in mind the comparison with mobile phones: a payment device processing a payment is akin to a mobile phone making a call — it has achieved its primary purpose.

Next, **Adyen supports merchants to further leverage Android**, enabling merchants to provide a better experience for both staff and customers.

Here we develop and add features to our [launcher application](https://developer.android.com/reference/android/content/pm/LauncherApps), keeping users within a secure environment mitigating the risks of nefarious actions from individuals. Likewise, in reducing risk we **only** use third party libraries from Google and JetBrains.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vgcy2wqz7jc91ok5vvjm.jpg)

> _We work with the latest industry trends: Dagger/Hilt for dependency injection, Coroutines/Flow as the primary mechanism for asynchronous code and Jetpack Compose for our UI._
Khaleel Freeman, Software Engineer

With a launcher application in place, merchant developers are building checkout solutions — applications that can tally up a customer’s order supporting different payment methods and currencies. However, as with application development this is only limited by the creativity of the team. Merchants have created apps that use barcode scanners and cameras to check stock levels for example.

Using Android this way repurposes the single use payment terminal to a multi functional device for merchants.


## Smart Phone, now think Smart Terminal.

---

### Job Opportunities

Adyen is looking for **talented Android developers** to continue revolutionising the payment industry, check out our latest [vacancies](https://careers.adyen.com/vacancies/development/3727966/android-software-engineer).