Skip to content
Sign in
An image of the Stripe logo
/
Create account
Sign in
Home
Payments
Finance automation
Banking as a service
Developer tools
No-code
All products
Home
Payments
Finance automation
Home
Payments
Finance automation
Banking as a service
Developer tools
Overview
Get started
About Stripe payments
Start an integration
Payment Links
Checkout
Web Elements
Mobile Elements
Payment scenarios
During the payment
After the payment
Add payment methods
More payment scenarios
Faster checkout with Link
Other Stripe products
Connect
Terminal
    Overview
    What is Terminal
    Design an integration
    Example applications
    Quickstart
    Accept an in-person payment
    Select your reader
      Stripe Reader S700
      BBPOS WisePOS E
      Stripe Reader M2
      BBPOS WisePad 3
      Tap to Pay
      Verifone P400
      BBPOS Chipper 2X BT
    Set up your integration
    Connect to a reader
    Collect payments
    Regional considerations
    Supported card brands
    Terminal payments features
    Multiparty payments with Connect
    Collect tips
    Collect inputs
    Save cards for future use
    Refund transactions
    Provide receipts
    Cart display
    Incremental authorizations
    Extended authorizations
    Operate offline
    Deploy at scale
    Order hardware
    Manage locations
    Configure readers
    References
    API references
    Bluetooth readers
    Smart readers
    SDK migration guide
    Testing
    Deployment checklist
    Stripe Terminal reader product sheets
Radar
Financial Connections
Crypto
Identity
Climate
Resources
About the APIs
Implementation guides
Regulation support
Testing
Terminal
·
HomePaymentsTerminalSelect your reader

Tap to Pay

Accept contactless payments on a compatible iPhone or Android device with the Stripe Terminal SDK.

Use Tap to Pay on Android (TTPA) to accept in-person contactless payments with compatible NFC-equipped Android devices. TTPA includes support for Visa, Mastercard, and American Express contactless cards and NFC-based mobile wallets (Apple Pay, Google Pay, and Samsung Pay). TTPA is an extension to the Terminal Android SDK and enables payments directly in your Android app.

Availability

Singapore
United Kingdom
United States

Available in Beta

Australia
Austria
Belgium
Canada
Czech Republic
Denmark
Finland
France
Germany
Ireland
Italy
Luxembourg
Malaysia
Netherlands
New Zealand
Norway
Portugal
Spain
Sweden
Switzerland

Get started

Integrate the latest version of the Terminal Android SDK to include the latest bug fixes and features. You can view version-specific updates and bug fixes in the SDK changelog. The minimum supported SDK version for Tap to Pay is 2.20.0.

Device and minimum SDK version requirements can change due to updated compliance requirements or security vulnerabilities. To make sure your solution is up to date with Tap to Pay requirements, please subscribe to terminal-announce@lists.stripe.com.

To enable Tap to Pay in your Android application:

  1. Set up the Terminal Android SDK.
  2. Replace your existing stripeterminal dependencies with the following dependencies:
    build.gradle
    dependencies { implementation "com.stripe:stripeterminal-localmobile:3.0.0" implementation "com.stripe:stripeterminal-core:3.0.0" // ... }
  3. Connect to the Tap to Pay reader.
  4. Collect the payment data with the Tap to Pay reader.
  5. Confirm the payment.

Supported devices

Android devices must meet all of the following criteria or either reader discovery or the connection will fail:

  • Contains functioning NFC antenna and chipset
  • Isn’t rooted and device bootloader is locked and unchanged
  • Runs a current version of Android (Android 10 or above)
  • Uses Google Mobile Services
  • Has a hardware backed keystore
  • A stable connection to the internet

Android device emulators aren’t supported by Tap to Pay.

Note

While Tap to Pay supports a variety of Android devices, we recommend using a Samsung Galaxy S22 or Samsung Galaxy A12 for development, if you want to get started quickly.

User interface

Tap to Pay on Android includes payment collection screens. When your application is ready to collect a payment, the Stripe Terminal SDK takes over the display to handle the collection process. After you call the collect payment method, your application continues to run while Tap to Pay displays a full-screen prompt that instructs the cardholder to tap their card or NFC-based mobile wallet. If there’s an error reading the card, a prompt for retry displays. A successful tap returns a success indication and then your application regains control to confirm the payment.

Device-specific NFC tap zone UI

The Tap to Pay on Android SDK supports device-specific UX that dynamically indicates to the end user where the tap zone is located on the device. View examples of what the UX might look like in practice:

Generic UX

Device-specific UX

The devices listed below are confirmed to meet the current hardware and minimum OS requirements. Device and operating system requirements might change in the future due to new security requirements.

  • Google
    • Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL
    • Pixel 4, Pixel 4 XL, Pixel 5, Pixel 6, Pixel 6 Pro, Pixel 7, Pixel 7 Pro
    • Pixel 3a, Pixel 3a XL, Pixel 4a, Pixel 5a, Pixel 6a, Pixel 7a
  • Samsung
    • Galaxy A12, Galaxy A13, Galaxy A14
    • Galaxy A21, Galaxy A21s, Galaxy A22, Galaxy A23, Galaxy A24
    • Galaxy A32, Galaxy A33, Galaxy A34
    • Galaxy A41, Galaxy A42
    • Galaxy A51, Galaxy A52, Galaxy A53, Galaxy A54
    • Galaxy A70, Galaxy A70s, Galaxy A71, Galaxy A72, Galaxy A73
    • Galaxy S9, Galaxy S10, Galaxy S20, Galaxy S21, Galaxy S22, Galaxy S23
    • Galaxy Note9, Galaxy Note10, Galaxy Note20
    • Galaxy Tab Active2, Galaxy Tab Active3, Tab Active4 Pro
  • Oppo
    • A5, A9, A16s, A54s, A73, A74, A94, A96
    • Reno2, Reno3, Reno4, Reno5, Reno6, Reno7
    • Find X2, Find X3, Find X5
  • OnePlus
    • 5, 5T, 6, 6T
    • 7, 7 Pro, 7T, 7T Pro
    • 8, 8 Pro, 8T, Nord, 9, 9 Pro, 9RT, 9R
    • 10 Pro, 10R
    • Nord CE, Nord 2, Nord CE 2, Nord N10, Nord N20, Nord N200
  • Xiaomi
    • Mi 8, Mi 9, Mi 9T, Mi 10T
    • Mi Note 10
    • Redmi 9, Redmi 9T, Redmi 10, Redmi 11T
    • Redmi Note 9, Redmi Note 10, Redmi Note 11, Redmi Note 12
    • Poco X3

Cardholder verification limits and fallback

Some contactless card transactions above certain amounts might require additional cardholder verification methods (CVM) such as PIN entry. Tap to Pay on Android doesn’t yet support PIN capture, so you might see elevated decline rates for transactions above the limit. NFC wallet payments (Apple Pay, Google Pay, and Samsung Pay) might not be subject to these same limits.

We recommend attempting the transaction anyway. When collecting payment with your mobile device, hold the card to the reader long enough to read the information from the chip. You might need to wait a few seconds after the initial vibrate when the card makes contact. In the event of a decline, use another method to collect payment, such as a Terminal card reader. You can only have one active connection to a reader at a time.

Next steps

  • Set up your integration
Was this page helpful?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Get started
Supported devices
User interface
Cardholder verification limits and fallback
See also
Products Used
Terminal
Payments
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Log in to your Stripe account and press Control + Backtick (`) on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g., )
The Stripe Shell is best experienced on desktop.
$