This article is day 3 of Share your payment integration stories and payment-related tips (credit cards, QR codes, anything goes!) — PAY Advent Calendar 2025.
A World Where I Design the Payment Experience
When using payment terminals, developers have long worked under the constraint of "matching the terminal UI." Payment screen design, flow, font sizes—all decided by the device maker or payment provider. Even when I wanted something easier to use or on-brand, I could not touch those surfaces.
Terminal UI stayed fixed for good reason: security and compliance. For highly sensitive payment processing, full control on the device prevented malicious code from interfering with the payment flow. That was the right call and necessary to preserve trust.
But the time has come to shift to "designing the payment experience in code." With Stripe Terminal Apps on Devices, that is now possible.
What Is Stripe Terminal Apps on Devices?
Stripe Terminal Apps on Devices lets you install your own application on the payment terminal itself and design the entire payment experience.
https://docs.stripe.com/terminal/features/apps-on-devices/overview
Here is the big difference from the Terminal SDK. The Terminal SDK controls a payment reader from a mobile app or POS system—your phone or tablet app tells the terminal to "process payment." Apps on Devices installs an app on the terminal so the experience can complete on the device alone. You can design an end-to-end flow with only the payment terminal—no phone or tablet required.
Why did Stripe open this layer? I think payments evolved from a "feature" to an "experience." Customer touchpoints with your brand during checkout are limited. How do you deliver value in that window? Being able to design it in code is a major turning point for payment businesses.
Security and reliability remain top priority. Using Stripe Terminal Apps on Devices requires access through a Stripe account representative, plus software "review" so payment trust is preserved. That balance of freedom and responsibility is important design.
What Becomes Possible
What can you actually do? Installing your own app on the terminal enables things like:
- Product selection and tip amounts entirely on the terminal
- Receipt delivery via SMS or LINE after the customer enters a phone number
- In-person subscription setup linked to an email address
- Handwritten signatures captured on the terminal
- Mini-games during wait times to improve the experience
- Multilingual or industry-specific UI you design freely
In other words, you can design everything before and after payment to match your brand.

Technical Implementation
Technically, add com.stripe:stripeterminal-appsondevices via Gradle and you can do most of what Android allows. The supported Stripe Reader S700 runs Android—you install your app and configure it to stay in the foreground.
Unlike normal Android development, there are constraints:
- Google Play Services are unavailable
- Firebase, Google Maps SDK, and push notifications do not work
- Production devices disable USB, so no
adbor debugging (development devices allow it) - Some permissions are not allowed—see the official permission list
Given the special environment of a payment terminal, these constraints are reasonable.
Payment Flow in Depth
The core of the flow: the tap-to-pay screen itself must use Stripe's original UI for security. Everything before and after can be yours.
A typical flow:
- Confirm the payment amount
- Send the amount to the PaymentIntent API, pass the resulting ID to the Terminal SDK, and the payment screen opens
- Retrieve the payment result (via Terminal SDK and/or webhooks)
Steps 1 and 3—before and after the payment screen—are what you design freely. It is not only payments: registration, games, anything can live on the terminal.

This screen cannot be heavily customized (cart contents and similar display tweaks are possible)
You Can Actually Build This with a WebView
Web developers reading this might think, "But terminal apps require native Android development, right?" Good news: a WebView works too.
As a web developer, here is the technical note. Stripe handles all Stripe SDK work, so the flow before and after can be implemented in a WebView. That is already supported in the Capacitor Stripe plugin—APIs from display through payment in a WebView.
I maintain that plugin. Payment terminals used to be something device makers provided, and business devices came with heavy constraints—native only. You needed Kotlin or Java on Android; building terminal apps as a web developer was not realistic.
Stripe Terminal Apps on Devices lets web developers use a web stack. Angular, React, Vue.js, Svelte—any framework. TypeScript and CSS for design. Develop in the browser and deploy to the terminal through Capacitor.
Example stacks:
- Angular + Capacitor +
@capacitor-community/stripe-terminal - React + Capacitor +
@capacitor-community/stripe-terminal - Vue.js + Capacitor +
@capacitor-community/stripe-terminal
You can reuse an existing web codebase. Payment experiences you built as mobile apps can run on the terminal the same way. Maybe the browser becomes your new platform.
https://github.com/capacitor-community/stripe
For web developers the upside is not only speed. You keep the web ecosystem, reuse design systems and component libraries, develop and debug in the browser—and above all, your web skills apply directly. A domain I had to give up because "native is required" can now use web development.
Imagining Real Use Cases
Concrete scenarios show how far this can go.
Tips at Restaurants
I recently saw this article about mobile tipping at restaurants. Even without mobile ordering, customers can choose a tip amount on the terminal—design an experience where they add a tip comfortably while looking at the device.
Automatic Digital Receipts
Ask for a phone number and send receipts via SMS or LINE automatically. No hunting for paper receipts or asking for email at the counter. The receipt arrives on the customer's phone the moment payment completes.
In-Person Subscription Setup
With customerId alignment in place (email, etc.), you can set up subscriptions in person. For in-store subscription signup, start billing while the customer is still in the store—less paperwork, service starts immediately.
Better Wait-Time Experiences
When customers wait after ordering (food trucks, etc.), add a mini-game. You could run something like 10 seconds for a free dessert?! on the terminal, or combine an invader-style game with rewards. Turn waiting into something to look forward to.
Industry- and Locale-Specific UI
Multilingual or specialized UI becomes easier. Tourist shops get multilingual flows; salons get booking plus payment in one UI—optimize for each context.
Why This Is More Than a "New Feature"
Stripe Terminal Apps on Devices is not just a feature drop. Payment becomes part of your screen flow. Payments used to be special: you left your app context, entered payment UI, and came back—with little control over what the customer experienced.
When payment is just another screen, payment experience ties directly to brand experience. Every moment of checkout is yours to design.
This is evolution from "payment SDK" to "experience platform." Payment is not only a function—it is a touchpoint. You can turn the moment of payment from transaction completion into deepening the brand relationship—and implement that in code. That can change the future of payment businesses.
Summary
The era of designing the "payment experience" in code is here. Payment terminals are no longer peripheral devices with fixed UI. Stripe Terminal Apps on Devices is a platform for UX designers to shape the whole payment journey—not just payment rails.
For web developers, bringing web skills into a space that required native development matters too. Terminal apps in Angular, React, Vue.js—more developers can design payment experiences.
From the perspective of changing the world through payments, this is more than technical progress. The value I can offer customers expanded. Payment can deepen brand relationships, not only close transactions—and I can build that in code. That has real potential to reshape payment businesses.
See you next time.