Payments
Tap to Pay on iPhone & Android
Accept contactless card payments directly on your phone - no extra hardware. Works in AU, GB (iPhone + Android) and NZ (Android only). Requires Stripe Connect and a supported device.
Last updated 17 July 2026
Accept contactless card and digital-wallet payments directly on your phone - no card reader, no extra hardware. Built on Stripe Terminal's mobile SDK with country-aware availability, an education flow on first enable, and platform-specific permission handling.
Where to find it: Owners manage venue Tap to Pay inventory in Settings → In-person payments on web or mobile. Authorised mobile members enable and set up the phone they are holding in Settings → Tap to Pay. Existing
/card-paymentslinks remain compatible.
TL;DR
- Built on Stripe Terminal SDK 5.4.x via a custom Expo module - Swift for iOS, Kotlin for Android.
- AU + GB: iPhone XS+ (iOS 17.6+) and Android with NFC. NZ: Android only (Apple restriction).
- One-time Stripe Terminal Terms acceptance on first enable, plus a re-launchable education flow.
- Owner/Manager toggle; Staff see "contact admin" message.
- Cardholder sees your venue's brand name on the system tap sheet - not OpenChair.
Country & device support
| Country | iPhone | Android |
|---|---|---|
| Australia | Yes (XS+, iOS 17.6+) | Yes (NFC + Android 10+) |
| United Kingdom | Yes (XS+, iOS 17.6+) | Yes (NFC + Android 10+) |
| New Zealand | Not available - Apple restriction, coming when Apple releases iOS Tap to Pay in NZ | Yes (NFC + Android 10+) |
The Tap to Pay settings page detects your device and country automatically. Unsupported combinations show a disabled toggle with a "coming soon" message.
Enabling Tap to Pay
- Open Settings → Tap to Pay on the mobile device you want to set up.
- Tap the Tap to Pay toggle.
- First time only: the Stripe Terminal Terms dialog appears. Tap View terms to read them in browser (opens
stripe.com/au/legal/terminal), then return and tap Accept & continue. - iPhone: a quick capability provisioning step runs (~90 seconds). Android: first-time setup takes up to 5 minutes - Stripe registers your device with their partner backend. Once.
- Android only: the app asks for Location permission (ACCESS_FINE_LOCATION). Required by Stripe Terminal for compliance. Tap Allow when prompted.
- After provisioning completes, the education screens run automatically (you can re-launch them any time).
The toggle goes green. You can now use Tap to Pay during checkout.
The education flow
5-screen walkthrough explaining how Tap to Pay works, what cards and wallets are accepted (chip & PIN, contactless, Apple Pay, Google Pay, Samsung Pay), how PIN entry works (with VoiceOver/accessibility notes), and a UK-specific fallback note.
On iOS 18 or later, the final screen uses Apple's native ProximityReaderDiscovery "See it in action" overlay (Apple req 4.1) - Apple's own walkthrough alongside ours.
You can re-launch the education any time from Settings → Tap to Pay → How to use Tap to Pay.
Taking a payment
On a dedicated native shared workstation, claim the device with your own shared-device PIN before checkout. Tap to Pay is not available from a web workstation. If a Tap to Pay result is uncertain, resume or reconcile the existing attempt instead of charging again or switching operators.
- From the mobile checkout, tap Tap to Pay.
- The phone wakes the Tap to Pay subsystem (faster after first use).
- The system tap sheet appears showing your venue brand and the amount.
- The customer holds their card or wallet phone over the back of your phone.
- Payment completes; the receipt is generated as normal.
The cardholder-facing merchant name is your venue's name (or "OpenChair" if no venue name is set). Not the OpenChair brand - it's your business taking the payment.
Payment amount and processing costs
Tap to Pay never adds an OpenChair customer surcharge. Processing costs are deducted from venue revenue in Australia, New Zealand, the United Kingdom, and any safe unknown-country fallback. The system tap sheet therefore shows the payment amount without a separate OpenChair surcharge. See Fees and Processing for rates and the online-only country/date matrix.
Disabling Tap to Pay
Toggle off in Settings → Tap to Pay on that device. Confirm in the dialog. The next enable goes through provisioning again:
- iPhone: ~90 seconds
- Android: up to 5 minutes (first time only after disable + re-enable)
Venue device inventory
Venue Owners can review Tap to Pay installations in Settings → In-person payments on web or mobile. This is an evidence inventory, not a live online-device monitor.
- A saved nickname is shown first. Without one, OpenChair uses the platform plus a stable shortened installation ID so two phones on the same platform remain distinguishable.
- Each active row shows the latest captured activity with its exact venue-local date and time. It shows the authenticated actor when known and Unknown for older evidence that did not record one.
- Owners can rename an installation. Clearing a nickname returns it to the platform-and-ID fallback.
- Archive removes the row from the active inventory. It does not sign out the phone, revoke payment authority, or remove access. Later setup or payment activity can reactivate the same evidence row.
- Archive is shown only when the connected server advertises the complete archive/reactivation capability. Older server responses remain readable without exposing the action.
Owners manage the venue inventory; authorised members continue to use the separate device-local Tap to Pay setup and checkout flow on the phone they are holding.
Diagnostic tools
If something's wrong:
- Copy debug log - captures the recent SDK events to your clipboard for support
- Capture system log (Android only) - ~2,000-line system trace, copied to clipboard
- Report a problem - opens the support form pre-filled with diagnostic context
These three buttons sit at the bottom of the Tap to Pay settings page.
Recovery from connection errors
If the Tap to Pay subsystem gets into a bad state (AIDL errors on Android, ProximityReader stale state on iPhone), the app:
- Disconnects the active session
- Clears cached credentials
- Wipes the corrupted Tink keysets (Android encryption store)
- Kills the Tap to Pay process
- Waits 800ms
- Re-prepares
Two consecutive failures surface as "Tap to Pay connection lost" - restart the app and try again, or use a different payment method for the current transaction.
Role gating
| Role | Tap to Pay access |
|---|---|
| Owner | Can enable / disable / use |
| Manager | Can enable / disable / use |
| Stylist | Can use (during checkout). Cannot toggle. Sees "contact admin" message on settings page. |
Tier
All plans, requires Stripe Connect to be active on your venue. Standard transaction fees apply (see Fees and Processing).
Platform-specific notes
iPhone
- iPhone XS or newer, iOS 17.6 or newer
- Requires the Apple Tap to Pay entitlement (we have this from Stripe; no action required from you)
- Provisioning: ~90 seconds first time, instant subsequent
- iOS 18+ uses Apple's native education overlay alongside our screens
Android
- Android 10+ with NFC
- ACCESS_FINE_LOCATION permission required (Stripe compliance)
- First-time provisioning can take ~5 minutes
- Works in NZ (where iPhone Tap to Pay isn't yet supported)
On the FREE plan
Tap to Pay works on FREE. The requirement is Stripe Connect activation, not subscription tier. The standard in-person percentage and fixed fee apply; see Fees and Processing.
Common mistakes
| Problem | What to check |
|---|---|
| Toggle is disabled with "coming soon" | Your device or country isn't supported (NZ iPhone, older iPhone, no NFC). The matrix above shows what's available. |
| Stuck on Stripe Terminal Terms | Tap Accept & continue after viewing terms. If the dialog won't progress, restart the app and re-toggle. |
| Android first-time setup taking forever | First setup is 5 minutes maximum. If it stalls, check you granted Location permission, then capture the system log via the diagnostic button. |
| Payment fails with "connection lost" | Restart the app, re-enable Tap to Pay, retry. If repeated, use a hardware reader or another payment method. |
| Wrong merchant name on tap sheet | Confirm your venue name in Settings → Venue details. The first 22 characters are what Apple/Google display. |
FAQ
What's Tap to Pay?
Accept contactless card and digital-wallet payments directly on your iPhone or Android phone - no card reader, no extra hardware. Built on Stripe Terminal's mobile SDK; works in AU, GB (iPhone + Android) and NZ (Android only).
What devices work with Tap to Pay?
iPhone: iPhone XS or newer running iOS 17.6+. Android: NFC-capable Android 10+. The settings page tells you whether your specific device qualifies. Requires Stripe Connect to be active on your venue.
Why isn't Tap to Pay on iPhone available in New Zealand?
Apple restriction - iOS Tap to Pay isn't released in NZ yet. Android Tap to Pay works fine in NZ. NZ iPhone users see a 'coming soon' message on the settings toggle.
Does Tap to Pay add a customer surcharge?
No. OpenChair does not add a customer surcharge to Tap to Pay. Processing costs are deducted from venue revenue.
Do I need an extra Stripe device or reader?
No. Tap to Pay uses your phone's built-in NFC. If you want a dedicated hardware reader (for the counter, or as a backup), see Setting Up Stripe & Card Payments.
Does Tap to Pay work with Apple Pay / Google Pay / Samsung Pay?
Yes - wallet payments work the same as physical cards. The customer holds their wallet phone or watch over the back of your phone.