Hydrogen
Commerce primitives for you and your coding agents. Add cart, products, money, and accounts to the framework you already use.
Sell, take card payments, print receipts and refund, all on the payment terminal. Free and open source.
CommerceKotlin · ShellGitHub @astiskalaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
A free, open-source point-of-sale app that runs directly on Adyen Android payment terminals. Ring up products, take a payment, deliver a receipt and refund it—all on the terminal, with no separate till or app subscription.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A free, open-source point-of-sale app that runs directly on Adyen Android payment terminals. Add products, take a payment, deliver a receipt and refund the payment on one terminal. No separate till or app subscription is needed. The same app works on Android tablets and phones with an Adyen terminal on your network or over the internet, or with Tap to Pay through the Adyen Payments app. Screenshots show an English demo café using the built-in simulator, not live payments.Read the full README ↗
A free, open-source point-of-sale app that runs directly on Adyen Android payment terminals. Add products, take a payment, deliver a receipt and refund the payment on one terminal. No separate till or app subscription is needed.
The same app works on Android tablets and phones with an Adyen terminal on your network or over the internet, or with Tap to Pay through the Adyen Payments app.
Website · Download APK · Español (México) · Français (France) · 日本語 · Português (Brasil) · 简体中文 · 繁體中文
Screenshots show an English demo café using the built-in simulator, not live payments.
[!IMPORTANT] Mini mPOS is an independent project, not made, endorsed or supported by Adyen. Test your setup in the Adyen test environment before you take live payments.
The operations guide also covers optional workflows: audio-guided payments, surcharges, Mexican installments, cashback and cashout, shopper-facing prompts, Adyen Giving, MOTO / Manual Key Entry and offline processing. Availability depends on the payment destination and your Adyen configuration; test the workflows you plan to use.
The app supports English, Simplified Chinese, Traditional Chinese, Japanese, Brazilian Portuguese, Spanish and French. Products, settings and history stay on each device; there is no backend, tracking or automatic synchronization between devices.
Just exploring? Install minimpos-<version>.apk from the
latest release on an Android phone (Android 9+) or emulator.
Away from an Adyen terminal, the default is the simulator: no account, keys or real card needed. Choose outcomes and
printer behavior in Settings › Simulator.
Ready to connect to Adyen? Follow Quick start. It covers device, network and credential prerequisites, deployment and all four payment setups. Every real-payment setup needs the Checkout API; the setup helper lets you enter keys on a computer and scan them in.
| Guide | What it covers |
|---|---|
| Quick start | Check prerequisites, install, connect, test and go live. |
| Using Mini mPOS | Daily operations: sell, refund, receipts, closing the day, optional checkout workflows and more devices. |
| Troubleshooting | Unknown results, declines, pairing, network, capture, printer and email problems. |
Mini mPOS has no server to receive Adyen webhooks. Refunds and captures shown as requested need final confirmation in the Customer Area. Paid payment links are refunded there, not in the app. If a payment's result is unknown, check it before charging again.
Mini mPOS saves API keys encrypted on the device. This is a trade-off against the Adyen recommendation to keep keys on a server. Use narrowly scoped credentials, protect the device, and review SECURITY.md.
The app is Kotlin with Jetpack Compose, built with Gradle. With JDK 17+ and the Android SDK installed, build and install a debug copy on an Android 9+ device or emulator, then run the full verification gate:
./gradlew :app:installDebug
./gradlew qualityGate
See CONTRIBUTING.md for prerequisites, testing, architecture and releases—including signing your own APK. Coding agents start at AGENTS.md. Use CONTEXT.md for domain terminology. Report vulnerabilities privately through the security policy, not a public issue.
MIT © 2026 Adam Stiskala. Adyen is a trademark of Adyen N.V.